libskk-1.0.0/0000775000076400007640000000000012016557043010005 500000000000000libskk-1.0.0/missing0000755000076400007640000002415211774201545011331 00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2012-01-06.13; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, # 2008, 2009, 2010, 2011, 2012 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 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. ;; *) 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 ;; *) 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: libskk-1.0.0/tools/0000775000076400007640000000000012016557043011145 500000000000000libskk-1.0.0/tools/skk_vala.stamp0000664000076400007640000000000612016556651013726 00000000000000stamp libskk-1.0.0/tools/skkfep.10000664000076400007640000000102311712700243012420 00000000000000.\" Hey, EMACS: -*- nroff -*- .TH LIBSKK 1 "5 Jan 2012" .SH NAME skkfep \- Japanese SKK input method on text terminal .SH SYNOPSIS .B skkfep .br .SH DESCRIPTION \fBskkfep\fP is a tool that allows to use Japanese input method called SKK (Simple Kana to Kanji conversion program) on ANSI compliant text terminals. .PP More information about the SKK input method itself can be found at: \m[blue]\fB\%http://openlab.jp/skk/\fR\m[]\& .SH AUTHOR libskk was written by Daiki Ueno . libskk-1.0.0/tools/skk.vala0000664000076400007640000001252411734221637012531 00000000000000/* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ using Gee; static string opt_file_dict; static string opt_user_dict; static string opt_skkserv; static string opt_typing_rule; static bool opt_list_typing_rules; static const OptionEntry[] options = { { "file-dict", 'f', 0, OptionArg.STRING, ref opt_file_dict, N_("Path to a file dictionary"), null }, { "user-dict", 'u', 0, OptionArg.STRING, ref opt_user_dict, N_("Path to a user dictionary"), null }, { "skkserv", 's', 0, OptionArg.STRING, ref opt_skkserv, N_("Host and port running skkserv (HOST:PORT)"), null }, { "rule", 'r', 0, OptionArg.STRING, ref opt_typing_rule, N_("Typing rule (default: \"default\")"), null }, { "list-rules", 'l', 0, OptionArg.NONE, ref opt_list_typing_rules, N_("List typing rules"), null }, { null } }; static int main (string[] args) { Intl.setlocale (LocaleCategory.ALL, ""); Intl.bindtextdomain (Config.GETTEXT_PACKAGE, Config.LOCALEDIR); Intl.bind_textdomain_codeset (Config.GETTEXT_PACKAGE, "UTF-8"); Intl.textdomain (Config.GETTEXT_PACKAGE); var option_context = new OptionContext ( _("- emulate SKK input method on the command line")); option_context.add_main_entries (options, "libskk"); try { option_context.parse (ref args); } catch (OptionError e) { stderr.printf ("%s\n", e.message); return 1; } Skk.init (); if (opt_list_typing_rules) { var rules = Skk.Rule.list (); foreach (var rule in rules) { stdout.printf ("%s - %s: %s\n", rule.name, rule.label, rule.description); } return 0; } ArrayList dictionaries = new ArrayList (); if (opt_user_dict != null) { try { dictionaries.add (new Skk.UserDict (opt_user_dict)); } catch (GLib.Error e) { stderr.printf ("can't open user dict %s: %s", opt_user_dict, e.message); return 1; } } if (opt_file_dict == null) { opt_file_dict = Path.build_filename (Config.DATADIR, "skk", "SKK-JISYO.L"); } if (opt_file_dict.has_suffix (".cdb")) { try { dictionaries.add (new Skk.CdbDict (opt_file_dict)); } catch (GLib.Error e) { stderr.printf ("can't open CDB dict %s: %s", opt_file_dict, e.message); return 1; } } else { try { dictionaries.add (new Skk.FileDict (opt_file_dict)); } catch (GLib.Error e) { stderr.printf ("can't open file dict %s: %s", opt_file_dict, e.message); return 1; } } if (opt_skkserv != null) { var index = opt_skkserv.last_index_of (":"); string host; uint16 port; if (index < 0) { host = opt_skkserv; port = 1178; } else { host = opt_skkserv[0:index]; port = (uint16) int.parse ( opt_skkserv[index + 1:opt_skkserv.length]); } try { dictionaries.add (new Skk.SkkServ (host, port)); } catch (GLib.Error e) { stderr.printf ("can't connect to skkserv at %s:%d: %s", host, port, e.message); return 1; } } var context = new Skk.Context (dictionaries.to_array ()); if (opt_typing_rule != null) { try { context.typing_rule = new Skk.Rule (opt_typing_rule); } catch (Skk.RuleParseError e) { stderr.printf ("can't load rule \"%s\": %s\n", opt_typing_rule, e.message); return 1; } } var repl = new Repl (context); if (!repl.run ()) return 1; return 0; } class Repl : Object { Skk.Context context; public bool run () { string? line; while ((line = stdin.read_line ()) != null) { context.process_key_events (line); var output = context.poll_output (); var preedit = context.preedit; stdout.printf ( "{ \"input\": \"%s\", " + "\"output\": \"%s\", " + "\"preedit\": \"%s\" }\n", line.replace ("\"", "\\\""), output.replace ("\"", "\\\""), preedit.replace ("\"", "\\\"")); context.reset (); context.clear_output (); } return true; } public Repl (Skk.Context context) { this.context = context; } } libskk-1.0.0/tools/skkfep_client_vala.stamp0000664000076400007640000000000612016556767015767 00000000000000stamp libskk-1.0.0/tools/Makefile.in0000664000076400007640000010414512016556764013150 00000000000000# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 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@ # Copyright (C) 2011-2012 Daiki Ueno # Copyright (C) 2011-2012 Red Hat, 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 3 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, see . VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } 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 = skk$(EXEEXT) @ENABLE_FEP_TRUE@libexec_PROGRAMS = skkfep-client$(EXEEXT) @ENABLE_FEP_TRUE@am__append_1 = skkfep.1 subdir = tools DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/skk_vala.stamp \ $(srcdir)/skkfep_client_vala.stamp $(top_srcdir)/depcomp fep.c \ skk.c ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \ $(top_srcdir)/m4/libtool.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/vala.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libexecdir)" \ "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" PROGRAMS = $(bin_PROGRAMS) $(libexec_PROGRAMS) am_skk_OBJECTS = skk-skk.$(OBJEXT) skk_OBJECTS = $(am_skk_OBJECTS) am__DEPENDENCIES_1 = skk_DEPENDENCIES = $(top_builddir)/libskk/libskk.la \ $(am__DEPENDENCIES_1) skk_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(skk_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ am__skkfep_client_SOURCES_DIST = fep.vala @ENABLE_FEP_TRUE@am_skkfep_client_OBJECTS = \ @ENABLE_FEP_TRUE@ skkfep_client-fep.$(OBJEXT) skkfep_client_OBJECTS = $(am_skkfep_client_OBJECTS) @ENABLE_FEP_TRUE@skkfep_client_DEPENDENCIES = \ @ENABLE_FEP_TRUE@ $(top_builddir)/libskk/libskk.la \ @ENABLE_FEP_TRUE@ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) skkfep_client_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(skkfep_client_CFLAGS) \ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ 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__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } SCRIPTS = $(bin_SCRIPTS) 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 $@ VALACOMPILE = $(VALAC) $(AM_VALAFLAGS) $(VALAFLAGS) LTVALACOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(VALAC) $(AM_VALAFLAGS) $(VALAFLAGS) SOURCES = $(skk_SOURCES) $(skkfep_client_SOURCES) DIST_SOURCES = $(skk_SOURCES) $(am__skkfep_client_SOURCES_DIST) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac man1dir = $(mandir)/man1 NROFF = nroff MANS = $(dist_man_MANS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CODE_COVERAGE_CFLAGS = @CODE_COVERAGE_CFLAGS@ CODE_COVERAGE_LDFLAGS = @CODE_COVERAGE_LDFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FEP = @FEP@ FGREP = @FGREP@ GEE_CFLAGS = @GEE_CFLAGS@ GEE_LIBS = @GEE_LIBS@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@ INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@ INTROSPECTION_LIBS = @INTROSPECTION_LIBS@ INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@ INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@ INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@ JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@ JSON_GLIB_LIBS = @JSON_GLIB_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBFEP_CFLAGS = @LIBFEP_CFLAGS@ LIBFEP_LIBS = @LIBFEP_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBSKK_CFLAGS = @LIBSKK_CFLAGS@ LIBSKK_LIBS = @LIBSKK_LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ 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@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SKK_API_MAJOR_VERSION = @SKK_API_MAJOR_VERSION@ SKK_API_MINOR_VERSION = @SKK_API_MINOR_VERSION@ SKK_API_PC_VERSION = @SKK_API_PC_VERSION@ SKK_API_VERSION = @SKK_API_VERSION@ SKK_LIBRARY_SUFFIX = @SKK_LIBRARY_SUFFIX@ SKK_LIBRARY_SUFFIX_U = @SKK_LIBRARY_SUFFIX_U@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VALAC = @VALAC@ VALADOC = @VALADOC@ VALADOC_CFLAGS = @VALADOC_CFLAGS@ VALADOC_LIBS = @VALADOC_LIBS@ VALAFLAGS = @VALAFLAGS@ VALGRIND = @VALGRIND@ VALGRIND_OPTS = @VALGRIND_OPTS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ 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@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ 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@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # force include config.h before gi18n.h. AM_CPPFLAGS = -include $(CONFIG_HEADER) skk_VALAFLAGS = \ --vapidir=$(top_srcdir)/libskk \ --vapidir=$(top_srcdir)/tools \ --pkg config \ --pkg skk-1.0 \ $(VALAFLAGS) skk_CFLAGS = \ -I$(top_srcdir) \ $(LIBSKK_CFLAGS) \ -DDATADIR=\"$(datadir)\" \ -DPKGDATADIR=\"$(pkgdatadir)\" \ -DLOCALEDIR=\"$(datadir)/locale\" \ $(NULL) skk_LDADD = $(top_builddir)/libskk/libskk.la $(LIBSKK_LIBS) skk_SOURCES = skk.vala dist_man_MANS = skk.1 $(am__append_1) @ENABLE_FEP_TRUE@skkfep_client_VALAFLAGS = \ @ENABLE_FEP_TRUE@ --vapidir=$(top_srcdir)/libskk \ @ENABLE_FEP_TRUE@ --vapidir=$(top_srcdir)/tools \ @ENABLE_FEP_TRUE@ --pkg config \ @ENABLE_FEP_TRUE@ --pkg skk-1.0 \ @ENABLE_FEP_TRUE@ --pkg libfep-glib \ @ENABLE_FEP_TRUE@ $(VALAFLAGS) @ENABLE_FEP_TRUE@skkfep_client_CFLAGS = \ @ENABLE_FEP_TRUE@ -I$(top_srcdir) \ @ENABLE_FEP_TRUE@ $(LIBSKK_CFLAGS) \ @ENABLE_FEP_TRUE@ $(LIBFEP_CFLAGS) \ @ENABLE_FEP_TRUE@ -DDATADIR=\"$(datadir)\" \ @ENABLE_FEP_TRUE@ -DPKGDATADIR=\"$(pkgdatadir)\" \ @ENABLE_FEP_TRUE@ -DLOCALEDIR=\"$(datadir)/locale\" \ @ENABLE_FEP_TRUE@ $(NULL) @ENABLE_FEP_TRUE@skkfep_client_LDADD = \ @ENABLE_FEP_TRUE@ $(top_builddir)/libskk/libskk.la \ @ENABLE_FEP_TRUE@ $(LIBSKK_LIBS) \ @ENABLE_FEP_TRUE@ $(LIBFEP_LIBS) \ @ENABLE_FEP_TRUE@ $(NULL) @ENABLE_FEP_TRUE@skkfep_client_SOURCES = fep.vala @ENABLE_FEP_TRUE@EXTRA_DIST = skkfep.in @ENABLE_FEP_TRUE@DISTCLEANFILES = skkfep @ENABLE_FEP_TRUE@bin_SCRIPTS = skkfep GITIGNOREFILES = \ $(skk_SOURCES:.vala=.c) \ skk_vala.stamp \ $(skkfep_client_SOURCES:.vala=.c) \ skkfep_client_vala.stamp \ $(NULL) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(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 tools/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu tools/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: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ 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) @list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(libexecdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(libexecdir)" || exit 1; \ fi; \ 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 skk$(EXEEXT): $(skk_OBJECTS) $(skk_DEPENDENCIES) $(EXTRA_skk_DEPENDENCIES) @rm -f skk$(EXEEXT) $(skk_LINK) $(skk_OBJECTS) $(skk_LDADD) $(LIBS) skkfep-client$(EXEEXT): $(skkfep_client_OBJECTS) $(skkfep_client_DEPENDENCIES) $(EXTRA_skkfep_client_DEPENDENCIES) @rm -f skkfep-client$(EXEEXT) $(skkfep_client_LINK) $(skkfep_client_OBJECTS) $(skkfep_client_LDADD) $(LIBS) install-binSCRIPTS: $(bin_SCRIPTS) @$(NORMAL_INSTALL) @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ 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)'`; \ dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/skk-skk.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/skkfep_client-fep.Po@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 $@ $< skk-skk.o: skk.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(skk_CFLAGS) $(CFLAGS) -MT skk-skk.o -MD -MP -MF $(DEPDIR)/skk-skk.Tpo -c -o skk-skk.o `test -f 'skk.c' || echo '$(srcdir)/'`skk.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/skk-skk.Tpo $(DEPDIR)/skk-skk.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='skk.c' object='skk-skk.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(skk_CFLAGS) $(CFLAGS) -c -o skk-skk.o `test -f 'skk.c' || echo '$(srcdir)/'`skk.c skk-skk.obj: skk.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(skk_CFLAGS) $(CFLAGS) -MT skk-skk.obj -MD -MP -MF $(DEPDIR)/skk-skk.Tpo -c -o skk-skk.obj `if test -f 'skk.c'; then $(CYGPATH_W) 'skk.c'; else $(CYGPATH_W) '$(srcdir)/skk.c'; fi` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/skk-skk.Tpo $(DEPDIR)/skk-skk.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='skk.c' object='skk-skk.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(skk_CFLAGS) $(CFLAGS) -c -o skk-skk.obj `if test -f 'skk.c'; then $(CYGPATH_W) 'skk.c'; else $(CYGPATH_W) '$(srcdir)/skk.c'; fi` skkfep_client-fep.o: fep.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(skkfep_client_CFLAGS) $(CFLAGS) -MT skkfep_client-fep.o -MD -MP -MF $(DEPDIR)/skkfep_client-fep.Tpo -c -o skkfep_client-fep.o `test -f 'fep.c' || echo '$(srcdir)/'`fep.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/skkfep_client-fep.Tpo $(DEPDIR)/skkfep_client-fep.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fep.c' object='skkfep_client-fep.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(skkfep_client_CFLAGS) $(CFLAGS) -c -o skkfep_client-fep.o `test -f 'fep.c' || echo '$(srcdir)/'`fep.c skkfep_client-fep.obj: fep.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(skkfep_client_CFLAGS) $(CFLAGS) -MT skkfep_client-fep.obj -MD -MP -MF $(DEPDIR)/skkfep_client-fep.Tpo -c -o skkfep_client-fep.obj `if test -f 'fep.c'; then $(CYGPATH_W) 'fep.c'; else $(CYGPATH_W) '$(srcdir)/fep.c'; fi` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/skkfep_client-fep.Tpo $(DEPDIR)/skkfep_client-fep.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fep.c' object='skkfep_client-fep.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(skkfep_client_CFLAGS) $(CFLAGS) -c -o skkfep_client-fep.obj `if test -f 'fep.c'; then $(CYGPATH_W) 'fep.c'; else $(CYGPATH_W) '$(srcdir)/fep.c'; fi` $(srcdir)/skk.c: $(srcdir)/skk_vala.stamp @if test -f $@; then :; else rm -f $(srcdir)/skk_vala.stamp; fi @if test -f $@; then :; else \ $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/skk_vala.stamp; \ fi $(srcdir)/skk_vala.stamp: skk.vala rm -f $@ && echo stamp > $@-t $(am__cd) $(srcdir) && $(VALAC) $(skk_VALAFLAGS) $(VALAFLAGS) -C skk.vala mv -f $@-t $@ $(srcdir)/fep.c: $(srcdir)/skkfep_client_vala.stamp @if test -f $@; then :; else rm -f $(srcdir)/skkfep_client_vala.stamp; fi @if test -f $@; then :; else \ $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/skkfep_client_vala.stamp; \ fi $(srcdir)/skkfep_client_vala.stamp: fep.vala rm -f $@ && echo stamp > $@-t $(am__cd) $(srcdir) && $(VALAC) $(skkfep_client_VALAFLAGS) $(VALAFLAGS) -C fep.vala mv -f $@-t $@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-man1: $(dist_man_MANS) @$(NORMAL_INSTALL) @list1=''; \ list2='$(dist_man_MANS)'; \ test -n "$(man1dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.1[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ done; } uninstall-man1: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man1dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) 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" cscopelist: $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @list='$(MANS)'; if test -n "$$list"; then \ 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"; else :; fi; done`; \ if test -n "$$list" && \ grep 'ab help2man is required to generate this page' $$list >/dev/null; then \ echo "error: found man pages containing the 'missing help2man' replacement text:" >&2; \ grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \ echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \ echo " typically 'make maintainer-clean' will remove them" >&2; \ exit 1; \ else :; fi; \ else :; fi @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) $(SCRIPTS) $(MANS) installdirs: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; 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: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi 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) -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." -rm -f $(srcdir)/fep.c -rm -f $(srcdir)/skk.c -rm -f $(srcdir)/skk_vala.stamp -rm -f $(srcdir)/skkfep_client_vala.stamp -rm -f fep.c -rm -f skk.c clean: clean-am clean-am: clean-binPROGRAMS 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-man install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-binSCRIPTS \ install-libexecPROGRAMS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-man1 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-binSCRIPTS \ uninstall-libexecPROGRAMS uninstall-man uninstall-man: uninstall-man1 .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libexecPROGRAMS clean-libtool cscopelist \ 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-binSCRIPTS 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-man1 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-binSCRIPTS uninstall-libexecPROGRAMS uninstall-man \ uninstall-man1 @ENABLE_FEP_TRUE@skkfep: skkfep.in @ENABLE_FEP_TRUE@ $(AM_V_GEN) sed -e "s!@FEP\@!"$(FEP)"!" \ @ENABLE_FEP_TRUE@ -e "s!@CLIENT\@!"$(libexecdir)/skkfep-client"!" \ @ENABLE_FEP_TRUE@ $< > $@.tmp && \ @ENABLE_FEP_TRUE@ mv $@.tmp $@ -include $(top_srcdir)/git.mk # 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: libskk-1.0.0/tools/fep.vala0000664000076400007640000003256611742727040012521 00000000000000/* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ using Gee; enum PreeditStyle { OVER_THE_SPOT, ROOT, DEFAULT = OVER_THE_SPOT } static string opt_file_dict; static string opt_user_dict; static string opt_skkserv; static string opt_typing_rule; static bool opt_list_typing_rules; static string opt_preedit_style; static const OptionEntry[] options = { { "file-dict", 'f', 0, OptionArg.STRING, ref opt_file_dict, N_("Path to a file dictionary"), null }, { "user-dict", 'u', 0, OptionArg.STRING, ref opt_user_dict, N_("Path to a user dictionary"), null }, { "skkserv", 's', 0, OptionArg.STRING, ref opt_skkserv, N_("Host and port running skkserv (HOST:PORT)"), null }, { "rule", 'r', 0, OptionArg.STRING, ref opt_typing_rule, N_("Typing rule (default: \"default\")"), null }, { "list-rules", 'l', 0, OptionArg.NONE, ref opt_list_typing_rules, N_("List typing rules"), null }, { "preedit-style", 'p', 0, OptionArg.STRING, ref opt_preedit_style, N_("Preedit style"), null }, { null } }; static int main (string[] args) { Intl.setlocale (LocaleCategory.ALL, ""); Intl.bindtextdomain (Config.GETTEXT_PACKAGE, Config.LOCALEDIR); Intl.bind_textdomain_codeset (Config.GETTEXT_PACKAGE, "UTF-8"); Intl.textdomain (Config.GETTEXT_PACKAGE); var option_context = new OptionContext ( _("- emulate SKK input method on the command line")); option_context.add_main_entries (options, "libskk"); try { option_context.parse (ref args); } catch (OptionError e) { stderr.printf ("%s\n", e.message); return 1; } Skk.init (); if (opt_list_typing_rules) { var rules = Skk.Rule.list (); foreach (var rule in rules) { stdout.printf ("%s - %s: %s\n", rule.name, rule.label, rule.description); } return 0; } ArrayList dictionaries = new ArrayList (); if (opt_user_dict != null) { try { dictionaries.add (new Skk.UserDict (opt_user_dict)); } catch (GLib.Error e) { stderr.printf ("can't open user dict %s: %s", opt_user_dict, e.message); return 1; } } if (opt_file_dict == null) { opt_file_dict = Path.build_filename (Config.DATADIR, "skk", "SKK-JISYO.L"); } if (opt_file_dict.has_suffix (".cdb")) { try { dictionaries.add (new Skk.CdbDict (opt_file_dict)); } catch (GLib.Error e) { stderr.printf ("can't open CDB dict %s: %s", opt_file_dict, e.message); return 1; } } else { try { dictionaries.add (new Skk.FileDict (opt_file_dict)); } catch (GLib.Error e) { stderr.printf ("can't open file dict %s: %s", opt_file_dict, e.message); return 1; } } if (opt_skkserv != null) { var index = opt_skkserv.last_index_of (":"); string host; uint16 port; if (index < 0) { host = opt_skkserv; port = 1178; } else { host = opt_skkserv[0:index]; port = (uint16) int.parse ( opt_skkserv[index + 1:opt_skkserv.length]); } try { dictionaries.add (new Skk.SkkServ (host, port)); } catch (GLib.Error e) { stderr.printf ("can't connect to skkserv at %s:%d: %s", host, port, e.message); return 1; } } var context = new Skk.Context (dictionaries.to_array ()); if (opt_typing_rule != null) { try { context.typing_rule = new Skk.Rule (opt_typing_rule); } catch (Skk.RuleParseError e) { stderr.printf ("can't load rule \"%s\": %s\n", opt_typing_rule, e.message); return 1; } } Options opts = Options () { preedit_style = PreeditStyle.DEFAULT }; if (opt_preedit_style != null) { EnumClass eclass = (EnumClass) typeof(PreeditStyle).class_ref (); EnumValue? evalue = eclass.get_value_by_nick (opt_preedit_style); if (evalue == null) { stderr.printf (_("unknown preedit style %s"), opt_preedit_style); return 1; } opts.preedit_style = (PreeditStyle) evalue.value; } string[]? argv; if (args.length > 1) { argv = args[1 : args.length]; } else { argv = { Environment.get_variable ("SHELL") }; } try { Pid pid; if (Process.spawn_async ( null, argv, null, SpawnFlags.DO_NOT_REAP_CHILD | SpawnFlags.CHILD_INHERITS_STDIN | SpawnFlags.SEARCH_PATH, null, out pid)) ChildWatch.add (pid, (p, s) => { Process.close_pid (pid); Process.exit (s); }); } catch (SpawnError e) { stderr.printf ("%s\n", e.message); return 1; } Client client; try { client = new Client (context, opts); } catch (Error e) { stderr.printf ("can't create client: %s", e.message); return 1; } if (!client.run ()) return 1; return 0; } struct Options { PreeditStyle preedit_style; } class Client : Fep.GClient { Skk.Context context; Options opts; bool process_lookup_table_key_event (uint keyval, uint state) { if (state == 0 && ((unichar) keyval).to_string () in LOOKUP_TABLE_LABELS) { var label = ((unichar) keyval).tolower ().to_string (); var end = int.min ((int)context.candidates.page_size, LOOKUP_TABLE_LABELS.length); for (var index = 0; index < end; index++) { if (LOOKUP_TABLE_LABELS[index] == label) { return context.candidates.select_at (index); } } return false; } if (state == 0) { bool retval = false; switch (keyval) { case Skk.Keysyms.Page_Up: case Skk.Keysyms.KP_Page_Up: retval = context.candidates.page_up (); break; case Skk.Keysyms.Page_Down: case Skk.Keysyms.KP_Page_Down: retval = context.candidates.page_down (); break; case Skk.Keysyms.Up: case Skk.Keysyms.Left: retval = context.candidates.cursor_up (); break; case Skk.Keysyms.Down: case Skk.Keysyms.Right: retval = context.candidates.cursor_down (); break; default: break; } if (retval) { set_lookup_table_cursor_pos (); update_preedit (); return true; } } return false; } public override bool filter_key_event (uint keyval, uint modifiers) { if (lookup_table_visible && process_lookup_table_key_event (keyval, modifiers)) return true; Skk.KeyEvent key; try { key = new Skk.KeyEvent.from_x_keysym (keyval, (Skk.ModifierType) modifiers); } catch (Skk.KeyEventFormatError e) { return false; } var retval = context.process_key_event (key); var output = context.poll_output (); if (output.length > 0) { send_text (output); } return retval; } struct Entry { K key; V value; } static const Entry[] input_mode_labels = { { Skk.InputMode.HIRAGANA, "ã‚" }, { Skk.InputMode.KATAKANA, "ã‚¢" }, { Skk.InputMode.HANKAKU_KATAKANA, "_ï½±" }, { Skk.InputMode.LATIN, "_A" }, { Skk.InputMode.WIDE_LATIN, "A" } }; void update_preedit () { preedit = context.preedit; if (opts.preedit_style == PreeditStyle.ROOT) { if (preedit == "") update_status (); else { set_status_text (preedit, null); status = preedit; status_attr = null; } } else set_cursor_text (preedit, null); } string[] LOOKUP_TABLE_LABELS = {"a", "s", "d", "f", "j", "k", "l", "q", "w", "e", "r", "u", "i", "o"}; void update_status () { var builder = new StringBuilder (); Fep.GAttribute? attr = null; input_mode = context.input_mode; foreach (var entry in input_mode_labels) { if (entry.key == input_mode) { builder.append ("[" + entry.value + "] "); break; } } if (lookup_table_visible) { var pages = (context.candidates.cursor_pos - context.candidates.page_start) / context.candidates.page_size; var start = pages * context.candidates.page_size + context.candidates.page_start; var end = uint.min (start + context.candidates.page_size, context.candidates.size); for (var index = start; index < end; index++) { var candidate = context.candidates.get ((int) index); var text = "%s: %s".printf ( LOOKUP_TABLE_LABELS[index - start], candidate.text); if (index == context.candidates.cursor_pos) { var start_index = builder.str.char_count (); attr = Fep.GAttribute () { type = Fep.GAttrType.STANDOUT, value = 1, start_index = start_index, end_index = start_index + text.char_count () }; } builder.append (text); if (index < end - 1) builder.append_c (' '); } } if (status != builder.str || status_attr != attr) { set_status_text (builder.str, attr); status = builder.str; status_attr = attr; } } void populate_lookup_table () { } void set_lookup_table_cursor_pos () { if (context.candidates.page_visible) { lookup_table_visible = true; } else if (lookup_table_visible) { lookup_table_visible = false; } update_status (); // When root style, need to recover the previous preedit text // shown at the status area. if (!lookup_table_visible && opts.preedit_style == PreeditStyle.ROOT) update_preedit (); } bool watch_func (IOChannel source, IOCondition condition) { dispatch (); return true; } bool lookup_table_visible = false; public bool run () { context.notify["preedit"].connect (() => { if (context.preedit != preedit) { update_preedit (); } }); context.notify["input-mode"].connect (() => { if (context.input_mode != input_mode) { update_status (); } }); context.candidates.populated.connect (() => { populate_lookup_table (); }); context.candidates.notify["cursor-pos"].connect (() => { set_lookup_table_cursor_pos (); }); context.candidates.selected.connect (() => { var output = context.poll_output (); if (output.length > 0) { send_text (output); } lookup_table_visible = false; update_status (); // When root style, need to recover the previous preedit text // shown at the status area. if (opts.preedit_style == PreeditStyle.ROOT) update_preedit (); }); update_preedit (); update_status (); var channel = new IOChannel.unix_new (get_poll_fd ()); channel.add_watch (IOCondition.IN, watch_func); var loop = new MainLoop (null, true); loop.run (); return true; } string preedit = ""; string status = ""; Fep.GAttribute? status_attr = null; Skk.InputMode input_mode = Skk.InputMode.HIRAGANA; public Client (Skk.Context context, Options opts) throws GLib.Error { Object (address: null); init (null); this.context = context; this.opts = opts; } } libskk-1.0.0/tools/skk.10000664000076400007640000000331711710174477011751 00000000000000.\" Hey, EMACS: -*- nroff -*- .TH LIBSKK 1 "5 Jan 2012" .SH NAME skk \- program that emulates Japanese SKK input method .SH SYNOPSIS .B skk .RI [ options ] .br .SH DESCRIPTION \fBskk\fP is a tool that reads key sequences from the standard input and converts them to Japanese text according to a Japanese input method called SKK (Simple Kana to Kanji conversion program). .PP More information about the SKK input method itself can be found at: \m[blue]\fB\%http://openlab.jp/skk/\fR\m[]\& .SH OPTIONS The \fBskk\fP command follows the usual GNU command line syntax, with long options starting with two dashes (`-'). A summary of options is included below. .TP .B \-h, \-\-help Show summary of options. .TP .B \-f, \-\-file-dict=\fIFILE\fR Specify path to a file dictionary. .TP .B \-u, \-\-user-dict=\fIFILE\fR Specify path to a user dictionary. .TP .B \-s, \-\-skkserv=\fIHOST\fR:\fIPORT\fR Specify host and port running skkserv. .TP .B \-r, \-\-rule=\fIRULE\fR Specify typing rule. .TP .B \-l, \-\-list-rules List typing rules. .SH EXAMPLE .TP echo "A i SPC" | skk Converts a capital letter "A" followed by lowercase letter "i" and a space. .TP echo "K a p a SPC K a SPC" | skk Converts a capital letter "K" followed by lowercase letters "a", "p", "a", and a space. Then converts a capital letter "K" followed by "a" and a space. .TP echo "r k" | skk \-r tutcode Converts two lowercase letters "r" and "k" with TUT-Code typing rule. .TP echo "a (usleep 50000) b (usleep 200000)" | skk \-r nicola Converts two lowercase letters "a" and "b" typed with a 50000 micro seconds interval, and wait 200000 micro seconds, with NICOLA typing rule. .SH AUTHOR libskk was written by Daiki Ueno . libskk-1.0.0/tools/fep.c0000664000076400007640000017002712016556767012026 00000000000000/* fep.c generated by valac 0.16.0, the Vala compiler * generated from fep.vala, do not modify */ /* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ #include #include #include #include #include #include #include #include #include #include #include #include #define TYPE_PREEDIT_STYLE (preedit_style_get_type ()) #define _g_option_context_free0(var) ((var == NULL) ? NULL : (var = (g_option_context_free (var), NULL))) #define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL))) #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) #define _g_free0(var) (var = (g_free (var), NULL)) #define TYPE_OPTIONS (options_get_type ()) typedef struct _Options Options; #define _g_type_class_unref0(var) ((var == NULL) ? NULL : (var = (g_type_class_unref (var), NULL))) typedef struct _Block1Data Block1Data; #define TYPE_CLIENT (client_get_type ()) #define CLIENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CLIENT, Client)) #define CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CLIENT, ClientClass)) #define IS_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CLIENT)) #define IS_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CLIENT)) #define CLIENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CLIENT, ClientClass)) typedef struct _Client Client; typedef struct _ClientClass ClientClass; typedef struct _ClientPrivate ClientPrivate; #define CLIENT_TYPE_ENTRY (client_entry_get_type ()) typedef struct _ClientEntry ClientEntry; #define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL))) #define _g_main_loop_unref0(var) ((var == NULL) ? NULL : (var = (g_main_loop_unref (var), NULL))) #define _g_io_channel_unref0(var) ((var == NULL) ? NULL : (var = (g_io_channel_unref (var), NULL))) typedef enum { PREEDIT_STYLE_OVER_THE_SPOT, PREEDIT_STYLE_ROOT, PREEDIT_STYLE_DEFAULT = PREEDIT_STYLE_OVER_THE_SPOT } PreeditStyle; struct _Options { PreeditStyle preedit_style; }; struct _Block1Data { int _ref_count_; GPid pid; }; struct _Client { FepGClient parent_instance; ClientPrivate * priv; }; struct _ClientClass { FepGClientClass parent_class; }; struct _ClientPrivate { SkkContext* context; Options opts; gchar** LOOKUP_TABLE_LABELS; gint LOOKUP_TABLE_LABELS_length1; gint _LOOKUP_TABLE_LABELS_size_; gboolean lookup_table_visible; gchar* preedit; gchar* status; FepGAttribute* status_attr; SkkInputMode input_mode; }; struct _ClientEntry { gpointer key; gpointer value; }; extern gchar* opt_file_dict; gchar* opt_file_dict = NULL; extern gchar* opt_user_dict; gchar* opt_user_dict = NULL; extern gchar* opt_skkserv; gchar* opt_skkserv = NULL; extern gchar* opt_typing_rule; gchar* opt_typing_rule = NULL; extern gboolean opt_list_typing_rules; gboolean opt_list_typing_rules = FALSE; extern gchar* opt_preedit_style; gchar* opt_preedit_style = NULL; static gpointer client_parent_class = NULL; GType preedit_style_get_type (void) G_GNUC_CONST; gint _vala_main (gchar** args, int args_length1); static void _vala_SkkRuleMetadata_array_free (SkkRuleMetadata* array, gint array_length); GType options_get_type (void) G_GNUC_CONST; Options* options_dup (const Options* self); void options_free (Options* self); static GEnumValue* _g_enum_value_dup (GEnumValue* self); static gchar** _vala_array_dup1 (gchar** self, int length); static Block1Data* block1_data_ref (Block1Data* _data1_); static void block1_data_unref (void * _userdata_); static void ____lambda2_ (Block1Data* _data1_, GPid p, gint s); static void _____lambda2__gchild_watch_func (GPid pid, gint status, gpointer self); GType client_get_type (void) G_GNUC_CONST; Client* client_new (SkkContext* context, Options* opts, GError** error); Client* client_construct (GType object_type, SkkContext* context, Options* opts, GError** error); gboolean client_run (Client* self); #define CLIENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_CLIENT, ClientPrivate)) enum { CLIENT_DUMMY_PROPERTY }; static GType client_entry_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; static ClientEntry* client_entry_dup (const ClientEntry* self); static void client_entry_free (ClientEntry* self); static void client_entry_copy (const ClientEntry* self, ClientEntry* dest); static void client_entry_destroy (ClientEntry* self); static gboolean client_process_lookup_table_key_event (Client* self, guint keyval, guint state); static gboolean _vala_string_array_contains (gchar** stack, int stack_length, gchar* needle); static void client_set_lookup_table_cursor_pos (Client* self); static void client_update_preedit (Client* self); static gboolean client_real_filter_key_event (FepGClient* base, guint keyval, guint modifiers); static void client_update_status (Client* self); static FepGAttribute* _fep_g_attribute_dup (FepGAttribute* self); static gboolean _fep_g_attribute_equal (const FepGAttribute* s1, const FepGAttribute* s2); static void client_populate_lookup_table (Client* self); static gboolean client_watch_func (Client* self, GIOChannel* source, GIOCondition condition); static void __lambda3_ (Client* self); static void ___lambda3__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self); static void __lambda4_ (Client* self); static void ___lambda4__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self); static void __lambda5_ (Client* self); static void ___lambda5__skk_candidate_list_populated (SkkCandidateList* _sender, gpointer self); static void __lambda6_ (Client* self); static void ___lambda6__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self); static void __lambda7_ (Client* self); static void ___lambda7__skk_candidate_list_selected (SkkCandidateList* _sender, SkkCandidate* candidate, gpointer self); static gboolean _client_watch_func_gio_func (GIOChannel* source, GIOCondition condition, gpointer self); static void client_finalize (GObject* obj); static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func); const GOptionEntry options[7] = {{"file-dict", 'f', 0, G_OPTION_ARG_STRING, &opt_file_dict, "Path to a file dictionary", NULL}, {"user-dict", 'u', 0, G_OPTION_ARG_STRING, &opt_user_dict, "Path to a user dictionary", NULL}, {"skkserv", 's', 0, G_OPTION_ARG_STRING, &opt_skkserv, "Host and port running skkserv (HOST:PORT)", NULL}, {"rule", 'r', 0, G_OPTION_ARG_STRING, &opt_typing_rule, "Typing rule (default: \"default\")", NULL}, {"list-rules", 'l', 0, G_OPTION_ARG_NONE, &opt_list_typing_rules, "List typing rules", NULL}, {"preedit-style", 'p', 0, G_OPTION_ARG_STRING, &opt_preedit_style, "Preedit style", NULL}, {NULL}}; static const ClientEntry CLIENT_input_mode_labels[5] = {{SKK_INPUT_MODE_HIRAGANA, "ã‚"}, {SKK_INPUT_MODE_KATAKANA, "ã‚¢"}, {SKK_INPUT_MODE_HANKAKU_KATAKANA, "_ï½±"}, {SKK_INPUT_MODE_LATIN, "_A"}, {SKK_INPUT_MODE_WIDE_LATIN, "A"}}; GType preedit_style_get_type (void) { static volatile gsize preedit_style_type_id__volatile = 0; if (g_once_init_enter (&preedit_style_type_id__volatile)) { static const GEnumValue values[] = {{PREEDIT_STYLE_OVER_THE_SPOT, "PREEDIT_STYLE_OVER_THE_SPOT", "over-the-spot"}, {PREEDIT_STYLE_ROOT, "PREEDIT_STYLE_ROOT", "root"}, {PREEDIT_STYLE_DEFAULT, "PREEDIT_STYLE_DEFAULT", "default"}, {0, NULL, NULL}}; GType preedit_style_type_id; preedit_style_type_id = g_enum_register_static ("PreeditStyle", values); g_once_init_leave (&preedit_style_type_id__volatile, preedit_style_type_id); } return preedit_style_type_id__volatile; } static void _vala_SkkRuleMetadata_array_free (SkkRuleMetadata* array, gint array_length) { if (array != NULL) { int i; for (i = 0; i < array_length; i = i + 1) { skk_rule_metadata_destroy (&array[i]); } } g_free (array); } static gint string_last_index_of (const gchar* self, const gchar* needle, gint start_index) { gint result = 0; gint _tmp0_; const gchar* _tmp1_; gchar* _tmp2_ = NULL; gchar* _result_; gchar* _tmp3_; g_return_val_if_fail (self != NULL, 0); g_return_val_if_fail (needle != NULL, 0); _tmp0_ = start_index; _tmp1_ = needle; _tmp2_ = g_strrstr (((gchar*) self) + _tmp0_, (gchar*) _tmp1_); _result_ = _tmp2_; _tmp3_ = _result_; if (_tmp3_ != NULL) { gchar* _tmp4_; _tmp4_ = _result_; result = (gint) (_tmp4_ - ((gchar*) self)); return result; } else { result = -1; return result; } } static gchar* string_slice (const gchar* self, glong start, glong end) { gchar* result = NULL; gint _tmp0_; gint _tmp1_; glong string_length; glong _tmp2_; glong _tmp5_; gboolean _tmp8_ = FALSE; glong _tmp9_; gboolean _tmp12_; gboolean _tmp13_ = FALSE; glong _tmp14_; gboolean _tmp17_; glong _tmp18_; glong _tmp19_; glong _tmp20_; glong _tmp21_; glong _tmp22_; gchar* _tmp23_ = NULL; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = strlen (self); _tmp1_ = _tmp0_; string_length = (glong) _tmp1_; _tmp2_ = start; if (_tmp2_ < ((glong) 0)) { glong _tmp3_; glong _tmp4_; _tmp3_ = string_length; _tmp4_ = start; start = _tmp3_ + _tmp4_; } _tmp5_ = end; if (_tmp5_ < ((glong) 0)) { glong _tmp6_; glong _tmp7_; _tmp6_ = string_length; _tmp7_ = end; end = _tmp6_ + _tmp7_; } _tmp9_ = start; if (_tmp9_ >= ((glong) 0)) { glong _tmp10_; glong _tmp11_; _tmp10_ = start; _tmp11_ = string_length; _tmp8_ = _tmp10_ <= _tmp11_; } else { _tmp8_ = FALSE; } _tmp12_ = _tmp8_; g_return_val_if_fail (_tmp12_, NULL); _tmp14_ = end; if (_tmp14_ >= ((glong) 0)) { glong _tmp15_; glong _tmp16_; _tmp15_ = end; _tmp16_ = string_length; _tmp13_ = _tmp15_ <= _tmp16_; } else { _tmp13_ = FALSE; } _tmp17_ = _tmp13_; g_return_val_if_fail (_tmp17_, NULL); _tmp18_ = start; _tmp19_ = end; g_return_val_if_fail (_tmp18_ <= _tmp19_, NULL); _tmp20_ = start; _tmp21_ = end; _tmp22_ = start; _tmp23_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) (_tmp21_ - _tmp22_)); result = _tmp23_; return result; } static GEnumValue* _g_enum_value_dup (GEnumValue* self) { GEnumValue* dup; dup = g_new0 (GEnumValue, 1); memcpy (dup, self, sizeof (GEnumValue)); return dup; } static gpointer __g_enum_value_dup0 (gpointer self) { return self ? _g_enum_value_dup (self) : NULL; } static gchar** _vala_array_dup1 (gchar** self, int length) { gchar** result; int i; result = g_new0 (gchar*, length + 1); for (i = 0; i < length; i++) { gchar* _tmp0_; _tmp0_ = g_strdup (self[i]); result[i] = _tmp0_; } return result; } static Block1Data* block1_data_ref (Block1Data* _data1_) { g_atomic_int_inc (&_data1_->_ref_count_); return _data1_; } static void block1_data_unref (void * _userdata_) { Block1Data* _data1_; _data1_ = (Block1Data*) _userdata_; if (g_atomic_int_dec_and_test (&_data1_->_ref_count_)) { g_slice_free (Block1Data, _data1_); } } static void ____lambda2_ (Block1Data* _data1_, GPid p, gint s) { GPid _tmp0_; gint _tmp1_; _tmp0_ = _data1_->pid; g_spawn_close_pid (_tmp0_); _tmp1_ = s; exit (_tmp1_); } static void _____lambda2__gchild_watch_func (GPid pid, gint status, gpointer self) { ____lambda2_ (self, pid, status); } gint _vala_main (gchar** args, int args_length1) { gint result = 0; const gchar* _tmp0_ = NULL; GOptionContext* _tmp1_; GOptionContext* option_context; GOptionContext* _tmp2_; gboolean _tmp7_; GeeArrayList* _tmp19_; GeeArrayList* dictionaries; const gchar* _tmp20_; const gchar* _tmp30_; const gchar* _tmp32_; gboolean _tmp33_ = FALSE; const gchar* _tmp52_; GeeArrayList* _tmp80_; gint _tmp81_ = 0; gpointer* _tmp82_ = NULL; SkkDict** _tmp83_; gint _tmp83__length1; SkkContext* _tmp84_; SkkContext* _tmp85_; SkkContext* context; const gchar* _tmp86_; Options _tmp96_ = {0}; Options opts; const gchar* _tmp97_; gchar** argv = NULL; gint argv_length1 = 0; gint _argv_size_ = 0; gchar** _tmp109_; gint _tmp109__length1; Client* client = NULL; Client* _tmp131_; gboolean _tmp132_ = FALSE; GError * _inner_error_ = NULL; setlocale (LC_ALL, ""); bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); _tmp0_ = _ ("- emulate SKK input method on the command line"); _tmp1_ = g_option_context_new (_tmp0_); option_context = _tmp1_; _tmp2_ = option_context; g_option_context_add_main_entries (_tmp2_, options, "libskk"); { GOptionContext* _tmp3_; _tmp3_ = option_context; g_option_context_parse (_tmp3_, &args_length1, &args, &_inner_error_); if (_inner_error_ != NULL) { if (_inner_error_->domain == G_OPTION_ERROR) { goto __catch0_g_option_error; } _g_option_context_free0 (option_context); g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return 0; } } goto __finally0; __catch0_g_option_error: { GError* e = NULL; FILE* _tmp4_; GError* _tmp5_; const gchar* _tmp6_; e = _inner_error_; _inner_error_ = NULL; _tmp4_ = stderr; _tmp5_ = e; _tmp6_ = _tmp5_->message; fprintf (_tmp4_, "%s\n", _tmp6_); result = 1; _g_error_free0 (e); _g_option_context_free0 (option_context); return result; } __finally0: if (_inner_error_ != NULL) { _g_option_context_free0 (option_context); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return 0; } skk_init (); _tmp7_ = opt_list_typing_rules; if (_tmp7_) { gint _tmp8_ = 0; SkkRuleMetadata* _tmp9_ = NULL; SkkRuleMetadata* rules; gint rules_length1; gint _rules_size_; SkkRuleMetadata* _tmp10_; gint _tmp10__length1; _tmp9_ = skk_rule_list (&_tmp8_); rules = _tmp9_; rules_length1 = _tmp8_; _rules_size_ = rules_length1; _tmp10_ = rules; _tmp10__length1 = rules_length1; { SkkRuleMetadata* rule_collection = NULL; gint rule_collection_length1 = 0; gint _rule_collection_size_ = 0; gint rule_it = 0; rule_collection = _tmp10_; rule_collection_length1 = _tmp10__length1; for (rule_it = 0; rule_it < _tmp10__length1; rule_it = rule_it + 1) { SkkRuleMetadata _tmp11_ = {0}; SkkRuleMetadata rule = {0}; skk_rule_metadata_copy (&rule_collection[rule_it], &_tmp11_); rule = _tmp11_; { FILE* _tmp12_; SkkRuleMetadata _tmp13_; const gchar* _tmp14_; SkkRuleMetadata _tmp15_; const gchar* _tmp16_; SkkRuleMetadata _tmp17_; const gchar* _tmp18_; _tmp12_ = stdout; _tmp13_ = rule; _tmp14_ = _tmp13_.name; _tmp15_ = rule; _tmp16_ = _tmp15_.label; _tmp17_ = rule; _tmp18_ = _tmp17_.description; fprintf (_tmp12_, "%s - %s: %s\n", _tmp14_, _tmp16_, _tmp18_); skk_rule_metadata_destroy (&rule); } } } result = 0; rules = (_vala_SkkRuleMetadata_array_free (rules, rules_length1), NULL); _g_option_context_free0 (option_context); return result; } _tmp19_ = gee_array_list_new (SKK_TYPE_DICT, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL); dictionaries = _tmp19_; _tmp20_ = opt_user_dict; if (_tmp20_ != NULL) { { const gchar* _tmp21_; SkkUserDict* _tmp22_; SkkUserDict* _tmp23_; GeeArrayList* _tmp24_; SkkUserDict* _tmp25_; _tmp21_ = opt_user_dict; _tmp22_ = skk_user_dict_new (_tmp21_, "UTF-8", &_inner_error_); _tmp23_ = _tmp22_; if (_inner_error_ != NULL) { goto __catch1_g_error; } _tmp24_ = dictionaries; _tmp25_ = _tmp23_; gee_abstract_collection_add ((GeeAbstractCollection*) _tmp24_, (SkkDict*) _tmp25_); _g_object_unref0 (_tmp25_); } goto __finally1; __catch1_g_error: { GError* e = NULL; FILE* _tmp26_; const gchar* _tmp27_; GError* _tmp28_; const gchar* _tmp29_; e = _inner_error_; _inner_error_ = NULL; _tmp26_ = stderr; _tmp27_ = opt_user_dict; _tmp28_ = e; _tmp29_ = _tmp28_->message; fprintf (_tmp26_, "can't open user dict %s: %s", _tmp27_, _tmp29_); result = 1; _g_error_free0 (e); _g_object_unref0 (dictionaries); _g_option_context_free0 (option_context); return result; } __finally1: if (_inner_error_ != NULL) { _g_object_unref0 (dictionaries); _g_option_context_free0 (option_context); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return 0; } } _tmp30_ = opt_file_dict; if (_tmp30_ == NULL) { gchar* _tmp31_ = NULL; _tmp31_ = g_build_filename (DATADIR, "skk", "SKK-JISYO.L", NULL); _g_free0 (opt_file_dict); opt_file_dict = _tmp31_; } _tmp32_ = opt_file_dict; _tmp33_ = g_str_has_suffix (_tmp32_, ".cdb"); if (_tmp33_) { { const gchar* _tmp34_; SkkCdbDict* _tmp35_; SkkCdbDict* _tmp36_; GeeArrayList* _tmp37_; SkkCdbDict* _tmp38_; _tmp34_ = opt_file_dict; _tmp35_ = skk_cdb_dict_new (_tmp34_, "EUC-JP", &_inner_error_); _tmp36_ = _tmp35_; if (_inner_error_ != NULL) { goto __catch2_g_error; } _tmp37_ = dictionaries; _tmp38_ = _tmp36_; gee_abstract_collection_add ((GeeAbstractCollection*) _tmp37_, (SkkDict*) _tmp38_); _g_object_unref0 (_tmp38_); } goto __finally2; __catch2_g_error: { GError* e = NULL; FILE* _tmp39_; const gchar* _tmp40_; GError* _tmp41_; const gchar* _tmp42_; e = _inner_error_; _inner_error_ = NULL; _tmp39_ = stderr; _tmp40_ = opt_file_dict; _tmp41_ = e; _tmp42_ = _tmp41_->message; fprintf (_tmp39_, "can't open CDB dict %s: %s", _tmp40_, _tmp42_); result = 1; _g_error_free0 (e); _g_object_unref0 (dictionaries); _g_option_context_free0 (option_context); return result; } __finally2: if (_inner_error_ != NULL) { _g_object_unref0 (dictionaries); _g_option_context_free0 (option_context); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return 0; } } else { { const gchar* _tmp43_; SkkFileDict* _tmp44_; SkkFileDict* _tmp45_; GeeArrayList* _tmp46_; SkkFileDict* _tmp47_; _tmp43_ = opt_file_dict; _tmp44_ = skk_file_dict_new (_tmp43_, "EUC-JP", &_inner_error_); _tmp45_ = _tmp44_; if (_inner_error_ != NULL) { goto __catch3_g_error; } _tmp46_ = dictionaries; _tmp47_ = _tmp45_; gee_abstract_collection_add ((GeeAbstractCollection*) _tmp46_, (SkkDict*) _tmp47_); _g_object_unref0 (_tmp47_); } goto __finally3; __catch3_g_error: { GError* e = NULL; FILE* _tmp48_; const gchar* _tmp49_; GError* _tmp50_; const gchar* _tmp51_; e = _inner_error_; _inner_error_ = NULL; _tmp48_ = stderr; _tmp49_ = opt_file_dict; _tmp50_ = e; _tmp51_ = _tmp50_->message; fprintf (_tmp48_, "can't open file dict %s: %s", _tmp49_, _tmp51_); result = 1; _g_error_free0 (e); _g_object_unref0 (dictionaries); _g_option_context_free0 (option_context); return result; } __finally3: if (_inner_error_ != NULL) { _g_object_unref0 (dictionaries); _g_option_context_free0 (option_context); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return 0; } } _tmp52_ = opt_skkserv; if (_tmp52_ != NULL) { const gchar* _tmp53_; gint _tmp54_ = 0; gint index; gchar* host = NULL; guint16 port = 0U; gint _tmp55_; _tmp53_ = opt_skkserv; _tmp54_ = string_last_index_of (_tmp53_, ":", 0); index = _tmp54_; _tmp55_ = index; if (_tmp55_ < 0) { const gchar* _tmp56_; gchar* _tmp57_; _tmp56_ = opt_skkserv; _tmp57_ = g_strdup (_tmp56_); _g_free0 (host); host = _tmp57_; port = (guint16) 1178; } else { const gchar* _tmp58_; gint _tmp59_; gchar* _tmp60_ = NULL; const gchar* _tmp61_; gint _tmp62_; const gchar* _tmp63_; gint _tmp64_; gint _tmp65_; gchar* _tmp66_ = NULL; gchar* _tmp67_; gint _tmp68_ = 0; _tmp58_ = opt_skkserv; _tmp59_ = index; _tmp60_ = string_slice (_tmp58_, (glong) 0, (glong) _tmp59_); _g_free0 (host); host = _tmp60_; _tmp61_ = opt_skkserv; _tmp62_ = index; _tmp63_ = opt_skkserv; _tmp64_ = strlen (_tmp63_); _tmp65_ = _tmp64_; _tmp66_ = string_slice (_tmp61_, (glong) (_tmp62_ + 1), (glong) _tmp65_); _tmp67_ = _tmp66_; _tmp68_ = atoi (_tmp67_); port = (guint16) _tmp68_; _g_free0 (_tmp67_); } { const gchar* _tmp69_; guint16 _tmp70_; SkkSkkServ* _tmp71_; SkkSkkServ* _tmp72_; GeeArrayList* _tmp73_; SkkSkkServ* _tmp74_; _tmp69_ = host; _tmp70_ = port; _tmp71_ = skk_skk_serv_new (_tmp69_, _tmp70_, "EUC-JP", &_inner_error_); _tmp72_ = _tmp71_; if (_inner_error_ != NULL) { goto __catch4_g_error; } _tmp73_ = dictionaries; _tmp74_ = _tmp72_; gee_abstract_collection_add ((GeeAbstractCollection*) _tmp73_, (SkkDict*) _tmp74_); _g_object_unref0 (_tmp74_); } goto __finally4; __catch4_g_error: { GError* e = NULL; FILE* _tmp75_; const gchar* _tmp76_; guint16 _tmp77_; GError* _tmp78_; const gchar* _tmp79_; e = _inner_error_; _inner_error_ = NULL; _tmp75_ = stderr; _tmp76_ = host; _tmp77_ = port; _tmp78_ = e; _tmp79_ = _tmp78_->message; fprintf (_tmp75_, "can't connect to skkserv at %s:%d: %s", _tmp76_, (gint) _tmp77_, _tmp79_); result = 1; _g_error_free0 (e); _g_free0 (host); _g_object_unref0 (dictionaries); _g_option_context_free0 (option_context); return result; } __finally4: if (_inner_error_ != NULL) { _g_free0 (host); _g_object_unref0 (dictionaries); _g_option_context_free0 (option_context); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return 0; } _g_free0 (host); } _tmp80_ = dictionaries; _tmp82_ = gee_abstract_collection_to_array ((GeeAbstractCollection*) _tmp80_, &_tmp81_); _tmp83_ = _tmp82_; _tmp83__length1 = _tmp81_; _tmp84_ = skk_context_new (_tmp83_, _tmp81_); _tmp85_ = _tmp84_; _tmp83_ = (_vala_array_free (_tmp83_, _tmp83__length1, (GDestroyNotify) g_object_unref), NULL); context = _tmp85_; _tmp86_ = opt_typing_rule; if (_tmp86_ != NULL) { { const gchar* _tmp87_; SkkRule* _tmp88_; SkkRule* _tmp89_; SkkContext* _tmp90_; SkkRule* _tmp91_; _tmp87_ = opt_typing_rule; _tmp88_ = skk_rule_new (_tmp87_, &_inner_error_); _tmp89_ = _tmp88_; if (_inner_error_ != NULL) { if (_inner_error_->domain == SKK_RULE_PARSE_ERROR) { goto __catch5_skk_rule_parse_error; } _g_object_unref0 (context); _g_object_unref0 (dictionaries); _g_option_context_free0 (option_context); g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return 0; } _tmp90_ = context; _tmp91_ = _tmp89_; skk_context_set_typing_rule (_tmp90_, _tmp91_); _g_object_unref0 (_tmp91_); } goto __finally5; __catch5_skk_rule_parse_error: { GError* e = NULL; FILE* _tmp92_; const gchar* _tmp93_; GError* _tmp94_; const gchar* _tmp95_; e = _inner_error_; _inner_error_ = NULL; _tmp92_ = stderr; _tmp93_ = opt_typing_rule; _tmp94_ = e; _tmp95_ = _tmp94_->message; fprintf (_tmp92_, "can't load rule \"%s\": %s\n", _tmp93_, _tmp95_); result = 1; _g_error_free0 (e); _g_object_unref0 (context); _g_object_unref0 (dictionaries); _g_option_context_free0 (option_context); return result; } __finally5: if (_inner_error_ != NULL) { _g_object_unref0 (context); _g_object_unref0 (dictionaries); _g_option_context_free0 (option_context); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return 0; } } memset (&_tmp96_, 0, sizeof (Options)); _tmp96_.preedit_style = PREEDIT_STYLE_DEFAULT; opts = _tmp96_; _tmp97_ = opt_preedit_style; if (_tmp97_ != NULL) { GTypeClass* _tmp98_ = NULL; GEnumClass* eclass; GEnumClass* _tmp99_; const gchar* _tmp100_; GEnumValue* _tmp101_ = NULL; GEnumValue* _tmp102_; GEnumValue* evalue; GEnumValue* _tmp103_; GEnumValue* _tmp107_; gint _tmp108_; _tmp98_ = g_type_class_ref (TYPE_PREEDIT_STYLE); eclass = (GEnumClass*) _tmp98_; _tmp99_ = eclass; _tmp100_ = opt_preedit_style; _tmp101_ = g_enum_get_value_by_nick (_tmp99_, _tmp100_); _tmp102_ = __g_enum_value_dup0 (_tmp101_); evalue = _tmp102_; _tmp103_ = evalue; if (_tmp103_ == NULL) { FILE* _tmp104_; const gchar* _tmp105_ = NULL; const gchar* _tmp106_; _tmp104_ = stderr; _tmp105_ = _ ("unknown preedit style %s"); _tmp106_ = opt_preedit_style; fprintf (_tmp104_, _tmp105_, _tmp106_); result = 1; _g_free0 (evalue); _g_type_class_unref0 (eclass); _g_object_unref0 (context); _g_object_unref0 (dictionaries); _g_option_context_free0 (option_context); return result; } _tmp107_ = evalue; _tmp108_ = (*_tmp107_).value; opts.preedit_style = (PreeditStyle) _tmp108_; _g_free0 (evalue); _g_type_class_unref0 (eclass); } _tmp109_ = args; _tmp109__length1 = args_length1; if (_tmp109__length1 > 1) { gchar** _tmp110_; gint _tmp110__length1; gchar** _tmp111_; gint _tmp111__length1; gchar** _tmp112_; gint _tmp112__length1; _tmp110_ = args; _tmp110__length1 = args_length1; _tmp111_ = args; _tmp111__length1 = args_length1; _tmp112_ = ((_tmp110_ + 1) != NULL) ? _vala_array_dup1 (_tmp110_ + 1, _tmp111__length1 - 1) : ((gpointer) (_tmp110_ + 1)); _tmp112__length1 = _tmp111__length1 - 1; argv = (_vala_array_free (argv, argv_length1, (GDestroyNotify) g_free), NULL); argv = _tmp112_; argv_length1 = _tmp112__length1; _argv_size_ = argv_length1; } else { const gchar* _tmp113_ = NULL; gchar* _tmp114_; gchar** _tmp115_ = NULL; _tmp113_ = g_getenv ("SHELL"); _tmp114_ = g_strdup (_tmp113_); _tmp115_ = g_new0 (gchar*, 1 + 1); _tmp115_[0] = _tmp114_; argv = (_vala_array_free (argv, argv_length1, (GDestroyNotify) g_free), NULL); argv = _tmp115_; argv_length1 = 1; _argv_size_ = argv_length1; } { Block1Data* _data1_; gchar** _tmp116_; gint _tmp116__length1; GPid _tmp117_ = 0; gboolean _tmp118_ = FALSE; gboolean _tmp119_; _data1_ = g_slice_new0 (Block1Data); _data1_->_ref_count_ = 1; _tmp116_ = argv; _tmp116__length1 = argv_length1; _tmp118_ = g_spawn_async (NULL, _tmp116_, NULL, (G_SPAWN_DO_NOT_REAP_CHILD | G_SPAWN_CHILD_INHERITS_STDIN) | G_SPAWN_SEARCH_PATH, NULL, NULL, &_tmp117_, &_inner_error_); _data1_->pid = _tmp117_; _tmp119_ = _tmp118_; if (_inner_error_ != NULL) { block1_data_unref (_data1_); _data1_ = NULL; if (_inner_error_->domain == G_SPAWN_ERROR) { goto __catch6_g_spawn_error; } block1_data_unref (_data1_); _data1_ = NULL; argv = (_vala_array_free (argv, argv_length1, (GDestroyNotify) g_free), NULL); _g_object_unref0 (context); _g_object_unref0 (dictionaries); _g_option_context_free0 (option_context); g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return 0; } if (_tmp119_) { GPid _tmp120_; _tmp120_ = _data1_->pid; g_child_watch_add_full (G_PRIORITY_DEFAULT_IDLE, _tmp120_, _____lambda2__gchild_watch_func, block1_data_ref (_data1_), block1_data_unref); } block1_data_unref (_data1_); _data1_ = NULL; } goto __finally6; __catch6_g_spawn_error: { GError* e = NULL; FILE* _tmp121_; GError* _tmp122_; const gchar* _tmp123_; e = _inner_error_; _inner_error_ = NULL; _tmp121_ = stderr; _tmp122_ = e; _tmp123_ = _tmp122_->message; fprintf (_tmp121_, "%s\n", _tmp123_); result = 1; _g_error_free0 (e); argv = (_vala_array_free (argv, argv_length1, (GDestroyNotify) g_free), NULL); _g_object_unref0 (context); _g_object_unref0 (dictionaries); _g_option_context_free0 (option_context); return result; } __finally6: if (_inner_error_ != NULL) { argv = (_vala_array_free (argv, argv_length1, (GDestroyNotify) g_free), NULL); _g_object_unref0 (context); _g_object_unref0 (dictionaries); _g_option_context_free0 (option_context); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return 0; } { SkkContext* _tmp124_; Options _tmp125_; Client* _tmp126_; Client* _tmp127_; _tmp124_ = context; _tmp125_ = opts; _tmp126_ = client_new (_tmp124_, &_tmp125_, &_inner_error_); _tmp127_ = _tmp126_; if (_inner_error_ != NULL) { goto __catch7_g_error; } _g_object_unref0 (client); client = _tmp127_; } goto __finally7; __catch7_g_error: { GError* e = NULL; FILE* _tmp128_; GError* _tmp129_; const gchar* _tmp130_; e = _inner_error_; _inner_error_ = NULL; _tmp128_ = stderr; _tmp129_ = e; _tmp130_ = _tmp129_->message; fprintf (_tmp128_, "can't create client: %s", _tmp130_); result = 1; _g_error_free0 (e); _g_object_unref0 (client); argv = (_vala_array_free (argv, argv_length1, (GDestroyNotify) g_free), NULL); _g_object_unref0 (context); _g_object_unref0 (dictionaries); _g_option_context_free0 (option_context); return result; } __finally7: if (_inner_error_ != NULL) { _g_object_unref0 (client); argv = (_vala_array_free (argv, argv_length1, (GDestroyNotify) g_free), NULL); _g_object_unref0 (context); _g_object_unref0 (dictionaries); _g_option_context_free0 (option_context); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return 0; } _tmp131_ = client; _tmp132_ = client_run (_tmp131_); if (!_tmp132_) { result = 1; _g_object_unref0 (client); argv = (_vala_array_free (argv, argv_length1, (GDestroyNotify) g_free), NULL); _g_object_unref0 (context); _g_object_unref0 (dictionaries); _g_option_context_free0 (option_context); return result; } result = 0; _g_object_unref0 (client); argv = (_vala_array_free (argv, argv_length1, (GDestroyNotify) g_free), NULL); _g_object_unref0 (context); _g_object_unref0 (dictionaries); _g_option_context_free0 (option_context); return result; } int main (int argc, char ** argv) { g_type_init (); return _vala_main (argv, argc); } Options* options_dup (const Options* self) { Options* dup; dup = g_new0 (Options, 1); memcpy (dup, self, sizeof (Options)); return dup; } void options_free (Options* self) { g_free (self); } GType options_get_type (void) { static volatile gsize options_type_id__volatile = 0; if (g_once_init_enter (&options_type_id__volatile)) { GType options_type_id; options_type_id = g_boxed_type_register_static ("Options", (GBoxedCopyFunc) options_dup, (GBoxedFreeFunc) options_free); g_once_init_leave (&options_type_id__volatile, options_type_id); } return options_type_id__volatile; } static gchar* g_unichar_to_string (gunichar self) { gchar* result = NULL; gchar* _tmp0_ = NULL; gchar* str; const gchar* _tmp1_; _tmp0_ = g_new0 (gchar, 7); str = (gchar*) _tmp0_; _tmp1_ = str; g_unichar_to_utf8 (self, _tmp1_); result = str; return result; } static gboolean _vala_string_array_contains (gchar** stack, int stack_length, gchar* needle) { int i; for (i = 0; i < stack_length; i++) { if (g_strcmp0 (stack[i], needle) == 0) { return TRUE; } } return FALSE; } static gboolean client_process_lookup_table_key_event (Client* self, guint keyval, guint state) { gboolean result = FALSE; gboolean _tmp0_ = FALSE; guint _tmp1_; gboolean _tmp6_; guint _tmp31_; g_return_val_if_fail (self != NULL, FALSE); _tmp1_ = state; if (_tmp1_ == ((guint) 0)) { guint _tmp2_; gchar* _tmp3_ = NULL; gchar* _tmp4_; gchar** _tmp5_; gint _tmp5__length1; _tmp2_ = keyval; _tmp3_ = g_unichar_to_string ((gunichar) _tmp2_); _tmp4_ = _tmp3_; _tmp5_ = self->priv->LOOKUP_TABLE_LABELS; _tmp5__length1 = self->priv->LOOKUP_TABLE_LABELS_length1; _tmp0_ = _vala_string_array_contains (_tmp5_, _tmp5__length1, _tmp4_); _g_free0 (_tmp4_); } else { _tmp0_ = FALSE; } _tmp6_ = _tmp0_; if (_tmp6_) { guint _tmp7_; gunichar _tmp8_ = 0U; gchar* _tmp9_ = NULL; gchar* label; SkkContext* _tmp10_; SkkCandidateList* _tmp11_; SkkCandidateList* _tmp12_; guint _tmp13_; guint _tmp14_; gchar** _tmp15_; gint _tmp15__length1; gint _tmp16_ = 0; gint end; _tmp7_ = keyval; _tmp8_ = g_unichar_tolower ((gunichar) _tmp7_); _tmp9_ = g_unichar_to_string (_tmp8_); label = _tmp9_; _tmp10_ = self->priv->context; _tmp11_ = skk_context_get_candidates (_tmp10_); _tmp12_ = _tmp11_; _tmp13_ = skk_candidate_list_get_page_size (_tmp12_); _tmp14_ = _tmp13_; _tmp15_ = self->priv->LOOKUP_TABLE_LABELS; _tmp15__length1 = self->priv->LOOKUP_TABLE_LABELS_length1; _tmp16_ = MIN ((gint) _tmp14_, _tmp15__length1); end = _tmp16_; { gint index; index = 0; { gboolean _tmp17_; _tmp17_ = TRUE; while (TRUE) { gboolean _tmp18_; gint _tmp20_; gint _tmp21_; gchar** _tmp22_; gint _tmp22__length1; gint _tmp23_; const gchar* _tmp24_; const gchar* _tmp25_; _tmp18_ = _tmp17_; if (!_tmp18_) { gint _tmp19_; _tmp19_ = index; index = _tmp19_ + 1; } _tmp17_ = FALSE; _tmp20_ = index; _tmp21_ = end; if (!(_tmp20_ < _tmp21_)) { break; } _tmp22_ = self->priv->LOOKUP_TABLE_LABELS; _tmp22__length1 = self->priv->LOOKUP_TABLE_LABELS_length1; _tmp23_ = index; _tmp24_ = _tmp22_[_tmp23_]; _tmp25_ = label; if (g_strcmp0 (_tmp24_, _tmp25_) == 0) { SkkContext* _tmp26_; SkkCandidateList* _tmp27_; SkkCandidateList* _tmp28_; gint _tmp29_; gboolean _tmp30_ = FALSE; _tmp26_ = self->priv->context; _tmp27_ = skk_context_get_candidates (_tmp26_); _tmp28_ = _tmp27_; _tmp29_ = index; _tmp30_ = skk_candidate_list_select_at (_tmp28_, (guint) _tmp29_); result = _tmp30_; _g_free0 (label); return result; } } } } result = FALSE; _g_free0 (label); return result; } _tmp31_ = state; if (_tmp31_ == ((guint) 0)) { gboolean retval; guint _tmp32_; gboolean _tmp49_; retval = FALSE; _tmp32_ = keyval; switch (_tmp32_) { case SKK_KEYSYMS_Page_Up: case SKK_KEYSYMS_KP_Page_Up: { SkkContext* _tmp33_; SkkCandidateList* _tmp34_; SkkCandidateList* _tmp35_; gboolean _tmp36_ = FALSE; _tmp33_ = self->priv->context; _tmp34_ = skk_context_get_candidates (_tmp33_); _tmp35_ = _tmp34_; _tmp36_ = skk_candidate_list_page_up (_tmp35_); retval = _tmp36_; break; } case SKK_KEYSYMS_Page_Down: case SKK_KEYSYMS_KP_Page_Down: { SkkContext* _tmp37_; SkkCandidateList* _tmp38_; SkkCandidateList* _tmp39_; gboolean _tmp40_ = FALSE; _tmp37_ = self->priv->context; _tmp38_ = skk_context_get_candidates (_tmp37_); _tmp39_ = _tmp38_; _tmp40_ = skk_candidate_list_page_down (_tmp39_); retval = _tmp40_; break; } case SKK_KEYSYMS_Up: case SKK_KEYSYMS_Left: { SkkContext* _tmp41_; SkkCandidateList* _tmp42_; SkkCandidateList* _tmp43_; gboolean _tmp44_ = FALSE; _tmp41_ = self->priv->context; _tmp42_ = skk_context_get_candidates (_tmp41_); _tmp43_ = _tmp42_; _tmp44_ = skk_candidate_list_cursor_up (_tmp43_); retval = _tmp44_; break; } case SKK_KEYSYMS_Down: case SKK_KEYSYMS_Right: { SkkContext* _tmp45_; SkkCandidateList* _tmp46_; SkkCandidateList* _tmp47_; gboolean _tmp48_ = FALSE; _tmp45_ = self->priv->context; _tmp46_ = skk_context_get_candidates (_tmp45_); _tmp47_ = _tmp46_; _tmp48_ = skk_candidate_list_cursor_down (_tmp47_); retval = _tmp48_; break; } default: { break; } } _tmp49_ = retval; if (_tmp49_) { client_set_lookup_table_cursor_pos (self); client_update_preedit (self); result = TRUE; return result; } } result = FALSE; return result; } static gboolean client_real_filter_key_event (FepGClient* base, guint keyval, guint modifiers) { Client * self; gboolean result = FALSE; gboolean _tmp0_ = FALSE; gboolean _tmp1_; gboolean _tmp5_; SkkKeyEvent* key = NULL; SkkContext* _tmp10_; SkkKeyEvent* _tmp11_; gboolean _tmp12_ = FALSE; gboolean retval; SkkContext* _tmp13_; gchar* _tmp14_ = NULL; gchar* output; const gchar* _tmp15_; gint _tmp16_; gint _tmp17_; GError * _inner_error_ = NULL; self = (Client*) base; _tmp1_ = self->priv->lookup_table_visible; if (_tmp1_) { guint _tmp2_; guint _tmp3_; gboolean _tmp4_ = FALSE; _tmp2_ = keyval; _tmp3_ = modifiers; _tmp4_ = client_process_lookup_table_key_event (self, _tmp2_, _tmp3_); _tmp0_ = _tmp4_; } else { _tmp0_ = FALSE; } _tmp5_ = _tmp0_; if (_tmp5_) { result = TRUE; return result; } { guint _tmp6_; guint _tmp7_; SkkKeyEvent* _tmp8_; SkkKeyEvent* _tmp9_; _tmp6_ = keyval; _tmp7_ = modifiers; _tmp8_ = skk_key_event_new_from_x_keysym (_tmp6_, (SkkModifierType) _tmp7_, &_inner_error_); _tmp9_ = _tmp8_; if (_inner_error_ != NULL) { if (_inner_error_->domain == SKK_KEY_EVENT_FORMAT_ERROR) { goto __catch8_skk_key_event_format_error; } _g_object_unref0 (key); g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return FALSE; } _g_object_unref0 (key); key = _tmp9_; } goto __finally8; __catch8_skk_key_event_format_error: { GError* e = NULL; e = _inner_error_; _inner_error_ = NULL; result = FALSE; _g_error_free0 (e); _g_object_unref0 (key); return result; } __finally8: if (_inner_error_ != NULL) { _g_object_unref0 (key); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return FALSE; } _tmp10_ = self->priv->context; _tmp11_ = key; _tmp12_ = skk_context_process_key_event (_tmp10_, _tmp11_); retval = _tmp12_; _tmp13_ = self->priv->context; _tmp14_ = skk_context_poll_output (_tmp13_); output = _tmp14_; _tmp15_ = output; _tmp16_ = strlen (_tmp15_); _tmp17_ = _tmp16_; if (_tmp17_ > 0) { const gchar* _tmp18_; _tmp18_ = output; fep_g_client_send_text ((FepGClient*) self, _tmp18_); } result = retval; _g_free0 (output); _g_object_unref0 (key); return result; } static void client_update_preedit (Client* self) { SkkContext* _tmp0_; const gchar* _tmp1_; const gchar* _tmp2_; gchar* _tmp3_; Options _tmp4_; PreeditStyle _tmp5_; g_return_if_fail (self != NULL); _tmp0_ = self->priv->context; _tmp1_ = skk_context_get_preedit (_tmp0_); _tmp2_ = _tmp1_; _tmp3_ = g_strdup (_tmp2_); _g_free0 (self->priv->preedit); self->priv->preedit = _tmp3_; _tmp4_ = self->priv->opts; _tmp5_ = _tmp4_.preedit_style; if (_tmp5_ == PREEDIT_STYLE_ROOT) { const gchar* _tmp6_; _tmp6_ = self->priv->preedit; if (g_strcmp0 (_tmp6_, "") == 0) { client_update_status (self); } else { const gchar* _tmp7_; const gchar* _tmp8_; gchar* _tmp9_; _tmp7_ = self->priv->preedit; fep_g_client_set_status_text ((FepGClient*) self, _tmp7_, NULL); _tmp8_ = self->priv->preedit; _tmp9_ = g_strdup (_tmp8_); _g_free0 (self->priv->status); self->priv->status = _tmp9_; _g_free0 (self->priv->status_attr); self->priv->status_attr = NULL; } } else { const gchar* _tmp10_; _tmp10_ = self->priv->preedit; fep_g_client_set_cursor_text ((FepGClient*) self, _tmp10_, NULL); } } static FepGAttribute* _fep_g_attribute_dup (FepGAttribute* self) { FepGAttribute* dup; dup = g_new0 (FepGAttribute, 1); memcpy (dup, self, sizeof (FepGAttribute)); return dup; } static gpointer __fep_g_attribute_dup0 (gpointer self) { return self ? _fep_g_attribute_dup (self) : NULL; } static gboolean _fep_g_attribute_equal (const FepGAttribute* s1, const FepGAttribute* s2) { if (s1 == s2) { return TRUE; } if (s1 == NULL) { return FALSE; } if (s2 == NULL) { return FALSE; } if (s1->type != s2->type) { return FALSE; } if (s1->value != s2->value) { return FALSE; } if (s1->start_index != s2->start_index) { return FALSE; } if (s1->end_index != s2->end_index) { return FALSE; } return TRUE; } static void client_update_status (Client* self) { GString* _tmp0_; GString* builder; FepGAttribute* attr; SkkContext* _tmp1_; SkkInputMode _tmp2_; SkkInputMode _tmp3_; gboolean _tmp14_; gboolean _tmp92_ = FALSE; const gchar* _tmp93_; GString* _tmp94_; const gchar* _tmp95_; gboolean _tmp98_; g_return_if_fail (self != NULL); _tmp0_ = g_string_new (""); builder = _tmp0_; attr = NULL; _tmp1_ = self->priv->context; _tmp2_ = skk_context_get_input_mode (_tmp1_); _tmp3_ = _tmp2_; self->priv->input_mode = _tmp3_; { ClientEntry* entry_collection = NULL; gint entry_collection_length1 = 0; gint _entry_collection_size_ = 0; gint entry_it = 0; entry_collection = CLIENT_input_mode_labels; entry_collection_length1 = G_N_ELEMENTS (CLIENT_input_mode_labels); for (entry_it = 0; entry_it < G_N_ELEMENTS (CLIENT_input_mode_labels); entry_it = entry_it + 1) { ClientEntry entry = {0}; entry = entry_collection[entry_it]; { ClientEntry _tmp4_; gconstpointer _tmp5_; SkkInputMode _tmp6_; _tmp4_ = entry; _tmp5_ = _tmp4_.key; _tmp6_ = self->priv->input_mode; if (GPOINTER_TO_INT (_tmp5_) == _tmp6_) { GString* _tmp7_; ClientEntry _tmp8_; gconstpointer _tmp9_; gchar* _tmp10_; gchar* _tmp11_; gchar* _tmp12_; gchar* _tmp13_; _tmp7_ = builder; _tmp8_ = entry; _tmp9_ = _tmp8_.value; _tmp10_ = g_strconcat ("[", (const gchar*) _tmp9_, NULL); _tmp11_ = _tmp10_; _tmp12_ = g_strconcat (_tmp11_, "] ", NULL); _tmp13_ = _tmp12_; g_string_append (_tmp7_, _tmp13_); _g_free0 (_tmp13_); _g_free0 (_tmp11_); break; } } } } _tmp14_ = self->priv->lookup_table_visible; if (_tmp14_) { SkkContext* _tmp15_; SkkCandidateList* _tmp16_; SkkCandidateList* _tmp17_; gint _tmp18_; gint _tmp19_; SkkContext* _tmp20_; SkkCandidateList* _tmp21_; SkkCandidateList* _tmp22_; guint _tmp23_; guint _tmp24_; SkkContext* _tmp25_; SkkCandidateList* _tmp26_; SkkCandidateList* _tmp27_; guint _tmp28_; guint _tmp29_; guint pages; guint _tmp30_; SkkContext* _tmp31_; SkkCandidateList* _tmp32_; SkkCandidateList* _tmp33_; guint _tmp34_; guint _tmp35_; SkkContext* _tmp36_; SkkCandidateList* _tmp37_; SkkCandidateList* _tmp38_; guint _tmp39_; guint _tmp40_; guint start; guint _tmp41_; SkkContext* _tmp42_; SkkCandidateList* _tmp43_; SkkCandidateList* _tmp44_; guint _tmp45_; guint _tmp46_; SkkContext* _tmp47_; SkkCandidateList* _tmp48_; SkkCandidateList* _tmp49_; gint _tmp50_; gint _tmp51_; guint _tmp52_ = 0U; guint end; _tmp15_ = self->priv->context; _tmp16_ = skk_context_get_candidates (_tmp15_); _tmp17_ = _tmp16_; _tmp18_ = skk_candidate_list_get_cursor_pos (_tmp17_); _tmp19_ = _tmp18_; _tmp20_ = self->priv->context; _tmp21_ = skk_context_get_candidates (_tmp20_); _tmp22_ = _tmp21_; _tmp23_ = skk_candidate_list_get_page_start (_tmp22_); _tmp24_ = _tmp23_; _tmp25_ = self->priv->context; _tmp26_ = skk_context_get_candidates (_tmp25_); _tmp27_ = _tmp26_; _tmp28_ = skk_candidate_list_get_page_size (_tmp27_); _tmp29_ = _tmp28_; pages = (_tmp19_ - _tmp24_) / _tmp29_; _tmp30_ = pages; _tmp31_ = self->priv->context; _tmp32_ = skk_context_get_candidates (_tmp31_); _tmp33_ = _tmp32_; _tmp34_ = skk_candidate_list_get_page_size (_tmp33_); _tmp35_ = _tmp34_; _tmp36_ = self->priv->context; _tmp37_ = skk_context_get_candidates (_tmp36_); _tmp38_ = _tmp37_; _tmp39_ = skk_candidate_list_get_page_start (_tmp38_); _tmp40_ = _tmp39_; start = (_tmp30_ * _tmp35_) + _tmp40_; _tmp41_ = start; _tmp42_ = self->priv->context; _tmp43_ = skk_context_get_candidates (_tmp42_); _tmp44_ = _tmp43_; _tmp45_ = skk_candidate_list_get_page_size (_tmp44_); _tmp46_ = _tmp45_; _tmp47_ = self->priv->context; _tmp48_ = skk_context_get_candidates (_tmp47_); _tmp49_ = _tmp48_; _tmp50_ = skk_candidate_list_get_size (_tmp49_); _tmp51_ = _tmp50_; _tmp52_ = MIN (_tmp41_ + _tmp46_, (guint) _tmp51_); end = _tmp52_; { guint _tmp53_; guint index; _tmp53_ = start; index = _tmp53_; { gboolean _tmp54_; _tmp54_ = TRUE; while (TRUE) { gboolean _tmp55_; guint _tmp57_; guint _tmp58_; SkkContext* _tmp59_; SkkCandidateList* _tmp60_; SkkCandidateList* _tmp61_; guint _tmp62_; SkkCandidate* _tmp63_ = NULL; SkkCandidate* candidate; gchar** _tmp64_; gint _tmp64__length1; guint _tmp65_; guint _tmp66_; const gchar* _tmp67_; SkkCandidate* _tmp68_; const gchar* _tmp69_; const gchar* _tmp70_; gchar* _tmp71_ = NULL; gchar* text; guint _tmp72_; SkkContext* _tmp73_; SkkCandidateList* _tmp74_; SkkCandidateList* _tmp75_; gint _tmp76_; gint _tmp77_; GString* _tmp87_; const gchar* _tmp88_; guint _tmp89_; guint _tmp90_; _tmp55_ = _tmp54_; if (!_tmp55_) { guint _tmp56_; _tmp56_ = index; index = _tmp56_ + 1; } _tmp54_ = FALSE; _tmp57_ = index; _tmp58_ = end; if (!(_tmp57_ < _tmp58_)) { break; } _tmp59_ = self->priv->context; _tmp60_ = skk_context_get_candidates (_tmp59_); _tmp61_ = _tmp60_; _tmp62_ = index; _tmp63_ = skk_candidate_list_get (_tmp61_, (gint) _tmp62_); candidate = _tmp63_; _tmp64_ = self->priv->LOOKUP_TABLE_LABELS; _tmp64__length1 = self->priv->LOOKUP_TABLE_LABELS_length1; _tmp65_ = index; _tmp66_ = start; _tmp67_ = _tmp64_[_tmp65_ - _tmp66_]; _tmp68_ = candidate; _tmp69_ = skk_candidate_get_text (_tmp68_); _tmp70_ = _tmp69_; _tmp71_ = g_strdup_printf ("%s: %s", _tmp67_, _tmp70_); text = _tmp71_; _tmp72_ = index; _tmp73_ = self->priv->context; _tmp74_ = skk_context_get_candidates (_tmp73_); _tmp75_ = _tmp74_; _tmp76_ = skk_candidate_list_get_cursor_pos (_tmp75_); _tmp77_ = _tmp76_; if (_tmp72_ == ((guint) _tmp77_)) { GString* _tmp78_; const gchar* _tmp79_; gint _tmp80_ = 0; gint start_index; gint _tmp81_; gint _tmp82_; const gchar* _tmp83_; gint _tmp84_ = 0; FepGAttribute _tmp85_ = {0}; FepGAttribute* _tmp86_; _tmp78_ = builder; _tmp79_ = _tmp78_->str; _tmp80_ = g_utf8_strlen (_tmp79_, (gssize) (-1)); start_index = _tmp80_; _tmp81_ = start_index; _tmp82_ = start_index; _tmp83_ = text; _tmp84_ = g_utf8_strlen (_tmp83_, (gssize) (-1)); memset (&_tmp85_, 0, sizeof (FepGAttribute)); _tmp85_.type = FEP_G_ATTR_TYPE_STANDOUT; _tmp85_.value = (guint) 1; _tmp85_.start_index = (guint) _tmp81_; _tmp85_.end_index = (guint) (_tmp82_ + _tmp84_); _tmp86_ = __fep_g_attribute_dup0 (&_tmp85_); _g_free0 (attr); attr = _tmp86_; } _tmp87_ = builder; _tmp88_ = text; g_string_append (_tmp87_, _tmp88_); _tmp89_ = index; _tmp90_ = end; if (_tmp89_ < (_tmp90_ - 1)) { GString* _tmp91_; _tmp91_ = builder; g_string_append_c (_tmp91_, ' '); } _g_free0 (text); _g_object_unref0 (candidate); } } } } _tmp93_ = self->priv->status; _tmp94_ = builder; _tmp95_ = _tmp94_->str; if (g_strcmp0 (_tmp93_, _tmp95_) != 0) { _tmp92_ = TRUE; } else { FepGAttribute* _tmp96_; FepGAttribute* _tmp97_; _tmp96_ = self->priv->status_attr; _tmp97_ = attr; _tmp92_ = _fep_g_attribute_equal (_tmp96_, _tmp97_) != TRUE; } _tmp98_ = _tmp92_; if (_tmp98_) { GString* _tmp99_; const gchar* _tmp100_; FepGAttribute* _tmp101_; GString* _tmp102_; const gchar* _tmp103_; gchar* _tmp104_; FepGAttribute* _tmp105_; FepGAttribute* _tmp106_; _tmp99_ = builder; _tmp100_ = _tmp99_->str; _tmp101_ = attr; fep_g_client_set_status_text ((FepGClient*) self, _tmp100_, _tmp101_); _tmp102_ = builder; _tmp103_ = _tmp102_->str; _tmp104_ = g_strdup (_tmp103_); _g_free0 (self->priv->status); self->priv->status = _tmp104_; _tmp105_ = attr; _tmp106_ = __fep_g_attribute_dup0 (_tmp105_); _g_free0 (self->priv->status_attr); self->priv->status_attr = _tmp106_; } _g_free0 (attr); _g_string_free0 (builder); } static void client_populate_lookup_table (Client* self) { g_return_if_fail (self != NULL); } static void client_set_lookup_table_cursor_pos (Client* self) { SkkContext* _tmp0_; SkkCandidateList* _tmp1_; SkkCandidateList* _tmp2_; gboolean _tmp3_; gboolean _tmp4_; gboolean _tmp6_ = FALSE; gboolean _tmp7_; gboolean _tmp10_; g_return_if_fail (self != NULL); _tmp0_ = self->priv->context; _tmp1_ = skk_context_get_candidates (_tmp0_); _tmp2_ = _tmp1_; _tmp3_ = skk_candidate_list_get_page_visible (_tmp2_); _tmp4_ = _tmp3_; if (_tmp4_) { self->priv->lookup_table_visible = TRUE; } else { gboolean _tmp5_; _tmp5_ = self->priv->lookup_table_visible; if (_tmp5_) { self->priv->lookup_table_visible = FALSE; } } client_update_status (self); _tmp7_ = self->priv->lookup_table_visible; if (!_tmp7_) { Options _tmp8_; PreeditStyle _tmp9_; _tmp8_ = self->priv->opts; _tmp9_ = _tmp8_.preedit_style; _tmp6_ = _tmp9_ == PREEDIT_STYLE_ROOT; } else { _tmp6_ = FALSE; } _tmp10_ = _tmp6_; if (_tmp10_) { client_update_preedit (self); } } static gboolean client_watch_func (Client* self, GIOChannel* source, GIOCondition condition) { gboolean result = FALSE; g_return_val_if_fail (self != NULL, FALSE); g_return_val_if_fail (source != NULL, FALSE); fep_g_client_dispatch ((FepGClient*) self); result = TRUE; return result; } static void __lambda3_ (Client* self) { SkkContext* _tmp0_; const gchar* _tmp1_; const gchar* _tmp2_; const gchar* _tmp3_; _tmp0_ = self->priv->context; _tmp1_ = skk_context_get_preedit (_tmp0_); _tmp2_ = _tmp1_; _tmp3_ = self->priv->preedit; if (g_strcmp0 (_tmp2_, _tmp3_) != 0) { client_update_preedit (self); } } static void ___lambda3__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) { __lambda3_ (self); } static void __lambda4_ (Client* self) { SkkContext* _tmp0_; SkkInputMode _tmp1_; SkkInputMode _tmp2_; SkkInputMode _tmp3_; _tmp0_ = self->priv->context; _tmp1_ = skk_context_get_input_mode (_tmp0_); _tmp2_ = _tmp1_; _tmp3_ = self->priv->input_mode; if (_tmp2_ != _tmp3_) { client_update_status (self); } } static void ___lambda4__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) { __lambda4_ (self); } static void __lambda5_ (Client* self) { client_populate_lookup_table (self); } static void ___lambda5__skk_candidate_list_populated (SkkCandidateList* _sender, gpointer self) { __lambda5_ (self); } static void __lambda6_ (Client* self) { client_set_lookup_table_cursor_pos (self); } static void ___lambda6__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) { __lambda6_ (self); } static void __lambda7_ (Client* self) { SkkContext* _tmp0_; gchar* _tmp1_ = NULL; gchar* output; const gchar* _tmp2_; gint _tmp3_; gint _tmp4_; Options _tmp6_; PreeditStyle _tmp7_; _tmp0_ = self->priv->context; _tmp1_ = skk_context_poll_output (_tmp0_); output = _tmp1_; _tmp2_ = output; _tmp3_ = strlen (_tmp2_); _tmp4_ = _tmp3_; if (_tmp4_ > 0) { const gchar* _tmp5_; _tmp5_ = output; fep_g_client_send_text ((FepGClient*) self, _tmp5_); } self->priv->lookup_table_visible = FALSE; client_update_status (self); _tmp6_ = self->priv->opts; _tmp7_ = _tmp6_.preedit_style; if (_tmp7_ == PREEDIT_STYLE_ROOT) { client_update_preedit (self); } _g_free0 (output); } static void ___lambda7__skk_candidate_list_selected (SkkCandidateList* _sender, SkkCandidate* candidate, gpointer self) { __lambda7_ (self); } static gboolean _client_watch_func_gio_func (GIOChannel* source, GIOCondition condition, gpointer self) { gboolean result; result = client_watch_func (self, source, condition); return result; } gboolean client_run (Client* self) { gboolean result = FALSE; SkkContext* _tmp0_; SkkContext* _tmp1_; SkkContext* _tmp2_; SkkCandidateList* _tmp3_; SkkCandidateList* _tmp4_; SkkContext* _tmp5_; SkkCandidateList* _tmp6_; SkkCandidateList* _tmp7_; SkkContext* _tmp8_; SkkCandidateList* _tmp9_; SkkCandidateList* _tmp10_; gint _tmp11_ = 0; GIOChannel* _tmp12_; GIOChannel* channel; GMainLoop* _tmp13_; GMainLoop* loop; g_return_val_if_fail (self != NULL, FALSE); _tmp0_ = self->priv->context; g_signal_connect_object ((GObject*) _tmp0_, "notify::preedit", (GCallback) ___lambda3__g_object_notify, self, 0); _tmp1_ = self->priv->context; g_signal_connect_object ((GObject*) _tmp1_, "notify::input-mode", (GCallback) ___lambda4__g_object_notify, self, 0); _tmp2_ = self->priv->context; _tmp3_ = skk_context_get_candidates (_tmp2_); _tmp4_ = _tmp3_; g_signal_connect_object (_tmp4_, "populated", (GCallback) ___lambda5__skk_candidate_list_populated, self, 0); _tmp5_ = self->priv->context; _tmp6_ = skk_context_get_candidates (_tmp5_); _tmp7_ = _tmp6_; g_signal_connect_object ((GObject*) _tmp7_, "notify::cursor-pos", (GCallback) ___lambda6__g_object_notify, self, 0); _tmp8_ = self->priv->context; _tmp9_ = skk_context_get_candidates (_tmp8_); _tmp10_ = _tmp9_; g_signal_connect_object (_tmp10_, "selected", (GCallback) ___lambda7__skk_candidate_list_selected, self, 0); client_update_preedit (self); client_update_status (self); _tmp11_ = fep_g_client_get_poll_fd ((FepGClient*) self); _tmp12_ = g_io_channel_unix_new (_tmp11_); channel = _tmp12_; g_io_add_watch (channel, G_IO_IN, _client_watch_func_gio_func, self); _tmp13_ = g_main_loop_new (NULL, TRUE); loop = _tmp13_; g_main_loop_run (loop); result = TRUE; _g_main_loop_unref0 (loop); _g_io_channel_unref0 (channel); return result; } static gpointer _g_object_ref0 (gpointer self) { return self ? g_object_ref (self) : NULL; } Client* client_construct (GType object_type, SkkContext* context, Options* opts, GError** error) { Client * self = NULL; SkkContext* _tmp0_; SkkContext* _tmp1_; Options _tmp2_; GError * _inner_error_ = NULL; g_return_val_if_fail (context != NULL, NULL); g_return_val_if_fail (opts != NULL, NULL); self = (Client*) g_object_new (object_type, "address", NULL, NULL); g_initable_init ((GInitable*) self, NULL, &_inner_error_); if (_inner_error_ != NULL) { g_propagate_error (error, _inner_error_); _g_object_unref0 (self); return NULL; } _tmp0_ = context; _tmp1_ = _g_object_ref0 (_tmp0_); _g_object_unref0 (self->priv->context); self->priv->context = _tmp1_; _tmp2_ = *opts; self->priv->opts = _tmp2_; return self; } Client* client_new (SkkContext* context, Options* opts, GError** error) { return client_construct (TYPE_CLIENT, context, opts, error); } static void client_entry_copy (const ClientEntry* self, ClientEntry* dest) { gconstpointer _tmp0_; gconstpointer _tmp1_; _tmp0_ = (*self).key; (*dest).key = _tmp0_; _tmp1_ = (*self).value; (*dest).value = _tmp1_; } static void client_entry_destroy (ClientEntry* self) { } static ClientEntry* client_entry_dup (const ClientEntry* self) { ClientEntry* dup; dup = g_new0 (ClientEntry, 1); client_entry_copy (self, dup); return dup; } static void client_entry_free (ClientEntry* self) { client_entry_destroy (self); g_free (self); } static GType client_entry_get_type (void) { static volatile gsize client_entry_type_id__volatile = 0; if (g_once_init_enter (&client_entry_type_id__volatile)) { GType client_entry_type_id; client_entry_type_id = g_boxed_type_register_static ("ClientEntry", (GBoxedCopyFunc) client_entry_dup, (GBoxedFreeFunc) client_entry_free); g_once_init_leave (&client_entry_type_id__volatile, client_entry_type_id); } return client_entry_type_id__volatile; } static void client_class_init (ClientClass * klass) { client_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (ClientPrivate)); FEP_G_CLIENT_CLASS (klass)->filter_key_event = client_real_filter_key_event; G_OBJECT_CLASS (klass)->finalize = client_finalize; } static void client_instance_init (Client * self) { gchar* _tmp0_; gchar* _tmp1_; gchar* _tmp2_; gchar* _tmp3_; gchar* _tmp4_; gchar* _tmp5_; gchar* _tmp6_; gchar* _tmp7_; gchar* _tmp8_; gchar* _tmp9_; gchar* _tmp10_; gchar* _tmp11_; gchar* _tmp12_; gchar* _tmp13_; gchar** _tmp14_ = NULL; gchar* _tmp15_; gchar* _tmp16_; self->priv = CLIENT_GET_PRIVATE (self); _tmp0_ = g_strdup ("a"); _tmp1_ = g_strdup ("s"); _tmp2_ = g_strdup ("d"); _tmp3_ = g_strdup ("f"); _tmp4_ = g_strdup ("j"); _tmp5_ = g_strdup ("k"); _tmp6_ = g_strdup ("l"); _tmp7_ = g_strdup ("q"); _tmp8_ = g_strdup ("w"); _tmp9_ = g_strdup ("e"); _tmp10_ = g_strdup ("r"); _tmp11_ = g_strdup ("u"); _tmp12_ = g_strdup ("i"); _tmp13_ = g_strdup ("o"); _tmp14_ = g_new0 (gchar*, 14 + 1); _tmp14_[0] = _tmp0_; _tmp14_[1] = _tmp1_; _tmp14_[2] = _tmp2_; _tmp14_[3] = _tmp3_; _tmp14_[4] = _tmp4_; _tmp14_[5] = _tmp5_; _tmp14_[6] = _tmp6_; _tmp14_[7] = _tmp7_; _tmp14_[8] = _tmp8_; _tmp14_[9] = _tmp9_; _tmp14_[10] = _tmp10_; _tmp14_[11] = _tmp11_; _tmp14_[12] = _tmp12_; _tmp14_[13] = _tmp13_; self->priv->LOOKUP_TABLE_LABELS = _tmp14_; self->priv->LOOKUP_TABLE_LABELS_length1 = 14; self->priv->_LOOKUP_TABLE_LABELS_size_ = self->priv->LOOKUP_TABLE_LABELS_length1; self->priv->lookup_table_visible = FALSE; _tmp15_ = g_strdup (""); self->priv->preedit = _tmp15_; _tmp16_ = g_strdup (""); self->priv->status = _tmp16_; self->priv->status_attr = NULL; self->priv->input_mode = SKK_INPUT_MODE_HIRAGANA; } static void client_finalize (GObject* obj) { Client * self; self = CLIENT (obj); _g_object_unref0 (self->priv->context); self->priv->LOOKUP_TABLE_LABELS = (_vala_array_free (self->priv->LOOKUP_TABLE_LABELS, self->priv->LOOKUP_TABLE_LABELS_length1, (GDestroyNotify) g_free), NULL); _g_free0 (self->priv->preedit); _g_free0 (self->priv->status); _g_free0 (self->priv->status_attr); G_OBJECT_CLASS (client_parent_class)->finalize (obj); } GType client_get_type (void) { static volatile gsize client_type_id__volatile = 0; if (g_once_init_enter (&client_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (ClientClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) client_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Client), 0, (GInstanceInitFunc) client_instance_init, NULL }; GType client_type_id; client_type_id = g_type_register_static (fep_g_client_get_type (), "Client", &g_define_type_info, 0); g_once_init_leave (&client_type_id__volatile, client_type_id); } return client_type_id__volatile; } static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { int i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); } } } } static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) { _vala_array_destroy (array, array_length, destroy_func); g_free (array); } libskk-1.0.0/tools/skkfep.in0000775000076400007640000000172111734010716012701 00000000000000#!/bin/sh # Copyright (C) 2011-2012 Daiki Ueno # Copyright (C) 2011-2012 Red Hat, 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 3 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, see . : ${FEP:=@FEP@} : ${CLIENT:=@CLIENT@} # XXX: handle --help here because the help output from the client will # be erased by the terminal reset. case "$1" in --help|-h) exec "$CLIENT" --help ;; esac exec "$FEP" -- "$CLIENT" "$@" libskk-1.0.0/tools/Makefile.am0000664000076400007640000000432111734004766013126 00000000000000# Copyright (C) 2011-2012 Daiki Ueno # Copyright (C) 2011-2012 Red Hat, 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 3 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, see . # force include config.h before gi18n.h. AM_CPPFLAGS = -include $(CONFIG_HEADER) bin_PROGRAMS = skk skk_VALAFLAGS = \ --vapidir=$(top_srcdir)/libskk \ --vapidir=$(top_srcdir)/tools \ --pkg config \ --pkg skk-1.0 \ $(VALAFLAGS) skk_CFLAGS = \ -I$(top_srcdir) \ $(LIBSKK_CFLAGS) \ -DDATADIR=\"$(datadir)\" \ -DPKGDATADIR=\"$(pkgdatadir)\" \ -DLOCALEDIR=\"$(datadir)/locale\" \ $(NULL) skk_LDADD = $(top_builddir)/libskk/libskk.la $(LIBSKK_LIBS) skk_SOURCES = skk.vala dist_man_MANS = skk.1 if ENABLE_FEP libexec_PROGRAMS = skkfep-client skkfep_client_VALAFLAGS = \ --vapidir=$(top_srcdir)/libskk \ --vapidir=$(top_srcdir)/tools \ --pkg config \ --pkg skk-1.0 \ --pkg libfep-glib \ $(VALAFLAGS) skkfep_client_CFLAGS = \ -I$(top_srcdir) \ $(LIBSKK_CFLAGS) \ $(LIBFEP_CFLAGS) \ -DDATADIR=\"$(datadir)\" \ -DPKGDATADIR=\"$(pkgdatadir)\" \ -DLOCALEDIR=\"$(datadir)/locale\" \ $(NULL) skkfep_client_LDADD = \ $(top_builddir)/libskk/libskk.la \ $(LIBSKK_LIBS) \ $(LIBFEP_LIBS) \ $(NULL) skkfep_client_SOURCES = fep.vala dist_man_MANS += skkfep.1 EXTRA_DIST = skkfep.in DISTCLEANFILES = skkfep bin_SCRIPTS = skkfep skkfep: skkfep.in $(AM_V_GEN) sed -e "s!@FEP\@!"$(FEP)"!" \ -e "s!@CLIENT\@!"$(libexecdir)/skkfep-client"!" \ $< > $@.tmp && \ mv $@.tmp $@ endif GITIGNOREFILES = \ $(skk_SOURCES:.vala=.c) \ skk_vala.stamp \ $(skkfep_client_SOURCES:.vala=.c) \ skkfep_client_vala.stamp \ $(NULL) -include $(top_srcdir)/git.mk libskk-1.0.0/tools/skk.c0000664000076400007640000006466212016556651012043 00000000000000/* skk.c generated by valac 0.16.0, the Vala compiler * generated from skk.vala, do not modify */ /* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ #include #include #include #include #include #include #include #include #include #include #define _g_option_context_free0(var) ((var == NULL) ? NULL : (var = (g_option_context_free (var), NULL))) #define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL))) #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) #define _g_free0(var) (var = (g_free (var), NULL)) #define TYPE_REPL (repl_get_type ()) #define REPL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_REPL, Repl)) #define REPL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_REPL, ReplClass)) #define IS_REPL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_REPL)) #define IS_REPL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_REPL)) #define REPL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_REPL, ReplClass)) typedef struct _Repl Repl; typedef struct _ReplClass ReplClass; typedef struct _ReplPrivate ReplPrivate; #define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL))) #define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL))) struct _Repl { GObject parent_instance; ReplPrivate * priv; }; struct _ReplClass { GObjectClass parent_class; }; struct _ReplPrivate { SkkContext* context; }; extern gchar* opt_file_dict; gchar* opt_file_dict = NULL; extern gchar* opt_user_dict; gchar* opt_user_dict = NULL; extern gchar* opt_skkserv; gchar* opt_skkserv = NULL; extern gchar* opt_typing_rule; gchar* opt_typing_rule = NULL; extern gboolean opt_list_typing_rules; gboolean opt_list_typing_rules = FALSE; static gpointer repl_parent_class = NULL; gint _vala_main (gchar** args, int args_length1); static void _vala_SkkRuleMetadata_array_free (SkkRuleMetadata* array, gint array_length); Repl* repl_new (SkkContext* context); Repl* repl_construct (GType object_type, SkkContext* context); GType repl_get_type (void) G_GNUC_CONST; gboolean repl_run (Repl* self); #define REPL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_REPL, ReplPrivate)) enum { REPL_DUMMY_PROPERTY }; static void repl_finalize (GObject* obj); static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func); const GOptionEntry options[6] = {{"file-dict", 'f', 0, G_OPTION_ARG_STRING, &opt_file_dict, "Path to a file dictionary", NULL}, {"user-dict", 'u', 0, G_OPTION_ARG_STRING, &opt_user_dict, "Path to a user dictionary", NULL}, {"skkserv", 's', 0, G_OPTION_ARG_STRING, &opt_skkserv, "Host and port running skkserv (HOST:PORT)", NULL}, {"rule", 'r', 0, G_OPTION_ARG_STRING, &opt_typing_rule, "Typing rule (default: \"default\")", NULL}, {"list-rules", 'l', 0, G_OPTION_ARG_NONE, &opt_list_typing_rules, "List typing rules", NULL}, {NULL}}; static void _vala_SkkRuleMetadata_array_free (SkkRuleMetadata* array, gint array_length) { if (array != NULL) { int i; for (i = 0; i < array_length; i = i + 1) { skk_rule_metadata_destroy (&array[i]); } } g_free (array); } static gint string_last_index_of (const gchar* self, const gchar* needle, gint start_index) { gint result = 0; gint _tmp0_; const gchar* _tmp1_; gchar* _tmp2_ = NULL; gchar* _result_; gchar* _tmp3_; g_return_val_if_fail (self != NULL, 0); g_return_val_if_fail (needle != NULL, 0); _tmp0_ = start_index; _tmp1_ = needle; _tmp2_ = g_strrstr (((gchar*) self) + _tmp0_, (gchar*) _tmp1_); _result_ = _tmp2_; _tmp3_ = _result_; if (_tmp3_ != NULL) { gchar* _tmp4_; _tmp4_ = _result_; result = (gint) (_tmp4_ - ((gchar*) self)); return result; } else { result = -1; return result; } } static gchar* string_slice (const gchar* self, glong start, glong end) { gchar* result = NULL; gint _tmp0_; gint _tmp1_; glong string_length; glong _tmp2_; glong _tmp5_; gboolean _tmp8_ = FALSE; glong _tmp9_; gboolean _tmp12_; gboolean _tmp13_ = FALSE; glong _tmp14_; gboolean _tmp17_; glong _tmp18_; glong _tmp19_; glong _tmp20_; glong _tmp21_; glong _tmp22_; gchar* _tmp23_ = NULL; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = strlen (self); _tmp1_ = _tmp0_; string_length = (glong) _tmp1_; _tmp2_ = start; if (_tmp2_ < ((glong) 0)) { glong _tmp3_; glong _tmp4_; _tmp3_ = string_length; _tmp4_ = start; start = _tmp3_ + _tmp4_; } _tmp5_ = end; if (_tmp5_ < ((glong) 0)) { glong _tmp6_; glong _tmp7_; _tmp6_ = string_length; _tmp7_ = end; end = _tmp6_ + _tmp7_; } _tmp9_ = start; if (_tmp9_ >= ((glong) 0)) { glong _tmp10_; glong _tmp11_; _tmp10_ = start; _tmp11_ = string_length; _tmp8_ = _tmp10_ <= _tmp11_; } else { _tmp8_ = FALSE; } _tmp12_ = _tmp8_; g_return_val_if_fail (_tmp12_, NULL); _tmp14_ = end; if (_tmp14_ >= ((glong) 0)) { glong _tmp15_; glong _tmp16_; _tmp15_ = end; _tmp16_ = string_length; _tmp13_ = _tmp15_ <= _tmp16_; } else { _tmp13_ = FALSE; } _tmp17_ = _tmp13_; g_return_val_if_fail (_tmp17_, NULL); _tmp18_ = start; _tmp19_ = end; g_return_val_if_fail (_tmp18_ <= _tmp19_, NULL); _tmp20_ = start; _tmp21_ = end; _tmp22_ = start; _tmp23_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) (_tmp21_ - _tmp22_)); result = _tmp23_; return result; } gint _vala_main (gchar** args, int args_length1) { gint result = 0; const gchar* _tmp0_ = NULL; GOptionContext* _tmp1_; GOptionContext* option_context; GOptionContext* _tmp2_; gboolean _tmp7_; GeeArrayList* _tmp19_; GeeArrayList* dictionaries; const gchar* _tmp20_; const gchar* _tmp30_; const gchar* _tmp32_; gboolean _tmp33_ = FALSE; const gchar* _tmp52_; GeeArrayList* _tmp80_; gint _tmp81_ = 0; gpointer* _tmp82_ = NULL; SkkDict** _tmp83_; gint _tmp83__length1; SkkContext* _tmp84_; SkkContext* _tmp85_; SkkContext* context; const gchar* _tmp86_; SkkContext* _tmp96_; Repl* _tmp97_; Repl* repl; Repl* _tmp98_; gboolean _tmp99_ = FALSE; GError * _inner_error_ = NULL; setlocale (LC_ALL, ""); bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); _tmp0_ = _ ("- emulate SKK input method on the command line"); _tmp1_ = g_option_context_new (_tmp0_); option_context = _tmp1_; _tmp2_ = option_context; g_option_context_add_main_entries (_tmp2_, options, "libskk"); { GOptionContext* _tmp3_; _tmp3_ = option_context; g_option_context_parse (_tmp3_, &args_length1, &args, &_inner_error_); if (_inner_error_ != NULL) { if (_inner_error_->domain == G_OPTION_ERROR) { goto __catch0_g_option_error; } _g_option_context_free0 (option_context); g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return 0; } } goto __finally0; __catch0_g_option_error: { GError* e = NULL; FILE* _tmp4_; GError* _tmp5_; const gchar* _tmp6_; e = _inner_error_; _inner_error_ = NULL; _tmp4_ = stderr; _tmp5_ = e; _tmp6_ = _tmp5_->message; fprintf (_tmp4_, "%s\n", _tmp6_); result = 1; _g_error_free0 (e); _g_option_context_free0 (option_context); return result; } __finally0: if (_inner_error_ != NULL) { _g_option_context_free0 (option_context); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return 0; } skk_init (); _tmp7_ = opt_list_typing_rules; if (_tmp7_) { gint _tmp8_ = 0; SkkRuleMetadata* _tmp9_ = NULL; SkkRuleMetadata* rules; gint rules_length1; gint _rules_size_; SkkRuleMetadata* _tmp10_; gint _tmp10__length1; _tmp9_ = skk_rule_list (&_tmp8_); rules = _tmp9_; rules_length1 = _tmp8_; _rules_size_ = rules_length1; _tmp10_ = rules; _tmp10__length1 = rules_length1; { SkkRuleMetadata* rule_collection = NULL; gint rule_collection_length1 = 0; gint _rule_collection_size_ = 0; gint rule_it = 0; rule_collection = _tmp10_; rule_collection_length1 = _tmp10__length1; for (rule_it = 0; rule_it < _tmp10__length1; rule_it = rule_it + 1) { SkkRuleMetadata _tmp11_ = {0}; SkkRuleMetadata rule = {0}; skk_rule_metadata_copy (&rule_collection[rule_it], &_tmp11_); rule = _tmp11_; { FILE* _tmp12_; SkkRuleMetadata _tmp13_; const gchar* _tmp14_; SkkRuleMetadata _tmp15_; const gchar* _tmp16_; SkkRuleMetadata _tmp17_; const gchar* _tmp18_; _tmp12_ = stdout; _tmp13_ = rule; _tmp14_ = _tmp13_.name; _tmp15_ = rule; _tmp16_ = _tmp15_.label; _tmp17_ = rule; _tmp18_ = _tmp17_.description; fprintf (_tmp12_, "%s - %s: %s\n", _tmp14_, _tmp16_, _tmp18_); skk_rule_metadata_destroy (&rule); } } } result = 0; rules = (_vala_SkkRuleMetadata_array_free (rules, rules_length1), NULL); _g_option_context_free0 (option_context); return result; } _tmp19_ = gee_array_list_new (SKK_TYPE_DICT, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL); dictionaries = _tmp19_; _tmp20_ = opt_user_dict; if (_tmp20_ != NULL) { { const gchar* _tmp21_; SkkUserDict* _tmp22_; SkkUserDict* _tmp23_; GeeArrayList* _tmp24_; SkkUserDict* _tmp25_; _tmp21_ = opt_user_dict; _tmp22_ = skk_user_dict_new (_tmp21_, "UTF-8", &_inner_error_); _tmp23_ = _tmp22_; if (_inner_error_ != NULL) { goto __catch1_g_error; } _tmp24_ = dictionaries; _tmp25_ = _tmp23_; gee_abstract_collection_add ((GeeAbstractCollection*) _tmp24_, (SkkDict*) _tmp25_); _g_object_unref0 (_tmp25_); } goto __finally1; __catch1_g_error: { GError* e = NULL; FILE* _tmp26_; const gchar* _tmp27_; GError* _tmp28_; const gchar* _tmp29_; e = _inner_error_; _inner_error_ = NULL; _tmp26_ = stderr; _tmp27_ = opt_user_dict; _tmp28_ = e; _tmp29_ = _tmp28_->message; fprintf (_tmp26_, "can't open user dict %s: %s", _tmp27_, _tmp29_); result = 1; _g_error_free0 (e); _g_object_unref0 (dictionaries); _g_option_context_free0 (option_context); return result; } __finally1: if (_inner_error_ != NULL) { _g_object_unref0 (dictionaries); _g_option_context_free0 (option_context); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return 0; } } _tmp30_ = opt_file_dict; if (_tmp30_ == NULL) { gchar* _tmp31_ = NULL; _tmp31_ = g_build_filename (DATADIR, "skk", "SKK-JISYO.L", NULL); _g_free0 (opt_file_dict); opt_file_dict = _tmp31_; } _tmp32_ = opt_file_dict; _tmp33_ = g_str_has_suffix (_tmp32_, ".cdb"); if (_tmp33_) { { const gchar* _tmp34_; SkkCdbDict* _tmp35_; SkkCdbDict* _tmp36_; GeeArrayList* _tmp37_; SkkCdbDict* _tmp38_; _tmp34_ = opt_file_dict; _tmp35_ = skk_cdb_dict_new (_tmp34_, "EUC-JP", &_inner_error_); _tmp36_ = _tmp35_; if (_inner_error_ != NULL) { goto __catch2_g_error; } _tmp37_ = dictionaries; _tmp38_ = _tmp36_; gee_abstract_collection_add ((GeeAbstractCollection*) _tmp37_, (SkkDict*) _tmp38_); _g_object_unref0 (_tmp38_); } goto __finally2; __catch2_g_error: { GError* e = NULL; FILE* _tmp39_; const gchar* _tmp40_; GError* _tmp41_; const gchar* _tmp42_; e = _inner_error_; _inner_error_ = NULL; _tmp39_ = stderr; _tmp40_ = opt_file_dict; _tmp41_ = e; _tmp42_ = _tmp41_->message; fprintf (_tmp39_, "can't open CDB dict %s: %s", _tmp40_, _tmp42_); result = 1; _g_error_free0 (e); _g_object_unref0 (dictionaries); _g_option_context_free0 (option_context); return result; } __finally2: if (_inner_error_ != NULL) { _g_object_unref0 (dictionaries); _g_option_context_free0 (option_context); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return 0; } } else { { const gchar* _tmp43_; SkkFileDict* _tmp44_; SkkFileDict* _tmp45_; GeeArrayList* _tmp46_; SkkFileDict* _tmp47_; _tmp43_ = opt_file_dict; _tmp44_ = skk_file_dict_new (_tmp43_, "EUC-JP", &_inner_error_); _tmp45_ = _tmp44_; if (_inner_error_ != NULL) { goto __catch3_g_error; } _tmp46_ = dictionaries; _tmp47_ = _tmp45_; gee_abstract_collection_add ((GeeAbstractCollection*) _tmp46_, (SkkDict*) _tmp47_); _g_object_unref0 (_tmp47_); } goto __finally3; __catch3_g_error: { GError* e = NULL; FILE* _tmp48_; const gchar* _tmp49_; GError* _tmp50_; const gchar* _tmp51_; e = _inner_error_; _inner_error_ = NULL; _tmp48_ = stderr; _tmp49_ = opt_file_dict; _tmp50_ = e; _tmp51_ = _tmp50_->message; fprintf (_tmp48_, "can't open file dict %s: %s", _tmp49_, _tmp51_); result = 1; _g_error_free0 (e); _g_object_unref0 (dictionaries); _g_option_context_free0 (option_context); return result; } __finally3: if (_inner_error_ != NULL) { _g_object_unref0 (dictionaries); _g_option_context_free0 (option_context); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return 0; } } _tmp52_ = opt_skkserv; if (_tmp52_ != NULL) { const gchar* _tmp53_; gint _tmp54_ = 0; gint index; gchar* host = NULL; guint16 port = 0U; gint _tmp55_; _tmp53_ = opt_skkserv; _tmp54_ = string_last_index_of (_tmp53_, ":", 0); index = _tmp54_; _tmp55_ = index; if (_tmp55_ < 0) { const gchar* _tmp56_; gchar* _tmp57_; _tmp56_ = opt_skkserv; _tmp57_ = g_strdup (_tmp56_); _g_free0 (host); host = _tmp57_; port = (guint16) 1178; } else { const gchar* _tmp58_; gint _tmp59_; gchar* _tmp60_ = NULL; const gchar* _tmp61_; gint _tmp62_; const gchar* _tmp63_; gint _tmp64_; gint _tmp65_; gchar* _tmp66_ = NULL; gchar* _tmp67_; gint _tmp68_ = 0; _tmp58_ = opt_skkserv; _tmp59_ = index; _tmp60_ = string_slice (_tmp58_, (glong) 0, (glong) _tmp59_); _g_free0 (host); host = _tmp60_; _tmp61_ = opt_skkserv; _tmp62_ = index; _tmp63_ = opt_skkserv; _tmp64_ = strlen (_tmp63_); _tmp65_ = _tmp64_; _tmp66_ = string_slice (_tmp61_, (glong) (_tmp62_ + 1), (glong) _tmp65_); _tmp67_ = _tmp66_; _tmp68_ = atoi (_tmp67_); port = (guint16) _tmp68_; _g_free0 (_tmp67_); } { const gchar* _tmp69_; guint16 _tmp70_; SkkSkkServ* _tmp71_; SkkSkkServ* _tmp72_; GeeArrayList* _tmp73_; SkkSkkServ* _tmp74_; _tmp69_ = host; _tmp70_ = port; _tmp71_ = skk_skk_serv_new (_tmp69_, _tmp70_, "EUC-JP", &_inner_error_); _tmp72_ = _tmp71_; if (_inner_error_ != NULL) { goto __catch4_g_error; } _tmp73_ = dictionaries; _tmp74_ = _tmp72_; gee_abstract_collection_add ((GeeAbstractCollection*) _tmp73_, (SkkDict*) _tmp74_); _g_object_unref0 (_tmp74_); } goto __finally4; __catch4_g_error: { GError* e = NULL; FILE* _tmp75_; const gchar* _tmp76_; guint16 _tmp77_; GError* _tmp78_; const gchar* _tmp79_; e = _inner_error_; _inner_error_ = NULL; _tmp75_ = stderr; _tmp76_ = host; _tmp77_ = port; _tmp78_ = e; _tmp79_ = _tmp78_->message; fprintf (_tmp75_, "can't connect to skkserv at %s:%d: %s", _tmp76_, (gint) _tmp77_, _tmp79_); result = 1; _g_error_free0 (e); _g_free0 (host); _g_object_unref0 (dictionaries); _g_option_context_free0 (option_context); return result; } __finally4: if (_inner_error_ != NULL) { _g_free0 (host); _g_object_unref0 (dictionaries); _g_option_context_free0 (option_context); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return 0; } _g_free0 (host); } _tmp80_ = dictionaries; _tmp82_ = gee_abstract_collection_to_array ((GeeAbstractCollection*) _tmp80_, &_tmp81_); _tmp83_ = _tmp82_; _tmp83__length1 = _tmp81_; _tmp84_ = skk_context_new (_tmp83_, _tmp81_); _tmp85_ = _tmp84_; _tmp83_ = (_vala_array_free (_tmp83_, _tmp83__length1, (GDestroyNotify) g_object_unref), NULL); context = _tmp85_; _tmp86_ = opt_typing_rule; if (_tmp86_ != NULL) { { const gchar* _tmp87_; SkkRule* _tmp88_; SkkRule* _tmp89_; SkkContext* _tmp90_; SkkRule* _tmp91_; _tmp87_ = opt_typing_rule; _tmp88_ = skk_rule_new (_tmp87_, &_inner_error_); _tmp89_ = _tmp88_; if (_inner_error_ != NULL) { if (_inner_error_->domain == SKK_RULE_PARSE_ERROR) { goto __catch5_skk_rule_parse_error; } _g_object_unref0 (context); _g_object_unref0 (dictionaries); _g_option_context_free0 (option_context); g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return 0; } _tmp90_ = context; _tmp91_ = _tmp89_; skk_context_set_typing_rule (_tmp90_, _tmp91_); _g_object_unref0 (_tmp91_); } goto __finally5; __catch5_skk_rule_parse_error: { GError* e = NULL; FILE* _tmp92_; const gchar* _tmp93_; GError* _tmp94_; const gchar* _tmp95_; e = _inner_error_; _inner_error_ = NULL; _tmp92_ = stderr; _tmp93_ = opt_typing_rule; _tmp94_ = e; _tmp95_ = _tmp94_->message; fprintf (_tmp92_, "can't load rule \"%s\": %s\n", _tmp93_, _tmp95_); result = 1; _g_error_free0 (e); _g_object_unref0 (context); _g_object_unref0 (dictionaries); _g_option_context_free0 (option_context); return result; } __finally5: if (_inner_error_ != NULL) { _g_object_unref0 (context); _g_object_unref0 (dictionaries); _g_option_context_free0 (option_context); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return 0; } } _tmp96_ = context; _tmp97_ = repl_new (_tmp96_); repl = _tmp97_; _tmp98_ = repl; _tmp99_ = repl_run (_tmp98_); if (!_tmp99_) { result = 1; _g_object_unref0 (repl); _g_object_unref0 (context); _g_object_unref0 (dictionaries); _g_option_context_free0 (option_context); return result; } result = 0; _g_object_unref0 (repl); _g_object_unref0 (context); _g_object_unref0 (dictionaries); _g_option_context_free0 (option_context); return result; } int main (int argc, char ** argv) { g_type_init (); return _vala_main (argv, argc); } static gchar* g_file_stream_read_line (FILE* self) { gchar* result = NULL; gint c = 0; GString* ret; GString* _tmp7_; g_return_val_if_fail (self != NULL, NULL); ret = NULL; while (TRUE) { gint _tmp0_ = 0; gint _tmp1_; GString* _tmp2_; gint _tmp4_; GString* _tmp5_; gint _tmp6_; _tmp0_ = fgetc (self); c = _tmp0_; _tmp1_ = c; if (!(_tmp1_ != EOF)) { break; } _tmp2_ = ret; if (_tmp2_ == NULL) { GString* _tmp3_; _tmp3_ = g_string_new (""); _g_string_free0 (ret); ret = _tmp3_; } _tmp4_ = c; if (_tmp4_ == ((gint) '\n')) { break; } _tmp5_ = ret; _tmp6_ = c; g_string_append_c ((GString*) _tmp5_, (gchar) _tmp6_); } _tmp7_ = ret; if (_tmp7_ == NULL) { result = NULL; _g_string_free0 (ret); return result; } else { GString* _tmp8_; const gchar* _tmp9_; gchar* _tmp10_; _tmp8_ = ret; _tmp9_ = ((GString*) _tmp8_)->str; _tmp10_ = g_strdup (_tmp9_); result = _tmp10_; _g_string_free0 (ret); return result; } _g_string_free0 (ret); } static gchar* string_replace (const gchar* self, const gchar* old, const gchar* replacement) { gchar* result = NULL; GError * _inner_error_ = NULL; g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (old != NULL, NULL); g_return_val_if_fail (replacement != NULL, NULL); { const gchar* _tmp0_; gchar* _tmp1_ = NULL; gchar* _tmp2_; GRegex* _tmp3_; GRegex* _tmp4_; GRegex* regex; GRegex* _tmp5_; const gchar* _tmp6_; gchar* _tmp7_ = NULL; gchar* _tmp8_; _tmp0_ = old; _tmp1_ = g_regex_escape_string (_tmp0_, -1); _tmp2_ = _tmp1_; _tmp3_ = g_regex_new (_tmp2_, 0, 0, &_inner_error_); _tmp4_ = _tmp3_; _g_free0 (_tmp2_); regex = _tmp4_; if (_inner_error_ != NULL) { if (_inner_error_->domain == G_REGEX_ERROR) { goto __catch6_g_regex_error; } g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } _tmp5_ = regex; _tmp6_ = replacement; _tmp7_ = g_regex_replace_literal (_tmp5_, self, (gssize) (-1), 0, _tmp6_, 0, &_inner_error_); _tmp8_ = _tmp7_; if (_inner_error_ != NULL) { _g_regex_unref0 (regex); if (_inner_error_->domain == G_REGEX_ERROR) { goto __catch6_g_regex_error; } _g_regex_unref0 (regex); g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } result = _tmp8_; _g_regex_unref0 (regex); return result; } goto __finally6; __catch6_g_regex_error: { GError* e = NULL; e = _inner_error_; _inner_error_ = NULL; g_assert_not_reached (); _g_error_free0 (e); } __finally6: if (_inner_error_ != NULL) { g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } } gboolean repl_run (Repl* self) { gboolean result = FALSE; gchar* line = NULL; g_return_val_if_fail (self != NULL, FALSE); while (TRUE) { FILE* _tmp0_; gchar* _tmp1_ = NULL; const gchar* _tmp2_; SkkContext* _tmp3_; const gchar* _tmp4_; SkkContext* _tmp5_; gchar* _tmp6_ = NULL; gchar* output; SkkContext* _tmp7_; const gchar* _tmp8_; const gchar* _tmp9_; gchar* _tmp10_; gchar* preedit; FILE* _tmp11_; const gchar* _tmp12_; gchar* _tmp13_ = NULL; gchar* _tmp14_; const gchar* _tmp15_; gchar* _tmp16_ = NULL; gchar* _tmp17_; const gchar* _tmp18_; gchar* _tmp19_ = NULL; gchar* _tmp20_; SkkContext* _tmp21_; SkkContext* _tmp22_; _tmp0_ = stdin; _tmp1_ = g_file_stream_read_line (_tmp0_); _g_free0 (line); line = _tmp1_; _tmp2_ = line; if (!(_tmp2_ != NULL)) { break; } _tmp3_ = self->priv->context; _tmp4_ = line; skk_context_process_key_events (_tmp3_, _tmp4_); _tmp5_ = self->priv->context; _tmp6_ = skk_context_poll_output (_tmp5_); output = _tmp6_; _tmp7_ = self->priv->context; _tmp8_ = skk_context_get_preedit (_tmp7_); _tmp9_ = _tmp8_; _tmp10_ = g_strdup (_tmp9_); preedit = _tmp10_; _tmp11_ = stdout; _tmp12_ = line; _tmp13_ = string_replace (_tmp12_, "\"", "\\\""); _tmp14_ = _tmp13_; _tmp15_ = output; _tmp16_ = string_replace (_tmp15_, "\"", "\\\""); _tmp17_ = _tmp16_; _tmp18_ = preedit; _tmp19_ = string_replace (_tmp18_, "\"", "\\\""); _tmp20_ = _tmp19_; fprintf (_tmp11_, "{ \"input\": \"%s\", " "\"output\": \"%s\", " "\"preedit\": \"%s\" }\n", _tmp14_, _tmp17_, _tmp20_); _g_free0 (_tmp20_); _g_free0 (_tmp17_); _g_free0 (_tmp14_); _tmp21_ = self->priv->context; skk_context_reset (_tmp21_); _tmp22_ = self->priv->context; skk_context_clear_output (_tmp22_); _g_free0 (preedit); _g_free0 (output); } result = TRUE; _g_free0 (line); return result; } static gpointer _g_object_ref0 (gpointer self) { return self ? g_object_ref (self) : NULL; } Repl* repl_construct (GType object_type, SkkContext* context) { Repl * self = NULL; SkkContext* _tmp0_; SkkContext* _tmp1_; g_return_val_if_fail (context != NULL, NULL); self = (Repl*) g_object_new (object_type, NULL); _tmp0_ = context; _tmp1_ = _g_object_ref0 (_tmp0_); _g_object_unref0 (self->priv->context); self->priv->context = _tmp1_; return self; } Repl* repl_new (SkkContext* context) { return repl_construct (TYPE_REPL, context); } static void repl_class_init (ReplClass * klass) { repl_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (ReplPrivate)); G_OBJECT_CLASS (klass)->finalize = repl_finalize; } static void repl_instance_init (Repl * self) { self->priv = REPL_GET_PRIVATE (self); } static void repl_finalize (GObject* obj) { Repl * self; self = REPL (obj); _g_object_unref0 (self->priv->context); G_OBJECT_CLASS (repl_parent_class)->finalize (obj); } GType repl_get_type (void) { static volatile gsize repl_type_id__volatile = 0; if (g_once_init_enter (&repl_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (ReplClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) repl_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Repl), 0, (GInstanceInitFunc) repl_instance_init, NULL }; GType repl_type_id; repl_type_id = g_type_register_static (G_TYPE_OBJECT, "Repl", &g_define_type_info, 0); g_once_init_leave (&repl_type_id__volatile, repl_type_id); } return repl_type_id__volatile; } static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { int i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); } } } } static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) { _vala_array_destroy (array, array_length, destroy_func); g_free (array); } libskk-1.0.0/NEWS0000664000076400007640000000700412016556362010430 00000000000000Noteworthy changes in version 1.0.0 (2012-08-27) ------------------------------------------------ * Make sure to create parent directory of user-dict (Debian bug#685745). * Clear output and preedit on context reset. * Fix header include in tests (Issue#19). Noteworthy changes in version 0.0.13 (2012-07-02) ------------------------------------------------ * Fix segfault on 64-bit FreeBSD (Issue#18). * Update required Vala version from 0.12.0 to 0.14.0 (Issue#17). * Fix CDB dictionary integer alignment issue on ARM (Debian bug#674471). * Map files that simply include "default" are now optional. Noteworthy changes in version 0.0.12 (2012-03-29) ------------------------------------------------ * Improve AZIK, KZIK, and ACT tables (Issue#16). "upper-" command is added to keymap. * Fix "nq" and "nl" handling in hiragana input mode (Issue#15). * Fix "NA" handling in hiragana input mode. * Fix okuri-ari conversion in katakana input mode (Issue#12). * --preedit-style option is added to skkfep. Noteworthy changes in version 0.0.11 (2012-02-11) ------------------------------------------------ * Fix for candidate list hiding bug (ibus-skk Issue#47). * Decorate selected candidate in FEP mode. Noteworthy changes in version 0.0.10 (2012-02-03) ------------------------------------------------ * Respect coding cookie in file dictionaries (Issue#10). * Change DictEdit preedit format to make Firefox forms happy. * Support libfep and add skkfep replacement. To enable, pass --enable-fep to configure. Noteworthy changes in version 0.0.9 (2012-01-25) ------------------------------------------------ * Import skk.1 manual page from Debian. * Adopt code coverage testing with lcov. To enable, pass --enable-code-coverage to configure. * Support running test cases under valgrind. To enable, pass --enable-valgrind-tests to configure. Noteworthy changes in version 0.0.8 (2012-01-11) ------------------------------------------------ * Fix user dictionary handling (ibus-skk Issue#44). Noteworthy changes in version 0.0.7 (2012-01-05) ------------------------------------------------ * Improve candidate list traversal with "x" and SPC keys. * Reduce the number of property notifications for performance. Noteworthy changes in version 0.0.6 (2011-12-28) ------------------------------------------------ * Support re-conversion based on surrounding text. Noteworthy changes in version 0.0.5 (2011-12-25) ------------------------------------------------ * Fix buffer overrun when using skkserv (Issue#2). Noteworthy changes in version 0.0.4 (2011-12-20) ------------------------------------------------ * Improve kanagaki input okuri-ari conversion. Noteworthy changes in version 0.0.3 (2011-12-20) ------------------------------------------------ * Support (concat ...). Noteworthy changes in version 0.0.2 (2011-12-16) ------------------------------------------------ * New test tool "skk". Noteworthy changes in version 0.0.1 (2011-11-30) ------------------------------------------------ * First release of libskk. Copyright (C) 2011-2012 Daiki Ueno Copyright (C) 2011-2012 Red Hat, Inc. This file is free software; as a special exception the author gives unlimited permission to copy and/or distribute it, with or without modifications, as long as this notice is preserved. This file 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. libskk-1.0.0/aclocal.m40000664000076400007640000014045012016556762011600 00000000000000# generated automatically by aclocal 1.12.2 -*- Autoconf -*- # Copyright (C) 1996-2012 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 -*- mode: autoconf -*- dnl Copyright 2009 Johan Dahlin dnl dnl This file is free software; the author(s) gives unlimited dnl permission to copy and/or distribute it, with or without dnl modifications, as long as this notice is preserved. dnl # serial 1 m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL], [ AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first AC_BEFORE([LT_INIT],[$0])dnl setup libtool first dnl enable/disable introspection m4_if([$2], [require], [dnl enable_introspection=yes ],[dnl AC_ARG_ENABLE(introspection, AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]], [Enable introspection for this build]),, [enable_introspection=auto]) ])dnl AC_MSG_CHECKING([for gobject-introspection]) dnl presence/version checking AS_CASE([$enable_introspection], [no], [dnl found_introspection="no (disabled, use --enable-introspection to enable)" ],dnl [yes],[dnl PKG_CHECK_EXISTS([gobject-introspection-1.0],, AC_MSG_ERROR([gobject-introspection-1.0 is not installed])) PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME])) ],dnl [auto],[dnl PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no) dnl Canonicalize enable_introspection enable_introspection=$found_introspection ],dnl [dnl AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@]) ])dnl AC_MSG_RESULT([$found_introspection]) INTROSPECTION_SCANNER= INTROSPECTION_COMPILER= INTROSPECTION_GENERATE= INTROSPECTION_GIRDIR= INTROSPECTION_TYPELIBDIR= if test "x$found_introspection" = "xyes"; then INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0` INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0` INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0` INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0` INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)" INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0` INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0` INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection fi AC_SUBST(INTROSPECTION_SCANNER) AC_SUBST(INTROSPECTION_COMPILER) AC_SUBST(INTROSPECTION_GENERATE) AC_SUBST(INTROSPECTION_GIRDIR) AC_SUBST(INTROSPECTION_TYPELIBDIR) AC_SUBST(INTROSPECTION_CFLAGS) AC_SUBST(INTROSPECTION_LIBS) AC_SUBST(INTROSPECTION_MAKEFILE) AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes") ]) dnl Usage: dnl GOBJECT_INTROSPECTION_CHECK([minimum-g-i-version]) AC_DEFUN([GOBJECT_INTROSPECTION_CHECK], [ _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1]) ]) dnl Usage: dnl GOBJECT_INTROSPECTION_REQUIRE([minimum-g-i-version]) AC_DEFUN([GOBJECT_INTROSPECTION_REQUIRE], [ _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require]) ]) # nls.m4 serial 5 (gettext-0.18) dnl Copyright (C) 1995-2003, 2005-2006, 2008-2010 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. 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_PREREQ([2.50]) 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]) ]) # 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]) ]) 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 .]) ]) 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-2012 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_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.12' 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.12.2], [], [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.12.2])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-2012 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 # 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-2012 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 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ([2.52])dnl m4_if([$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-2012 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 17 # 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", "OBJC", "OBJCXX", "UPC", or "GJC". # 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 m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], [$1], [CXX], [depcc="$CXX" am_compiler_list=], [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], [OBJCXX], [depcc="$OBJCXX" 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". rm -rf conftest.dir 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 10 /bin/sh. echo '/* dummy */' > 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 ;; msvc7 | msvc7msys | 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], [dnl AS_HELP_STRING( [--enable-dependency-tracking], [do not reject slow dependency extractors]) AS_HELP_STRING( [--disable-dependency-tracking], [speeds up one-time build])]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl AC_SUBST([am__nodep])dnl _AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999-2012 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_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"` # 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'`; 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"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996-2012 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 19 # 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], [AC_DIAGNOSE([obsolete], [$0: two- and three-arguments forms are deprecated. For more info, see: http://www.gnu.org/software/automake/manual/automake.html#Modernize-AM_INIT_AUTOMAKE-invocation]) 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], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), [ok:ok],, [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([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # 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])], [m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES([CXX])], [m4_define([AC_PROG_CXX], m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES([OBJC])], [m4_define([AC_PROG_OBJC], m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl dnl Support for Objective C++ was only introduced in Autoconf 2.65, dnl but we still cater to Autoconf 2.62. m4_ifdef([AC_PROG_OBJCXX], [AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], [_AM_DEPENDENCIES([OBJCXX])], [m4_define([AC_PROG_OBJCXX], m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])])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-2012 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_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-2012 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])]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering # Copyright (C) 1996-2012 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 7 # AM_MAINTAINER_MODE([DEFAULT-MODE]) # ---------------------------------- # Control maintainer-specific portions of Makefiles. # Default is to disable them, unless 'enable' is passed literally. # For symmetry, 'disable' may be passed as well. Anyway, the user # can override the default with the --enable/--disable switch. AC_DEFUN([AM_MAINTAINER_MODE], [m4_case(m4_default([$1], [disable]), [enable], [m4_define([am_maintainer_other], [disable])], [disable], [m4_define([am_maintainer_other], [enable])], [m4_define([am_maintainer_other], [enable]) m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) dnl maintainer-mode's default is 'disable' unless 'enable' is passed AC_ARG_ENABLE([maintainer-mode], [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], am_maintainer_other[ make rules and dependencies not useful (and sometimes confusing) to the casual installer])], [USE_MAINTAINER_MODE=$enableval], [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) AC_MSG_RESULT([$USE_MAINTAINER_MODE]) AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) MAINT=$MAINTAINER_MODE_TRUE AC_SUBST([MAINT])dnl ] ) AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001-2012 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_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 ]) # Copyright (C) 1999-2012 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_PROG_CC_C_O # -------------- # Like AC_PROG_CC_C_O, but changed for automake. AC_DEFUN([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC_C_O])dnl AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([compile])dnl # FIXME: we rely on the cache variable name because # there is no other way. set dummy $CC am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']` eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o if test "$am_t" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi dnl Make sure AC_PROG_CC is never called again, or it will override our dnl setting of CC. m4_define([AC_PROG_CC], [m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])]) ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997-2012 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 7 # 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 ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001-2012 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_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-2012 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_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # 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 ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file 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 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 if test "$[2]" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done 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]) # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi AC_CONFIG_COMMANDS_PRE( [AC_MSG_CHECKING([that generated files are newer than configure]) if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi AC_MSG_RESULT([done])]) rm -f conftest.file ]) # Copyright (C) 2001-2012 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_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-2012 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 3 # _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-2012 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 3 # _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. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} 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 # Autoconf support for the Vala compiler # Copyright (C) 2008-2012 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 # Check whether the Vala compiler exists in $PATH. If it is found, the # variable VALAC is set. Optionally a minimum release number of the # compiler can be requested. # # AM_PROG_VALAC([MINIMUM-VERSION]) # -------------------------------- AC_DEFUN([AM_PROG_VALAC], [AC_PATH_PROG([VALAC], [valac], []) AS_IF([test -z "$VALAC"], [AC_MSG_WARN([No Vala compiler found. You will not be able to compile .vala source files.])], [AS_IF([test -n "$1"], [AC_MSG_CHECKING([$VALAC is at least version $1]) am__vala_version=`$VALAC --version | sed 's/Vala *//'` AS_VERSION_COMPARE([$1], ["$am__vala_version"], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]) AC_MSG_ERROR([Vala $1 not found.], [77])])])]) ]) m4_include([m4/intltool.m4]) m4_include([m4/libtool.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/vala.m4]) libskk-1.0.0/compile0000755000076400007640000001533711774201545011315 00000000000000#! /bin/sh # Wrapper for compilers which do not understand '-c -o'. scriptversion=2012-01-04.17; # UTC # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009, 2010, 2012 Free # Software Foundation, Inc. # Written by Tom Tromey . # # 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. # This file is maintained in Automake, please report # bugs to or send patches to # . nl=' ' # We need space, tab and new line, in precisely that order. Quoting is # there to prevent tools from complaining about whitespace usage. IFS=" "" $nl" file_conv= # func_file_conv build_file lazy # Convert a $build file to $host form and store it in $file # Currently only supports Windows hosts. If the determined conversion # type is listed in (the comma separated) LAZY, no conversion will # take place. func_file_conv () { file=$1 case $file in / | /[!/]*) # absolute file, and not a UNC file if test -z "$file_conv"; then # lazily determine how to convert abs files case `uname -s` in MINGW*) file_conv=mingw ;; CYGWIN*) file_conv=cygwin ;; *) file_conv=wine ;; esac fi case $file_conv/,$2, in *,$file_conv,*) ;; mingw/*) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; cygwin/*) file=`cygpath -m "$file" || echo "$file"` ;; wine/*) file=`winepath -w "$file" || echo "$file"` ;; esac ;; esac } # func_cl_wrapper cl arg... # Adjust compile command to suit cl func_cl_wrapper () { # Assume a capable shell lib_path= shared=: linker_opts= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. eat=1 case $2 in *.o | *.[oO][bB][jJ]) func_file_conv "$2" set x "$@" -Fo"$file" shift ;; *) func_file_conv "$2" set x "$@" -Fe"$file" shift ;; esac ;; -I*) func_file_conv "${1#-I}" mingw set x "$@" -I"$file" shift ;; -l*) lib=${1#-l} found=no save_IFS=$IFS IFS=';' for dir in $lib_path $LIB do IFS=$save_IFS if $shared && test -f "$dir/$lib.dll.lib"; then found=yes set x "$@" "$dir/$lib.dll.lib" break fi if test -f "$dir/$lib.lib"; then found=yes set x "$@" "$dir/$lib.lib" break fi done IFS=$save_IFS test "$found" != yes && set x "$@" "$lib.lib" shift ;; -L*) func_file_conv "${1#-L}" if test -z "$lib_path"; then lib_path=$file else lib_path="$lib_path;$file" fi linker_opts="$linker_opts -LIBPATH:$file" ;; -static) shared=false ;; -Wl,*) arg=${1#-Wl,} save_ifs="$IFS"; IFS=',' for flag in $arg; do IFS="$save_ifs" linker_opts="$linker_opts $flag" done IFS="$save_ifs" ;; -Xlinker) eat=1 linker_opts="$linker_opts $2" ;; -*) set x "$@" "$1" shift ;; *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) func_file_conv "$1" set x "$@" -Tp"$file" shift ;; *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) func_file_conv "$1" mingw set x "$@" "$file" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -n "$linker_opts"; then linker_opts="-link$linker_opts" fi exec "$@" $linker_opts exit 1 } eat= case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: compile [--help] [--version] PROGRAM [ARGS] Wrapper for compilers which do not understand '-c -o'. Remove '-o dest.o' from ARGS, run PROGRAM with the remaining arguments, and rename the output as expected. If you are trying to build a whole package this is not the right script to run: please start by reading the file 'INSTALL'. Report bugs to . EOF exit $? ;; -v | --v*) echo "compile $scriptversion" exit $? ;; cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac ofile= cfile= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. # So we strip '-o arg' only if arg is an object. eat=1 case $2 in *.o | *.obj) ofile=$2 ;; *) set x "$@" -o "$2" shift ;; esac ;; *.c) cfile=$1 set x "$@" "$1" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -z "$ofile" || test -z "$cfile"; then # If no '-o' option was seen then we might have been invoked from a # pattern rule where we don't need one. That is ok -- this is a # normal compilation that the losing compiler can handle. If no # '.c' file was seen then we are probably linking. That is also # ok. exec "$@" fi # Name of file we expect compiler to create. cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` # Create the lock directory. # Note: use '[/\\:.-]' here to ensure that we don't use the same name # that we are using for the .o file. Also, base the name on the expected # object file name, since that is what matters with a parallel build. lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d while true; do if mkdir "$lockdir" >/dev/null 2>&1; then break fi sleep 1 done # FIXME: race condition here if user kills between mkdir and trap. trap "rmdir '$lockdir'; exit 1" 1 2 15 # Run the compile. "$@" ret=$? if test -f "$cofile"; then test "$cofile" = "$ofile" || mv "$cofile" "$ofile" elif test -f "${cofile}bj"; then test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" fi rmdir "$lockdir" exit $ret # 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: libskk-1.0.0/README0000664000076400007640000000355311742742675010627 00000000000000libskk -- a library to deal with Japanese kana-to-kanji conversion method Features: * Support basic features of SKK including: new word registration, completion, numeric conversion, abbrev mode, kuten input, hankaku-katakana input, Lisp expression evaluation (concat only), and re-conversion. * Support various typing rules including: romaji-to-kana, AZIK, TUT-Code, and NICOLA. * Support various dictionary types including: file dictionary (such as SKK-JISYO.[SML]), user dictionary, skkserv, and CDB format dictionary. * GObject based API with gobject-introspection support. * Experimental support for intelligent kana-to-kanji conversion based on Viterbi algorithm. Documentation: * file:tests/context.c for basic usage * file:rules/README.rules for keymap and romaji-to-kana table customization * http://du-a.org/docs/libskk/libskk/ for Vala binding reference * http://du-a.org/docs/gtk-doc/libskk/html/ for C binding reference Test: $ echo "A i SPC" | skk { "input": "A i SPC", "output": "", "preedit": "▼愛" } $ echo "K a p a SPC K a SPC" | skk { "input": "K a p a SPC K a SPC", "output": "", "preedit": "â–¼ã‹ã±ã€â–¼èšŠã€‘" } $ echo "r k" | skk -r tutcode { "input": "r k", "output": "ã‚", "preedit": "" } $ echo "a (usleep 50000) b (usleep 200000)" | skk -r nicola { "input": "a (usleep 50000) b (usleep 200000)", "output": "ã†ã¸", "preedit": "" } License: GPLv3+ Copyright (C) 2011-2012 Daiki Ueno Copyright (C) 2011-2012 Red Hat, Inc. This file is free software; as a special exception the author gives unlimited permission to copy and/or distribute it, with or without modifications, as long as this notice is preserved. This file 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. libskk-1.0.0/config.h.in0000664000076400007640000000503012016556763011756 00000000000000/* config.h.in. Generated from configure.ac by autoheader. */ /* Define to the read-only architecture-independent data directory. */ #undef GETTEXT_PACKAGE /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* 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 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 the sub-directory in which libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* Define to 1 if your C compiler doesn't accept -c and -o together. */ #undef NO_MINUS_C_MINUS_O /* 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 /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Enable extensions on AIX 3, Interix. */ #ifndef _ALL_SOURCE # undef _ALL_SOURCE #endif /* Enable GNU extensions on systems that have them. */ #ifndef _GNU_SOURCE # undef _GNU_SOURCE #endif /* Enable threading extensions on Solaris. */ #ifndef _POSIX_PTHREAD_SEMANTICS # undef _POSIX_PTHREAD_SEMANTICS #endif /* Enable extensions on HP NonStop. */ #ifndef _TANDEM_SOURCE # undef _TANDEM_SOURCE #endif /* Enable general extensions on Solaris. */ #ifndef __EXTENSIONS__ # undef __EXTENSIONS__ #endif /* Version number of package */ #undef VERSION /* Define to 1 if on MINIX. */ #undef _MINIX /* Define to 2 if the system does not provide POSIX.1 features except with this defined. */ #undef _POSIX_1_SOURCE /* Define to 1 if you need to in order for `stat' and other things to work. */ #undef _POSIX_SOURCE libskk-1.0.0/Makefile.in0000664000076400007640000007107412016556763012013 00000000000000# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 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@ # Copyright (C) 2011-2012 Daiki Ueno # Copyright (C) 2011-2012 Red Hat, 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 3 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, see . # From http://cgit.freedesktop.org/telepathy/telepathy-glib/tree/tools/lcov.am VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } 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@ @HAVE_VALADOC_TRUE@am__append_1 = docs DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(top_srcdir)/configure $(top_srcdir)/lcov.mk AUTHORS COPYING \ ChangeLog INSTALL NEWS compile config.guess config.sub depcomp \ install-sh ltmain.sh missing subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \ $(top_srcdir)/m4/libtool.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/vala.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 = $(install_sh) -d CONFIG_HEADER = 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 am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac 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 \ cscope distdir dist dist-all distcheck ETAGS = etags CTAGS = ctags CSCOPE = cscope DIST_SUBDIRS = libskk rules tools tests po docs DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ if test -d "$(distdir)"; then \ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi am__post_remove_distdir = $(am__remove_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 DIST_TARGETS = dist-gzip distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CODE_COVERAGE_CFLAGS = @CODE_COVERAGE_CFLAGS@ CODE_COVERAGE_LDFLAGS = @CODE_COVERAGE_LDFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FEP = @FEP@ FGREP = @FGREP@ GEE_CFLAGS = @GEE_CFLAGS@ GEE_LIBS = @GEE_LIBS@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@ INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@ INTROSPECTION_LIBS = @INTROSPECTION_LIBS@ INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@ INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@ INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@ JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@ JSON_GLIB_LIBS = @JSON_GLIB_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBFEP_CFLAGS = @LIBFEP_CFLAGS@ LIBFEP_LIBS = @LIBFEP_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBSKK_CFLAGS = @LIBSKK_CFLAGS@ LIBSKK_LIBS = @LIBSKK_LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ 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@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SKK_API_MAJOR_VERSION = @SKK_API_MAJOR_VERSION@ SKK_API_MINOR_VERSION = @SKK_API_MINOR_VERSION@ SKK_API_PC_VERSION = @SKK_API_PC_VERSION@ SKK_API_VERSION = @SKK_API_VERSION@ SKK_LIBRARY_SUFFIX = @SKK_LIBRARY_SUFFIX@ SKK_LIBRARY_SUFFIX_U = @SKK_LIBRARY_SUFFIX_U@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VALAC = @VALAC@ VALADOC = @VALADOC@ VALADOC_CFLAGS = @VALADOC_CFLAGS@ VALADOC_LIBS = @VALADOC_LIBS@ VALAFLAGS = @VALAFLAGS@ VALGRIND = @VALGRIND@ VALGRIND_OPTS = @VALGRIND_OPTS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ 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@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ 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@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = libskk rules tools tests po $(am__append_1) DISTCHECK_CONFIGURE_FLAGS = --enable-docs --enable-fep ACLOCAL_AMFLAGS = -I m4 GITIGNOREFILES = \ INSTALL \ aclocal.m4 \ compile \ config.guess \ config.h.in \ config.sub \ depcomp \ install-sh \ ltmain.sh \ missing \ mkinstalldirs \ `find "m4" -type f -name "*.m4" ! -name "vala.m4" -print` \ $(top_builddir)/lcov.html/* \ $(NULL) MAINTAINERCLEANFILES = \ $(top_builddir)/lcov.info \ $(srcdir)/ChangeLog \ $(NULL) EXTRA_DIST = lcov.mk all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am--refresh: Makefile @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/lcov.mk $(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_srcdir)/lcov.mk: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(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; else :; fi @if test ! -f $@; then $(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: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool config.lt # 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) $(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; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ 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" 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 cscopelist-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) cscopelist); \ 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" cscope: cscope.files test ! -s cscope.files \ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) clean-cscope: -rm -f cscope.files cscope.files: clean-cscope cscopelist-recursive cscopelist cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files 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 \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ 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__post_remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__post_remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__post_remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__post_remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__post_remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__post_remove_distdir) dist dist-all: $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' $(am__post_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.lz*) \ lzip -dc $(distdir).tar.lz | $(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 u+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" \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(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__post_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: @test -n '$(distuninstallcheck_dir)' || { \ echo 'ERROR: trying to run $@ with an empty' \ '$$(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ $(am__cd) '$(distuninstallcheck_dir)' || { \ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { 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 config.h 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: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi 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-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-local 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 $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic \ maintainer-clean-local 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) all \ cscopelist-recursive 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-cscope \ clean-generic clean-libtool cscope cscopelist \ cscopelist-recursive ctags ctags-recursive dist dist-all \ dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ dist-xz \ dist-zip distcheck distclean distclean-generic distclean-hdr \ distclean-libtool distclean-local 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-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic maintainer-clean-local mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am distclean-local: if test "x$(srcdir)" = "x."; then :; else \ rm -f ChangeLog; \ fi maintainer-clean-local: maintainer-clean-local-lcov maintainer-clean-local-lcov: rm -rf $(top_builddir)/lcov.html .PHONY: maintainer-clean-local-lcov ChangeLog: @echo Creating $@ @if test -d "$(srcdir)/.git"; then \ (GIT_DIR=$(top_srcdir)/.git ./missing --run git log --stat) | fmt --split-only > $@.tmp \ && mv -f $@.tmp $@ \ || ($(RM) $@.tmp; \ echo Failed to generate ChangeLog, your ChangeLog may be outdated >&2; \ (test -f $@ || echo git-log is required to generate this file >> $@)); \ else \ test -f $@ || \ (echo A git checkout and git-log is required to generate ChangeLog >&2 && \ echo A git checkout and git-log is required to generate this file >> $@); \ fi .PHONY: ChangeLog lcov-reset: lcov --directory @top_srcdir@ --zerocounters lcov-report: lcov --directory @top_srcdir@ --capture \ --output-file @top_builddir@/lcov.info $(mkdir_p) @top_builddir@/lcov.html git_commit=`GIT_DIR=@top_srcdir@/.git git log -1 --pretty=format:%h 2>/dev/null`;\ genhtml --title "@PACKAGE_STRING@ $$git_commit" \ --output-directory @top_builddir@/lcov.html lcov.info @echo @echo 'lcov report can be found in:' @echo 'file://@abs_top_builddir@/lcov.html/index.html' @echo lcov-check: $(MAKE) lcov-reset $(MAKE) check $(LCOV_CHECK_ARGS) $(MAKE) lcov-report # Code coverage support -include $(top_srcdir)/git.mk # 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: libskk-1.0.0/configure0000775000076400007640000172030212016556763011651 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.68 for libskk 1.0.0. # # 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 test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || 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 ueno@unixuser.org $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'" SHELL=${CONFIG_SHELL-/bin/sh} as_awk_strverscmp=' # Use only awk features that work with 7th edition Unix awk (1978). # My, what an old awk you have, Mr. Solaris! END { while (length(v1) && length(v2)) { # Set d1 to be the next thing to compare from v1, and likewise for d2. # Normally this is a single character, but if v1 and v2 contain digits, # compare them as integers and fractions as strverscmp does. if (v1 ~ /^[0-9]/ && v2 ~ /^[0-9]/) { # Split v1 and v2 into their leading digit string components d1 and d2, # and advance v1 and v2 past the leading digit strings. for (len1 = 1; substr(v1, len1 + 1) ~ /^[0-9]/; len1++) continue for (len2 = 1; substr(v2, len2 + 1) ~ /^[0-9]/; len2++) continue d1 = substr(v1, 1, len1); v1 = substr(v1, len1 + 1) d2 = substr(v2, 1, len2); v2 = substr(v2, len2 + 1) if (d1 ~ /^0/) { if (d2 ~ /^0/) { # Compare two fractions. while (d1 ~ /^0/ && d2 ~ /^0/) { d1 = substr(d1, 2); len1-- d2 = substr(d2, 2); len2-- } if (len1 != len2 && ! (len1 && len2 && substr(d1, 1, 1) == substr(d2, 1, 1))) { # The two components differ in length, and the common prefix # contains only leading zeros. Consider the longer to be less. d1 = -len1 d2 = -len2 } else { # Otherwise, compare as strings. d1 = "x" d1 d2 = "x" d2 } } else { # A fraction is less than an integer. exit 1 } } else { if (d2 ~ /^0/) { # An integer is greater than a fraction. exit 2 } else { # Compare two integers. d1 += 0 d2 += 0 } } } else { # The normal case, without worrying about digits. d1 = substr(v1, 1, 1); v1 = substr(v1, 2) d2 = substr(v2, 1, 1); v2 = substr(v2, 2) } if (d1 < d2) exit 1 if (d1 > d2) exit 2 } # Beware Solaris /usr/xgp4/bin/awk (at least through Solaris 10), # which mishandles some comparisons of empty strings to integers. if (length(v2)) exit 1 if (length(v1)) exit 2 } ' 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='libskk' PACKAGE_TARNAME='libskk' PACKAGE_VERSION='1.0.0' PACKAGE_STRING='libskk 1.0.0' PACKAGE_BUGREPORT='ueno@unixuser.org' PACKAGE_URL='' # 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" ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS VALGRIND_OPTS VALGRIND CODE_COVERAGE_LDFLAGS CODE_COVERAGE_CFLAGS HAVE_VALADOC_FALSE HAVE_VALADOC_TRUE VALADOC VALADOC_LIBS VALADOC_CFLAGS ENABLE_DOCS_FALSE ENABLE_DOCS_TRUE ENABLE_FEP_FALSE ENABLE_FEP_TRUE FEP LIBFEP_LIBS LIBFEP_CFLAGS GETTEXT_PACKAGE VALAFLAGS VALAC HAVE_INTROSPECTION_FALSE HAVE_INTROSPECTION_TRUE INTROSPECTION_MAKEFILE INTROSPECTION_LIBS INTROSPECTION_CFLAGS INTROSPECTION_TYPELIBDIR INTROSPECTION_GIRDIR INTROSPECTION_GENERATE INTROSPECTION_COMPILER INTROSPECTION_SCANNER LIBSKK_LIBS LIBSKK_CFLAGS JSON_GLIB_LIBS JSON_GLIB_CFLAGS GEE_LIBS GEE_CFLAGS GIO_LIBS GIO_CFLAGS PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG LT_AGE LT_REVISION LT_CURRENT OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL MANIFEST_TOOL RANLIB ac_ct_AR AR DLLTOOL OBJDUMP LN_S NM ac_ct_DUMPBIN DUMPBIN LD FGREP SED host_os host_vendor host_cpu host build_os build_vendor build_cpu build LIBTOOL DATADIRNAME ALL_LINGUAS INTLTOOL_PERL GMSGFMT MSGFMT MSGMERGE XGETTEXT 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__v_merge_options_0 intltool__v_merge_options_ INTLTOOL_V_MERGE_OPTIONS INTLTOOL__v_MERGE_0 INTLTOOL__v_MERGE_ INTLTOOL_V_MERGE AM_DEFAULT_VERBOSITY INTLTOOL_EXTRACT INTLTOOL_MERGE INTLTOOL_UPDATE USE_NLS EGREP GREP CPP am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC MAINT MAINTAINER_MODE_FALSE MAINTAINER_MODE_TRUE 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 SKK_LIBRARY_SUFFIX_U SKK_LIBRARY_SUFFIX SKK_API_PC_VERSION SKK_API_MINOR_VERSION SKK_API_MAJOR_VERSION SKK_API_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_maintainer_mode enable_dependency_tracking enable_nls enable_static enable_shared with_pic enable_fast_install with_gnu_ld with_sysroot enable_libtool_lock enable_introspection enable_fep enable_docs enable_code_coverage enable_valgrind_tests ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR GIO_CFLAGS GIO_LIBS GEE_CFLAGS GEE_LIBS JSON_GLIB_CFLAGS JSON_GLIB_LIBS LIBFEP_CFLAGS LIBFEP_LIBS VALADOC_CFLAGS VALADOC_LIBS' # 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 libskk 1.0.0 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/libskk] --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 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 libskk 1.0.0:";; 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] --disable-maintainer-mode disable make rules and dependencies not useful (and sometimes confusing) to the casual installer --enable-dependency-tracking do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build --disable-nls do not use Native Language Support --enable-static[=PKGS] build static libraries [default=no] --enable-shared[=PKGS] build shared libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --enable-introspection=[no/auto/yes] Enable introspection for this build --enable-fep compile with libfep --enable-docs Enable documentation generation --enable-code-coverage compile with code coverage code --enable-valgrind-tests run self tests under valgrind Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-sysroot=DIR Search for dependent libraries within DIR (or the compiler's sysroot if not specified). 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 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 GIO_CFLAGS C compiler flags for GIO, overriding pkg-config GIO_LIBS linker flags for GIO, overriding pkg-config GEE_CFLAGS C compiler flags for GEE, overriding pkg-config GEE_LIBS linker flags for GEE, overriding pkg-config JSON_GLIB_CFLAGS C compiler flags for JSON_GLIB, overriding pkg-config JSON_GLIB_LIBS linker flags for JSON_GLIB, overriding pkg-config LIBFEP_CFLAGS C compiler flags for LIBFEP, overriding pkg-config LIBFEP_LIBS linker flags for LIBFEP, overriding pkg-config VALADOC_CFLAGS C compiler flags for VALADOC, overriding pkg-config VALADOC_LIBS linker flags for VALADOC, overriding pkg-config 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 libskk configure 1.0.0 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_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_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 ueno@unixuser.org ## ## -------------------------------- ##" ) | 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_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_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_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_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 cat >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 libskk $as_me 1.0.0, 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 SKK_API_VERSION=1.0 SKK_API_MAJOR_VERSION=1 SKK_API_MINOR_VERSION=0 SKK_API_PC_VERSION=1.0 SKK_LIBRARY_SUFFIX="-$SKK_API_VERSION" SKK_LIBRARY_SUFFIX_U=`$as_echo "$SKK_LIBRARY_SUFFIX" | $as_tr_sh` am__api_version='1.12' 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; } # 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 ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file 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 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 if test "$2" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done 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; } # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi rm -f conftest.file 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; } 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='libskk' VERSION='1.0.0' 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"} # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # mkdir_p='$(MKDIR_P)' # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } # Check whether --enable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then : enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 $as_echo "$USE_MAINTAINER_MODE" >&6; } if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE 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='\' am__nodep='_no' 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". rm -rf conftest.dir 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 10 /bin/sh. echo '/* dummy */' > 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 ;; msvc7 | msvc7msys | 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 { $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 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 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 ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" if test "x$ac_cv_header_minix_config_h" = xyes; then : MINIX=yes else MINIX= fi if test "$MINIX" = yes; then $as_echo "#define _POSIX_SOURCE 1" >>confdefs.h $as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h $as_echo "#define _MINIX 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 $as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } if ${ac_cv_safe_to_define___extensions__+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # define __EXTENSIONS__ 1 $ac_includes_default int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_safe_to_define___extensions__=yes else ac_cv_safe_to_define___extensions__=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 $as_echo "$ac_cv_safe_to_define___extensions__" >&6; } test $ac_cv_safe_to_define___extensions__ = yes && $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h $as_echo "#define _ALL_SOURCE 1" >>confdefs.h $as_echo "#define _GNU_SOURCE 1" >>confdefs.h $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h 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". rm -rf conftest.dir 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 10 /bin/sh. echo '/* dummy */' > 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 ;; msvc7 | msvc7msys | 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 if test "x$CC" != xcc; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5 $as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5 $as_echo_n "checking whether cc understands -c and -o together... " >&6; } fi set dummy $CC; ac_cc=`$as_echo "$2" | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF # Make sure it works both with $CC and with simple cc. # We do the test twice because some compilers refuse to overwrite an # existing .o file with -o, though they will create one. ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5' rm -f conftest2.* if { { 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; } && test -f conftest2.$ac_objext && { { 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 eval ac_cv_prog_cc_${ac_cc}_c_o=yes if test "x$CC" != xcc; then # Test first that cc exists at all. if { ac_try='cc -c conftest.$ac_ext >&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_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5' rm -f conftest2.* if { { 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; } && test -f conftest2.$ac_objext && { { 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 # cc works too. : else # cc exists but doesn't like -o. eval ac_cv_prog_cc_${ac_cc}_c_o=no fi fi fi else eval ac_cv_prog_cc_${ac_cc}_c_o=no fi rm -f core conftest* fi if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; 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; } $as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h fi # FIXME: we rely on the cache variable name because # there is no other way. set dummy $CC am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o if test "$am_t" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi case $ac_cv_prog_cc_stdc in #( no) : ac_cv_prog_cc_c99=no; ac_cv_prog_cc_c89=no ;; #( *) : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C99" >&5 $as_echo_n "checking for $CC option to accept ISO C99... " >&6; } if ${ac_cv_prog_cc_c99+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c99=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include #include // Check varargs macros. These examples are taken from C99 6.10.3.5. #define debug(...) fprintf (stderr, __VA_ARGS__) #define showlist(...) puts (#__VA_ARGS__) #define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) static void test_varargs_macros (void) { int x = 1234; int y = 5678; debug ("Flag"); debug ("X = %d\n", x); showlist (The first, second, and third items.); report (x>y, "x is %d but y is %d", x, y); } // Check long long types. #define BIG64 18446744073709551615ull #define BIG32 4294967295ul #define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) #if !BIG_OK your preprocessor is broken; #endif #if BIG_OK #else your preprocessor is broken; #endif static long long int bignum = -9223372036854775807LL; static unsigned long long int ubignum = BIG64; struct incomplete_array { int datasize; double data[]; }; struct named_init { int number; const wchar_t *name; double average; }; typedef const char *ccp; static inline int test_restrict (ccp restrict text) { // See if C++-style comments work. // Iterate through items via the restricted pointer. // Also check for declarations in for loops. for (unsigned int i = 0; *(text+i) != '\0'; ++i) continue; return 0; } // Check varargs and va_copy. static void test_varargs (const char *format, ...) { va_list args; va_start (args, format); va_list args_copy; va_copy (args_copy, args); const char *str; int number; float fnumber; while (*format) { switch (*format++) { case 's': // string str = va_arg (args_copy, const char *); break; case 'd': // int number = va_arg (args_copy, int); break; case 'f': // float fnumber = va_arg (args_copy, double); break; default: break; } } va_end (args_copy); va_end (args); } int main () { // Check bool. _Bool success = false; // Check restrict. if (test_restrict ("String literal") == 0) success = true; char *restrict newvar = "Another string"; // Check varargs. test_varargs ("s, d' f .", "string", 65, 34.234); test_varargs_macros (); // Check flexible array members. struct incomplete_array *ia = malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); ia->datasize = 10; for (int i = 0; i < ia->datasize; ++i) ia->data[i] = i * 1.234; // Check named initializers. struct named_init ni = { .number = 34, .name = L"Test wide string", .average = 543.34343, }; ni.number = 58; int dynamic_array[ni.number]; dynamic_array[ni.number - 1] = 543; // work around unused variable warnings return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x' || dynamic_array[ni.number - 1] != 543); ; return 0; } _ACEOF for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -xc99=all -qlanglvl=extc99 do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c99=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c99" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c99" 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_c99" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 $as_echo "$ac_cv_prog_cc_c99" >&6; } ;; esac if test "x$ac_cv_prog_cc_c99" != xno; then : ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 else { $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 : ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 else ac_cv_prog_cc_stdc=no fi fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO Standard C" >&5 $as_echo_n "checking for $CC option to accept ISO Standard C... " >&6; } if ${ac_cv_prog_cc_stdc+:} false; then : $as_echo_n "(cached) " >&6 fi case $ac_cv_prog_cc_stdc in #( no) : { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; #( '') : { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; #( *) : { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_stdc" >&5 $as_echo "$ac_cv_prog_cc_stdc" >&6; } ;; esac { $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; } case "$am__api_version" in 1.01234) as_fn_error $? "Automake 1.5 or newer is required to use intltool" "$LINENO" 5 ;; *) ;; esac INTLTOOL_REQUIRED_VERSION_AS_INT=`echo | 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; }'` if test -n ""; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intltool >= " >&5 $as_echo_n "checking for intltool >= ... " >&6; } { $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 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 if test -z "$AM_DEFAULT_VERBOSITY"; then AM_DEFAULT_VERBOSITY=1 fi INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))' INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))' INTLTOOL__v_MERGE_0='@echo " ITMRG " $@;' INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))' intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))' intltool__v_merge_options_0='-q' INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -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) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -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) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -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) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -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) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< $@' INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -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) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -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) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -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) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -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) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -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) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< $@' else INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.$$RANDOM && mkdir $$_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u $$_it_tmp_dir $< $@ && rmdir $$_it_tmp_dir' fi INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -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) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -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) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -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) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -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) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -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) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -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) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -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 "x" != "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 # define PACKAGE_VERSION_* variables # 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=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5 $as_echo_n "checking for library containing strerror... " >&6; } if ${ac_cv_search_strerror+:} 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 strerror (); int main () { return strerror (); ; return 0; } _ACEOF for ac_lib in '' cposix; 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_strerror=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_strerror+:} false; then : break fi done if ${ac_cv_search_strerror+:} false; then : else ac_cv_search_strerror=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_strerror" >&5 $as_echo "$ac_cv_search_strerror" >&6; } ac_res=$ac_cv_search_strerror if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi { $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 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.4.2' macro_revision='1.3337' 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 # Backslashify 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' ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 $as_echo_n "checking how to print strings... " >&6; } # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "" } case "$ECHO" in printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 $as_echo "printf" >&6; } ;; print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 $as_echo "print -r" >&6; } ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 $as_echo "cat" >&6; } ;; esac { $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 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 "$DUMPBIN"; then : # Let the user override the test. else if test -n "$ac_tool_prefix"; then for ac_prog in dumpbin "link -dump" 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 "link -dump" 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 case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols" ;; *) DUMPBIN=: ;; esac 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:$LINENO: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: 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; ;; mint*) # On MiNT this can take a long time and run out of memory. 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 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; 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"`env echo "$teststring$teststring" 2>/dev/null` \ = "X$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%"$_lt_dummy"}, \ = c,a/b,b/c, \ && 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 how to convert $build file names to $host format" >&5 $as_echo_n "checking how to convert $build file names to $host format... " >&6; } if ${lt_cv_to_host_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac fi to_host_file_cmd=$lt_cv_to_host_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 $as_echo "$lt_cv_to_host_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 $as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } if ${lt_cv_to_tool_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else #assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac fi to_tool_file_cmd=$lt_cv_to_tool_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 $as_echo "$lt_cv_to_tool_file_cmd" >&6; } { $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 cygwin* | mingw* | pw32* | cegcc*) if test "$GCC" != yes; then reload_cmds=false fi ;; 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. # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. if ( test "$lt_cv_nm_interface" = "BSD nm" && 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 # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' 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 ;; haiku*) 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])(-bit)?( [LM]SB)? 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 glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-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_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` fi ;; esac fi 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}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; 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_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # 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_DLLTOOL="${ac_tool_prefix}dlltool" $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 DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 $as_echo "$DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; 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_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # 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_DLLTOOL="dlltool" $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_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 $as_echo "$ac_ct_DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="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 DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi test -z "$DLLTOOL" && DLLTOOL=dlltool { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 $as_echo_n "checking how to associate runtime and link libraries... " >&6; } if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh # decide which to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd="$ECHO" ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 $as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO if test -n "$ac_tool_prefix"; then for ac_prog in ar 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_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$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 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 test -n "$AR" && break done fi if test -z "$AR"; then ac_ct_AR=$AR for ac_prog in ar 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_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="$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_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 test -n "$ac_ct_AR" && break done 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 fi : ${AR=ar} : ${AR_FLAGS=cru} { $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 $as_echo_n "checking for archiver @FILE support... " >&6; } if ${lt_cv_ar_at_file+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ar_at_file=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -ne 0; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 $as_echo "$lt_cv_ar_at_file" >&6; } if test "x$lt_cv_ar_at_file" = xno; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi 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 \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac # 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};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /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 lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # 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 /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif #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. */ LT_DLSYM_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_globsym_save_LIBS=$LIBS lt_globsym_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_globsym_save_LIBS CFLAGS=$lt_globsym_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 # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then nm_file_list_spec='@' fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 $as_echo_n "checking for sysroot... " >&6; } # Check whether --with-sysroot was given. if test "${with_sysroot+set}" = set; then : withval=$with_sysroot; else with_sysroot=no fi lt_sysroot= case ${with_sysroot} in #( yes) if test "$GCC" = yes; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 $as_echo "${with_sysroot}" >&6; } as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 $as_echo "${lt_sysroot:-no}" >&6; } # 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 '$LINENO' "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 ;; *-*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*) case $host in i?86-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD="${LD-ld}_sol2" fi ;; *) 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" if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. set dummy ${ac_tool_prefix}mt; 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_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$MANIFEST_TOOL"; then ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # 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_MANIFEST_TOOL="${ac_tool_prefix}mt" $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 MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL if test -n "$MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 $as_echo "$MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL # Extract the first word of "mt", so it can be a program name with args. set dummy mt; 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_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_MANIFEST_TOOL"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # 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_MANIFEST_TOOL="mt" $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_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL if test -n "$ac_ct_MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 $as_echo "$ac_ct_MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_MANIFEST_TOOL" = x; then MANIFEST_TOOL=":" 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 MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL fi else MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" fi test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 $as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } if ${lt_cv_path_mainfest_tool+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&5 if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 $as_echo "$lt_cv_path_mainfest_tool" >&6; } if test "x$lt_cv_path_mainfest_tool" != xyes; then MANIFEST_TOOL=: fi 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 there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&5 # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test $_lt_result -eq 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; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 $as_echo_n "checking for -force_load linker flag... " >&6; } if ${lt_cv_ld_force_load+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 echo "$AR cru libconftest.a conftest.o" >&5 $AR cru libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&5 elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then lt_cv_ld_force_load=yes else cat conftest.err >&5 fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 $as_echo "$lt_cv_ld_force_load" >&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" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac 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=no 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 --with-pic was given. if test "${with_pic+set}" = set; then : withval=$with_pic; lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for lt_pkg in $withval; do IFS="$lt_save_ifs" if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS="$lt_save_ifs" ;; esac 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 # 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 "$cc_temp" | $SED "s%.*/%%; 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 case $cc_basename in nvcc*) lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; *) lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; esac { $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:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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= 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' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static= ;; 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 case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 lt_prog_compiler_wl='-Xlinker ' if test -n "$lt_prog_compiler_pic"; then lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" fi ;; 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 | kopensolaris*-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' ;; nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # 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* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) # 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='' ;; *Sun\ F* | *Sun*Fortran*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Intel*\ [CF]*Compiler*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; *Portland\ Group*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; 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* | sunf77* | sunf90* | sunf95*) 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}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if ${lt_cv_prog_compiler_pic+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic=$lt_prog_compiler_pic fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 $as_echo "$lt_cv_prog_compiler_pic" >&6; } lt_prog_compiler_pic=$lt_cv_prog_compiler_pic # # 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:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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 "$_lt_linker_boilerplate" | $SED '/^$/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:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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_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 # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; *\ \(GNU\ Binutils\)\ [3-9]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test "$lt_use_gnu_ld_interface" = 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 *GNU\ gold*) supports_anon_versioning=yes ;; *\ [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.19, 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 install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _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' export_dynamic_flag_spec='${wl}--export-all-symbols' 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/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' 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 ;; haiku*) archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' link_all_deplibs=yes ;; 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 | kopensolaris*-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=' $pic_flag' 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; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # 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; func_echo_all \"$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]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes ;; 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; func_echo_all \"$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* | bgf* | bgxlf* | mpixlf*) # 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='${wl}-rpath ${wl}$libdir' archive_cmds='$LD -shared $libobjs $deplibs $linker_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 $linker_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 $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $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 $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $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 $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $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 # Also, AIX nm treats weak defined symbols like other global # defined symbols, whereas GNU nm marks them as "W". 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") || (\$ 2 == "W")) && (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. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else 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 } }' lt_cv_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 "$lt_cv_aix_libpath_"; then lt_cv_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 "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath_ 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 func_echo_all "${wl}${allow_undefined_flag}"; 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. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else 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 } }' lt_cv_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 "$lt_cv_aix_libpath_"; then lt_cv_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 "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath_ 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' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' fi 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. case $cc_basename in cl*) # Native MSVC hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported always_export_symbols=yes file_list_spec='@' # 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 $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, )='true' enable_shared_with_static_runtimes=yes exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib old_postinstall_cmds='chmod 644 $oldlib' postlink_cmds='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper 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 `func_echo_all "$deplibs" | $SED '\''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' enable_shared_with_static_runtimes=yes ;; esac ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported if test "$lt_cv_ld_force_load" = "yes"; then whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec='' fi 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=func_echo_all 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 ;; # 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 $pic_flag -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 $pic_flag ${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 && test "$with_gnu_ld" = no; then archive_cmds='$CC -shared $pic_flag ${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_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 && test "$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 $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared $pic_flag ${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' ;; *) # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 $as_echo_n "checking if $CC understands -b... " >&6; } if ${lt_cv_prog_compiler__b+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler__b=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -b" 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 "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler__b=yes fi else lt_cv_prog_compiler__b=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 $as_echo "$lt_cv_prog_compiler__b" >&6; } if test x"$lt_cv_prog_compiler__b" = xyes; then archive_cmds='$CC -b ${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 ;; 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 $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${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. # This should be the same for all languages, so no per-tag cache variable. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 $as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } if ${lt_cv_irix_exported_symbol+:} false; then : $as_echo_n "(cached) " >&6 else 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 : lt_cv_irix_exported_symbol=yes else lt_cv_irix_exported_symbol=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_irix_exported_symbol" >&5 $as_echo "$lt_cv_irix_exported_symbol" >&6; } if test "$lt_cv_irix_exported_symbol" = yes; then archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -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" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${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" && func_echo_all "-set_version $verstring"` -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} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${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" && func_echo_all "-set_version $verstring"` -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 "-set_version $verstring"` -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 $pic_flag ${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 $pic_flag ${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; } if ${lt_cv_archive_cmds_need_lc+:} false; then : $as_echo_n "(cached) " >&6 else $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 lt_cv_archive_cmds_need_lc=no else lt_cv_archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 $as_echo "$lt_cv_archive_cmds_need_lc" >&6; } archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc ;; 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 case $host_os in mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; *) lt_sed_strip_eq="s,=/,/,g" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # 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 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # 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; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's,/\([A-Za-z]:\),\1,g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` 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 # correct to gnu/linux during the next big refactor 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 # correct to gnu/linux during the next big refactor 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=`func_echo_all "$lib" | $SED '\''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 # correct to gnu/linux during the next big refactor 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,$cc_basename in yes,*) # gcc 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="$sys_lib_search_path_spec /usr/lib/w32api" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; 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 dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' library_names_spec='${libname}.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec="$LIB" if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. 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 # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # 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' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # 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 # correct to gnu/linux during the next big refactor 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 ;; 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[23].*) 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 # correct to gnu/linux during the next big refactor 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 ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" 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=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' 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' # or fails outright, so override atomically: install_override_mode=555 ;; interix[3-9]*) version_type=linux # correct to gnu/linux during the next big refactor 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 # correct to gnu/linux during the next big refactor 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 glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux # correct to gnu/linux during the next big refactor 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 if ${lt_cv_shlibpath_overrides_runpath+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_shlibpath_overrides_runpath=no 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 : lt_cv_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 fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # 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 # Add ABI-specific directories to the system library path. sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" # 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;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $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 # correct to gnu/linux during the next big refactor 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 # correct to gnu/linux during the next big refactor 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 # correct to gnu/linux during the next big refactor 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 # correct to gnu/linux during the next big refactor 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 # correct to gnu/linux during the next big refactor 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 # correct to gnu/linux during the next big refactor 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 $LINENO "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 /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 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; else puts (dlerror ()); } /* 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 $LINENO "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 /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 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; else puts (dlerror ()); } /* 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: # If library source has changed since last release, increment revision # If public symbols have been added, removed or changed since last release, # increment current and set revision to 0 # If public symbols have been added since last release, increment age # If public symbols have been removed since last release, set age to 0 LT_CURRENT=0 LT_REVISION=0 LT_AGE=0 # check gio 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 pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GIO" >&5 $as_echo_n "checking for GIO... " >&6; } if test -n "$GIO_CFLAGS"; then pkg_cv_GIO_CFLAGS="$GIO_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gio-2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gio-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GIO_CFLAGS=`$PKG_CONFIG --cflags "gio-2.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$GIO_LIBS"; then pkg_cv_GIO_LIBS="$GIO_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gio-2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gio-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GIO_LIBS=`$PKG_CONFIG --libs "gio-2.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 GIO_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gio-2.0" 2>&1` else GIO_PKG_ERRORS=`$PKG_CONFIG --print-errors "gio-2.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GIO_PKG_ERRORS" >&5 as_fn_error $? "can't find gio-2.0" "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? "can't find gio-2.0" "$LINENO" 5 else GIO_CFLAGS=$pkg_cv_GIO_CFLAGS GIO_LIBS=$pkg_cv_GIO_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi # check gee pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GEE" >&5 $as_echo_n "checking for GEE... " >&6; } if test -n "$GEE_CFLAGS"; then pkg_cv_GEE_CFLAGS="$GEE_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gee-1.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gee-1.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GEE_CFLAGS=`$PKG_CONFIG --cflags "gee-1.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$GEE_LIBS"; then pkg_cv_GEE_LIBS="$GEE_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gee-1.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gee-1.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GEE_LIBS=`$PKG_CONFIG --libs "gee-1.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 GEE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gee-1.0" 2>&1` else GEE_PKG_ERRORS=`$PKG_CONFIG --print-errors "gee-1.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GEE_PKG_ERRORS" >&5 as_fn_error $? "can't find gee-1.0" "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? "can't find gee-1.0" "$LINENO" 5 else GEE_CFLAGS=$pkg_cv_GEE_CFLAGS GEE_LIBS=$pkg_cv_GEE_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi # check json-glib pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for JSON_GLIB" >&5 $as_echo_n "checking for JSON_GLIB... " >&6; } if test -n "$JSON_GLIB_CFLAGS"; then pkg_cv_JSON_GLIB_CFLAGS="$JSON_GLIB_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"json-glib-1.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "json-glib-1.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_JSON_GLIB_CFLAGS=`$PKG_CONFIG --cflags "json-glib-1.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$JSON_GLIB_LIBS"; then pkg_cv_JSON_GLIB_LIBS="$JSON_GLIB_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"json-glib-1.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "json-glib-1.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_JSON_GLIB_LIBS=`$PKG_CONFIG --libs "json-glib-1.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 JSON_GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "json-glib-1.0" 2>&1` else JSON_GLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors "json-glib-1.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$JSON_GLIB_PKG_ERRORS" >&5 as_fn_error $? "can't find json-glib-1.0" "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? "can't find json-glib-1.0" "$LINENO" 5 else JSON_GLIB_CFLAGS=$pkg_cv_JSON_GLIB_CFLAGS JSON_GLIB_LIBS=$pkg_cv_JSON_GLIB_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi LIBSKK_CFLAGS="$GIO_CFLAGS $GEE_CFLAGS $JSON_GLIB_CFLAGS" LIBSKK_LIBS="$GIO_LIBS $GEE_LIBS $JSON_GLIB_LIBS" # Check whether --enable-introspection was given. if test "${enable_introspection+set}" = set; then : enableval=$enable_introspection; else enable_introspection=auto fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gobject-introspection" >&5 $as_echo_n "checking for gobject-introspection... " >&6; } case $enable_introspection in #( no) : found_introspection="no (disabled, use --enable-introspection to enable)" ;; #( yes) : if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-introspection-1.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gobject-introspection-1.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : else as_fn_error $? "gobject-introspection-1.0 is not installed" "$LINENO" 5 fi if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-introspection-1.0 >= 0.9.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gobject-introspection-1.0 >= 0.9.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then found_introspection=yes else as_fn_error $? "You need to have gobject-introspection >= 0.9.0 installed to build libskk" "$LINENO" 5 fi ;; #( auto) : if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-introspection-1.0 >= 0.9.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gobject-introspection-1.0 >= 0.9.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then found_introspection=yes else found_introspection=no fi enable_introspection=$found_introspection ;; #( *) : as_fn_error $? "invalid argument passed to --enable-introspection, should be one of [no/auto/yes]" "$LINENO" 5 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $found_introspection" >&5 $as_echo "$found_introspection" >&6; } INTROSPECTION_SCANNER= INTROSPECTION_COMPILER= INTROSPECTION_GENERATE= INTROSPECTION_GIRDIR= INTROSPECTION_TYPELIBDIR= if test "x$found_introspection" = "xyes"; then INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0` INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0` INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0` INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0` INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)" INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0` INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0` INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection fi if test "x$found_introspection" = "xyes"; then HAVE_INTROSPECTION_TRUE= HAVE_INTROSPECTION_FALSE='#' else HAVE_INTROSPECTION_TRUE='#' HAVE_INTROSPECTION_FALSE= fi # Extract the first word of "valac", so it can be a program name with args. set dummy valac; 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_VALAC+:} false; then : $as_echo_n "(cached) " >&6 else case $VALAC in [\\/]* | ?:[\\/]*) ac_cv_path_VALAC="$VALAC" # 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_VALAC="$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 VALAC=$ac_cv_path_VALAC if test -n "$VALAC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $VALAC" >&5 $as_echo "$VALAC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$VALAC"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: No Vala compiler found. You will not be able to compile .vala source files." >&5 $as_echo "$as_me: WARNING: No Vala compiler found. You will not be able to compile .vala source files." >&2;} else if test -n "0.14.0"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking $VALAC is at least version 0.14.0" >&5 $as_echo_n "checking $VALAC is at least version 0.14.0... " >&6; } am__vala_version=`$VALAC --version | sed 's/Vala *//'` as_arg_v1=0.14.0 as_arg_v2="$am__vala_version" awk "$as_awk_strverscmp" v1="$as_arg_v1" v2="$as_arg_v2" /dev/null case $? in #( 1) : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } ;; #( 0) : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } ;; #( 2) : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error 77 "Vala 0.14.0 not found." "$LINENO" 5 ;; #( *) : ;; esac fi fi # define GETTEXT_* variables GETTEXT_PACKAGE=libskk cat >>confdefs.h <<_ACEOF #define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" _ACEOF # Check whether --enable-fep was given. if test "${enable_fep+set}" = set; then : enableval=$enable_fep; enable_fep=$enableval else enable_fep=no fi if test x$enable_fep = xyes; then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBFEP" >&5 $as_echo_n "checking for LIBFEP... " >&6; } if test -n "$LIBFEP_CFLAGS"; then pkg_cv_LIBFEP_CFLAGS="$LIBFEP_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libfep-glib >= 0.0.7\""; } >&5 ($PKG_CONFIG --exists --print-errors "libfep-glib >= 0.0.7") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBFEP_CFLAGS=`$PKG_CONFIG --cflags "libfep-glib >= 0.0.7" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$LIBFEP_LIBS"; then pkg_cv_LIBFEP_LIBS="$LIBFEP_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libfep-glib >= 0.0.7\""; } >&5 ($PKG_CONFIG --exists --print-errors "libfep-glib >= 0.0.7") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBFEP_LIBS=`$PKG_CONFIG --libs "libfep-glib >= 0.0.7" 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 LIBFEP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libfep-glib >= 0.0.7" 2>&1` else LIBFEP_PKG_ERRORS=`$PKG_CONFIG --print-errors "libfep-glib >= 0.0.7" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$LIBFEP_PKG_ERRORS" >&5 enable_fep=no elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } enable_fep=no else LIBFEP_CFLAGS=$pkg_cv_LIBFEP_CFLAGS LIBFEP_LIBS=$pkg_cv_LIBFEP_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi ac_save_ifs="$IFS"; unset IFS for vala_pkg in $(echo "libfep-glib"); do vala_pkgs="$vala_pkgs --pkg $vala_pkg" vala_bindings="$vala_bindings $vala_pkg" done IFS="$ac_save_ifs" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $vala_bindings vala bindings" >&5 $as_echo_n "checking for $vala_bindings vala bindings... " >&6; } cat <<_ACEOF >conftest.vala void main(){} _ACEOF if vala_error=`$VALAC $vala_pkgs -q -o conftest$ac_exeext conftest.vala 2>&1`; then : vala_pkg_exists=yes else vala_pkg_exists=no fi if test x${vala_pkg_exists} = xno; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } enable_fep=no else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } : fi # Extract the first word of "fep", so it can be a program name with args. set dummy fep; 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_FEP+:} false; then : $as_echo_n "(cached) " >&6 else case $FEP in [\\/]* | ?:[\\/]*) ac_cv_path_FEP="$FEP" # 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_FEP="$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 FEP=$ac_cv_path_FEP if test -n "$FEP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FEP" >&5 $as_echo "$FEP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test x$enable_fep = xyes; then ENABLE_FEP_TRUE= ENABLE_FEP_FALSE='#' else ENABLE_FEP_TRUE='#' ENABLE_FEP_FALSE= fi # Check whether --enable-docs was given. if test "${enable_docs+set}" = set; then : enableval=$enable_docs; enable_docs=$enableval else enable_docs=no fi if test x$enable_docs = xyes; then ENABLE_DOCS_TRUE= ENABLE_DOCS_FALSE='#' else ENABLE_DOCS_TRUE='#' ENABLE_DOCS_FALSE= fi VALADOC_REQUIRED=0.3.1 have_valadoc=no if test x$enable_docs = xyes; then # make sure the library is new enough and the program exists pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for VALADOC" >&5 $as_echo_n "checking for VALADOC... " >&6; } if test -n "$VALADOC_CFLAGS"; then pkg_cv_VALADOC_CFLAGS="$VALADOC_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"valadoc-1.0 >= \$VALADOC_REQUIRED\""; } >&5 ($PKG_CONFIG --exists --print-errors "valadoc-1.0 >= $VALADOC_REQUIRED") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_VALADOC_CFLAGS=`$PKG_CONFIG --cflags "valadoc-1.0 >= $VALADOC_REQUIRED" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$VALADOC_LIBS"; then pkg_cv_VALADOC_LIBS="$VALADOC_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"valadoc-1.0 >= \$VALADOC_REQUIRED\""; } >&5 ($PKG_CONFIG --exists --print-errors "valadoc-1.0 >= $VALADOC_REQUIRED") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_VALADOC_LIBS=`$PKG_CONFIG --libs "valadoc-1.0 >= $VALADOC_REQUIRED" 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 VALADOC_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "valadoc-1.0 >= $VALADOC_REQUIRED" 2>&1` else VALADOC_PKG_ERRORS=`$PKG_CONFIG --print-errors "valadoc-1.0 >= $VALADOC_REQUIRED" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$VALADOC_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (valadoc-1.0 >= $VALADOC_REQUIRED) were not met: $VALADOC_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables VALADOC_CFLAGS and VALADOC_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "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. Alternatively, you may set the environment variables VALADOC_CFLAGS and VALADOC_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else VALADOC_CFLAGS=$pkg_cv_VALADOC_CFLAGS VALADOC_LIBS=$pkg_cv_VALADOC_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi # Extract the first word of "valadoc", so it can be a program name with args. set dummy valadoc; 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_VALADOC+:} false; then : $as_echo_n "(cached) " >&6 else case $VALADOC in [\\/]* | ?:[\\/]*) ac_cv_path_VALADOC="$VALADOC" # 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_VALADOC="$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_VALADOC" && ac_cv_path_VALADOC=":" ;; esac fi VALADOC=$ac_cv_path_VALADOC if test -n "$VALADOC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $VALADOC" >&5 $as_echo "$VALADOC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "$VALADOC" != :; then : have_valadoc=yes fi fi if test x$have_valadoc = xyes; then HAVE_VALADOC_TRUE= HAVE_VALADOC_FALSE='#' else HAVE_VALADOC_TRUE='#' HAVE_VALADOC_FALSE= fi if test "x$enable_docs" = "xyes" -a "x$have_valadoc" != "xyes"; then as_fn_error $? "Doc building requested but valadoc not installed." "$LINENO" 5 fi # Check whether --enable-code-coverage was given. if test "${enable_code_coverage+set}" = set; then : enableval=$enable_code_coverage; enable_code_coverage=$enableval else enable_code_coverage=no fi # Only enable code coverage if this isn't a release. if test "x$enable_code_coverage" = "xyes"; then CODE_COVERAGE_CFLAGS="-fprofile-arcs -ftest-coverage -O0 -ggdb" CODE_COVERAGE_LDFLAGS="-lgcov" fi # Check whether --enable-valgrind-tests was given. if test "${enable_valgrind_tests+set}" = set; then : enableval=$enable_valgrind_tests; enable_valgrind_tests=$enableval else enable_valgrind_tests=no fi # Run self-tests under valgrind? if test "x$enable_valgrind_tests" = "xyes"; then for ac_prog in valgrind 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_VALGRIND+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$VALGRIND"; then ac_cv_prog_VALGRIND="$VALGRIND" # 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_VALGRIND="$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 VALGRIND=$ac_cv_prog_VALGRIND if test -n "$VALGRIND"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $VALGRIND" >&5 $as_echo "$VALGRIND" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$VALGRIND" && break done fi if test -n "$VALGRIND"; then VALGRIND_OPTS="--leak-check=full --show-reachable=no --gen-suppressions=all --num-callers=20 --error-exitcode=0 --log-file=valgrind.log.%p" fi ac_config_headers="$ac_config_headers config.h" ac_config_files="$ac_config_files Makefile libskk/Makefile libskk/libskk.pc rules/Makefile tools/Makefile tests/Makefile docs/Makefile po/Makefile.in" 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 $as_echo_n "checking that generated files are newer than configure... " >&6; } if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 $as_echo "done" >&6; } if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 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 "${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 ac_config_commands="$ac_config_commands po/stamp-it" if test -z "${HAVE_INTROSPECTION_TRUE}" && test -z "${HAVE_INTROSPECTION_FALSE}"; then as_fn_error $? "conditional \"HAVE_INTROSPECTION\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${ENABLE_FEP_TRUE}" && test -z "${ENABLE_FEP_FALSE}"; then as_fn_error $? "conditional \"ENABLE_FEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${ENABLE_DOCS_TRUE}" && test -z "${ENABLE_DOCS_FALSE}"; then as_fn_error $? "conditional \"ENABLE_DOCS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_VALADOC_TRUE}" && test -z "${HAVE_VALADOC_FALSE}"; then as_fn_error $? "conditional \"HAVE_VALADOC\" 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 libskk $as_me 1.0.0, 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="\\ libskk config.status 1.0.0 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' enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } # Quote evaled strings. for var in SHELL \ ECHO \ PATH_SEPARATOR \ SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ file_magic_glob \ want_nocaseglob \ DLLTOOL \ sharedlib_from_linklib_cmd \ AR \ AR_FLAGS \ archiver_list_spec \ 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 \ nm_file_list_spec \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_pic \ lt_prog_compiler_wl \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ MANIFEST_TOOL \ 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_separator \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ install_override_mode \ finish_eval \ old_striplib \ striplib; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$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 \ postlink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ sys_lib_dlsearch_path_spec; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done 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' _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 "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "libskk/Makefile") CONFIG_FILES="$CONFIG_FILES libskk/Makefile" ;; "libskk/libskk.pc") CONFIG_FILES="$CONFIG_FILES libskk/libskk.pc" ;; "rules/Makefile") CONFIG_FILES="$CONFIG_FILES rules/Makefile" ;; "tools/Makefile") CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;; "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;; "docs/Makefile") CONFIG_FILES="$CONFIG_FILES docs/Makefile" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "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"` # 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'`; 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 # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # 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, 2009, 2010, 2011 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="" # ### BEGIN LIBTOOL CONFIG # Whether or not to build static libraries. build_old_libs=$enable_static # 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 # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that protects backslashes. ECHO=$lt_ECHO # The PATH separator for the build system. PATH_SEPARATOR=$lt_PATH_SEPARATOR # 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 # convert \$build file names to \$host format. to_host_file_cmd=$lt_cv_to_host_file_cmd # convert \$build files to toolchain format. to_tool_file_cmd=$lt_cv_to_tool_file_cmd # 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 # How to find potential files when deplibs_check_method = "file_magic". file_magic_glob=$lt_file_magic_glob # Find potential files using nocaseglob when deplibs_check_method = "file_magic". want_nocaseglob=$lt_want_nocaseglob # DLL creation program. DLLTOOL=$lt_DLLTOOL # Command to associate shared and link libraries. sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd # The archiver. AR=$lt_AR # Flags to create an archive. AR_FLAGS=$lt_AR_FLAGS # How to feed a file listing to the archiver. archiver_list_spec=$lt_archiver_list_spec # 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 # Whether to use a lock for old archive extraction. lock_old_archive_extraction=$lock_old_archive_extraction # 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 # Specify filename containing input files for \$NM. nm_file_list_spec=$lt_nm_file_list_spec # The root where to search for dependent libraries,and in which our libraries should be installed. lt_sysroot=$lt_sysroot # The name of the directory that contains temporary libtool files. objdir=$objdir # 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 # Manifest tool. MANIFEST_TOOL=$lt_MANIFEST_TOOL # 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 # Permission mode override for installation of shared libraries. install_override_mode=$lt_install_override_mode # 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 # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # 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 # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # 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 # 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 # 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 # Commands necessary for finishing linking programs. postlink_cmds=$lt_postlink_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 # ### 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 '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) if test x"$xsi_shell" = xyes; then sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ func_dirname ()\ {\ \ case ${1} in\ \ */*) func_dirname_result="${1%/*}${2}" ;;\ \ * ) func_dirname_result="${3}" ;;\ \ esac\ } # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_basename ()$/,/^} # func_basename /c\ func_basename ()\ {\ \ func_basename_result="${1##*/}"\ } # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ func_dirname_and_basename ()\ {\ \ case ${1} in\ \ */*) func_dirname_result="${1%/*}${2}" ;;\ \ * ) func_dirname_result="${3}" ;;\ \ esac\ \ func_basename_result="${1##*/}"\ } # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ 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}"}\ } # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ func_split_long_opt ()\ {\ \ func_split_long_opt_name=${1%%=*}\ \ func_split_long_opt_arg=${1#*=}\ } # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ func_split_short_opt ()\ {\ \ func_split_short_opt_arg=${1#??}\ \ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ } # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ func_lo2o ()\ {\ \ case ${1} in\ \ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ \ *) func_lo2o_result=${1} ;;\ \ esac\ } # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_xform ()$/,/^} # func_xform /c\ func_xform ()\ {\ func_xform_result=${1%.*}.lo\ } # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_arith ()$/,/^} # func_arith /c\ func_arith ()\ {\ func_arith_result=$(( $* ))\ } # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_len ()$/,/^} # func_len /c\ func_len ()\ {\ func_len_result=${#1}\ } # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$lt_shell_append" = xyes; then sed -e '/^func_append ()$/,/^} # func_append /c\ func_append ()\ {\ eval "${1}+=\\${2}"\ } # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ func_append_quoted ()\ {\ \ func_quote_for_eval "${2}"\ \ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ } # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: # Save a `func_append' function call where possible by direct use of '+=' sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: else # Save a `func_append' function call even when '+=' is not available sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$_lt_function_replace_fail" = x":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 $as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} fi mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ;; "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 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 libskk-1.0.0/tests/0000775000076400007640000000000012016557043011147 500000000000000libskk-1.0.0/tests/common.h0000664000076400007640000000116111725033707012531 00000000000000#ifndef __COMMON_H__ #define __COMMON_H__ 1 #include struct _SkkTransition { SkkInputMode input_mode; const gchar *keys; const gchar *preedit; const gchar *output; SkkInputMode next_input_mode; }; typedef struct _SkkTransition SkkTransition; SkkContext *create_context (gboolean use_user_dict, gboolean use_file_dict); void destroy_context (SkkContext *context); void check_transitions (SkkContext *context, const SkkTransition *transitions); #endif /* __COMMON_H__ */ libskk-1.0.0/tests/rom-kana.c0000664000076400007640000000357011675742075012760 00000000000000#include static void rom_kana (void) { SkkRomKanaConverter *converter = skk_rom_kana_converter_new (); const gchar *preedit, *output; skk_rom_kana_converter_append_text (converter, "m"); preedit = skk_rom_kana_converter_get_preedit (converter); g_assert_cmpstr (preedit, ==, "m"); output = skk_rom_kana_converter_get_output (converter); g_assert_cmpstr (output, ==, ""); skk_rom_kana_converter_append_text (converter, "u"); preedit = skk_rom_kana_converter_get_preedit (converter); g_assert_cmpstr (preedit, ==, ""); output = skk_rom_kana_converter_get_output (converter); g_assert_cmpstr (output, ==, "ã‚€"); skk_rom_kana_converter_reset (converter); skk_rom_kana_converter_set_kana_mode (converter, SKK_KANA_MODE_KATAKANA); skk_rom_kana_converter_append_text (converter, "min"); skk_rom_kana_converter_output_nn_if_any (converter); output = skk_rom_kana_converter_get_output (converter); g_assert_cmpstr (output, ==, "ミン"); skk_rom_kana_converter_reset (converter); skk_rom_kana_converter_set_kana_mode (converter, SKK_KANA_MODE_HIRAGANA); skk_rom_kana_converter_append_text (converter, "desu."); skk_rom_kana_converter_output_nn_if_any (converter); output = skk_rom_kana_converter_get_output (converter); g_assert_cmpstr (output, ==, "ã§ã™ã€‚"); skk_rom_kana_converter_reset (converter); skk_rom_kana_converter_set_kana_mode (converter, SKK_KANA_MODE_HIRAGANA); skk_rom_kana_converter_append_text (converter, "ww"); preedit = skk_rom_kana_converter_get_preedit (converter); g_assert_cmpstr (preedit, ==, "w"); output = skk_rom_kana_converter_get_output (converter); g_assert_cmpstr (output, ==, "ã£"); g_object_unref (converter); } int main (int argc, char **argv) { g_type_init (); skk_init (); g_test_init (&argc, &argv, NULL); g_test_add_func ("/libskk/rom-kana", rom_kana); return g_test_run (); } libskk-1.0.0/tests/file-dict.c0000664000076400007640000000223311703777140013077 00000000000000#include static void file_dict (void) { GError *error = NULL; SkkFileDict *dict = skk_file_dict_new (LIBSKK_FILE_DICT, "EUC-JP", &error); g_assert_no_error (error); gint len; SkkCandidate **candidates; gboolean read_only; g_assert (skk_dict_get_read_only (SKK_DICT (dict))); g_object_get (dict, "read-only", &read_only, NULL); g_assert (read_only); candidates = skk_dict_lookup (SKK_DICT (dict), "ã‹ã‚“ã˜", FALSE, &len); g_assert_cmpint (len, ==, 2); while (--len >= 0) { g_object_unref (candidates[len]); } g_free (candidates); candidates = skk_dict_lookup (SKK_DICT (dict), "ã‚u", TRUE, &len); g_assert_cmpint (len, ==, 4); while (--len >= 0) { g_object_unref (candidates[len]); } g_free (candidates); g_object_unref (dict); } int main (int argc, char **argv) { g_type_init (); skk_init (); g_test_init (&argc, &argv, NULL); g_test_add_func ("/libskk/file-dict", file_dict); return g_test_run (); } libskk-1.0.0/tests/Makefile.in0000664000076400007640000006402612016556764013155 00000000000000# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 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@ # Copyright (C) 2011-2012 Daiki Ueno # Copyright (C) 2011-2012 Red Hat, 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 3 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, see . VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } 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@ TESTS = rom-kana$(EXEEXT) file-dict$(EXEEXT) user-dict$(EXEEXT) \ cdb-dict$(EXEEXT) skkserv$(EXEEXT) rule$(EXEEXT) \ context$(EXEEXT) basic$(EXEEXT) noinst_PROGRAMS = $(am__EXEEXT_1) subdir = tests DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \ $(top_srcdir)/m4/libtool.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/vala.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__EXEEXT_1 = rom-kana$(EXEEXT) file-dict$(EXEEXT) user-dict$(EXEEXT) \ cdb-dict$(EXEEXT) skkserv$(EXEEXT) rule$(EXEEXT) \ context$(EXEEXT) basic$(EXEEXT) PROGRAMS = $(noinst_PROGRAMS) am_basic_OBJECTS = basic.$(OBJEXT) common.$(OBJEXT) basic_OBJECTS = $(am_basic_OBJECTS) am__DEPENDENCIES_1 = basic_DEPENDENCIES = $(top_builddir)/libskk/libskk.la \ $(am__DEPENDENCIES_1) am_cdb_dict_OBJECTS = cdb-dict.$(OBJEXT) cdb_dict_OBJECTS = $(am_cdb_dict_OBJECTS) cdb_dict_DEPENDENCIES = $(top_builddir)/libskk/libskk.la \ $(am__DEPENDENCIES_1) am_context_OBJECTS = context.$(OBJEXT) common.$(OBJEXT) context_OBJECTS = $(am_context_OBJECTS) context_DEPENDENCIES = $(top_builddir)/libskk/libskk.la \ $(am__DEPENDENCIES_1) am_file_dict_OBJECTS = file-dict.$(OBJEXT) file_dict_OBJECTS = $(am_file_dict_OBJECTS) file_dict_DEPENDENCIES = $(top_builddir)/libskk/libskk.la \ $(am__DEPENDENCIES_1) am_rom_kana_OBJECTS = rom-kana.$(OBJEXT) rom_kana_OBJECTS = $(am_rom_kana_OBJECTS) rom_kana_DEPENDENCIES = $(top_builddir)/libskk/libskk.la \ $(am__DEPENDENCIES_1) am_rule_OBJECTS = rule.$(OBJEXT) common.$(OBJEXT) rule_OBJECTS = $(am_rule_OBJECTS) rule_DEPENDENCIES = $(top_builddir)/libskk/libskk.la \ $(am__DEPENDENCIES_1) am_skkserv_OBJECTS = skkserv.$(OBJEXT) skkserv_OBJECTS = $(am_skkserv_OBJECTS) skkserv_DEPENDENCIES = $(top_builddir)/libskk/libskk.la \ $(am__DEPENDENCIES_1) am_user_dict_OBJECTS = user-dict.$(OBJEXT) common.$(OBJEXT) user_dict_OBJECTS = $(am_user_dict_OBJECTS) user_dict_DEPENDENCIES = $(top_builddir)/libskk/libskk.la \ $(am__DEPENDENCIES_1) 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 = $(basic_SOURCES) $(cdb_dict_SOURCES) $(context_SOURCES) \ $(file_dict_SOURCES) $(rom_kana_SOURCES) $(rule_SOURCES) \ $(skkserv_SOURCES) $(user_dict_SOURCES) DIST_SOURCES = $(basic_SOURCES) $(cdb_dict_SOURCES) $(context_SOURCES) \ $(file_dict_SOURCES) $(rom_kana_SOURCES) $(rule_SOURCES) \ $(skkserv_SOURCES) $(user_dict_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags am__tty_colors_dummy = \ mgn= red= grn= lgn= blu= brg= std=; \ am__color_tests=no am__tty_colors = { \ $(am__tty_colors_dummy); \ if test "X$(AM_COLOR_TESTS)" = Xno; then \ am__color_tests=no; \ elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ am__color_tests=yes; \ elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ am__color_tests=yes; \ fi; \ if test $$am__color_tests = yes; then \ red=''; \ grn=''; \ lgn=''; \ blu=''; \ mgn=''; \ brg=''; \ std=''; \ fi; \ } DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CODE_COVERAGE_CFLAGS = @CODE_COVERAGE_CFLAGS@ CODE_COVERAGE_LDFLAGS = @CODE_COVERAGE_LDFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FEP = @FEP@ FGREP = @FGREP@ GEE_CFLAGS = @GEE_CFLAGS@ GEE_LIBS = @GEE_LIBS@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@ INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@ INTROSPECTION_LIBS = @INTROSPECTION_LIBS@ INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@ INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@ INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@ JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@ JSON_GLIB_LIBS = @JSON_GLIB_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBFEP_CFLAGS = @LIBFEP_CFLAGS@ LIBFEP_LIBS = @LIBFEP_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBSKK_CFLAGS = @LIBSKK_CFLAGS@ LIBSKK_LIBS = @LIBSKK_LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ 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@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SKK_API_MAJOR_VERSION = @SKK_API_MAJOR_VERSION@ SKK_API_MINOR_VERSION = @SKK_API_MINOR_VERSION@ SKK_API_PC_VERSION = @SKK_API_PC_VERSION@ SKK_API_VERSION = @SKK_API_VERSION@ SKK_LIBRARY_SUFFIX = @SKK_LIBRARY_SUFFIX@ SKK_LIBRARY_SUFFIX_U = @SKK_LIBRARY_SUFFIX_U@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VALAC = @VALAC@ VALADOC = @VALADOC@ VALADOC_CFLAGS = @VALADOC_CFLAGS@ VALADOC_LIBS = @VALADOC_LIBS@ VALAFLAGS = @VALAFLAGS@ VALGRIND = @VALGRIND@ VALGRIND_OPTS = @VALGRIND_OPTS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ 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@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ 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@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ INCLUDES = -I$(top_srcdir) $(LIBSKK_CFLAGS) TESTS_ENVIRONMENT = \ G_DEBUG=${G_DEBUG:+"${G_DEBUG},"}gc-friendly \ G_SLICE=${G_SLICE},always-malloc \ LIBSKK_DATA_PATH=$(top_srcdir) \ $(LIBTOOL) --mode=execute $(VALGRIND) $(VALGRIND_OPTS) noinst_HEADERS = common.h AM_CPPFLAGS = \ -DLIBSKK_FILE_DICT=\"$(top_srcdir)/tests/file-dict.dat\" \ -DLIBSKK_CDB_DICT=\"$(top_srcdir)/tests/cdb-dict.dat\" \ $(NULL) rom_kana_SOURCES = rom-kana.c rom_kana_LDADD = $(top_builddir)/libskk/libskk.la $(LIBSKK_LIBS) # kana_kan_SOURCES = kana-kan.c # kana_kan_LDADD = $(top_builddir)/libskk/libskk.la $(LIBSKK_LIBS) file_dict_SOURCES = file-dict.c file_dict_LDADD = $(top_builddir)/libskk/libskk.la $(LIBSKK_LIBS) cdb_dict_SOURCES = cdb-dict.c cdb_dict_LDADD = $(top_builddir)/libskk/libskk.la $(LIBSKK_LIBS) skkserv_SOURCES = skkserv.c skkserv_LDADD = $(top_builddir)/libskk/libskk.la $(LIBSKK_LIBS) user_dict_SOURCES = user-dict.c common.c user_dict_LDADD = $(top_builddir)/libskk/libskk.la $(LIBSKK_LIBS) rule_SOURCES = rule.c common.c rule_LDADD = $(top_builddir)/libskk/libskk.la $(LIBSKK_LIBS) context_SOURCES = context.c common.c context_LDADD = $(top_builddir)/libskk/libskk.la $(LIBSKK_LIBS) basic_SOURCES = basic.c common.c basic_LDADD = $(top_builddir)/libskk/libskk.la $(LIBSKK_LIBS) EXTRA_DIST = file-dict.dat cdb-dict.dat kana-kan.c CLEANFILES = user-dict.dat valgrind.log.* all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(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 tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu tests/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: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstPROGRAMS: @list='$(noinst_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 basic$(EXEEXT): $(basic_OBJECTS) $(basic_DEPENDENCIES) $(EXTRA_basic_DEPENDENCIES) @rm -f basic$(EXEEXT) $(LINK) $(basic_OBJECTS) $(basic_LDADD) $(LIBS) cdb-dict$(EXEEXT): $(cdb_dict_OBJECTS) $(cdb_dict_DEPENDENCIES) $(EXTRA_cdb_dict_DEPENDENCIES) @rm -f cdb-dict$(EXEEXT) $(LINK) $(cdb_dict_OBJECTS) $(cdb_dict_LDADD) $(LIBS) context$(EXEEXT): $(context_OBJECTS) $(context_DEPENDENCIES) $(EXTRA_context_DEPENDENCIES) @rm -f context$(EXEEXT) $(LINK) $(context_OBJECTS) $(context_LDADD) $(LIBS) file-dict$(EXEEXT): $(file_dict_OBJECTS) $(file_dict_DEPENDENCIES) $(EXTRA_file_dict_DEPENDENCIES) @rm -f file-dict$(EXEEXT) $(LINK) $(file_dict_OBJECTS) $(file_dict_LDADD) $(LIBS) rom-kana$(EXEEXT): $(rom_kana_OBJECTS) $(rom_kana_DEPENDENCIES) $(EXTRA_rom_kana_DEPENDENCIES) @rm -f rom-kana$(EXEEXT) $(LINK) $(rom_kana_OBJECTS) $(rom_kana_LDADD) $(LIBS) rule$(EXEEXT): $(rule_OBJECTS) $(rule_DEPENDENCIES) $(EXTRA_rule_DEPENDENCIES) @rm -f rule$(EXEEXT) $(LINK) $(rule_OBJECTS) $(rule_LDADD) $(LIBS) skkserv$(EXEEXT): $(skkserv_OBJECTS) $(skkserv_DEPENDENCIES) $(EXTRA_skkserv_DEPENDENCIES) @rm -f skkserv$(EXEEXT) $(LINK) $(skkserv_OBJECTS) $(skkserv_LDADD) $(LIBS) user-dict$(EXEEXT): $(user_dict_OBJECTS) $(user_dict_DEPENDENCIES) $(EXTRA_user_dict_DEPENDENCIES) @rm -f user-dict$(EXEEXT) $(LINK) $(user_dict_OBJECTS) $(user_dict_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basic.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cdb-dict.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/common.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/context.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file-dict.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rom-kana.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rule.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/skkserv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/user-dict.Po@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" cscopelist: $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags check-TESTS: $(TESTS) @failed=0; all=0; xfail=0; xpass=0; skip=0; \ srcdir=$(srcdir); export srcdir; \ list=' $(TESTS) '; \ $(am__tty_colors); \ if test -n "$$list"; then \ for tst in $$list; do \ if test -f ./$$tst; then dir=./; \ elif test -f $$tst; then dir=; \ else dir="$(srcdir)/"; fi; \ if $(TESTS_ENVIRONMENT) $${dir}$$tst $(AM_TESTS_FD_REDIRECT); then \ all=`expr $$all + 1`; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$tst[\ \ ]*) \ xpass=`expr $$xpass + 1`; \ failed=`expr $$failed + 1`; \ col=$$red; res=XPASS; \ ;; \ *) \ col=$$grn; res=PASS; \ ;; \ esac; \ elif test $$? -ne 77; then \ all=`expr $$all + 1`; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$tst[\ \ ]*) \ xfail=`expr $$xfail + 1`; \ col=$$lgn; res=XFAIL; \ ;; \ *) \ failed=`expr $$failed + 1`; \ col=$$red; res=FAIL; \ ;; \ esac; \ else \ skip=`expr $$skip + 1`; \ col=$$blu; res=SKIP; \ fi; \ echo "$${col}$$res$${std}: $$tst"; \ done; \ if test "$$all" -eq 1; then \ tests="test"; \ All=""; \ else \ tests="tests"; \ All="All "; \ fi; \ if test "$$failed" -eq 0; then \ if test "$$xfail" -eq 0; then \ banner="$$All$$all $$tests passed"; \ else \ if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ fi; \ else \ if test "$$xpass" -eq 0; then \ banner="$$failed of $$all $$tests failed"; \ else \ if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ fi; \ fi; \ dashes="$$banner"; \ skipped=""; \ if test "$$skip" -ne 0; then \ if test "$$skip" -eq 1; then \ skipped="($$skip test was not run)"; \ else \ skipped="($$skip tests were not run)"; \ fi; \ test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ dashes="$$skipped"; \ fi; \ report=""; \ if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ report="Please report to $(PACKAGE_BUGREPORT)"; \ test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ dashes="$$report"; \ fi; \ dashes=`echo "$$dashes" | sed s/./=/g`; \ if test "$$failed" -eq 0; then \ col="$$grn"; \ else \ col="$$red"; \ fi; \ echo "$${col}$$dashes$${std}"; \ echo "$${col}$$banner$${std}"; \ test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ test -z "$$report" || echo "$${col}$$report$${std}"; \ echo "$${col}$$dashes$${std}"; \ test "$$failed" -eq 0; \ else :; fi 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 $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-am all-am: Makefile $(PROGRAMS) $(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: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi 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." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ 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: check-am install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ clean-generic clean-libtool clean-noinstPROGRAMS cscopelist \ 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 -include $(top_srcdir)/git.mk # 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: libskk-1.0.0/tests/cdb-dict.c0000664000076400007640000000265611703760702012715 00000000000000#include static void cdb_dict (void) { GError *error = NULL; SkkCdbDict *dict = skk_cdb_dict_new (LIBSKK_CDB_DICT, "EUC-JP", &error); g_assert_no_error (error); gint len; SkkCandidate **candidates; gchar **completion; gboolean read_only; g_assert (skk_dict_get_read_only (SKK_DICT (dict))); g_object_get (dict, "read-only", &read_only, NULL); g_assert (read_only); candidates = skk_dict_lookup (SKK_DICT (dict), "ã‹ã‚“ã˜", FALSE, &len); g_assert_cmpint (len, ==, 2); while (--len >= 0) { g_object_unref (candidates[len]); } g_free (candidates); candidates = skk_dict_lookup (SKK_DICT (dict), "ã‚u", TRUE, &len); g_assert_cmpint (len, ==, 4); while (--len >= 0) { g_object_unref (candidates[len]); } g_free (candidates); /* completion is always empty with CDB dict */ completion = skk_dict_complete (SKK_DICT (dict), "ã‹", &len); g_assert_cmpint (len, ==, 0); g_free (completion); error = NULL; skk_dict_save (SKK_DICT (dict), &error); g_assert_no_error (error); g_object_unref (dict); } int main (int argc, char **argv) { g_type_init (); skk_init (); g_test_init (&argc, &argv, NULL); g_test_add_func ("/libskk/cdb-dict", cdb_dict); return g_test_run (); } libskk-1.0.0/tests/kana-kan.c0000664000076400007640000000173411761114171012716 00000000000000#include static void kana_kan (void) { SkkKanaKanDict *dict; SkkKanaKanScoreMap *map; SkkKanaKanConverter *converter; GError *error; gchar *output; error = NULL; dict = skk_kana_kan_dict_new ("juman.dic", &error); g_assert_no_error (error); error = NULL; map = skk_kana_kan_score_map_new ("mk.model", dict, &error); g_assert_no_error (error); converter = skk_kana_kan_converter_new (dict, map); output = skk_kana_kan_converter_convert (converter, "ã‹ãªã‹ã‚“ã˜ã¸ã‚“ã‹ã‚“ã®ã‚Œã„"); printf ("%s\n", output); g_free (output); output = skk_kana_kan_converter_convert (converter, "ã‹ãªã‹ã‚‰ã‹ã‚“ã˜ã«ã¸ã‚“ã‹ã‚“"); printf ("%s\n", output); g_free (output); g_object_unref (converter); g_object_unref (map); g_object_unref (dict); } int main (int argc, char **argv) { g_type_init (); skk_init (); g_test_init (&argc, &argv, NULL); g_test_add_func ("/libskk/kana-kan", kana_kan); return g_test_run (); } libskk-1.0.0/tests/file-dict.dat0000664000076400007640000015522411675742075013445 00000000000000;; -*- fundamental -*- ; coding: euc-jp -*- ;; Small size dictionary for SKK system ;; Copyright (C) 1988-1995, 1997, 1999-2003 ;; ;; Masahiko Sato ;; Hironobu Takahashi , ;; Masahiro Doteguchi, Miki Inooka, ;; Yukiyoshi Kameyama , ;; Akihiko Sasaki, Dai Ando, Junichi Okukawa, ;; Katsushi Sato and Nobuhiro Yamagishi ;; ;; Maintainer: SKK Development Team ;; Version: $Id: SKK-JISYO.S,v 1.55 2006/01/04 10:25:04 skk-cvs Exp $ ;; Keywords: japanese ;; Last Modified: $Date: 2006/01/04 10:25:04 $ ;; ;; This dictionary 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 versions 2, or (at your option) ;; any later version. ;; ;; This dictionary 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 Daredevil SKK, see the file COPYING. If not, write to the Free ;; Software Foundation Inc., 51 Franklin St, Fifth Floor, Boston, ;; MA 02110-1301, USA. ;; ;; okuri-ari entries. ¤ï¤ës /°­/ ¤ï¤ëk /°­/ ¤ï¤ëi /°­/ ¤ï¤éu /¾Ð/ ¤ï¤éi /¾Ð/ ¤ï¤¿t /ÅÏ/ ¤ï¤¿s /ÅÏ/ ¤ï¤¿r /ÅÏ/ÏË/ÏÊ/¾Ä/ ¤ï¤º¤éw /ÈÑ/ ¤ï¤º¤éu /´µ/ÈÑ/ ¤ï¤¹r /˺/ ¤ï¤¶¤ïi /ºÒ/ ¤ï¤«s /¼ã/ ¤ï¤«r /ÊÌ/ ¤ï¤«k /¼ã/ ¤ï¤«i /¼ã/ ¤ïr /³ä/ ¤ïk /ʨ/ʬ/ ¤ïb /ÏÍ/ ¤è¤ïs /¼å/ ¤è¤ïr /¼å/ ¤è¤ïm /¼å/ ¤è¤ïk /¼å/ ¤è¤ïi /¼å/ ¤è¤í¤³b /´î/ ¤è¤ís /µ¹/ ¤è¤Ãt /»Í/ ¤è¤½¤ªu /Áõ/ ¤è¤´s /±ø/ ¤è¤´r /±ø/ ¤èw /¿ì/ ¤èu /¿ì/ ¤èt /¿ì/»Í/ ¤ès /´ó/ÎÉ/ ¤èr /´ó/°ø/ ¤èm /ÆÉ/±Ó/ ¤èk /ÎÉ/ ¤èi /ÎÉ/¿ì/Á±/ ¤èb /¸Æ/ ¤æ¤ëy /´Ë/ ¤æ¤ës /µö/ ¤æ¤ëm /´Ë/ ¤æ¤ëi /´Ë/ ¤æ¤¿k /Ë­/ ¤æ¤ºt /¾ù/ ¤æ¤ºr /¾ù/ ¤æ¤¬n /ÏÄ/ ¤æ¤¬m /ÏÄ/ ¤æ¤¦s /Í­/ ¤æw /·ë/ ¤æu /·ë/ ¤æs /ÍÉ/ ¤ær /ÍÉ/ ¤æk /¹Ô/ÀÂ/ ¤ä¤ïr /½À/Æð/ÏÂ/ ¤ä¤Ör /ÇË/ÇÔ/ ¤ä¤És /½É/ ¤ä¤Ér /½É/ ¤ä¤Èu /¸Û/ ¤ä¤Ãt /Ȭ/ ¤ä¤¹¤¦r /°ÂÇä/ ¤ä¤¹s /°Â/ ¤ä¤¹m /µÙ/ ¤ä¤¹k /°Â/ ¤ä¤¹i /°Â/ ¤ä¤·¤Êu /ÍÜ/ ¤ä¤µs /°×/Í¥/ ¤ät /Ȭ/ ¤äm /¼­/ÉÂ/ ¤äk /¾Æ/ ¤â¤éw /Ìã/ ¤â¤éu /Ìã/ ¤â¤ét /Ìã/ ¤â¤éi /Ìã/ ¤â¤ée /Ìã/ ¤â¤è¤ªs /ºÅ/ ¤â¤èr /ºÇ´ó/ ¤â¤Ét /Ìá/ ¤â¤És /Ìá/ ¤â¤Ér /Ìá/ ¤â¤Èm /µá/ ¤â¤Ã¤Ñr /Àì/ ¤â¤Ã¤Èm /ºÇ/ ¤â¤Ái /ÍÑ/ ¤â¤°r /Àø/ ¤â¤¦s /¿½/ ¤â¤¦k /Àß/ÌÙ/ ¤ây /dz/ ¤ât /»ý/ ¤âs /¼ã/dz/ ¤âr /À¹/ϳ/¼é/ ¤âe /dz/ ¤á¤Àt /ÌÜΩ/ ¤á¤º¤és /ÄÁ/ ¤á¤¶s /ÌÜ»Ø/ ¤á¤°r /½ä/ ¤á¤°m /·Ã/ ¤ás /¾¤/ ¤à¤Ãt /Ï»/ ¤à¤º¤«s /Æñ/ ¤à¤¹b /·ë/ ¤à¤¯i /Êó/ ¤à¤«e /·Þ/ ¤àt /Ï»/ ¤às /¾ø/ ¤àr /·²/¾ø/ ¤àk /¸þ/ ¤ß¤Îr /¼Â/ ¤ß¤Ë¤¯i /½¹/ ¤ß¤Èm /ǧ/ ¤ß¤Äk /¸«ÉÕ/ ¤ß¤Äg /¹×/ ¤ß¤Ãt /»°/ ¤ß¤Á¤Ók /Ƴ/ ¤ß¤Às /Íð/ ¤ß¤Àr /Íð/ ¤ß¤º¤«r /¼«/ ¤ß¤¸¤«m /û/ ¤ß¤¸¤«k /û/ ¤ß¤¸¤«i /û/ ¤ß¤¸m /»´/ ¤ß¤¬k /Ëá/ ¤ß¤«k /¸«³Ý/ ¤ß¤ªt /¸«Íî/ ¤ßt /Ëþ/ ¤ßs /¸«/ ¤ßr /¸«/¿Ç/ ¤ßn /´Ñ/ ¤ße /¸«/ ¤Þ¤ïs /¼þ/²ó/ ¤Þ¤ïr /¼þ/²ó/ ¤Þ¤ëm /´Ý/ ¤Þ¤ëi /´Ý/±ß/ ¤Þ¤èu /ÌÂ/ ¤Þ¤èi /ÌÂ/ ¤Þ¤ât /¼é/ ¤Þ¤âr /¼é/ ¤Þ¤Ík /¾·/ ¤Þ¤Ì¤«r /ÌÈ/ ¤Þ¤Êb /³Ø/ ¤Þ¤Éu /ÏÇ/ ¤Þ¤Är /º×/ ¤Þ¤Ã¤¿k /Á´/ ¤Þ¤Á¤¬u /´Ö°ã/ ¤Þ¤Á¤¬t /´Ö°ã/ ¤Þ¤Á¤¬i /´Ö°ã/ ¤Þ¤Á¤¬e /´Ö°ã/ ¤Þ¤¿¤¿k /½Ö/ ¤Þ¤ºs /ÉÏ/ ¤Þ¤¸w /¸ò/ ¤Þ¤¸e /¸ò/ ¤Þ¤µr /¾¡/ ¤Þ¤®r /ʶ/ ¤Þ¤«¤Êu /ÏÅ/ ¤Þ¤«s /Ǥ/ ¤Þ¤¤r /»²/ ¤Þz /¸ò/º®/ ¤Þu /Éñ/ ¤Þt /ÂÔ/ ¤Þs /Áý/ ¤Þk /Éé/´¬/ ¤Þg /¶Ê/ ¤Û¤íb /ÌÇ/ ¤Û¤É¤³s /»Ü/ ¤Û¤È¤ód /ËØ/ ¤Û¤Ãs /Íß/ ¤Û¤½s /ºÙ/ ¤Û¤½r /ºÙ/ ¤Û¤½m /ºÙ/ ¤Û¤½i /ºÙ/ ¤Û¤³r /¸Ø/ ¤Û¤¬r /ϯ/ ¤Û¤¦¤àr /Áò/ ¤Ûs /Íß/´³/ ¤Ûr /Ħ/·¡/ ¤Ûm /Ë«/ ¤Ûe /ËÊ/ ¤Ø¤Àt /³Ö/ ¤Ør /¸º/·Ð/ ¤Õ¤ëu /¿Ì/ʳ/ ¤Õ¤ës /¸Å/ ¤Õ¤ëm /¸Å/ ¤Õ¤ëk /¸Å/ ¤Õ¤ëi /¸Å/ ¤Õ¤ëe /¿Ì/ ¤Õ¤Èr /ÂÀ/ ¤Õ¤Èi /ÂÀ/ ¤Õ¤¿¤¿b /ºÆ/ ¤Õ¤¿t /Æó/ ¤Õ¤»g /ËÉ/ ¤Õ¤¯r /ËÄ/ ¤Õ¤¯n /´Þ/ ¤Õ¤¯m /´Þ/ ¤Õ¤«m /¿¼/ ¤Õ¤«k /¿¼/ ¤Õ¤«i /¿¼/ ¤Õy /Áý/¿£/ ¤Õt /¿¶/ ¤Õs /Éú/ ¤Õr /¿¶/¿¨/¹ß/ ¤Õn /Ƨ/ ¤Õm /Ƨ/ ¤Õk /¿á/¹¹/Ê®/Ï·/ ¤Õi /¿á/ ¤Õe /Áý/¿£/ ¤Ò¤íu /½¦/ ¤Ò¤ím /¹­/ ¤Ò¤íi /¹­/ ¤Ò¤íg /¹­/ ¤Ò¤ë¤¬¤¨s /ËÝ/ ¤Ò¤ë¤¬¤¨r /ËÝ/ ¤Ò¤ék /³«/ ¤Ò¤éi /³«/ ¤Ò¤Ók /¶Á/ ¤Ò¤Èt /°ì/ ¤Ò¤Ès /Åù/ ¤Ò¤Èr /ÆÈ/ ¤Ò¤¿s /¿»/ ¤Ò¤¿r /¿»/ ¤Ò¤½m /Àø/ ¤Ò¤µs /µ×/ ¤Ò¤¯m /Äã/ ¤Ò¤¯k /Äã/ ¤Ò¤¯i /Äã/ ¤Ò¤­i /Ψ/ ¤Ò¤¬¤¨r /Æüµ¢/ ¤Ò¤«r /¸÷/ ¤Ò¤«e /¹µ/ ¤Ò¤¤d /½¨/ ¤Òy /Îä/ ¤Òr /´³/ ¤Òm /Èë/ ¤Òk /°ú/ÃÆ/ ¤Òe /Îä/ ¤Ðk /²½/ ¤Ï¤ós /È¿/ ¤Ï¤éw /ʧ/ ¤Ï¤éu /ʧ/ ¤Ï¤ét /ʧ/ ¤Ï¤éo /ʧ/ ¤Ï¤éi /ʧ/ ¤Ï¤ée /ʧ/ ¤Ï¤äs /®/Áá/ ¤Ï¤äm /Áá/®/ ¤Ï¤äk /Áá/®/ ¤Ï¤äi /®/Áá/ ¤Ï¤Ök /¾Ê/ ¤Ï¤Ðm /ÁË/ ¤Ï¤Ê¤Ïd /¿Ó/ ¤Ï¤Êt /Êü/ ¤Ï¤Ês /Î¥/Êü/ÏÃ/ ¤Ï¤Êr /Î¥/Êü/ ¤Ï¤¿¤ék /Ư/ ¤Ï¤º¤«¤·m /¿«/ ¤Ï¤ºs /³°/ ¤Ï¤ºr /³°/ ¤Ï¤ºm /ÃÆ/ ¤Ï¤¸m /»Ï/½é/ ¤Ï¤·r /Áö/ ¤Ï¤µm /¶´/ ¤Ï¤³b /±¿/ ¤Ï¤²s /·ã/ ¤Ï¤²m /Îå/ ¤Ï¤«r /¿Þ/·×/¬/ÎÌ/»ð/ËÅ/ ¤Ï¤¤r /Æþ/ ¤Ïz /ÃÑ/ ¤Ïy /À¸/ ¤Ïu /Çç/ ¤Ït /²Ì/Ž/ ¤Ïr /Ä¥/Ž/À²/ ¤Ïn /Ä·/ ¤Ïk /ÁÝ/ÅÇ/Íú/ ¤Ïe /À¸/±É/±Ç/ ¤Î¤Üs /¾å/ ¤Î¤Ür /ÅÐ/¾å/¾º/ ¤Î¤¾m /˾/Î×/ ¤Î¤¾k /½ü/ÇÁ/ ¤Î¤³s /»Ä/ ¤Î¤³r /»Ä/ ¤Î¤¬s /ƨ/ ¤Î¤¬r /ƨ/ ¤Ît /ºÜ/ ¤Îs /ºÜ/¾è/ ¤Îr /¾è/ºÜ/ ¤Îm /°û/ ¤Îb /½Ò/±ä/¿­/ ¤Í¤ó¤´r /º©/ ¤Í¤éu /ÁÀ/ ¤Í¤ét /ÁÀ/ ¤Í¤éi /ÁÀ/ ¤Í¤àt /̲/ ¤Í¤àr /̲/ ¤Í¤ài /̲/ ¤Í¤Ðr /Ç´/ ¤Í¤¬u /´ê/ ¤Í¤¬i /´ê/ ¤Ír /¿²/Îý/ ¤Ì¤¹m /Åð/ ¤Ìu /Ë¥/ ¤Ìt /ÅÉ/ ¤Ìr /ÅÉ/Ǩ/ ¤Ìk /È´/ ¤Ìi /È´/ ¤Ìg /æ/ ¤Ë¤Ör /Æß/ ¤Ë¤Öi /Æß/ ¤Ë¤Êu /ô/ ¤Ë¤´s /Âù/ ¤Ë¤´r /Âù/ ¤Ë¤¯s /Áþ/ ¤Ë¤¯r /Áþ/ ¤Ë¤¯m /Áþ/ ¤Ë¤¯i /Áþ/ ¤Ë¤®w /Æø/ ¤Ë¤¬r /¶ì/ ¤Ë¤¬i /¶ì/ ¤Ë¤ªw /Æ÷/ ¤Ë¤ªu /Æ÷/ ¤Ë¤ªi /Æ÷/ ¤Ë¤ªe /Æ÷/ ¤Ë¤¢w /»÷¹ç/ ¤Ë¤¢u /»÷¹ç/ ¤Ë¤¢t /»÷¹ç/ ¤Ë¤¢i /»÷¹ç/ ¤Ëy /¼Ñ/ ¤Ër /»÷/¼Ñ/ ¤Ëg /ƨ/ ¤Ëe /¼Ñ/ ¤Ê¤éu /Êï/½¬/ ¤Ê¤éb /ÊÂ/ ¤Ê¤än /Ǻ/ ¤Ê¤äm /Ǻ/ ¤Ê¤ár /³ê/ ¤Ê¤Þk /ÂÕ/ ¤Ê¤Êt /¼·/ ¤Ê¤Êm /¼Ð/ ¤Ê¤Äk /²û/ ¤Ê¤µk /¾ð/ ¤Ê¤´y /ÏÂ/ ¤Ê¤´m /ÏÂ/ ¤Ê¤²k /ò/ ¤Ê¤°¤µm /°Ö/ ¤Ê¤°r /²¥/ ¤Ê¤¬s /ή/Ĺ/ ¤Ê¤¬r /ή/Æã/ ¤Ê¤¬m /į/ ¤Ê¤¬k /Ĺ/ ¤Ê¤¬i /Ĺ/±Ê/ ¤Ê¤«b /Ⱦ/ ¤Ê¤ªs /¼£/ľ/ ¤Ê¤ªr /¼£/ľ/ ¤Ês /̵/À®/ ¤Êr /´·/ÌÄ/Æë/À®/ ¤Êk /̵/ÌÄ/µã/ ¤Êi /̵/Ë´/ ¤Êg /Æä/Åê/ ¤È¤â¤Êw /ȼ/ ¤È¤â¤Êu /ȼ/ ¤È¤â¤Êt /ȼ/ ¤È¤â¤Êi /ȼ/ ¤È¤à¤éu /Ĥ/ ¤È¤Üs /˳/ ¤È¤Êr /ÎÙ/ ¤È¤Êe /¾§/ ¤È¤É¤³¤ªr /ÂÚ/ ¤È¤Ék /ÆÏ/ ¤È¤È¤Îu /À°/Ä´/ ¤È¤È¤Îe /À°/Ä´/ ¤È¤Äg /²Ç/ ¤È¤ªs /±ó/ÄÌ/ ¤È¤ªr /ÄÌ/ ¤È¤ªk /±ó/ ¤È¤ªi /±ó/ ¤È¤¦¤Èi /º/µ®/ ¤È¤¦¤Èb /º/µ®/ ¤Èz /ÊÄ/ ¤Èu /Ìä/ ¤Èt /»£/ ¤Èr /¼è/»£/Êá/¼¹/ºÎ/ ¤Èm /»ß/ÉÙ/α/Çñ/ ¤Èk /²ò/ÍÏ/Àâ/ ¤Èi /Ìä/ ¤Èg /¸¦/¿ë/ ¤Èb /Èô/Ä·/ ¤Ç¤­t /½ÐÍè/ ¤Ç¤­s /½ÐÍè/ ¤Ç¤­r /½ÐÍè/ ¤Ç¤­n /½ÐÍè/ ¤Ç¤­m /½ÐÍè/ ¤Çr /½Ð/ ¤Æ¤Ä¤Åk /¼ê³/ ¤Æ¤Ä¤Àt /¼êÅÁ/ ¤Æ¤Ä¤Ài /¼êÅÁ/ ¤Æ¤Ä¤Àe /¼êÅÁ/ ¤Æ¤­s /Ŭ/ ¤Æ¤¤s /Äè/ ¤Ær /¾È/ ¤Ä¤é¤Ìk /´Ó/ ¤Ä¤én /Ï¢/ ¤Ä¤èm /¶¯/ ¤Ä¤èk /¶¯/ ¤Ä¤èi /¶¯/ ¤Ä¤át /Îä/ ¤Ä¤àg /ËÂ/ ¤Ä¤Ös /ÄÙ/ ¤Ä¤Îr /Êç/ ¤Ä¤Éu /½¸/ ¤Ä¤Éi /½¸/ ¤Ä¤Èm /¶Ð/ÅØ/̳/ ¤Ä¤År /ÄÖ/ ¤Ä¤Åk /³/ ¤Ä¤Ä¤·m /¶à/¿µ/ ¤Ä¤Äm /Êñ/ ¤Ä¤Á¤«u /ÇÝ/ ¤Ä¤¿w /ÅÁ/ ¤Ä¤¿u /ÅÁ/ ¤Ä¤¿e /ÅÁ/ ¤Ä¤°¤Êu /½þ/ ¤Ä¤¯¤íu /Á¶/ ¤Ä¤¯r /ºî/¤/ ¤Ä¤«w /¸¯/ ¤Ä¤«u /»È/¸¯/ ¤Ä¤«r /Èè/ ¤Ä¤«m /Êá/ÄÏ/ ¤Ä¤«i /»È/ ¤Ä¤«e /»Å/ ¤Ä¤¤y /Èñ/ ¤Ä¤¤e /Èñ/ ¤Ät /ÆÍ/ ¤Är /Äà/Ï¢/ ¤Äm /µÍ/Ŧ/ÀÑ/ ¤Äk /ÉÕ/Ãå/ÆÍ/ÄÒ/½¢/¿Ô/ ¤Äi /ÆÍ/ ¤Äg /·Ñ/¼¡/ÀÜ/¹ð/ ¤Á¤Âr /½Ì/ ¤Á¤Âm /½Ì/ ¤Á¤®r /·À/ ¤Á¤¬w /°ã/ ¤Á¤¬u /°ã/ ¤Á¤¬t /°ã/ ¤Á¤¬i /°ã/ ¤Á¤¬e /°ã/ ¤Á¤«u /ÀÀ/ ¤Á¤«i /¶á/ ¤Á¤¤s /¾®/ ¤Ár /»¶/ ¤À¤Þt /ÌÛ/ ¤À¤Þr /ÌÛ/ ¤À¤¤¤¹k /Âç¹¥/ ¤Às /½Ð/ ¤Àk /Êú/ ¤¿¤ï¤àr /µº/ ¤¿¤èt /Íê/ ¤¿¤èr /Íê/ÊØ/ ¤¿¤ât /ÊÝ/ ¤¿¤ás /»î/ ¤¿¤Þ¤ïr /»ò/ ¤¿¤Þr /ί/ ¤¿¤Îs /³Ú/ ¤¿¤În /Íê/ ¤¿¤Îm /Íê/ ¤¿¤Ér /é/ ¤¿¤Èe /Îã/ ¤¿¤Æ¤Þ¤Är /Êô/ ¤¿¤Ã¤Èi /µ®/º/ ¤¿¤Ã¤Èb /º/µ®/ ¤¿¤À¤èu /ɺ/ ¤¿¤Àt /ľ/ ¤¿¤Às /Àµ/â/ ¤¿¤¿¤«u /Àï/Æ®/ ¤¿¤¿m /¾ö/ ¤¿¤¿k /á/ ¤¿¤º¤µw /·È/ ¤¿¤º¤µe /·È/ ¤¿¤ºn /¿Ò/ˬ/ ¤¿¤¹k /½õ/ ¤¿¤·k /³Î/ ¤¿¤¯¤ïe /Ãß/ ¤¿¤¬¤äs /¹Ì/ ¤¿¤¬i /¸ß/ ¤¿¤«s /¹â/ ¤¿¤«m /¹â/ ¤¿¤«k /¹â/ ¤¿¤«i /¹â/ ¤¿¤ªs /ÅÝ/ ¤¿¤ªr /ÅÝ/ ¤¿¤¤s /ÂÐ/ ¤¿¤¤r /Ê¿/ ¤¿y /Àä/ ¤¿t /Ω/·ú/ÃÇ/ºÛ/Àä/ ¤¿s /­/ ¤¿r /¿â/­/ ¤¿m /ί/¶º/ ¤¿k /¿æ/ ¤¿e /ÂÑ/Àä/ ¤¿b /¿©/ ¤¾¤óz /¸/ ¤¾¤¯s /°/ ¤½¤ít /·/ ¤½¤íi /·/ ¤½¤íe /·/ ¤½¤àk /ÇØ/ ¤½¤Êw /È÷/ ¤½¤Êe /¶¡/È÷/ ¤½¤Àt /°é/ ¤½¤½¤Î¤«s /º¶/ ¤½¤½g /Ãí/ ¤½¤³n /»/ ¤½u /±è/ź/ ¤½t /±è/ź/ ¤½r /È¿/ ¤½m /½é/À÷/ ¤½i /±è/ ¤½e /ź/ ¤»¤Þr /Ç÷/ ¤»¤Þi /¶¹/ ¤»¤Ðm /¶¹/ ¤»r /¶¥/ ¤»m /¹¶/ÀÕ/ ¤¹¤ïr /ºÂ/ ¤¹¤ë¤Éi /±Ô/ ¤¹¤ßy /®/ ¤¹¤Ùt /³ê/ ¤¹¤Ùr /³ê/ ¤¹¤Ðr /ÁÇÀ²/ ¤¹¤Ê¤ït /¨/ ¤¹¤Çn /´û/ ¤¹¤¿r /ÇÑ/ ¤¹¤ºs /ÎÃ/ ¤¹¤ºm /ÎÃ/ ¤¹¤¹m /¿Ê/´«/Á¦/ ¤¹¤´s /À¨/ ¤¹¤´m /À¨/ ¤¹¤´k /À¨/ ¤¹¤´i /À¨/ ¤¹¤³¤Ör /¿ü/ ¤¹¤³y /·ò/ ¤¹¤³s /¾¯/ ¤¹¤°r /Í¥/ ¤¹¤¯u /µß/ ¤¹¤¯n /¾¯/ ¤¹¤¯i /µß/ ¤¹w /¿ø/ ¤¹u /µÛ/ ¤¹t /¼Î/ ¤¹r /»¤/À¢/ºþ/ ¤¹m /ºÑ/½»/À¡/ ¤¹k /¹¥/Æ©/ ¤¹i /»À/ ¤¹g /²á/ ¤¹e /¿ø/ ¤¹b /Åý/ ¤·¤óz /¿®/ ¤·¤ík /Çò/ ¤·¤íi /Çò/ ¤·¤ës /µ­/ ¤·¤ê¤¾k /Âà/ ¤·¤éb /Ä´/ ¤·¤ã¤Ùt /Ãý/ ¤·¤ã¤Ùr /Ãý/ ¤·¤ás /¼¨/¼¾/ ¤·¤ár /¼¾/ ¤·¤Ür /ºñ/¹Ê/ ¤·¤Öi /½Â/ ¤·¤Ðr /Çû/ ¤·¤Ï¤éw /»Ùʧ/ ¤·¤Ï¤éu /»Ùʧ/ ¤·¤Ï¤ét /»Ùʧ/ ¤·¤Ï¤éi /»Ùʧ/ ¤·¤Îb /¼Å/Ǧ/ ¤·¤¿¤¿r /Å©/ ¤·¤¿¤¬u /½¾/ ¤·¤¿¤¬i /½¾/ ¤·¤¿¤¬e /½¾/ ¤·¤¿u /Êé/ ¤·¤¿s /¿Æ/ ¤·¤ºm /ÄÀ/ÀÅ/ÄÃ/ ¤·¤ºk /ÀÅ/ ¤·¤²r /ÌÐ/ ¤·¤¯m /»ÅÁÈ/ ¤·¤«t /¼¸/ ¤·¤«r /¼¸/ ¤·¤¤¤¿g /µÔ/ ¤·¤¢¤ïs /¹¬/ ¤·r /ÃÎ/ ¤·n /»à/ ¤·m /Äù/Àê/¹Ê/À÷/ÊÄ/ ¤·k /Éß/ ¤·i /¶¯/ ¤µ¤ït /¿¨/ ¤µ¤ïr /¿¨/¾ã/ ¤µ¤ïg /Áû/ ¤µ¤às /´¨/ ¤µ¤àk /´¨/ ¤µ¤ài /´¨/ ¤µ¤Þ¤¿g /˸/ ¤µ¤Ós /¼ä/ ¤µ¤Ór /¼ä/ ¤µ¤Ðk /ºÛ/»«/ ¤µ¤Ès /Í¡/ ¤µ¤Èr /¸ç/ ¤µ¤Àm /Äê/ ¤µ¤Àk /Äê/ ¤µ¤½u /Ͷ/ ¤µ¤ºk /¼ø/ ¤µ¤·¤Às /º¹½Ð/ ¤µ¤µe /»Ù/ ¤µ¤±b /¶«/ ¤µ¤°r /õ/ ¤µ¤¬s /ÁÜ/õ/ ¤µ¤«r /µÕ/À¹/ ¤µ¤«n /À¹/ ¤µ¤«e /±É/ ¤µ¤¨¤®r /¼×/ ¤µ¤¤¤ïi /¹¬/ ¤µs /ÁÞ/º¹/»É/»Ø/ ¤µr /µî/ ¤µm /³Ð/Îä/ ¤µk /Èò/³ä/ºé/Îö/ ¤µg /Äó/²¼/ ¤µe /ºã/ ¤´¤¾¤óz /¸æÂ¸/ ¤³¤ïs /²õ/ ¤³¤ïr /²õ/ ¤³¤ïk /¶²/ÉÝ/ ¤³¤ïi /¶²/ÉÝ/ ¤³¤ïg /ÉÝ/¶²/ ¤³¤ís /»¦/ ¤³¤íg /ž/ ¤³¤íb /ž/ ¤³¤Þr /º¤/ ¤³¤Þk /ºÙ/ ¤³¤Ðm /µñ/ ¤³¤Îm /¹¥/ ¤³¤È¤ïr /ÃÇ/ ¤³¤Èn /°Û/ ¤³¤¿e /Åú/±þ/ ¤³¤´e /Åà/ ¤³¤³¤í¤èi /²÷/ ¤³¤³¤í¤¶s /»Ö/ ¤³¤³¤ím /»î/ ¤³¤³¤Ît /¶å/ ¤³¤¬r /¾Ç/ ¤³¤ªr /Åà/ ¤³¤¦¤àr /Èï/ ¤³¤¦z /¹â/¹Ö/ ¤³¤¤s /Îø/ ¤³y /Èî/ ¤³u /¸ð/ÀÁ/Îø/ ¤³s /±Û/¹÷/Ķ/ ¤³r /¶Å/Ĩ/ ¤³n /¹þ/ ¤³m /¹þ/ ¤³k /Ç»/ ¤³i /Ç»/¸ð/ ¤³g /¾Ç/ ¤³e /±Û/Ķ/Èî/ ¤²¤óz /¸º/ ¤±¤ïs /¸±/ ¤±¤àr /±ì/ ¤±¤ài /±ì/ ¤±¤Ãs /·è/ ¤±¤ºr /ºï/ ¤±¤¬s /±ø/ ¤±¤¬r /±ø/ ¤±s /¾Ã/ ¤¯¤ï¤Àt /´ë/ ¤¯¤ïw /²Ã/ ¤¯¤ïs /¾Ü/ ¤¯¤ïe /²Ã/ ¤¯¤íi /¹õ/ ¤¯¤ëu /¶¸/ ¤¯¤ës /¶ì/ ¤¯¤ëo /¶¸/ ¤¯¤ëi /¶¸/ ¤¯¤éi /°Å/ ¤¯¤éb /Èæ/ ¤¯¤äs /²ù/ ¤¯¤âr /ÆÞ/ ¤¯¤Ðr /ÇÛ/ ¤¯¤Ä¤¬¤¨s /ʤ/ ¤¯¤Ä¤¬¤¨r /ʤ/ ¤¯¤Às /²¼/ ¤¯¤Àr /²¼/ ¤¯¤Àk /ºÕ/ ¤¯¤ºs /Êø/ ¤¯¤ºr /Êø/ ¤¯¤µr /Éå/ ¤¯¤µi /½­/ ¤¯y /²ù/ ¤¯w /¶ô/ ¤¯u /¿©/¶ô/ ¤¯t /¶ô/µà/ ¤¯r /Íè/·«/Êë/¿©/ ¤¯m /¼à/ÁÈ/ ¤¯i /¿©/¶ô/²ù/ ¤¯e /¶ô/ ¤­¤ïm /¶Ë/µæ/µç/ ¤­¤éw /·ù/ ¤­¤éu /·ù/ ¤­¤ét /·ù/ ¤­¤éi /·ù/ ¤­¤èm /À¶/ ¤­¤èi /À¶/ ¤­¤ât /µ¤»ý/ ¤­¤Ós /¸·/ ¤­¤Åk /µ¤ÉÕ/ ¤­¤Åi /µ¤ÉÕ/ ¤­¤¿¤Êi /±ø/ ¤­¤¿e /ÃÃ/ ¤­¤½u /¶¥/ ¤­¤ºk /ÃÛ/ ¤­¤¶s /Ãû/ ¤­¤¶m /¹ï/ ¤­s /Ãå/ ¤­r /ÀÚ/Ãå/ ¤­m /·è/ ¤­k /ʹ/İ/¸ú/Íø/ ¤­i /İ/ ¤­e /¾Ã/ ¤¬¤ó¤Ðt /´èÄ¥/ ¤¬¤ó¤Ðr /´èÄ¥/ ¤«¤ó¤Ðs /˧/ ¤«¤ó¤Á¤¬i /´ª°ã/ ¤«¤ó¤¬e /¹Í/ ¤«¤óz /´¶/ ¤«¤ós /´Ø/ ¤«¤ï¤¤r /²Ä°¦/ ¤«¤ï¤¤k /²Ä°¦/ ¤«¤ï¤¤i /²Ä°¦/ ¤«¤ï¤¤g /²Ä°¦/ ¤«¤ïr /ÊÑ/ ¤«¤ïk /³é/´¥/ ¤«¤íy /·Ú/ ¤«¤ës /·Ú/ ¤«¤ëk /·Ú/ ¤«¤ëi /·Ú/ ¤«¤én /Íí/ ¤«¤ém /Íí/ ¤«¤éi /¿É/ ¤«¤èu /ÄÌ/ ¤«¤èi /ÄÌ/ ¤«¤âs /¾ú/ ¤«¤Þu /¹½/ ¤«¤Þi /¹½/ ¤«¤Þe /¹½/ ¤«¤Ê¤éz /ɬ/ ¤«¤Êu /³ð/ ¤«¤Ês /Èá/ ¤«¤Êd /ÁÕ/ ¤«¤Äg /ô/ ¤«¤¿¤ïr /˵/ ¤«¤¿¤èr /ÊÐ/ ¤«¤¿¤àk /·¹/ ¤«¤¿r /¸ì/ ¤«¤¿m /¸Ç/ ¤«¤¿i /¹Å/·ø/¸Ç/Æñ/ ¤«¤¾e /¿ô/ ¤«¤»g /²Ô/ ¤«¤·¤³i /¸­/ ¤«¤¶r /¾þ/ ¤«¤µn /½Å/ ¤«¤³u /°Ï/ ¤«¤³m /°Ï/ ¤«¤¯s /±£/ ¤«¤¯r /±£/ ¤«¤®r /¸Â/ ¤«¤¬¤äk /µ±/ ¤«¤«w /´Ø/ ¤«¤«r /·¸/ ¤«¤«g /·Ç/ ¤«¤«e /Êú/ ¤«¤ªr /¹á/³¾/·°/ ¤«¤¨¤êm /¸Ü/¾Ê/ ¤«¤¨s /ÊÖ/µ¢/ ¤«¤¨r /µ¢/ÊÖ/ ¤«w /ÊÑ/Âå/ÂØ/´¹/¸ò/ ¤«u /Çã/¸ò/»ô/ ¤«t /¾¡/³î/ ¤«s /Âß/ ¤«r /¼Ú/´£/´¢/¶î/¼í/¸Ï/ ¤«n /³ú/·ó/ ¤«m /³ú/ ¤«k /½ñ/³Ý/·ç/²Í/¶î/·ü/ ¤«i /Çã/ ¤«e /ÊÑ/ÂØ/Âå/´¹/ ¤ª¤ïr /½ª/ ¤ª¤ís /²·/ ¤ª¤ík /¶ò/ ¤ª¤èg /±Ë/ ¤ª¤èb /µÚ/ ¤ª¤â¤àk /Éë/ ¤ª¤â¤·¤ís /ÌÌÇò/ ¤ª¤â¤·¤ík /ÌÌÇò/ ¤ª¤â¤·¤íi /ÌÌÇò/ ¤ª¤âu /»×/ ¤ª¤âs /½Å/ ¤ª¤âm /½Å/ ¤ª¤âi /»×/½Å/ ¤ª¤Üe /³Ð/ ¤ª¤Ó¤äk /¶¼/ ¤ª¤Êz /Ʊ/ ¤ª¤É¤ík /¶Ã/ ¤ª¤É¤íi /¶Ã/ ¤ª¤És /¶¼/ ¤ª¤Ér /Ìö/ÍÙ/ ¤ª¤Ék /¶¼/ ¤ª¤È¤íe /¿ê/ ¤ª¤È¤ºr /ˬ/ ¤ª¤È¤·¤¤r /´Ù/ ¤ª¤Èr /Îô/ ¤ª¤Á¤¤r /´Ù/ ¤ª¤Ày /²º/ ¤ª¤½w /¶µ/ ¤ª¤½u /½±/ ¤ª¤½s /ÃÙ/ ¤ª¤½r /¶²/ ¤ª¤½k /ÃÙ/ ¤ª¤½i /ÃÙ/ ¤ª¤·e /¶µ/ ¤ª¤µ¤Êi /ÍÄ/ ¤ª¤µm /¼ý/½¤/¼£/Ǽ/ ¤ª¤µe /ÍÞ/ ¤ª¤´¤½k /¸·/ ¤ª¤³¤Êu /¹Ô/ ¤ª¤³¤¿r /ÂÕ/ ¤ª¤³s /¶½/ ¤ª¤³r /¶½/ÅÜ/ ¤ª¤¯r /Á÷/ÃÙ/¸å/ ¤ª¤®¤Êu /Êä/ ¤ª¤¬m /ÇÒ/ ¤ª¤«s /ÈÈ/ËÁ/ ¤ª¤ªu /ʤ/ ¤ª¤ªs /¿/ ¤ª¤ªm /¿/ ¤ª¤ªk /Âç/¿/ ¤ª¤ªi /¿/Âç/ ¤ª¤¦z /±þ/ ¤ªw /½ª/ ¤ªu /Éé/ÄÉ/À¸/ ¤ªt /Íî/ ¤ªs /²¡/ÀË/¿ä/ ¤ªr /¹ß/ÀÞ/¿¥/²¼/ ¤ªk /µ¯/ÃÖ/ ¤ªi /ÄÉ/Éé/Ï·/ ¤ªe /½ª/ ¤ªb /ÂÓ/ ¤¨¤éi /°Î/ ¤¨¤éb /Áª/ ¤¨¤¬k /ÉÁ/ ¤¨¤¬i /ÉÁ/ ¤¨r /ÆÀ/ ¤¨m /¾Ð/ ¤¦¤ìs /´ò/ ¤¦¤ìi /Í«/½¥/ ¤¦¤ìe /Í«/½¥/ ¤¦¤ë¤ïs /Îï/ ¤¦¤ë¤ªu /½á/ ¤¦¤ë¤ªs /½á/ ¤¦¤ëm /½á/ ¤¦¤é¤Êu /Àê/ ¤¦¤é¤Êi /Àê/ ¤¦¤ém /º¨/ ¤¦¤ä¤Þu /·É/ ¤¦¤ä¤¦¤äs /¶³/ ¤¦¤Ðu /Ã¥/ ¤¦¤Ðt /Ã¥/ ¤¦¤Ê¤¬s /Â¥/ ¤¦¤Èm /ÁÂ/ ¤¦¤Èi /ÁÂ/ ¤¦¤Ä¤¯s /Èþ/ ¤¦¤Äs /°Ü/±Ç/¼Ì/ ¤¦¤Är /°Ü/¼Ì/±Ç/ ¤¦¤Ã¤¿e /ÁÊ/ ¤¦¤¿¤¬u /µ¿/ ¤¦¤¿u /²Î/ÍØ/ ¤¦¤¹r /Çö/ ¤¦¤¹m /Çö/ ¤¦¤¹k /Çö/ ¤¦¤¹i /Çö/ ¤¦¤·¤Êu /¼º/ ¤¦¤·r /¸å/ ¤¦¤´k /ư/ ¤¦¤±¤¿¤Þ¤ïr /¾µ/ ¤¦¤«¤¬u /±®/»Ç/ ¤¦¤«¤¬i /±®/»Ç/ ¤¦t /ÂÇ/·â/Ƥ/ ¤¦r /Çä/½Ï/ÆÀ/ ¤¦m /Ëä/»º/À¸/ ¤¦k /¼õ/Éâ/ÀÁ/ ¤¦i /Éâ/Í«/ ¤¦e /µ²/¿¢/ ¤¤¤ïu /½Ë/ ¤¤¤í¤Ér /ºÌ/ ¤¤¤äs /ÈÜ/ ¤¤¤Þ¤·m /²ü/ ¤¤¤Îr /µ§/ ¤¤¤Ém /Ä©/ ¤¤¤È¤Êm /±Ä/ ¤¤¤Ä¤ïr /µ¶/ ¤¤¤Ä¤¯s /»ü/ ¤¤¤Ät /¸Þ/ ¤¤¤Á¤¸¤ës /Ãø/ ¤¤¤Àk /Êú/ ¤¤¤Ài /Êú/ ¤¤¤¿¤Àk /ĺ/Â×/ ¤¤¤¿¤Ài /Â×/ ¤¤¤¿s /Ã×/ ¤¤¤¿r /»ê/ ¤¤¤¿m /ÄË/½ý/Åé/ ¤¤¤¿i /ÄË/ ¤¤¤½¤¬s /Ë»/ ¤¤¤½g /µÞ/ ¤¤¤µ¤®¤èi /·é/ ¤¤¤µm /ͦ/ ¤¤¤³u /·Æ/ ¤¤¤³i /·Æ/ ¤¤¤¯t /´ö/ ¤¤¤¯r /´ö/ ¤¤¤­¤É¤ªr /ʰ/ ¤¤¤­¤ªi /Àª/ ¤¤¤«t /ÅÜ/ ¤¤¤«r /ÅÜ/ ¤¤u /¸À/±¾/ ¤¤r /Æþ/µï/¼Í/Í×/Ãò/ ¤¤m /´÷/ ¤¤k /¹Ô/À¸/ ¤¤i /¸À/ ¤¢¤ït /¹²/ ¤¢¤ïs /Ê»/ ¤¢¤ïr /°¥/ ¤¢¤ïi /ø/ ¤¢¤ëk /Êâ/ ¤¢¤ê¤¬¤Èu /Í­Æñ/ ¤¢¤ê¤¬¤¿i /Í­Æñ/ ¤¢¤é¤ïs /¸½/Ãø/ɽ/ ¤¢¤é¤ïr /¸½/ɽ/ ¤¢¤é¤¿m /²þ/ ¤¢¤é¤½u /Áè/ ¤¢¤éu /Àö/ ¤¢¤ét /¿·/ ¤¢¤éi /Àö/ÁÆ/¹Ó/ ¤¢¤æm /Êâ/ ¤¢¤ä¤Þt /²á/ ¤¢¤ä¤Þr /¸í/¼Õ/ ¤¢¤ä¤Är /Áà/ ¤¢¤äu /´í/ ¤¢¤äs /²ø/ ¤¢¤äb /´í/ ¤¢¤Þy /´Å/ ¤¢¤Þs /;/ ¤¢¤Þr /;/ ¤¢¤Þi /´Å/ ¤¢¤Þe /´Å/ ¤¢¤Ön /´í/ ¤¢¤Ðr /˽/ ¤¢¤Ðk /˽/ ¤¢¤Ê¤Ér /Éî/ ¤¢¤Ä¤«w /°·/ ¤¢¤Ä¤«u /°·/ ¤¢¤Ä¤«t /°·/ ¤¢¤Ä¤«o /°·/ ¤¢¤Ä¤«i /°·/ ¤¢¤Ä¤«e /°·/ ¤¢¤Äm /½¸/ ¤¢¤Äk /¸ü/Ç®/½ë/ ¤¢¤Äi /Ç®/½ë/¸ü/ ¤¢¤¿¤és /¿·/ ¤¢¤¿¤¿m /ÃÈ/²¹/ ¤¢¤¿¤¿k /ÃÈ/²¹/ ¤¢¤¿r /ÊÕ/ ¤¢¤¿e /Í¿/ ¤¢¤½b /Í·/ ¤¢¤»r /¾Ç/ ¤¢¤ºk /ÍÂ/ ¤¢¤¸w /Ì£/ ¤¢¤¶¤àk /µ½/ ¤¢¤¶y /Á¯/ ¤¢¤µk /Àõ/ ¤¢¤µi /Àõ/ ¤¢¤­¤ém /Äü/ ¤¢¤­¤Êu /¾¦/ ¤¢¤­r /ÌÀ/ ¤¢¤«r /ÀÖ/ÌÀ/ ¤¢¤«n /ÀÖ/ ¤¢¤«i /ÀÖ/ ¤¢¤ªk /ÀÄ/ ¤¢¤ªi /ÀÄ/ ¤¢¤¤¤«¤ïr /ÁêÊÑ/ ¤¢w /¹ç/ ¤¢u /¹ç/°©/²ñ/Áø/ ¤¢t /Åö/½¼/ ¤¢r /Í­/ºß/¹Ó/ ¤¢m /ÊÔ/ ¤¢k /˰/³«/¶õ/ÌÀ/ ¤¢i /¹ç/²ñ/ ¤¢g /µó/ÍÈ/¾å/ ¤¢b /Íá/ ;; okuri-nasi entries. #/# /#0·î#0Æü/#1¡¿#1/#1·î#1Æü/ #¤Ò¤­ /#1ɤ/#3ɤ/#0ɤ/#2ɤ/ >¤· /»á/ Cyrillic /§¡/§¢/§£/§¤/§¥/§¦/§§/§¨/§©/§ª/§«/§¬/§­/§®/§¯/§°/§±/§²/§³/§´/§µ/§¶/§·/§¸/§¹/§º/§»/§¼/§½/§¾/§¿/§À/§Á/ Greek /¦¡/¦¢/¦£/¦¤/¦¥/¦¦/¦§/¦¨/¦©/¦ª/¦«/¦¬/¦­/¦®/¦¯/¦°/¦±/¦²/¦³/¦´/¦µ/¦¶/¦·/¦¸/ bsd# /(concat "BSD\x2f#0")/ cyrillic /§Ñ/§Ò/§Ó/§Ô/§Õ/§Ö/§×/§Ø/§Ù/§Ú/§Û/§Ü/§Ý/§Þ/§ß/§à/§á/§â/§ã/§ä/§å/§æ/§ç/§è/§é/§ê/§ë/§ì/§í/§î/§ï/§ð/§ñ/ dosv /(concat "DOS\057V")/ greek /¦Á/¦Â/¦Ã/¦Ä/¦Å/¦Æ/¦Ç/¦È/¦É/¦Ê/¦Ë/¦Ì/¦Í/¦Î/¦Ï/¦Ð/¦Ñ/¦Ò/¦Ó/¦Ô/¦Õ/¦Ö/¦×/¦Ø/ request /¥ê¥¯¥¨¥¹¥È/ ¤¢ /°¤/°¢/°¡/°£/ ¤¢¤¤ /°¦/°¥/Áê/°§/ ¤¢¤¤¤µ¤Ä /°§»¢/ ¤¢¤¤¤À /´Ö/ ¤¢¤¤¤Æ /Áê¼ê/ ¤¢¤¤¤è¤¦ /°¦ÍÑ/ ¤¢¤¤¤é /°¨ÎÉ/ ¤¢¤ª /ÀÄ/ ¤¢¤ª¤¤ /°ª/ ¤¢¤« /ÀÖ/¹¤/ ¤¢¤«¤Ä¤­ /¶Ç/ ¤¢¤«¤Í /°«/ ¤¢¤­ /½©/°¬/ ¤¢¤¯ /°­/°®/°¯/ ¤¢¤¯¤¤ /°­°Õ/ ¤¢¤±¤Ü¤Î /½ì/ ¤¢¤µ /Ä«/Ëã/ ¤¢¤µ¤Ò /Ä«Æü/°°/ ¤¢¤¶ /»ú/ ¤¢¤· /­/°²/°±/µÓ/ ¤¢¤·¤¿ /ÌÀÆü/ ¤¢¤¸ /Ì£/°³/ ¤¢¤¹ /ÌÀÆü/ ¤¢¤º¤µ /°´/ ¤¢¤º¤Þ /Åì/ ¤¢¤» /´À/ ¤¢¤¼ /·Í/ ¤¢¤¿¤¤ /ÃÍ/²Á/ ¤¢¤¿¤«¤â /°¸/ ¤¢¤¿¤Þ /Ƭ/ ¤¢¤¿¤ê /ÊÕ/ ¤¢¤Ã¤·¤å¤¯ /°µ½Ì/ ¤¢¤Ã¤È¤¦¤Æ¤­ /°µÅÝŪ/ ¤¢¤Ä /ÆÆ/°¶/°µ/ ¤¢¤Ä¤ß /°¯Èþ/ ¤¢¤Æ /°¸/ ¤¢¤Æ¤µ¤­ /°¸Àè/ ¤¢¤È /¸å/À×/ ¤¢¤Ê /·ê/ ¤¢¤Ê¤¿ /µ®Êý/ ¤¢¤Ë /·»/ ¤¢¤Í /»Ð/°¹/ ¤¢¤Ö /°º/ ¤¢¤Ö¤é /Ìý/»é/ ¤¢¤Þ /Å·/±«/´Å/Æô/ ¤¢¤Þ¤ß /±âÈþ/ ¤¢¤ß /ÌÖ/ ¤¢¤á /±«/°»/Å·/ ¤¢¤ä /ʸ/°½/°¼/ ¤¢¤æ /°¾/ ¤¢¤é¤«¤¸¤á /ͽ/ ¤¢¤é¤¬¤Í /¹Û/ ¤¢¤é¤· /Íò/ ¤¢¤ë /°¿/ ¤¢¤ë¤¸ /¼ç/ ¤¢¤ï /Ë¢/°À/ ¤¢¤ï¤» /°Á/ ¤¢¤ó /°Â/°Æ/°Å/¹Ô/°É/°È/°Ã/°Ç/°Ä/ ¤¢¤ó¤« /°Â²Á/ ¤¢¤ó¤·¤ó /°Â¿´/ ¤¢¤ó¤¼¤ó /°ÂÁ´/ ¤¢¤ó¤Ê¤¤ /°ÆÆâ/ ¤¤ /°Ì/°Ù/°Õ/°æ/Í£/Ç¡/°Î/°Û/°ç/°å/°ä/°ã/°â/°á/°à/°ß/°Þ/°Ý/°Ü/°Ú/°×/°Ö/°Ô/°Ó/°Ò/°Ñ/°Ð/°Ï/°Í/°Ë/°Ê/°Ø/ ¤¤¤¨ /²È/ ¤¤¤« /°Ê²¼/ ¤¤¤«¤¬ /Ç¡²¿/ ¤¤¤«¤À /ȵ/ ¤¤¤«¤ê /ÉÅ/ ¤¤¤«¤ó /Ç¡²¿/ ¤¤¤¬¤¤ /°Ê³°/°Õ³°/ ¤¤¤­ /©/°è/ ¤¤¤¯ /°ê/°é/´ö/ ¤¤¤¯¤µ /Àï/ ¤¤¤± /ÃÓ/ ¤¤¤±¤ó /°Õ¸«/ ¤¤¤³¤¦ /°Ê¹ß/°Ü¹Ô/°Õ¸þ/ ¤¤¤´ /°Ê¸å/ ¤¤¤· /ÀÐ/°å»Õ/ ¤¤¤·¤­ /°Õ¼±/ ¤¤¤·¤º¤¨ /ÁÃ/ ¤¤¤·¤ã /°å¼Ô/ ¤¤¤·¤ç¤¯ /°Ü¿¢/ ¤¤¤¸ /°Ý»ý/ ¤¤¤¸¤ç¤¦ /°Ê¾å/°Û¾ï/ ¤¤¤¹ /°Ø»Ò/ ¤¤¤º¤ß /Àô/ ¤¤¤»¤ó /°ÞÀþ/ ¤¤¤¼¤ó /°ÊÁ°/ ¤¤¤½ /°ë/ ¤¤¤¾¤ó /°Í¸/ ¤¤¤¿ /ÈÄ/ ¤¤¤¿¤À¤­ /ĺ/ ¤¤¤Á /°ì/°ÌÃÖ/°í/»Ô/ ¤¤¤Á¤ª¤¦ /°ì±þ/ ¤¤¤Á¤®¤ç¤¦ /°ì¹Ô/ ¤¤¤Á¤²¤ó /°ì¸À/ ¤¤¤Á¤¸ /°ì»þ/°ì¼¡/ ¤¤¤Á¤É /°ìÅÙ/ ¤¤¤Á¤Ð¤ó /°ìÈÖ/ ¤¤¤Á¤Ö /°ìÉô/ ¤¤¤Á¤é¤ó /°ìÍ÷/ ¤¤¤Ã¤«¤¤ /°ì²ó/ ¤¤¤Ã¤­ /°ìµ¤/ ¤¤¤Ã¤±¤ó /°ì¸«/ ¤¤¤Ã¤³¤¦ /°ì¹Ô/ ¤¤¤Ã¤·¤å /°ì¼ï/ ¤¤¤Ã¤·¤ç /°ì½ï/ ¤¤¤Ã¤¿¤¤ /°ìÂÎ/ ¤¤¤Ã¤Á /°ìÃ×/ ¤¤¤Ã¤Æ¤¤ /°ìÄê/ ¤¤¤Ã¤È¤­ /°ì»þ/ ¤¤¤Ã¤Ñ¤Ä /°ìȯ/ ¤¤¤Ã¤Ñ¤ó /°ìÈÌ/ ¤¤¤Ã¤Ñ¤ó¤Æ¤­ /°ìÈÌŪ/ ¤¤¤Ã¤Ý¤¦ /°ìÊý/ ¤¤¤Ã¤Ý¤ó /°ìËÜ/ ¤¤¤Ä /°ì/¸Þ/°ï/°î/ ¤¤¤È /»å/°Õ¿Þ/ ¤¤¤É¤¦ /°Üư/ ¤¤¤Ê /ÈÝ/ ¤¤¤Ê¤« /ÅļË/ ¤¤¤Ì /¸¤/ ¤¤¤Í /°ð/ ¤¤¤Î¤·¤· /Ãö/ ¤¤¤Î¤Á /Ì¿/ ¤¤¤Ï¤ó /°ãÈ¿/ ¤¤¤Ð¤é /°ñ/ ¤¤¤Þ /º£/ ¤¤¤ß /°ÕÌ£/ ¤¤¤â /°ò/ ¤¤¤â¤¦¤È /Ëå/ ¤¤¤ä /·ù/ ¤¤¤é¤¤ /°ÊÍè/°ÍÍê/ ¤¤¤ê¤°¤Á /Æþ¸ý/ ¤¤¤í /¿§/ ¤¤¤ï /´ä/ ¤¤¤ï¤· /°ó/ ¤¤¤ó /²»/°ú/°õ/±£/±¢/°ø/±¤/±¡/°þ/°ý/°ü/°û/°ù/°÷/°ö/°ô/ ¤¤¤ó¤µ¤Ä /°õºþ/ ¤¤¤ó¤·¤ç¤¦ /°õ¾Ý/ ¤¤¤ó¤¸ /°õ»ú/ ¤¤¤ó¤¿¤¤ /°úÂà/ ¤¤¤ó¤Á /±¥/ ¤¤¤ó¤è¤¦ /°úÍÑ/ ¤¦ /±«/±¦/Í­/±­/±¬/±ª/±©/±§/±¨/ ¤¦¤¤ /½é/ ¤¦¤¨ /¾å/ ¤¦¤ª /µû/ ¤¦¤°¤¤¤¹ /²©/ ¤¦¤±¤È¤ê¤Ë¤ó /¼õ¼è¿Í/ ¤¦¤µ¤® /ÅÆ/ ¤¦¤· /µí/±¯/ ¤¦¤·¤í /¸å/ ¤¦¤¸ /»á/ ¤¦¤¹ /±±/±°/ ¤¦¤º /±²/ ¤¦¤½ /±³/ ¤¦¤¿ /²Î/±´/ ¤¦¤¿¤¤ /ÍØ/ ¤¦¤Á /Æâ/ ¤¦¤Á¤¬¤ï /Æâ¦/ ¤¦¤Ä /±¶/±µ/ ¤¦¤Ä¤ï /´ï/ ¤¦¤Ç /ÏÓ/ ¤¦¤Ê¤® /±·/ ¤¦¤Í /À¦/ ¤¦¤Ð /±¸/ ¤¦¤Ö /»º/ ¤¦¤Þ /ÇÏ/ ¤¦¤Þ¤ä /±¹/ ¤¦¤ß /³¤/ ¤¦¤á /Çß/ ¤¦¤é /΢/±º/ ¤¦¤ê /±»/ ¤¦¤ë¤¦ /±¼/ ¤¦¤ë¤¦¤É¤· /±¼Ç¯/ ¤¦¤ë¤· /¼¿/ ¤¦¤ï /¾å/ ¤¦¤ï¤µ /±½/ ¤¦¤ó /±¾/±¿/±À/ ¤¦¤ó¤¨¤¤ /±¿±Ä/ ¤¦¤ó¤Æ¤ó /±¿Å¾/ ¤¦¤ó¤è¤¦ /±¿ÍÑ/ ¤¨ /²ó/²ñ/³¨/½Å/·Ã/±Â/±Á/¹¾/ÊÁ/ ¤¨¤¤ /±Ñ/±Ç/±Æ/±Ô/±Ó/±Ò/±Ð/±Ï/±Î/±Í/±Ì/±Ë/±Ê/±É/±È/±Å/±Ä/±Ã/ ¤¨¤¤¤¨¤ó /±Ê±ó/ ¤¨¤¤¤¬ /±Ç²è/ ¤¨¤¤¤­¤ç¤¦ /±Æ¶Á/ ¤¨¤¤¤®¤ç¤¦ /±Ä¶È/ ¤¨¤¤¤´ /±Ñ¸ì/ ¤¨¤¤¤ê /±ÄÍø/ ¤¨¤­ /±Ø/Ìò/±×/±Ö/±Õ/°×/ ¤¨¤­¤á¤¤ /±ØÌ¾/ ¤¨¤À /»Þ/ ¤¨¤Ä /±Ü/±Û/±Ú/±Ù/ ¤¨¤Î¤­ /±Ý/ ¤¨¤ê /¶ß/ ¤¨¤ó /±ß/±ä/±ì/Ê¥/±é/±ö/±ô/±ó/±ò/±ñ/±ð/±ï/±î/±ë/±ê/±è/±ç/±æ/±å/±ã/±à/±Þ/±í/±â/±õ/±á/ ¤¨¤ó¤® /±éµ»/ ¤¨¤ó¤½¤¦ /±éÁÕ/ ¤ª /±ø/±÷/½ï/¾®/Èø/ͺ/ÏÂ/ ¤ª¤¤ /±ù/µè/ ¤ª¤¦ /²£/ºù/±þ/²«/²ª/²§/²¦/²¥/²¤/²¢/²¡/±ý/±ü/±û/±ú/¹Ä/²©/²¨/ ¤ª¤¦¤® /Àð/ ¤ª¤¦¤·¤ç¤¦ /²¦¾­/ ¤ª¤¦¤È¤¦ /±þÅú/ ¤ª¤¦¤Ü /±þÊç/ ¤ª¤¦¤à /óÀ̹/ ¤ª¤¦¤è¤¦ /±þÍÑ/ ¤ª¤ª /Âç/ ¤ª¤ª¤«¤ß /ϵ/ ¤ª¤ª¤´¤¨ /ÂçÀ¼/ ¤ª¤ª¤´¤È /Âç»ö/ ¤ª¤ª¤µ¤« /Âçºå/ ¤ª¤ª¤Ï¤Ð /ÂçÉý/ ¤ª¤ª¤à¤«¤· /ÂçÀÎ/ ¤ª¤ª¤à¤Í /³µ/ ¤ª¤ª¤ä¤± /¸ø/ ¤ª¤« /µÖ/²¬/ ¤ª¤¬¤ï /¾®Àî/ ¤ª¤­ /²­/ ¤ª¤® /²®/ ¤ª¤¯ /²°/±ü/²²/²±/²¯/ ¤ª¤± /²³/ ¤ª¤¹ /²´/ͺ/ ¤ª¤½¤ì /¶ó/ ¤ª¤Ã¤È /É×/ ¤ª¤Ä /²µ/ ¤ª¤È /²»/ ¤ª¤È¤¦¤È /Äï/ ¤ª¤È¤³ /ÃË/ ¤ª¤È¤Ê /Âç¿Í/ ¤ª¤Ë /µ´/ ¤ª¤Î /Éà/ ¤ª¤Î¤ª¤Î /³Æ/ ¤ª¤Î¤ì /¸Ê/ ¤ª¤Ó /ÂÓ/ ¤ª¤â /¼ç/ÌÌ/ ¤ª¤â¤¤ /»×/ ¤ª¤â¤·¤í /ÌÌÇò/ ¤ª¤â¤Æ /ɽ/ÌÌ/ ¤ª¤â¤à¤­ /¼ñ/ ¤ª¤ä /¿Æ/ ¤ª¤ì /²¶/ ¤ª¤í¤· /²·/ ¤ª¤ó /²»/²¹/¸æ/²¸/²º/±ó/ ¤ª¤ó¤¬¤¯ /²»³Ú/ ¤ª¤ó¤Ê /½÷/ ¤« /²¼/Æü/²Î/²½/²È/²¾/²Ö/²Æ/²Ð/²Ë/¹á/·¤/²Ì/²ã/²â/²á/²à/²ß/²Ý/²Ü/²Û/²Ú/²Ù/²Ø/²×/²Õ/²Ô/²Ó/²Ò/²Ñ/²Ï/²Í/²Ê/²É/²Ç/²Å/²Ä/²Ã/²Â/²Á/²À/²¿/ ¤«¤¤ /²ñ/²ó/²ò/³«/²þ/³¦/³¤/³¬/²÷/²ð/²õ/³£/³­/²ü/³§/³¨/²ù/²ø/²û/³¹/²ô/³¥/¹ÃÈå/²ú/²ö/³¡/³©/³ª/³¢/²ý/ ¤«¤¤¤¤¤ó /²ñ°÷/ ¤«¤¤¤«¤ó /²÷´¶/ ¤«¤¤¤¬¤¤ /³¤³°/ ¤«¤¤¤®¤ç¤¦ /²þ¹Ô/ ¤«¤¤¤±¤Ä /²ò·è/ ¤«¤¤¤³ /»½/ ¤«¤¤¤´¤¦ /²ñ¹ç/ ¤«¤¤¤µ¤¤ /³«ºÅ/ ¤«¤¤¤µ¤Ä /²þ»¥/ ¤«¤¤¤· /³«»Ï/ ¤«¤¤¤·¤ã /²ñ¼Ò/ ¤«¤¤¤·¤ã¤¯ /²ò¼á/ ¤«¤¤¤·¤å¤¦ /²ó¼ý/ ¤«¤¤¤·¤ç¤¦ /²ò¾Ã/ ¤«¤¤¤¸¤ç /²ò½ü/ ¤«¤¤¤¸¤ç¤¦ /²ñ¾ì/ ¤«¤¤¤¹¤¦ /²ó¿ô/ ¤«¤¤¤»¤­ /²òÀÏ/ ¤«¤¤¤»¤Ä /²òÀâ/ ¤«¤¤¤»¤ó /²óÀþ/ ¤«¤¤¤¼¤ó /²þÁ±/ ¤«¤¤¤½¤¦ /³¬ÁØ/ ¤«¤¤¤¾¤¦ /²þ¤/ ¤«¤¤¤Æ¤­ /²÷Ŭ/ ¤«¤¤¤Æ¤ó /²óž/ ¤«¤¤¤È¤¦ /²óÅú/ ¤«¤¤¤È¤¦¤·¤ã /²óÅú¼Ô/ ¤«¤¤¤Ï¤Ä /³«È¯/ ¤«¤¤¤Ø¤ó /²þÊÑ/ ¤«¤¤¤Û¤¦ /³«Êü/ ¤«¤¤¤é¤ó /²óÍ÷/ ¤«¤¤¤ê /³½/ ¤«¤¤¤ê¤ç¤¦ /²þÎÉ/ ¤«¤¤¤ï /²ñÏÃ/ ¤«¤¨¤Ç /Éö/ ¤«¤¨¤ë /³¿/ ¤«¤ª /´é/ ¤«¤ª¤ë /³¾/ ¤«¤«¤¯ /²Á³Ê/ ¤«¤«¤ê /·¸/ ¤«¤¬¤¯ /²Ê³Ø/ ¤«¤¬¤ß /¶À/ ¤«¤­ /²¼µ­/³Â/³Á/³À/ ¤«¤® /¸°/³Ã/ ¤«¤®¤ê /¸Â/ ¤«¤¯ /³Î/³Æ/µÒ/³Ð/³×/³Ö/³Õ/³Ô/³Ó/³Ò/³Ñ/³Ï/³Í/³Ì/³Ë/³Ê/³É/³È/³Ç/³Å/³Ä/²è/ ¤«¤¯¤´ /³Ð¸ç/ ¤«¤¯¤·¤ã /³Æ¼Ò/ ¤«¤¯¤·¤å /³Æ¼ï/ ¤«¤¯¤¸¤Ä /³Î¼Â/ ¤«¤¯¤À¤¤ /³ÈÂç/ ¤«¤¯¤Á¤ç¤¦ /³ÈÄ¥/ ¤«¤¯¤È¤¯ /³ÍÆÀ/ ¤«¤¯¤Ë¤ó /³Îǧ/ ¤«¤¯¤Î¤¦ /³ÊǼ/ ¤«¤¯¤Û /³ÎÊÝ/ ¤«¤¯¤ê¤Ä /³ÎΨ/³ÎΩ/ ¤«¤°¤é /¿À³Ú/ ¤«¤± /³Ý/ ¤«¤² /±¢/±Æ/ ¤«¤²¤ó /²Ã¸º/ ¤«¤³ /²áµî/ ¤«¤´ /϶/ ¤«¤µ /³Þ/»±/ ¤«¤µ¤ó /²Ã»»/ ¤«¤¶ /É÷/ ¤«¤· /²Û»Ò/²Î»ì/³à/³ß/ ¤«¤·¤å /²Î¼ê/ ¤«¤·¤ï /³ü/ ¤«¤¸ /³á/ ¤«¤¸¤« /³â/ ¤«¤¹¤ß /²â/ ¤«¤º /¿ô/ ¤«¤»¤Ä /²¾Àâ/ ¤«¤¼ /É÷/É÷¼Ù/ ¤«¤¾¤¯ /²È²/ ¤«¤¿ /Êý/·Á/·¿/¸ª/³ã/ÊÒ/ ¤«¤¿¤«¤Ê /ÊÒ²¾Ì¾/ ¤«¤¿¤­ /Ũ/ ¤«¤¿¤Á /·Á/ ¤«¤¿¤Ê /Åá/ ¤«¤¿¤Þ¤ê /²ô/ ¤«¤Á /²ÁÃÍ/ ¤«¤Ã /¹ç/ ¤«¤Ã¤³ /³ç¸Ì/ ¤«¤Ã¤Æ /¾¡¼ê/ ¤«¤Ã¤Ñ¤Ä /³èȯ/ ¤«¤Ä /³ä/³ê/³î/³í/³ì/³ë/³é/³è/³ç/³æ/³å/ ¤«¤Ä¤ª /³ï/ ¤«¤Ä¤É¤¦ /³èư/ ¤«¤Ä¤ä¤¯ /³èÌö/ ¤«¤Ä¤è¤¦ /³èÍÑ/ ¤«¤Æ /ÎÈ/ ¤«¤Æ¤¤ /²¾Äê/²áÄø/ ¤«¤É /³Ñ/Ìç/ ¤«¤É¤¦ /²ÔƯ/ ¤«¤É¤¯ /²ÄÆÉ/ ¤«¤Ê /¶â/ ¤«¤Ê¤«¤ó¤¸¤Ø¤ó¤«¤ó /²¾Ì¾´Á»úÊÑ´¹/ ¤«¤Ë¤å¤¦ /²ÃÆþ/ ¤«¤Í /¶â/¾â/ ¤«¤Í¤Ä /²ÃÇ®/ ¤«¤Î /Èà/ ¤«¤Î¤¦ /²Äǽ/ ¤«¤Î¤¦¤»¤¤ /²ÄǽÀ­/ ¤«¤Î¤¸¤ç /Èà½÷/ ¤«¤Ð /³ò/³ñ/ ¤«¤Ð¤ó /³ó/ ¤«¤Õ¤ó¤·¤ç¤¦ /²ÖÊ´¾É/ ¤«¤Ö /³ô/Éó/ ¤«¤Ö¤·¤­ /³ô¼°/ ¤«¤Ö¤È /³õ/ ¤«¤Ù /ÊÉ/ ¤«¤Þ /³ù/³ø/³÷/ÍÒ/³ö/ ¤«¤Þ¤É /³ö/ ¤«¤ß /¾å/»æ/ȱ/¿À/ ¤«¤ß¤Ê¤ê /Íë/ ¤«¤á¤¤ /²¾Ì¾/ ¤«¤á¤ó /²¾ÌÌ/ ¤«¤â /³û/ ¤«¤ä /³þ/³ý/³ü/ ¤«¤æ /´¡/ ¤«¤é /¶õ/³Ì/Åâ/ ¤«¤é¤¹ /±¨/ ¤«¤é¤À /ÂÎ/ ¤«¤ê /²¾/¼í/ ¤«¤ê¤å¤¦ /²¼Î®/ ¤«¤ì /Èà/ ¤«¤ï /¦/Àî/³×/²Ï/Èé/ ¤«¤ï¤é /´¤/ ¤«¤ó /´Ö/´¹/´¬/´¶/´Å/´Ñ/´°/È¡/´Ø/´Ü/´Û/´Ú/´Ù/´×/´Õ/´Ô/´Ó/´Ò/´Ð/´Ï/´Î/´Í/´Ì/´Ë/´Ê/´É/´Ç/´Æ/´Ä/´Ã/´Â/´Á/´À/´¿/´¾/´½/´¼/´»/´º/´¸/´·/´µ/´´/´³/´²/´±/´¯/´®/´­/´«/´ª/´©/´¨/´§/´¦/´¥/¿À/¹Ã/´È/ ¤«¤ó¤«¤¯ /´¶³Ð/ ¤«¤ó¤­¤ç¤¦ /´Ä¶­/ ¤«¤ó¤­¤ç¤¦¤»¤Ã¤Æ¤¤ /´Ä¶­ÀßÄê/ ¤«¤ó¤­¤ç¤¦¤Ø¤ó¤¹¤¦ /´Ä¶­ÊÑ¿ô/ ¤«¤ó¤±¤¤ /´Ø·¸/ ¤«¤ó¤²¤¤ /´¿·Þ/ ¤«¤ó¤³¤¯ /´Ú¹ñ/ ¤«¤ó¤µ¤¤ /´ØÀ¾/ ¤«¤ó¤·¤ã /´¶¼Õ/ ¤«¤ó¤·¤å¤¦ /´·½¬/ ¤«¤ó¤·¤ó /´¶¿´/ ¤«¤ó¤¸ /´Á»ú/´´»ö/ ¤«¤ó¤¸¤ç¤¦ /´¶¾ð/ ¤«¤ó¤¹¤¦ /´Ø¿ô/ ¤«¤ó¤¹¤¦¤á¤¤ /´Ø¿ô̾/ ¤«¤ó¤»¤¤ /´°À®/ ¤«¤ó¤»¤Ä¤Æ¤­ /´ÖÀÜŪ/ ¤«¤ó¤¼¤ó /´°Á´/ ¤«¤ó¤½¤¦ /´¶ÁÛ/ ¤«¤ó¤½¤¯ /´Ñ¬/ ¤«¤ó¤¿¤ó /´Êñ/ ¤«¤ó¤Æ¤ó /´ÑÅÀ/ ¤«¤ó¤È¤¦ /´ØÅì/ ¤«¤ó¤È¤¯ /´ÆÆÄ/ ¤«¤ó¤É¤¦ /´¶Æ°/ ¤«¤ó¤Ú¤­ /´°àú/ ¤«¤ó¤à¤ê /´§/ ¤«¤ó¤ê /´ÉÍý/ ¤«¤ó¤ê¤·¤ã /´ÉÍý¼Ô/ ¤«¤ó¤ê¤Ë¤ó /´ÉÍý¿Í/ ¤«¤ó¤ê¤ç¤¦ /´°Î»/ ¤«¤ó¤ì¤ó /´ØÏ¢/ ¤¬ /²æ/²ï/²î/²í/²ì/²ë/²ê/²é/²è/²ç/²ä/²å/ ¤¬¤¤ /³°/³¹/³²/³µ/³¼/³»/³º/³¸/³·/³¶/³´/³³/³¯/³®/³±/ ¤¬¤¤¤«¤¤ /³°³¦/ ¤¬¤¤¤³¤¯ /³°¹ñ/ ¤¬¤¤¤¸ /³°»ú/ ¤¬¤¤¤È¤¦ /³ºÅö/ ¤¬¤¤¤Í¤ó /³µÇ°/ ¤¬¤¤¤Ö /³°Éô/ ¤¬¤¤¤è¤¦ /³µÍ×/ ¤¬¤¯ /³Ú/³Û/³Ø/³Ü/³Ù/ ¤¬¤¯¤»¤¤ /³ØÀ¸/ ¤¬¤¯¤Ö /³ØÉô/ ¤¬¤¾¤¦ /²èÁü/ ¤¬¤¾¤¦¤·¤ç¤ê /²èÁü½èÍý/ ¤¬¤¾¤¦¤¸¤ç¤¦¤Û¤¦ /²èÁü¾ðÊó/ ¤¬¤Ã /¹ç/ ¤¬¤Ã¤«¤¤ /³Ø²ñ/ ¤¬¤Ã¤«¤¤¤· /³Ø²ñ»ï/ ¤¬¤Ã¤³¤¦ /³Ø¹»/ ¤¬¤Ã¤·¤ç¤¦ /¹ç¾§/ ¤¬¤Ã¤Á /¹çÃ×/ ¤¬¤Ä /·î/ ¤¬¤Þ¤ó /²æËý/ ¤¬¤á¤ó /²èÌÌ/ ¤¬¤é /ÊÁ/ ¤¬¤ó /¸µ/´é/´Ý/´Þ/´ê/´è/´ç/´æ/´å/´ä/´ã/´â/´á/´à/´ß/ ¤­ /µ¤/µ­/´ü/µ¡/µ¬/´ð/ÌÚ/µ¯/´ë/µ¢/´ñ/µ®/´þ/´í/´ó/µª/´õ/µ¨/²«/´ï/µ°/´û/µµ/´ø/µ´/´ô/µ²/µ¥/´÷/À¸/´î/µ³/´ö/µ±/´ú/´ý/µ©/µ§/µ£/´ì/´ù/µ«/´ò/µ¦/ ¤­¤¤¤í /²«¿§/ ¤­¤ª¤¯ /µ­²±/ ¤­¤«¤¤ /µ¡³£/µ¡²ñ/ ¤­¤«¤¯ /´ë²è/µ¬³Ê/ ¤­¤«¤ó /´ü´Ö/ ¤­¤¬¤ë /µ¤·Ú/ ¤­¤­¤ç¤¦ /µË¹¼/ ¤­¤®¤ç¤¦ /´ë¶È/ ¤­¤¯ /µÇ/µÆ/µÅ/ ¤­¤±¤ó /´í¸±/ ¤­¤³¤¦ /µ¡¹½/ ¤­¤´¤¦ /µ­¹æ/¢®/¢­/¢¬/¢«/¢ª/¢©/¢¨/¢§/¢¦/¢¥/¢¤/¢£/¢¢/¢¡/¡þ/¡ý/¡ü/¡û/¡ú/¡ù/¡ø/¡ò/¡ñ/¡ï/¡î/¡í/¡ì/¡ë/¡ê/¡é/¡è/¡ç/¡æ/¡å/¡â/¡à/¡ß/¡Þ/¡Û/¡Ú/¡Ù/¡Ø/¡Õ/¡Ô/¡Ó/¡Ò/¡Í/¡Ì/¡È/¡Å/¡Ä/¡Â/¡¾/¡½/¡»/¡º/¡¹/¡¸/¡·/¡¶/¡µ/¡´/¡³/¡±/¡¯/¡®/¡­/¡¬/¡«/¡¦/ ¤­¤µ¤¤ /µ­ºÜ/ ¤­¤· /´ß/ ¤­¤·¤å /µ¡¼ï/ ¤­¤¸ /µ­»ö/ ¤­¤¸¤¹¤¦ /µ­»ö¿ô/ ¤­¤¸¤»¤ó¤¿¤¯ /µ­»öÁªÂò/ ¤­¤¸¤å¤Ä /µ­½Ò/ ¤­¤¸¤å¤ó /´ð½à/ ¤­¤º /½ý/ ¤­¤»¤­ /´ñÀ×/ ¤­¤»¤Ä /µ¨Àá/ ¤­¤½¤¯ /µ¬Â§/ ¤­¤¾¤¯ /µ¢Â°/ ¤­¤¿ /ËÌ/ ¤­¤¿¤¤ /´üÂÔ/ ¤­¤Á /µÈ/ ¤­¤Á¤ç¤¦ /µ®½Å/ ¤­¤Ã¤× /ÀÚÉä/ ¤­¤Ä /µÍ/µÌ/µÊ/µÉ/µÈ/µË/ ¤­¤Æ¤¤ /µ¬Äê/ ¤­¤É¤¦ /µ¯Æ°/ ¤­¤Ë¤å¤¦ /µ­Æþ/ ¤­¤Ì /¸¨/ ¤­¤Ì¤¿ /µÎ/ ¤­¤Í /µÏ/ ¤­¤Î¤¦ /µ¡Ç½/ºòÆü/ ¤­¤Ó /µÐ/ ¤­¤Õ /´óÉÕ/ ¤­¤Ö¤ó /µ¤Ê¬/ ¤­¤Û¤ó /´ðËÜ/ ¤­¤Û¤ó¤Æ¤­ /´ðËÜŪ/ ¤­¤Ü¤¦ /´õ˾/ ¤­¤ß /·¯/ ¤­¤â /´Î/ ¤­¤ã¤¯ /µÒ/µÓ/µÑ/ ¤­¤ã¤¯¤Û¤ó /µÓËÜ/ ¤­¤å¤¦ /µ×/µÛ/µÞ/µã/µß/µÙ/µÚ/µá/µì/µë/µê/µé/µç/µæ/µå/µä/µâ/µà/µÝ/µÜ/µØ/µÖ/¶å/µè/ ¤­¤å¤¦¤¬¤¿ /µì·¿/ ¤­¤å¤¦¤­¤ç¤¯ /µæ¶Ë/ ¤­¤å¤¦¤±¤¤ /µÙ·Æ/ ¤­¤å¤¦¤·¤å¤¦ /¶å½£/ ¤­¤å¤¦¤¸¤ó /µá¿Í/ ¤­¤å¤¦¤ê¤ç¤¦ /µëÎÁ/ ¤­¤ç /µï/µî/µ÷/µö/µõ/µô/µó/µò/µñ/µð/µø/ ¤­¤ç¤¦ /º£Æü/µþ/¶¯/¶¹/¶¶/¶À/¶»/¶¦/¹á/¶¸/·Ð/¶«/¶µ/¶Ã/¶Â/¶Á/¶¿/¶½/¶¼/¶º/¶·/¶´/¶³/¶²/¶±/¶°/¶®/¶­/¶¬/¶ª/¶©/¶¨/¶§/¶¥/¶¤/¶£/¶¢/¶¡/µý/µü/·»/ ¤­¤ç¤¦¤¤¤¯ /¶µ°é/ ¤­¤ç¤¦¤­¤å¤¦ /¶¡µë/ ¤­¤ç¤¦¤¯¤ó /¶µ·±/ ¤­¤ç¤¦¤·¤å¤¯ /¶²½Ì/ ¤­¤ç¤¦¤»¤¤ /¶¯À©/ ¤­¤ç¤¦¤Á¤ç¤¦ /¶¯Ä´/ ¤­¤ç¤¦¤Ä¤¦ /¶¦ÄÌ/ ¤­¤ç¤¦¤È /µþÅÔ/ ¤­¤ç¤¦¤Õ /¶²ÉÝ/ ¤­¤ç¤¦¤ß /¶½Ì£/ ¤­¤ç¤¦¤æ¤¦ /¶¦Í­/ ¤­¤ç¤¦¤ê¤Ä /¶¦Î©/ ¤­¤ç¤¦¤ê¤ç¤¯ /¶¨ÎÏ/¶¯ÎÏ/ ¤­¤ç¤« /µö²Ä/ ¤­¤ç¤¯ /¶Ê/¶É/¶Ë/ ¤­¤ç¤¯¤·¤ç¤¦ /¶Ë¾®/ ¤­¤ç¤¯¤¿¤ó /¶Ëü/ ¤­¤ç¤¯¤á¤¤ /¶Ê̾/ ¤­¤ç¤¯¤â¤¯ /¶ÊÌÜ/ ¤­¤ç¤¸¤ó /µð¿Í/ ¤­¤ç¤À¤¤ /µðÂç/ ¤­¤ç¤Í¤ó /µîǯ/ ¤­¤ç¤Ò /µñÈÝ/ ¤­¤ç¤ê /µ÷Î¥/ ¤­¤è¤ß¤º /À¶¿å/ ¤­¤ê /¶Í/̸/ ¤­¤í¤¯ /µ­Ï¿/ ¤­¤í¤á¡¼¤È¤ë /¶Î/ ¤­¤ï /ºÝ/ ¤­¤ó /º£/¶á/¶â/¶Ú/¶à/¶ß/¶Þ/¶Ý/¶Û/¶Ù/¶Ø/¶×/¶Ö/¶Õ/¶Ô/¶Ó/¶Ò/¶Ñ/¶Ð/¶Ï/¶Ü/ ¤­¤ó¤­ /¶áµ¦/ ¤­¤ó¤±¤ó /¶â·ô/ ¤­¤ó¤· /¶Ø»ß/ ¤­¤ó¤¸¤ç /¶á½ê/ ¤­¤ó¤Ú¤ó /¶áÊÕ/ ¤­¤ó¤Ü¤¦ /¶á˵/ ¤­¤ó¤à /¶Ð̳/ ¤® /µ»/µ¿/µÄ/µÃ/µÂ/µÁ/µÀ/µ½/µ¼/µº/µ¹/µ¸/µ·/µ¶/µ¾/ ¤®¤¸¤å¤Ä /µ»½Ñ/ ¤®¤¸¤å¤Ä¤·¤ã /µ»½Ñ¼Ô/ ¤®¤¸¤å¤Ä¤Æ¤­ /µ»½ÑŪ/ ¤®¤»¤¤ /µ¾À·/ ¤®¤Õ /´ôÉì/ ¤®¤â¤ó /µ¿Ìä/ ¤®¤ã¤¯ /µÕ/µÔ/ ¤®¤ã¤¯¤«¤ó¤¹¤¦ /µÕ´Ø¿ô/ ¤®¤ã¤¯¤·¤å¤¦ /µÕ½±/ ¤®¤å¤¦ /µí/ ¤®¤å¤¦¤Ë¤å¤¦ /µíÆý/ ¤®¤ç /µû/¸æ/µú/µù/ ¤®¤ç¤¦ /¹Ô/¶Ä/¶È/¶Ç/¶Æ/¶Å/·Á/ ¤®¤ç¤¦¤«¤¤ /¶È³¦/ ¤®¤ç¤¦¤·¤ã /¶È¼Ô/ ¤®¤ç¤¯ /¶Ì/ ¤®¤í¤ó /µÄÏÀ/ ¤®¤ó /¶ä/¶ã/ ¤¯ /¸ý/¶ì/¹©/¶ï/¶î/¶í/¶ë/¶ê/¶é/¶è/¶ç/¶æ/¶å/¶¡/¹×/µ×/µÜ/¸Ë/¸ù/¹È/¶ð/ ¤¯¤¤ /¹º/ ¤¯¤¦ /¶õ/ ¤¯¤¦¤«¤ó /¶õ´Ö/ ¤¯¤¦¤­ /¶õµ¤/ ¤¯¤¦¤Ï¤¯ /¶õÇò/ ¤¯¤­ /·Ô/ ¤¯¤®¤ê /¶èÀÚ/ ¤¯¤µ /Áð/ ¤¯¤µ¤ê /º¿/ ¤¯¤· /¶û/¶ú/ ¤¯¤·¤í /¶üÏ©/ ¤¯¤¸¤é /·ß/ ¤¯¤¹¤ê /Ìô/ ¤¯¤º /¶ý/ ¤¯¤½ /ʵ/ ¤¯¤À /´É/ ¤¯¤Á /¸ý/ ¤¯¤Á¤Ó¤ë /¿°/ ¤¯¤Ä /·¤/·¡/·£/·¢/¶þ/ ¤¯¤Ä¤ï /·¥/ ¤¯¤È¤¦¤Æ¤ó /¶çÆÉÅÀ/ ¤¯¤É¤¦ /¶îư/ ¤¯¤Ë /¹ñ/ ¤¯¤Ó /¼ó/ ¤¯¤Õ¤¦ /¹©É×/ ¤¯¤Ù¤Ä /¶èÊÌ/ ¤¯¤Ü /·¦/ ¤¯¤Þ /·§/·¨/ ¤¯¤Þ¤¬¤¤ /·§Ã«/ ¤¯¤Þ¤¬¤ä /·§Ã«/ ¤¯¤ß /ÁÈ/ ¤¯¤ß¤¢¤¤ /Áȹç/ ¤¯¤á /·©/ ¤¯¤â /±À/ÃØéá/ ¤¯¤é /¢/ÁÒ/ ¤¯¤é¤¤ /°Ì/ ¤¯¤ê /·«/·ª/ ¤¯¤ë¤Þ /¼Ö/ ¤¯¤ì¤Ê¤¤ /¹È/ ¤¯¤í /¹õ/ ¤¯¤í¤¦ /¶ìÏ«/ ¤¯¤ï /·­/·¬/ ¤¯¤ó /·¯/·±/·°/·®/ ¤° /¶ó/¶ò/¶ñ/ ¤°¤¢¤¤ /¶ñ¹ç/ ¤°¤¦ /¶ù/¶ø/¶÷/¶ö/µÜ/ ¤°¤¦¤¼¤ó /¶öÁ³/ ¤°¤¿¤¤¤Æ¤­ /¶ñÂÎŪ/ ¤°¤ó /·²/·´/·³/ ¤± /µ¤/²½/²È/ÌÓ/²ø/··/·µ/²¾/ ¤±¤¤ /·Á/·¿/·Ï/·»/·×/·Ñ/·Ã/·Ú/·Ð/·¹/·Ü/·Û/·Ù/·Ø/·Ö/·Õ/·Ô/·Ó/·Ò/·Ì/·Ë/·Ê/·É/·È/·Ç/·Æ/·Å/·Ä/·Â/·À/·¾/·½/·¼/·º/·¸/µþ/¶¥/¶­/·Î/·Í/ ¤±¤¤¤¤ /·É°Õ/·Ð°Þ/ ¤±¤¤¤« /·Ð²á/ ¤±¤¤¤«¤¯ /·×²è/ ¤±¤¤¤«¤ó /·Ù´±/ ¤±¤¤¤±¤ó /·Ð¸³/ ¤±¤¤¤³ /·Î¸Å/ ¤±¤¤¤³¤¦ /·¹¸þ/ ¤±¤¤¤µ¤¤ /·ÇºÜ/ ¤±¤¤¤µ¤ó /·×»»/ ¤±¤¤¤µ¤ó¤­ /·×»»µ¡/ ¤±¤¤¤·¤­ /·Á¼°/ ¤±¤¤¤·¤ç¤¦ /·Ñ¾µ/ ¤±¤¤¤¸ /·º»ö/ ¤±¤¤¤»¤ó /·ÓÀþ/ ¤±¤¤¤¾¤¯ /·Ñ³/ ¤±¤¤¤¿¤¤ /·ÁÂÖ/ ¤±¤¤¤ä¤¯ /·ÀÌó/ ¤±¤¤¤æ /·Ðͳ/ ¤±¤¤¤ì¤Ä /·ÏÎó/ ¤±¤¤¤í /·ÐÏ©/ ¤±¤¬ /²ø²æ/ ¤±¤µ /·¶ºÀ/ ¤±¤·¤ç¤¦ /²½¾Ñ/ ¤±¤¿ /·å/ ¤±¤Ã¤« /·ë²Ì/ ¤±¤Ã¤­¤ç¤¯ /·ë¶É/ ¤±¤Ã¤³¤¦ /·ë¹½/ ¤±¤Ã¤³¤ó /·ëº§/ ¤±¤Ã¤µ¤¯ /·æºî/ ¤±¤Ã¤Æ¤¤ /·èÄê/ ¤±¤Ã¤Æ¤ó /·çÅÀ/ ¤±¤Ä /·ê/·è/·ë/·í/·ì/·é/·ç/·æ/ ¤±¤Ä¤´¤¦ /·ë¹ç/ ¤±¤Ä¤í¤ó /·ëÏÀ/ ¤±¤à¤ê /±ì/ ¤±¤â¤Î /½Ã/ ¤±¤ó /¸«/´Ö/·ï/¸¦/¸ª/¸¤/·ù/¸¢/¸³/¸²/¸±/¸¯/¸®/¸­/¸¬/¸©/¸¨/¸§/¸¥/¸£/¸¡/·þ/·ý/·ü/·û/·ú/·ø/·÷/·õ/·ô/·ó/·ò/·ñ/·ð/Ëú/¸°/·ö/ ¤±¤ó¤¤ /¸¢°Ò/ ¤±¤ó¤« /·ö²Þ/ ¤±¤ó¤­¤å¤¦ /¸¦µæ/ ¤±¤ó¤­¤å¤¦¤·¤Ä /¸¦µæ¼¼/ ¤±¤ó¤­¤å¤¦¤·¤ã /¸¦µæ¼Ô/ ¤±¤ó¤­¤å¤¦¤·¤ç /¸¦µæ½ê/ ¤±¤ó¤­¤å¤¦¤¸¤ç /¸¦µæ½ê/ ¤±¤ó¤³¤¦ /·ò¹¯/ ¤±¤ó¤µ¤¯ /¸¡º÷/ ¤±¤ó¤¸¤ç¤¦ /¸¬¾ù/ ¤±¤ó¤»¤Ä¤Æ¤­ /·úÀßŪ/ ¤±¤ó¤È¤¦ /¸¡Æ¤/ ¤±¤ó¤ê /¸¢Íø/ ¤² /²¼/³°/²ò/ ¤²¤¤ /·ß/·Þ/·Ý/ ¤²¤­ /·ã/·â/·á/·à/·ä/ ¤²¤­¤¸¤ç¤¦ /·à¾ì/ ¤²¤Ã¤«¤ó /·î´©/ ¤²¤Ä /·î/ ¤²¤ó /¸¶/¸½/¸À/¸Â/¸»/¸µ/¸º/¸·/¸¼/¸¹/¸¸/¸¿/¸³/·ù/¸¾/¸Á/´ã/ ¤²¤ó¤¤¤ó /¸¶°ø/ ¤²¤ó¤­ /¸µµ¤/ ¤²¤ó¤­¤å¤¦ /¸ÀµÚ/ ¤²¤ó¤³¤¦ /¸¶¹Æ/ ¤²¤ó¤´ /¸À¸ì/ ¤²¤ó¤µ¤¯ /¸¶ºî/ ¤²¤ó¤¶¤¤ /¸½ºß/ ¤²¤ó¤· /¸¶»Ò/ ¤²¤ó¤·¤ç¤¦ /¸½¾Ý/ ¤²¤ó¤¸¤Ä /¸½¼Â/ ¤²¤ó¤¸¤Ä¤Æ¤­ /¸½¼ÂŪ/ ¤²¤ó¤¸¤ç¤¦ /¸½¾õ/ ¤²¤ó¤½¤¯ /¸¶Â§/ ¤²¤ó¤Æ¤¤ /¸ÂÄê/ ¤²¤ó¤Æ¤ó /¸¶ÅÀ/ ¤²¤ó¤Ñ¤Ä /¸¶È¯/ ¤²¤ó¤ß¤Ä /¸·Ì©/ ¤³ /»Ò/¾®/¸Ä/¸Î/¸Å/¸Ê/¸Ç/¸Ë/¸Ì/µî/µò/¸Í/¸Æ/¸Ð/Ê´/¸Ø/¸Ü/²«/ÌÚ/¸Ý/¸É/¸Ã/¸×/¸Û/¸Ô/¸Õ/¸Ï/¸Ñ/¸È/µõ/¸Ù/¸Ú/¸Ò/¸Ö/ ¤³¤¤ /Îø/¸ñ/ ¤³¤¦ /¹Ô/¹â/¹½/¹©/¸ø/¸þ/¸ú/¹»/¸ò/¹Í/¹à/¹Æ/¸å/¹¹/¹Ö/¹¥/¹­/¸õ/¹¬/¹¯/¹³/¹È/¹ß/¹Ø/¸ù/¹×/¸÷/¹Ò/¹Ã/¸ý/³Ê/¶½/¹Ó/¹±/¹Á/¿À/¹§/¹Ä/¹¶/¸ü/¹Ì/¹Û/¹²/¹Ú/¹Î/¹Å/¹À/¹¾/¹¼/¹´/¹ª/¹¦/¶Ä/¹á/¹Ý/¹Ù/¹Õ/¹Ë/¹¿/¹µ/¹¸/²«/¸û/¹°/¸ô/¹Ê/¹Â/¹£/¹Ñ/¹Ð/¹·/¹É/¹¨/¹ã/¹¢/¸ó/¹¤/¹º/¸ö/Ì×/¹Þ/¹Ü/¹Ï/¹®/¹¡/¹«/¹Ç/ ¤³¤¦¤¤ /¹Ô°Ù/ ¤³¤¦¤¨¤ó /¹Ö±é/¸ø±à/ ¤³¤¦¤« /¸ú²Ì/¹â²Í/ ¤³¤¦¤«¤¤ /¸ø³«/¹â³¬/ ¤³¤¦¤«¤ó /¸ò´¹/ ¤³¤¦¤¬¤¯ /¹©³Ø/ ¤³¤¦¤® /¹³µÄ/ ¤³¤¦¤±¤ó /¹×¸¥/ ¤³¤¦¤³¤¦ /¹â¹»/ ¤³¤¦¤³¤¯ /¹­¹ð/ ¤³¤¦¤µ¤Ä /¹Í»¡/ ¤³¤¦¤·¤ã /¸å¼Ô/ ¤³¤¦¤·¤ó /¹¹¿·/ ¤³¤¦¤¸ /¹í/ ¤³¤¦¤»¤¤ /¹½À®/ ¤³¤¦¤½¤¯ /¹â®/ ¤³¤¦¤½¤¯¤« /¹â®²½/ ¤³¤¦¤¾¤¦ /¹½Â¤/ ¤³¤¦¤Á¤¯ /¹½ÃÛ/ ¤³¤¦¤Á¤ã /¹ÈÃã/ ¤³¤¦¤É /¹âÅÙ/ ¤³¤¦¤É¤¦ /¹Ôư/ ¤³¤¦¤Ë¤å¤¦ /¹ØÆþ/ ¤³¤¦¤Ï¤ó /¸åȾ/ ¤³¤¦¤Ò¤ç¤¦ /¸øÉ½/ ¤³¤¦¤Û /¸õÊä/ ¤³¤¦¤â¤¯ /¹àÌÜ/ ¤³¤¦¤ê¤Ä /¸úΨ/ ¤³¤¦¤ê¤ç /¹Íθ/ ¤³¤¨ /À¼/Èî/ ¤³¤ª¤ê /ɹ/ ¤³¤¯ /¹ñ/¹õ/¹ô/¹ó/¹ò/¹ð/¹ï/¹î/ÀÐ/ë/ ¤³¤¯¤µ¤¤ /¹ñºÝ/ ¤³¤¯¤Ê¤¤ /¹ñÆâ/ ¤³¤³¤Î /¶å/ ¤³¤³¤í /¿´/ ¤³¤³¤í¤¶¤· /»Ö/ ¤³¤· /¹ø/ ¤³¤·¤­ /¹ù/ ¤³¤·¤ç¤¦ /¸Î¾ã/ ¤³¤¸¤ó /¸Ä¿Í/ ¤³¤¸¤ó¤Æ¤­ /¸Ä¿ÍŪ/ ¤³¤»¤¤ /¸ÄÀ­/ ¤³¤¿¤¨ /Åú/ ¤³¤Ä /¹ü/¹û/¹ú/ ¤³¤Æ¤¤ /¸ÇÄê/ ¤³¤È /»ö/°Û/¸À/¼ì/¶×/ ¤³¤È¤¬¤é /»öÊÁ/ ¤³¤È¤· /º£Ç¯/ ¤³¤È¤Ð /¸ÀÍÕ/ ¤³¤È¤Ö¤­ /¼÷/ ¤³¤É¤â /»Ò¶¡/ ¤³¤Ê /Ê´/ ¤³¤Ù¤Ä /¸ÄÊÌ/ ¤³¤Þ /¹ý/¶ð/ ¤³¤Þ¤¤¤Ì /¹ý/ ¤³¤ß /¹þ/ ¤³¤à /¹þ/ ¤³¤á /ÊÆ/ ¤³¤â /¸Ö/ ¤³¤â¤¸ /¾®Ê¸»ú/ ¤³¤è¤ß /Îñ/ ¤³¤ì /º¡/ ¤³¤í /º¢/ ¤³¤í¤â /°á/ ¤³¤ï /À¼/ ¤³¤ó /º£/¶â/º®/º¬/º²/º±/º°/º¯/º­/º«/ºª/º©/º¨/º§/º¦/º¥/º¤/¸¥/·ú/ ¤³¤ó¤«¤¤ /º£²ó/ ¤³¤ó¤­¤ç /º¬µò/ ¤³¤ó¤²¤Ä /º£·î/ ¤³¤ó¤²¤Ä¤´¤¦ /º£·î¹æ/ ¤³¤ó¤´ /º£¸å/ ¤³¤ó¤¶¤Ä /º®»¨/ ¤³¤ó¤·¤å¤¦ /º£½µ/ ¤³¤ó¤¸¤ç¤¦ /º¬À­/ ¤³¤ó¤É /º£ÅÙ/ ¤³¤ó¤É¤¦ /º®Æ±/ ¤³¤ó¤Ê¤ó /º¤Æñ/ ¤³¤ó¤Ë¤Á /º£Æü/ ¤³¤ó¤Í¤ó /º£Ç¯/ ¤³¤ó¤Ý¤ó /º¬ËÜ/ ¤³¤ó¤ä /º£Ìë/ ¤³¤ó¤é¤ó /º®Íð/ ¤´ /¸å/¸ì/¸æ/¸í/¸î/¸ë/¸è/¸ç/¸ã/¸â/¸á/¸à/¸ß/¸Þ/´ü/¸ä/ ¤´¤¤¤±¤ó /¸æ°Õ¸«/ ¤´¤¦ /¹ç/¹æ/¶¯/¹ì/¹ë/¹ê/¹é/¹è/¹å/¹ä/¶È/¶¿/ ¤´¤¦¤¤ /¹ç°Õ/ ¤´¤¦¤±¤¤ /¹ç·×/ ¤´¤¦¤»¤¤ /¹çÀ®/ ¤´¤«¤¤ /¸í²ò/ ¤´¤¯ /¹ö/¶Ë/ ¤´¤´ /¸á¸å/ ¤´¤¸¤å¤ó /¸ì½ç/ ¤´¤¼¤ó /¸áÁ°/ ¤´¤é¤¯ /¸ä³Ú/ ¤´¤í /º¢/ ¤´¤ó /¸À/¸¢/ ¤´¤ó¤´ /¸À¸ì/ ¤µ /º¹/º¸/Ãã/º¿/º¾/º½/º¼/º»/ºº/º¶/ºµ/º´/º³/ºÆ/ºî/ ¤µ¤¤ /ºÝ/ºÇ/ºÐ/ºÍ/À¾/ºÆ/ºÊ/ºÜ/ºÛ/ºÚ/ºÙ/ºØ/º×/ºÖ/ºÕ/ºÔ/ºÓ/ºÒ/ºÑ/ºÏ/ºÎ/ºÌ/ºË/ºÉ/ºÈ/ºÅ/ºÄ/ºâ/»¦/ÀÚ/ ¤µ¤¤¤«¤¤ /ºÇ²¼°Ì/ ¤µ¤¤¤­¤ç¤¦ /ºÇ¶¯/ ¤µ¤¤¤­¤ó /ºÇ¶á/ ¤µ¤¤¤³¤¦ /ºÇ¹â/ ¤µ¤¤¤´ /ºÇ¸å/ ¤µ¤¤¤·¤å¤¦ /ºÇ½ª/ ¤µ¤¤¤·¤å¤¦¤Æ¤­ /ºÇ½ªÅª/ ¤µ¤¤¤·¤ç /ºÇ½é/ ¤µ¤¤¤·¤ç¤¦ /ºÇ¾®/ ¤µ¤¤¤·¤ç¤¦¤Á /ºÇ¾®ÃÍ/ ¤µ¤¤¤·¤ó /ºÇ¿·/ ¤µ¤¤¤·¤ó¤Ð¤ó /ºÇ¿·ÈÇ/ ¤µ¤¤¤»¤¤ /ºÆÀ¸/ ¤µ¤¤¤½¤¦ /ºÆÁ÷/ ¤µ¤¤¤¿¤Þ /ºë¶Ì/ ¤µ¤¤¤À¤¤ /ºÇÂç/ ¤µ¤¤¤Á¤å¤¦ /ºÇÃæ/ ¤µ¤¤¤Æ¤¤ /ºÇÄã/ ¤µ¤¤¤É /ºÆÅÙ/ ¤µ¤¤¤Ï¤¤¤Õ /ºÆÇÛÉÛ/ ¤µ¤¤¤Ü¤¦ /ºÙ˦/ ¤µ¤¤¤è¤¦ /ºÎÍÑ/ ¤µ¤¤¤ê¤è¤¦ /ºÆÍøÍÑ/ ¤µ¤ª /´È/ ¤µ¤« /¼ò/ºä/ºå/µÕ/ ¤µ¤«¤¤ /ºæ/¶­/ ¤µ¤«¤­ /ºç/ ¤µ¤«¤µ /µÕ/ ¤µ¤«¤º¤­ /ÇÕ/ ¤µ¤«¤Ê /µû/ºè/ ¤µ¤«¤ä /¼ò²°/ ¤µ¤¬ /À­/º·²å/ ¤µ¤­ /Àè/ºì/ºë/ºê/ºé/ ¤µ¤® /ºí/ ¤µ¤®¤ç¤¦ /ºî¶È/ ¤µ¤¯ /ºî/ºý/ºø/º÷/ºö/ºõ/ºô/ºó/ºò/ºñ/ºð/ºï/¿Ý/ ¤µ¤¯¤·¤ã /ºî¼Ô/ ¤µ¤¯¤¸¤Ä /ºòÆü/ ¤µ¤¯¤¸¤ç /ºï½ü/ ¤µ¤¯¤»¤¤ /ºîÀ®/ ¤µ¤¯¤Í¤ó /ºòǯ/ ¤µ¤¯¤Ò¤ó /ºîÉÊ/ ¤µ¤¯¤é /ºù/ ¤µ¤± /¼ò/ºú/ ¤µ¤µ /ºû/ ¤µ¤·¤À¤·¤Ë¤ó /º¹½Ð¿Í/ ¤µ¤¸ /ºü/ ¤µ¤Á /¹¬/ ¤µ¤Ã /Áá/ ¤µ¤Ã¤½¤¯ /Áá®/ ¤µ¤Ä /»¥/ºý/»¤/»§/»¦/»£/»¡/ºþ/ ¤µ¤Ä¤­ /»©/ ¤µ¤È /Τ/ ¤µ¤Ð /»ª/ ¤µ¤Ó /»¬/¼ä/ ¤µ¤Þ /ÍÍ/ ¤µ¤à¤é¤¤ /»ø/ ¤µ¤á /»­/ ¤µ¤é /¹¹/»®/ ¤µ¤é¤¹ /»¯/ ¤µ¤ë /±î/ ¤µ¤ï /Âô/ ¤µ¤ó /»³/»°/»¶/»Á/»À/»¿/»¾/»½/»¼/»»/»º/»¸/»·/»µ/»´/»²/»±/ ¤µ¤ó¤« /»²²Ã/ ¤µ¤ó¤«¤·¤ã /»²²Ã¼Ô/ ¤µ¤ó¤³¤¦ /»²¹Í/ ¤µ¤ó¤³¤¦¤·¤ê¤ç¤¦ /»²¹Í»ñÎÁ/ ¤µ¤ó¤³¤¦¤Ö¤ó¤±¤ó /»²¹Íʸ¸¥/ ¤µ¤ó¤´ /»¹¸ê/ ¤µ¤ó¤·¤ç¤¦ /»²¾È/ ¤µ¤ó¤»¤¤ /»¿À®/ ¤µ¤ó¤Á¤ç¤¦ /»³Äº/ ¤µ¤ó¤í¤¯ /»³Ï¼/ ¤¶ /ºÂ/ºÃ/ºÁ/ ¤¶¤¤ /ºâ/ºß/ºá/ºà/ºÞ/ ¤¶¤Ã¤· /»¨»ï/ ¤¶¤Ä /»¨/ ¤¶¤ó /»Ä/»Ã/»Â/ ¤¶¤ó¤Í¤ó /»Äǰ/ ¤· /»ä/»Ò/»á/»Ø/»æ/ÇÁ/»È/»ï/»à/»Ý/»Ñ/»Ð/»Ç/»ê/»Õ/»õ/»ß/»î/»ô/»ó/»ò/»ñ/»ð/»í/»ì/»ë/»é/»è/»ç/»å/»ã/»â/»Þ/»Ü/»Û/»Ú/»Ù/»×/»Ö/»Ô/»Ó/»Ï/»Î/»Í/»Ì/»Ë/»Ê/»É/»Æ/»Å/¼¡/¼¨/¼«/Ìð/ ¤·¤¢¤¤ /»î¹ç/ ¤·¤¢¤² /»Å¾å/ ¤·¤ª /¼®/±ö/Ĭ/ ¤·¤« /¼¯/ ¤·¤«¤¤ /»Ê²ñ/ ¤·¤«¤¤¤·¤ã /»Ê²ñ¼Ô/ ¤·¤«¤¯ /»ñ³Ê/ ¤·¤«¤¿ /»ÅÊý/ ¤·¤«¤ó /ÃдË/ ¤·¤­ /¿§/¼°/¿¡/¼±/¿¥/ ¤·¤® /¼²/ ¤·¤²¤ó /»ñ¸»/ ¤·¤³¤¦ /»Ø¸þ/ ¤·¤³¤¯ /»Í¹ñ/ ¤·¤´¤È /»Å»ö/ ¤·¤· /¼µ/ ¤·¤¸ /»Ø¼¨/»Ù»ý/ ¤·¤¸¤ç¤¦ /»Ë¾å/ ¤·¤º /ÀÅ/ ¤·¤º¤¯ /¼¶/Å©/ ¤·¤»¤¤ /»ÑÀª/ ¤·¤¼¤ó /¼«Á³/ ¤·¤½¤¦ /»×ÁÛ/ ¤·¤¿ /²¼/Àå/ ¤·¤À¤¤ /¼¡Âè/ ¤·¤Á /¼Á/¼·/ ¤·¤Ã¤Ñ¤¤ /¼ºÇÔ/ ¤·¤Ä /¼º/¼Á/¼À/¼¿/¼¾/¼½/¼¼/¼»/¼¹/¼¸/ ¤·¤Ä¤â¤ó /¼ÁÌä/ ¤·¤Ä¤ì¤¤ /¼ºÎé/ ¤·¤Æ¤¤ /»ØÄê/ ¤·¤Æ¤­ /»ØÅ¦/ ¤·¤Æ¤Ä /»äÅ´/ ¤·¤È¤ß /¼Ã/ ¤·¤Ê /ÉÊ/ ¤·¤Î /¼Ä/ ¤·¤Ð /¼Ç/¼Æ/ ¤·¤Ð¤·¤Ð /¼È/ ¤·¤Ö /½Â/ ¤·¤Ö¤ä /½Âë/ ¤·¤Ù /¼É/ ¤·¤Ü¤¦ /»éËÃ/ ¤·¤Þ /¼Ê/Åç/ ¤·¤ß¤º /À¶¿å/ ¤·¤á¤¤ /»á̾/ ¤·¤â /²¼/ ¤·¤â¤Æ /²¼¼ê/ ¤·¤ã /¼Ö/¼Ô/¼Ò/¼Ñ/¼Ì/¼Ð/¼×/¼Õ/¼Ó/¼Ï/¼Î/¼Í/¼Ë/º½/ ¤·¤ã¤¤¤ó /¼Ò°÷/ ¤·¤ã¤«¤¤ /¼Ò²ñ/ ¤·¤ã¤¯ /¼á/¼Ú/¼Ü/ÀÐ/¼ß/¼à/¼Ý/¼Þ/¼â/ÀÎ/¼Û/ ¤·¤ã¤·¤ç¤¦ /¼Ö¾¸/ ¤·¤ã¤·¤ó /¼Ì¿¿/ ¤·¤ã¤Ê¤¤ /¼ÒÆâ/ ¤·¤ã¤ê¤ç¤¦ /¼Öξ/ ¤·¤å /¼ê/¼ç/¼ï/½¤/¼ó/¼ò/¼è/¼ñ/¼ð/¼î/¼í/¼ì/¼ë/¼é/½°/ ¤·¤å¤¦ /½¸/½¤/½µ/½©/½Ë/½¦/½¬/½¹/½·/½´/½³/½±/½°/½®/½­/½«/½ª/½¨/½§/½¥/½£/½¢/½¡/¼þ/¼ý/¼ü/¼¹/½²/½¯/½¶/ ¤·¤å¤¦¤¤ /¼þ°Ï/ ¤·¤å¤¦¤«¤ó /½µ´Ö/ ¤·¤å¤¦¤´¤¦ /½¸¹ç/ ¤·¤å¤¦¤·¤å¤¦ /½¯½¸/ ¤·¤å¤¦¤»¤¤ /½¤Àµ/ ¤·¤å¤¦¤½¤¯ /¼ý«/ ¤·¤å¤¦¤À¤ó /½¸ÃÄ/ ¤·¤å¤¦¤Á¤ç¤¦ /½¶Ä¹/ ¤·¤å¤¦¤Æ¤ó /½ªÅÀ/ ¤·¤å¤¦¤Ï¤¹¤¦ /¼þÇÈ¿ô/ ¤·¤å¤¦¤Ø¤ó /¼þÊÕ/ ¤·¤å¤¦¤Þ¤Ä /½µËö/ ¤·¤å¤¦¤ê¤ç¤¦ /½ªÎ»/ ¤·¤å¤¦¤í¤ó /½¤ÏÀ/ ¤·¤å¤¯ /½É/½Ë/½Í/½Ì/½Ê/½È/½Ç/ ¤·¤å¤´ /¼ç¸ì/ ¤·¤å¤µ¤¤ /¼çºÅ/ ¤·¤å¤· /¼ç»Ý/ ¤·¤å¤¸¤ó /¼ç¿Í/ ¤·¤å¤À¤¤ /¼çÂê/ ¤·¤å¤À¤ó /¼êÃÊ/ ¤·¤å¤Á¤ç¤¦ /¼çÄ¥/ ¤·¤å¤Ã¤« /½Ð²Ù/ ¤·¤å¤Ã¤Á¤ç¤¦ /½ÐÄ¥/ ¤·¤å¤Ã¤Ñ¤Ä /½Ðȯ/ ¤·¤å¤Ã¤Ñ¤ó /½ÐÈÇ/ ¤·¤å¤Ã¤Ñ¤ó¤·¤ã /½ÐÈǼÒ/ ¤·¤å¤Ä /½Ð/ ¤·¤å¤Ä¤¨¤ó /½Ð±é/ ¤·¤å¤Ä¤ê¤ç¤¯ /½ÐÎÏ/ ¤·¤å¤Û¤¦ /¼êË¡/ ¤·¤å¤ß /¼ñÌ£/ ¤·¤å¤ë¤¤ /¼ïÎà/ ¤·¤å¤ó /½Õ/½Ö/½Ù/½Ø/½Ô/½Ó/½×/ ¤·¤å¤ó¤«¤ó /½Ö´Ö/ ¤·¤å¤ó¤³¤¦ /½×¹©/ ¤·¤ç /½ê/½é/½ñ/½ë/½ô/½ó/½ò/½ð/½ï/½î/½è/½í/½ì/ ¤·¤ç¤¦ /¾®/¾Ú/¾¦/¾Ý/¾¯/¾Ã/¾¡/¾Þ/¾­/¾Î/¾ã/¾È/¾É/¾Ï/¾µ/¾Ê/½þ/¾§/Àµ/¾Ò/¾¼/¾¸/¾Ü/½ý/¾×/¾©/À¸/¾Ä/¾Ð/À­/¾Æ/¾½/¾·/¾Ç/¾Í/¾´/¾¤/Áõ/¾Ø/Áê/¾º/¾²/¾¾/¾±/¾°/Àº/¾»/¾Ù/¾¢/¾¹/¾¶/¾â/¾Ó/¾Ë/¾¿/¾¥/¾ß/¾Ì/¾«/¾å/¾ä/¾Û/À¼/À«/¾À/¾á/À±/À¯/¾¬/¾£/ÀÄ/¾Â/¾³/¾Õ/¾ª/¾¨/¾à/¾Á/¾Ñ/¾Å/¾Ö/ ¤·¤ç¤¦¤«¤¤ /¾Ò²ð/ ¤·¤ç¤¦¤¬¤¤ /¾ã³²/ ¤·¤ç¤¦¤­¤ç /¾Ãµî/ ¤·¤ç¤¦¤®¤ç¤¦ /¾¦¶È/ ¤·¤ç¤¦¤®¤ç¤¦¤Æ¤­ /¾¦¶ÈŪ/ ¤·¤ç¤¦¤³ /¾Úµò/ ¤·¤ç¤¦¤´¤¦ /¾È¹ç/ ¤·¤ç¤¦¤µ¤¤ /¾ÜºÙ/ ¤·¤ç¤¦¤¸¤ç /¾¯½÷/ ¤·¤ç¤¦¤¸¤ç¤¦ /¾É¾õ/ ¤·¤ç¤¦¤»¤Ä /¾®Àâ/ ¤·¤ç¤¦¤Ê¤ó /¾ÅÆî/ ¤·¤ç¤¦¤Í¤ó /¾¯Ç¯/ ¤·¤ç¤¦¤Ð¤¤ /¾¦Çä/ ¤·¤ç¤¦¤Ò /¾ÃÈñ/ ¤·¤ç¤¦¤Ò¤·¤ã /¾ÃÈñ¼Ô/ ¤·¤ç¤¦¤Ò¤ç¤¦ /¾¦É¸/ ¤·¤ç¤¦¤Ò¤ç¤¦¤±¤ó /¾¦É¸¸¢/ ¤·¤ç¤¦¤Ò¤ó /¾¦ÉÊ/ ¤·¤ç¤¦¤Ö /¾¡Éé/¾Ô³÷/ ¤·¤ç¤¦¤á¤¤ /¾ÚÌÀ/ ¤·¤ç¤¦¤è¤¦ /¾¦ÍÑ/ ¤·¤ç¤¦¤é¤¤ /¾­Íè/ ¤·¤ç¤¦¤ê¤ã¤¯ /¾Êά/ ¤·¤ç¤¦¤ï /¾¼ÏÂ/ ¤·¤ç¤­ /½é´ü/ ¤·¤ç¤­¤±¤¤ /½é´ü·¿/ ¤·¤ç¤¯ /¿§/¿¤/¿¡/¿©/¿ª/¿¨/¿¦/¿¥/¿£/¿¢/¾þ/¾ý/¾ü/ ¤·¤ç¤¯¤¸ /¿©»ö/ ¤·¤ç¤¯¤É¤¦ /¿©Æ²/ ¤·¤ç¤·¤ó¤·¤ã /½é¿´¼Ô/ ¤·¤ç¤¾¤¯ /½ê°/ ¤·¤ç¤á¤¤ /½ð̾/ ¤·¤ç¤æ¤¦ /½êÍ­/ ¤·¤ç¤ê /½èÍý/ ¤·¤ç¤ê¤±¤¤ /½èÍý·Ï/ ¤·¤è¤¦ /»ÈÍÑ/»ÅÍÍ/ ¤·¤è¤¦¤Û¤¦ /»ÈÍÑË¡/ ¤·¤é /Çò/ ¤·¤ê /¿¬/ ¤·¤ê¤ç¤¦ /»ñÎÁ/ ¤·¤ë /½Á/ ¤·¤ë¤· /°õ/ ¤·¤ì¤¤ /»ØÎá/ ¤·¤í /¾ë/Çò/Âå/ ¤·¤í¤¦¤È /ÁÇ¿Í/ ¤·¤ó /¿´/¿·/¿¿/¿Æ/¿È/¿À/¿­/¿¹/¿²/¿É/ä/¿Ê/¿®/¿Ì/¿Ë/¿Ç/¿Å/¿Ä/¿Ã/¿Â/¿Á/¿¾/¿½/¿¼/¿»/¿º/¿¸/¿¶/¿µ/¿³/¿±/¿°/¿¯/ÀÁ/ ¤·¤ó¤«¤ó¤»¤ó /¿·´´Àþ/ ¤·¤ó¤¬¤¤ /¿¯³²/ ¤·¤ó¤±¤¤ /¿À·Ð/ ¤·¤ó¤±¤ó /¿¿·õ/ ¤·¤ó¤´¤¦ /¿®¹æ/ ¤·¤ó¤µ¤¯ /¿·ºî/ ¤·¤ó¤µ¤Ä /¿Ç»¡/ ¤·¤ó¤·¤ã /¿·¼Ö/ ¤·¤ó¤·¤å¤Ä /¿·½Ð/ ¤·¤ó¤¸¤å¤¯ /¿·½É/ ¤·¤ó¤¸¤ó /¿·¿Í/ ¤·¤ó¤»¤¤¤Ò¤ó /¿·À½ÉÊ/ ¤·¤ó¤»¤À¤¤ /¿·À¤Âå/ ¤·¤ó¤»¤Ä /¿ÆÀÚ/¿·Àß/ ¤·¤ó¤Ñ¤¤ /¿´ÇÛ/ ¤·¤ó¤Ö¤ó /¿·Ê¹/ ¤·¤ó¤Ý /¿ÊÊâ/ ¤·¤ó¤ä /¿¼Ìë/ ¤·¤ó¤è¤¦ /¿®ÍÑ/ ¤·¤ó¤é¤¤ /¿®Íê/ ¤·¤ó¤é¤¤¤»¤¤ /¿®ÍêÀ­/ ¤·¤ó¤ï /¿ÀÏÃ/ ¤¸ /»þ/»ö/¼«/»ú/¼¡/¼¨/ÃÏ/¼­/¼£/»û/¼§/»ý/»÷/Ï©/»ù/¼ª/»ü/¼¢/¼¦/»ø/½ü/»Å/¼¥/¼¤/¼©/¼¬/ ¤¸¤¤¤·¤­ /¼«°Õ¼±/ ¤¸¤«¤¤ /¼¡²ó/ ¤¸¤«¤ó /»þ´Ö/ ¤¸¤­ /ľ/»þ´ü/ ¤¸¤®¤ç¤¦ /»ö¶È/ ¤¸¤®¤ç¤¦¤Ö /»ö¶ÈÉô/ ¤¸¤¯ /¼µ/¼´/¼³/ ¤¸¤±¤ó /»ö·ï/ ¤¸¤³ /»ö¸Î/¼«¸Ê/ ¤¸¤³¤¦ /»ö¹à/ ¤¸¤³¤¯ /»þ¹ï/ ¤¸¤µ¤¯ /¼«ºî/ ¤¸¤·¤ç /¼­½ñ/ ¤¸¤·¤ó /¼«¿È/¼«¿®/ÃÏ¿Ì/ ¤¸¤¸¤Ä /»ö¼Â/ ¤¸¤¸¤ç¤¦ /»ö¾ð/ ¤¸¤»¤¤ /»þÀ©/ ¤¸¤¿¤¤ /¼«ÂÎ/»öÂÖ/ ¤¸¤¿¤¯ /¼«Âð/ ¤¸¤À¤¤ /»þÂå/ ¤¸¤Ã /½½/ ¤¸¤Ã¤« /¼Â²È/ ¤¸¤Ã¤±¤ó /¼Â¸³/ ¤¸¤Ã¤³¤¦ /¼Â¹Ô/ ¤¸¤Ã¤µ¤¤ /¼ÂºÝ/ ¤¸¤Ã¤·¤å¤¦ /¼Â½¬/ ¤¸¤Ã¤»¤­ /¼ÂÀÓ/ ¤¸¤Ã¤¿¤¤ /¼ÂÂÎ/ ¤¸¤Ä /Æü/¼Â/ ¤¸¤Ä¤²¤ó /¼Â¸½/ ¤¸¤Ä¤¶¤¤ /¼Âºß/ ¤¸¤Ä¤è¤¦ /¼ÂÍÑ/ ¤¸¤Ä¤è¤¦¤« /¼ÂÍѲ½/ ¤¸¤Ä¤ì¤¤ /¼ÂÎã/ ¤¸¤Æ¤ó /»þÅÀ/ ¤¸¤Æ¤ó¤·¤ã /¼«Å¾¼Ö/ ¤¸¤É¤¦ /¼«Æ°/ ¤¸¤É¤¦¤·¤ã /¼«Æ°¼Ö/ ¤¸¤É¤¦¤Æ¤­ /¼«Æ°Åª/ ¤¸¤Ö¤ó /¼«Ê¬/ ¤¸¤à¤­¤ç¤¯ /»ö̳¶É/ ¤¸¤â¤È /Ãϸµ/ ¤¸¤ã /¼Ù/¼Ø/ ¤¸¤ã¤¯ /¼å/¼ã/¼ä/Ãå/¼æ/ ¤¸¤ã¤Ã¤«¤ó /¼ã´³/ ¤¸¤ã¤Þ /¼ÙËâ/ ¤¸¤å /¼õ/¼û/¼ú/¼ù/¼ø/¼÷/¼ö/¼ô/½¢/ ¤¸¤å¤¦ /½Å/½½/½»/½¾/½Â/½À/½¼/½Ã/½Æ/½Ä/½¿/½Á/½º/½¦/ ¤¸¤å¤¦¤· /½Å»ë/ ¤¸¤å¤¦¤·¤ç /½»½ê/ ¤¸¤å¤¦¤·¤ó /½Å¿´/ ¤¸¤å¤¦¤¿¤¤ /½ÂÂÚ/ ¤¸¤å¤¦¤Õ¤¯ /½ÅÊ£/ ¤¸¤å¤¦¤Ö¤ó /½½Ê¬/ ¤¸¤å¤¦¤è¤¦ /½ÅÍ×/ ¤¸¤å¤¦¤é¤¤ /½¾Íè/ ¤¸¤å¤¯ /½Ï/½Î/ ¤¸¤å¤·¤ó /¼õ¿®/ ¤¸¤å¤Ä /½Ò/½Ñ/ ¤¸¤å¤â¤ó /¼öʸ/ ¤¸¤å¤è¤¦ /¼ûÍ×/ ¤¸¤å¤ó /½ç/½æ/½å/½ä/½ã/½â/½á/½à/½ß/½Þ/½Ü/½Û/½Ú/½Ý/ ¤¸¤å¤ó¤«¤¤ /½ä²ó/ ¤¸¤å¤ó¤¹¤¤ /½ã¿è/ ¤¸¤å¤ó¤Á¤ç¤¦ /½çÄ´/ ¤¸¤å¤ó¤Ð¤ó /½çÈÖ/ ¤¸¤å¤ó¤Ó /½àÈ÷/ ¤¸¤æ¤¦ /¼«Í³/ ¤¸¤ç /½÷/Ç¡/½ü/½ú/½ù/½ø/½ö/½õ/½û/ ¤¸¤ç¤¦ /¾å/¾ð/¾ï/¾ì/¾õ/¾è/¾ò/¾ë/Äê/¾ù/¾æ/¾ê/¾ô/¾ø/¾ú/¾é/¾û/¾ö/À®/¾í/ÀÅ/À¹/¾î/¾ó/¾ç/¾÷/¾ñ/ ¤¸¤ç¤¦¤¤ /¾å°Ì/ ¤¸¤ç¤¦¤­ /¾åµ­/ ¤¸¤ç¤¦¤­¤ç¤¦ /¾õ¶·/ ¤¸¤ç¤¦¤±¤ó /¾ò·ï/ ¤¸¤ç¤¦¤· /¾å»Ê/ ¤¸¤ç¤¦¤·¤­ /¾ï¼±/ ¤¸¤ç¤¦¤¿¤¤ /¾õÂÖ/ ¤¸¤ç¤¦¤À¤ó /¾éÃÌ/ ¤¸¤ç¤¦¤Û¤¦ /¾ðÊó/ ¤¸¤ç¤¦¤Û¤¦¤·¤ç¤ê /¾ðÊó½èÍý/ ¤¸¤ç¤¦¤é¤ó /¾ñÍð/ ¤¸¤ç¤¦¤ê¤å¤¦ /¾åή/ ¤¸¤ç¤¦¤ì¤ó /¾ïÏ¢/ ¤¸¤ç¤¬¤¤ /½ü³°/ ¤¸¤ç¤¯ /¿«/ ¤¸¤ç¤· /½÷»Ò/ ¤¸¤ç¤·¤å /½õ¼ê/ ¤¸¤ç¤»¤¤ /½÷À­/ ¤¸¤ç¤æ¤¦ /½÷Í¥/ ¤¸¤ç¤ê¤ç¤¯ /½õÎÏ/ ¤¸¤ó /¿Í/¿Ô/¿Ù/¿Ø/¿×/¿Ö/¿Õ/¿Ó/¿Ò/¿Ñ/¿Ð/¿Ï/¿Î/¿À/¿Ã/ ¤¸¤ó¤³¤¦ /¿Í¹©/ ¤¸¤ó¤»¤¤ /¿ÍÀ¸/ ¤¹ /ÁÇ/¿Ü/»Ò/¼é/Áã/¿Ý/½£/¼ç/¿ô/¿Ú/¿Û/ ¤¹¤¤ /¿å/¿á/¿î/¿í/¿ì/¿ë/¿ê/¿é/¿è/¿ç/¿æ/¿ä/¿ã/¿â/½Ð/Êæ/ ¤¹¤¤¤·¤ó /¿ä¿Ê/ ¤¹¤¤¤½¤¯ /¿ä¬/ ¤¹¤¤¤í¤ó /¿äÏÀ/ ¤¹¤¦ /¿ô/¿÷/¿ö/¿õ/¿ó/¿ò/ ¤¹¤¦¤¸ /¿ô»ú/ ¤¹¤¦¤Á /¿ôÃÍ/ ¤¹¤¦¤Í¤ó /¿ôǯ/ ¤¹¤¦¤Õ¤ó /¿ôʬ/ ¤¹¤¨ /Ëö/ ¤¹¤¨¤Ò¤í /Ëö¹­/ ¤¹¤¬¤¿ /»Ñ/ ¤¹¤­ /·ä/½û/ ¤¹¤® /¿ú/¿ù/ ¤¹¤± /²ð/½õ/ ¤¹¤² /¿û/ ¤¹¤³¤Ö¤ë /¿ü/ ¤¹¤¸ /¶Ú/ ¤¹¤º /Îë/ ¤¹¤º¤á /¿ý/ ¤¹¤½ /¿þ/ ¤¹¤Ç /´û/ ¤¹¤Ê /º½/ ¤¹¤Ê¤ª /ÁÇľ/ ¤¹¤Ù¤Æ /Áí/ ¤¹¤ß /¶ù/ú/ËÏ/ ¤¹¤ê /À¢/ ¤¹¤ï /¿Ûˬ/ ¤¹¤ó /À£/ ¤º /¿Þ/Ƭ/Ʀ/»ö/¿ß/ ¤º¤¤ /¿ñ/¿ð/¿ï/ ¤º¤¤¤Ö¤ó /¿ïʬ/ ¤º¤±¤¤ /¿Þ·Á/ ¤º¤· /¿à»Ò/ ¤» /À¤/ÇØ/À¥/À¦/»Ü/ ¤»¤¤ /À¸/À¼/À¤/À±/À®/À­/À¾/À½/Àµ/À«/ÀÄ/Àª/ÀÆ/ÀÅ/ÀÃ/ÀÂ/ÀÁ/ÀÀ/À¿/À»/Àº/À¹/À¶/À´/À³/À²/À°/À¯/À¬/À©/À¨/¾Ê/ºÐ/¾ð/Ì»/ÇØ/À·/ ¤»¤¤¤« /À®²Ì/ ¤»¤¤¤«¤¤ /Àµ²ò/ ¤»¤¤¤«¤¯ /Àµ³Î/À­³Ê/ ¤»¤¤¤«¤Ä /À¸³è/ ¤»¤¤¤­ /À¤µª/ ¤»¤¤¤­¤å¤¦ /ÀÁµá/ ¤»¤¤¤®¤ç /À©¸æ/ ¤»¤¤¤²¤ó /À©¸Â/ ¤»¤¤¤³¤¦ /À®¸ù/ ¤»¤¤¤·¤­ /Àµ¼°/ ¤»¤¤¤·¤Ä /À­¼Á/ ¤»¤¤¤·¤å¤ó /ÀĽÕ/ ¤»¤¤¤·¤ó /Àº¿À/ ¤»¤¤¤¸¤ç¤¦ /Àµ¾ï/ ¤»¤¤¤»¤¤ /À¸À®/ ¤»¤¤¤»¤­ /À®ÀÓ/ ¤»¤¤¤Á¤ç¤¦ /À®Ä¹/ ¤»¤¤¤Ç¤ó¤­ /ÀÅÅŵ¤/ ¤»¤¤¤È¤¦ /ÀµÅö/ ¤»¤¤¤È¤¯¤Æ¤­ /À¸ÆÀŪ/ ¤»¤¤¤É /À©ÅÙ/ ¤»¤¤¤Î¤¦ /À­Ç½/ ¤»¤¤¤Ò¤ó /À½ÉÊ/ ¤»¤¤¤ä¤¯ /À©Ìó/ ¤»¤¤¤ê /À°Íý/ ¤»¤¤¤ê¤Ä /À®Î©/ ¤»¤¤¤ì¤­ /À¾Îñ/ ¤»¤«¤¤ /À¤³¦/ ¤»¤«¤¤¤¸¤å¤¦ /À¤³¦Ãæ/ ¤»¤­ /ÀÎ/ÀÑ/ÀÊ/ͼ/´Ø/¼ä/ÀÙ/ÀØ/À×/ÀÖ/ÀÕ/ÀÔ/ÀÓ/ÀÒ/ÀÐ/ÀÏ/ÀÍ/ÀÌ/ÀË/ÀÉ/±á/³±/ ¤»¤­¤Ë¤ó /ÀÕǤ/ ¤»¤±¤ó /À¤´Ö/ ¤»¤¿¤¬¤ä /À¤ÅÄë/ ¤»¤Á /Àá/ ¤»¤Ã¤­¤ç¤¯¤Æ¤­ /ÀѶËŪ/ ¤»¤Ã¤±¤¤ /Àß·×/ ¤»¤Ã¤±¤ó /Àи´/ ¤»¤Ã¤Æ¤¤ /ÀßÄê/ ¤»¤Ä /Àã/Àâ/Àá/ÀÚ/Àß/ÀÞ/Àà/ÀÝ/ÀÜ/ÀÛ/»¦/ ¤»¤Ä¤¸¤ç¤¯ /Àã¿«/ ¤»¤Ä¤¾¤¯ /Àܳ/ ¤»¤Ä¤á¤¤ /ÀâÌÀ/ ¤»¤ß /Àæ/ ¤»¤ê /¶Ü/ ¤»¤ê¤Õ /Âæ»ì/ ¤»¤ï /À¤ÏÃ/ ¤»¤ï¤Ë¤ó /À¤ÏÿÍ/ ¤»¤ó /Àè/Àþ/Àï/Á¡/Á¥/Àî/Áª/Àê/Á¯/Á®/Á­/Á¬/Á«/Á©/Á¨/Á§/Á¦/Á£/Á¢/Àý/Àü/Àû/Àú/Àù/Àø/À÷/Àö/Àõ/Àô/Àò/Àñ/Àð/Àí/Àì/Àë/Àé/Àç/Á¤/ ¤»¤ó¤²¤ó /Àë¸À/ ¤»¤ó¤³¤¦ /Àè¹Ô/ ¤»¤ó¤·¤å /Áª¼ê/ ¤»¤ó¤·¤å¤¦ /Àè½µ/ ¤»¤ó¤·¤å¤±¤ó /Áª¼ê¸¢/ ¤»¤ó¤¸¤Ä /ÀèÆü/ ¤»¤ó¤»¤¤ /ÀèÀ¸/ ¤»¤ó¤½¤¦ /ÀïÁè/ ¤»¤ó¤¿¤¯ /ÁªÂò/ÀöÂõ/ ¤»¤ó¤À¤ó /ÀóÃÉ/ ¤»¤ó¤Á /Á¸/ ¤»¤ó¤Á¤á¡¼¤È¤ë /Á¸/ ¤»¤ó¤Ç¤ó /ÀëÅÁ/ ¤»¤ó¤È¤¦ /ÀèÆ¬/ ¤»¤ó¤Ñ¤¤ /ÀèÇÚ/ ¤»¤ó¤á¤¤ /Á¯ÌÀ/ ¤»¤ó¤â¤ó /ÀìÌç/ ¤»¤ó¤â¤ó¤« /ÀìÌç²È/ ¤»¤ó¤è¤¦ /ÀìÍÑ/ ¤»¤ó¤í /ÀþÏ©/ ¤¼ /À§/ ¤¼¤¤ /ÀÇ/ÀÈ/Àâ/ ¤¼¤¤¤­¤ó /ÀǶâ/ ¤¼¤Ã¤¿¤¤ /ÀäÂÐ/ ¤¼¤Ä /Àä/Àå/ ¤¼¤Ë /Á¬/ ¤¼¤Ò /À§Èó/ ¤¼¤ó /Á°/Á´/Á·/Á¶/Áµ/Á³/Á²/Á±/ ¤¼¤ó¤¤¤ó /Á´°÷/ ¤¼¤ó¤«¤¤ /Á°²ó/ ¤¼¤ó¤«¤¯ /Á´³Ñ/ ¤¼¤ó¤«¤¯¤«¤Ê /Á´³Ñ²¾Ì¾/ ¤¼¤ó¤³¤¯ /Á´¹ñ/ ¤¼¤ó¤³¤¯¤Æ¤­ /Á´¹ñŪ/ ¤¼¤ó¤·¤ã /Á°¼Ô/ ¤¼¤ó¤¸¤ó¤ë¤¤ /Á´¿ÍÎà/ ¤¼¤ó¤¼¤ó /Á´Á³/ ¤¼¤ó¤¿¤¤ /Á´ÂÎ/ ¤¼¤ó¤Æ¤¤ /Á°Äó/ ¤¼¤ó¤Ö /Á´Éô/ ¤¼¤ó¤×¤¯ /Á´Éý/ ¤½ /ÁÈ/ÁÍ/ÁÌ/ÁË/ÁÊ/ÁÉ/ÁÇ/ÁÆ/ÁÅ/ÁÄ/ÁÃ/ÁÂ/ÁÁ/ÁÀ/Á¿/Á¾/Á½/Á»/Áº/ÁÛ/Á¼/ ¤½¤¦ /Áû/Áí/ÁØ/Áê/ÁÛ/Á÷/Áá/Áú/Áù/Áø/Áö/Áõ/Áô/Áó/Áò/Áñ/Áð/Áï/Áî/Áì/Áë/Áé/Áè/Áç/Áæ/Áå/Áä/Áã/Áâ/Áà/Áß/ÁÞ/ÁÝ/ÁÜ/ÁÚ/Á×/ÁÖ/ÁÕ/ÁÔ/ÁÓ/ÁÒ/ÁÑ/ÁÐ/ÁÏ/ÁÎ/½¡/£/ÁÙ/ ¤½¤¦¤ª¤¦ /Áê±þ/ ¤½¤¦¤µ /Áàºî/Áܺº/ÁÙº¼/ ¤½¤¦¤µ¤¯ /ÁϺî/ ¤½¤¦¤·¤ó /Á÷¿®/ ¤½¤¦¤¾¤¦ /ÁÛÁü/ ¤½¤¦¤À¤ó /ÁêÃÌ/ ¤½¤¦¤Á /ÁõÃÖ/ ¤½¤¦¤Á¤ã¤¯ /ÁõÃå/ ¤½¤¦¤Æ¤¤ /ÁÛÄê/ ¤½¤¦¤È¤¦ /ÁêÅö/ ¤½¤¦¤Û¤¦ /ÁÐÊý/ ¤½¤¦¤ê¤ç¤¦ /Á÷ÎÁ/ ¤½¤¦¤í¤¦ /¸õ/ ¤½¤¬¤¤ /Á˳²/ ¤½¤¯ /­/¦/®/©/¨/¬/«/ª/§/Â¥/ ¤½¤¯¤»¤ó /¦Àþ/ ¤½¤¯¤É /®ÅÙ/ ¤½¤³ /Äì/ ¤½¤·¤­ /ÁÈ¿¥/ ¤½¤Ä /Ψ/´/ ¤½¤Ä¤®¤ç¤¦ /´¶È/ ¤½¤Ç /µ/ ¤½¤È /³°/ ¤½¤Î /¶/±à/ ¤½¤Ð /¶¾Çþ/ ¤½¤Ü /ÁÄÊì/ ¤½¤é /¶õ/ ¤½¤ì¤¬¤· /Ë¿/ ¤½¤ó /»/¸/½/¼/º/¹/ ¤½¤ó¤±¤¤ /º·É/ ¤½¤ó¤¶¤¤ /¸ºß/ ¤½¤ó¤Á¤ç¤¦ /º½Å/ ¤¾¤¦ /¡/£/¤/¢/Áþ/Áý/Áü/»¨/¾Ý/ ¤¾¤¦¤« /Áý²Ã/ ¤¾¤¯ /³/²/±/°/¯/ ¤¾¤¯¤»¤¤ /°À­/ ¤¾¤ó /¸/ ¤¾¤ó¤¸ /¸ÃÎ/ ¤¿ /¾/ÂÀ/¿/ÂÂ/ÂÁ/ÅÄ/¼ê/ ¤¿¤¤ /Âç/Âå/ÂÞ/ÂÎ/Ââ/ÂÐ/ÂÖ/Âä/Âá/Âà/Âß/ÂÝ/ÂÜ/ÂÛ/ÂÚ/ÂÙ/ÂØ/Â×/ÂÕ/ÂÔ/ÂÓ/ÂÒ/ÂÑ/ÂÏ/Âæ/ÂÀ/Âã/ ¤¿¤¤¤ª¤¦ /Âбþ/ ¤¿¤¤¤«¤¤ /Âç²ñ/ ¤¿¤¤¤±¤¤ /ÂηÏ/ ¤¿¤¤¤·¤ç /Âнè/ ¤¿¤¤¤·¤ç¤¦ /ÂоÝ/Âç¾­/ ¤¿¤¤¤·¤ç¤¦¤»¤¤ /ÂоÎÀ­/ ¤¿¤¤¤»¤Ä /ÂçÀÚ/ ¤¿¤¤¤Æ¤¤ /ÂçÄñ/ ¤¿¤¤¤Ç¤ó /ÂÓÅÅ/ ¤¿¤¤¤É /ÂÖÅÙ/ ¤¿¤¤¤Õ¤¦ /ÂæÉ÷/ ¤¿¤¤¤Ø¤ó /ÂçÊÑ/ ¤¿¤¤¤ê¤ç¤¦ /ÂçÎÌ/ ¤¿¤¨ /̯/ ¤¿¤« /Âë/¹â/ ¤¿¤«¤é /Êõ/ ¤¿¤­ /Âí/Âì/ ¤¿¤­¤® /¿Å/ ¤¿¤¯ /Âø/Â÷/Âö/Âô/Âó/Âò/Âñ/Âð/Âï/Âî/ÅÙ/Âõ/ ¤¿¤¯¤µ¤ó /Âô»³/ ¤¿¤± /Âû/³Ù/¾æ/ÃÝ/ ¤¿¤³ /Âý/Âü/ ¤¿¤·¤ç¤¦ /¿¾¯/ ¤¿¤¹¤¦ /¿¿ô/ ¤¿¤¿¤ß /¾ö/ ¤¿¤À /Í£/Âþ/ ¤¿¤Á /´Û/ ¤¿¤Á¤® /ΩÌÚ/ ¤¿¤Á¤Ð /Ω¾ì/ ¤¿¤Ä /ä/ε/ã/ ¤¿¤Ä¤ß /ç/ ¤¿¤Æ /è/½Ä/½Ý/ ¤¿¤Ê /ê/ ¤¿¤Ë /ë/ ¤¿¤Ë¤ó /¾¿Í/ ¤¿¤Ì¤­ /ì/ ¤¿¤Í /¼ï/ ¤¿¤Ð /«/ ¤¿¤Ó /ÅÙ/ι/ ¤¿¤Ö¤ó /¿ʬ/ ¤¿¤Þ /Îî/¶Ì/µå/ÃÆ/ ¤¿¤Þ¤´ /Íñ/ ¤¿¤Þ¤·¤¤ /º²/ ¤¿¤ß /̱/ ¤¿¤á /°Ù/ ¤¿¤é /í/ ¤¿¤ë /î/ ¤¿¤ï¤é /ɶ/ ¤¿¤ó /ñ/ü/È¿/ÃÃ/ÃÂ/ÃÀ/ÿ/û/ú/ù/ø/÷/ö/õ/ô/ó/ò/ð/ý/ ¤¿¤ó¤¤ /ñ°Ì/ ¤¿¤ó¤³¤¦¤Ü¤ó /ñ¹ÔËÜ/ ¤¿¤ó¤´ /ñ¸ì/ ¤¿¤ó¤¸¤å¤ó /ñ½ã/ ¤¿¤ó¤¸¤ç¤¦ /ÃÂÀ¸/ ¤¿¤ó¤¸¤ç¤¦¤Ó /ÃÂÀ¸Æü/ ¤¿¤ó¤¹ /ý¿Ú/ ¤¿¤ó¤Á¤ç¤¦ /ñĴ/ ¤¿¤ó¤È¤¦ /ôÅö/ ¤¿¤ó¤Ñ¤¯ /ÃÁÇò/ ¤¿¤ó¤Þ¤Ä /üËö/ ¤À /ÂÌ/ÂË/ÂÊ/ÂÉ/ÂÈ/ÂÇ/ÂÆ/ÂÅ/ÂÄ/ÂÃ/¼Ø/ ¤À¤¤ /Âç/Âè/Æâ/Âå/Âæ/Âê/Äï/ ¤À¤¤¤¤¤Á /Âè°ì/ ¤À¤¤¤¬¤¯ /Âç³Ø/ ¤À¤¤¤¬¤¯¤¤¤ó /Âç³Ø±¡/ ¤À¤¤¤­¤Ü /Â絬ÌÏ/ ¤À¤¤¤³¤ó /Â纬/ ¤À¤¤¤´ /Âé¸ï/ ¤À¤¤¤¸ /Âç»ö/ ¤À¤¤¤¸¤ç¤¦¤Ö /Âç¾æÉ×/ ¤À¤¤¤¿¤¤ /ÂçÂÎ/ ¤À¤¤¤¿¤ó /ÂçÃÀ/ ¤À¤¤¤Ò¤ã¤Ã¤« /ÂçÉ´²Ê/ ¤À¤¤¤Ò¤ç¤¦ /Âåɽ/ ¤À¤¤¤Ò¤ç¤¦¤Æ¤­ /ÂåɽŪ/ ¤À¤¤¤Ö¤Ö¤ó /ÂçÉôʬ/ ¤À¤¤¤á¤¤ /Âê̾/ ¤À¤¯ /Âú/Âù/ ¤À¤¯¤ª¤ó /Âù²»/ ¤À¤½¤¯ /¼ØÂ­/ ¤À¤Ä /Ã¥/æ/ ¤À¤È¤¦ /ÂÅÅö/ ¤À¤á /ÂÌÌÜ/ ¤À¤ì /ï/ ¤À¤ó /ÃË/ÃÊ/ÃÇ/ÃÆ/ÃÈ/ÃÌ/ÃÉ/ÃÅ/ÃÄ/ ¤À¤ó¤«¤¤ /Ãʳ¬/ ¤À¤ó¤¿¤¤ /ÃÄÂÎ/ ¤Á /ÃÍ/ÃÑ/ÃÏ/ÃÎ/³ý/ÃÚ/ÃÙ/Ã×/ÃÖ/ÃÕ/ÃÔ/ÃÓ/ÃÒ/¼£/·ì/¼Á/Àé/Æý/ÃÐ/ ¤Á¤¤¤­ /Ãϰè/ ¤Á¤« /Ãϲ¼/ ¤Á¤«¤Æ¤Ä /Ãϲ¼Å´/ ¤Á¤«¤é /ÎÏ/ ¤Á¤­¤å¤¦ /Ãϵå/ ¤Á¤¯ /Ã϶è/Ãà/Ãß/ÃÞ/ÃÝ/ÃÜ/ÃÛ/ ¤Á¤¯¤»¤­ /ÃßÀÑ/ ¤Á¤·¤­ /Ãμ±/ ¤Á¤º /ÃÏ¿Þ/ ¤Á¤Á /Éã/Æý/ ¤Á¤Ä /Ãâ/Ãá/ ¤Á¤Æ¤­ /ÃÎŪ/ ¤Á¤Æ¤ó /ÃÏÅÀ/ ¤Á¤Î¤¦ /ÃÎǽ/ ¤Á¤Û¤¦ /ÃÏÊý/ ¤Á¤Þ¤¿ /¹«/ ¤Á¤ã /Ãã/ ¤Á¤ã¤¯ /Ãå/Ãä/ ¤Á¤å¤¦ /Ãæ/Ãí/Ãë/Ãî/Ãè/Ãó/Ãò/Ãñ/Ãð/Ãï/Ãì/Ãê/Ãé/Ãç/ ¤Á¤å¤¦¤¤ /Ãí°Õ/ ¤Á¤å¤¦¤¬¤¯ /Ãæ³Ø/ ¤Á¤å¤¦¤±¤¤ /Ãæ·Ñ/ ¤Á¤å¤¦¤´¤¯ /Ãæ¹ñ/ ¤Á¤å¤¦¤· /Ãæ»ß/ ¤Á¤å¤¦¤·¤ã¤¸¤ç¤¦ /Ãó¼Ö¾ì/ ¤Á¤å¤¦¤·¤å¤Ä /Ãê½Ð/ ¤Á¤å¤¦¤·¤ç¤¦ /Ãê¾Ý/ ¤Á¤å¤¦¤·¤ó /Ãæ¿´/ ¤Á¤å¤¦¤È /ÃæÅÓ/ ¤Á¤å¤¦¤â¤¯ /ÃíÌÜ/ ¤Á¤å¤¦¤â¤ó /Ãíʸ/ ¤Á¤å¤¦¤ê¤ã¤¯ /ÃæÎ¬/ ¤Á¤ç /Ãù/Ãø/Ã÷/Ãõ/Ãô/½ï/Ãö/ ¤Á¤ç¤¦ /Ĺ/Ķ/È¥/Ĥ/½Å/Ä¢/Ä´/Ä¥/Ä»/ĺ/Ä·/ĵ/ij/IJ/ı/İ/į/Ä®/Ä­/Ĭ/Ä«/Ī/Ä©/Ĩ/ħ/Ħ/Ä£/Ä¡/Ãþ/Ãý/Ãü/Ãû/Ãú/À¡/ ¤Á¤ç¤¦> /Ķ/ ¤Á¤ç¤¦¤µ /Ä´ºº/ ¤Á¤ç¤¦¤· /Ä´»Ò/ĸ»Ò/ ¤Á¤ç¤¦¤»¤¤ /Ä´À°/ ¤Á¤ç¤¦¤Ï¤Ä /Ĺȱ/ ¤Á¤ç¤¦¤Õ¤¯ /½ÅÊ£/ ¤Á¤ç¤¯ /ľ/Ľ/ļ/ ¤Á¤ç¤¯¤²¤­ /ľ·â/ ¤Á¤ç¤¯¤´ /ľ¸å/ ¤Á¤ç¤¯¤»¤Ä /ľÀÜ/ ¤Á¤ç¤¯¤»¤Ä¤Æ¤­ /ľÀÜŪ/ ¤Á¤ç¤¯¤¼¤ó /ľÁ°/ ¤Á¤ç¤µ¤¯ /Ãøºî/ ¤Á¤ç¤µ¤¯¤±¤ó /Ãøºî¸¢/ ¤Á¤ç¤µ¤¯¤·¤ã /Ãøºî¼Ô/ ¤Á¤ç¤µ¤¯¤Ö¤Ä /Ãøºîʪ/ ¤Á¤ç¤·¤ã /Ãø¼Ô/ ¤Á¤ç¤Ã¤³¤¦ /ľ¸ò/ ¤Á¤ó /ÄØ/ÄÄ/ÄÃ/ÄÂ/ÄÁ/ÄÀ/Ä¿/ ¤Ä /ÄÅ/ÅÔ/ ¤Ä¤¤ /ÂÐ/ÄÊ/ÄÉ/ÄÈ/ÄÇ/ÄÆ/ ¤Ä¤¤¤« /ÄɲÃ/ ¤Ä¤¦ /ÄÌ/ÄË/ ¤Ä¤¦¤« /Ä̲á/ ¤Ä¤¦¤«¤¤ /Ä˲÷/ ¤Ä¤¦¤¬¤¯ /Ä̳Ø/ ¤Ä¤¦¤·¤ó /ÄÌ¿®/ ¤Ä¤¦¤¸¤ç¤¦ /Ä̾ï/ ¤Ä¤¦¤Á /ÄÌÃÎ/ ¤Ä¤« /ÄÍ/ ¤Ä¤¬ /ÄÎ/ ¤Ä¤­ /·î/ÉÕ/ÄÐ/ ¤Ä¤® /¼¡/ ¤Ä¤¯¤¨ /´ù/ ¤Ä¤¯¤À /ÄÑ/ ¤Ä¤¯¤Ð /ÃÞÇÈ/ ¤Ä¤² /ÄÓ/ ¤Ä¤´¤¦ /ÅÔ¹ç/ ¤Ä¤¸ /ÄÔ/ ¤Ä¤¿ /ÄÕ/ ¤Ä¤Á /ÅÚ/ ¤Ä¤Ä /ˤ/Åû/ ¤Ä¤Ä¤ß /Äé/ ¤Ä¤Å¤ß /¸Ý/ ¤Ä¤É¤¤ /½¸/ ¤Ä¤Ê /¹Ë/ ¤Ä¤Í /¾ï/ ¤Ä¤Î /³Ñ/ ¤Ä¤Ð /Ä×/ ¤Ä¤Ð¤­ /ÄØ/ ¤Ä¤Ð¤µ /Íã/ ¤Ä¤Ð¤á /±í/ ¤Ä¤Ö /γ/ ¤Ä¤Ü /ÄÛ/ÄÚ/ ¤Ä¤Þ /ºÊ/ÄÜ/ ¤Ä¤ß /ºá/ ¤Ä¤à /¿î/ ¤Ä¤à¤® /ÄÝ/ ¤Ä¤á /ÄÞ/ ¤Ä¤æ /Ϫ/ ¤Ä¤é /ÌÌ/ ¤Ä¤ê /Äà/Äß/ ¤Ä¤ë /Äá/¸¹/Ì¢/ ¤Ä¤ë¤® /·õ/ ¤Æ /¼ê/ ¤Æ¤¤ /Äê/Äø/Ť/Å£/Å¢/Å¡/Äþ/Äý/Äü/Äû/Äú/Äù/Ä÷/Äö/Äõ/Äô/Äó/Äò/Äñ/Äð/Äï/Äî/Äí/Äì/Äë/Äé/Äè/Äç/Äæ/Äå/Ää/Äã/Äâ/ÂÎ/Ãú/ ¤Æ¤¤¤¢¤ó /Äó°Æ/ ¤Æ¤¤¤« /Äê²Á/ ¤Æ¤¤¤­ /Äóµ¯/ ¤Æ¤¤¤­¤ç¤¦ /Äó¶¡/ ¤Æ¤¤¤® /ÄêµÁ/ ¤Æ¤¤¤¸ /Äó¼¨/ ¤Æ¤¤¤»¤¤ /ÄûÀµ/ ¤Æ¤¤¤Ç¤ó /ÄäÅÅ/ ¤Æ¤¤¤É /ÄøÅÙ/ ¤Æ¤¤¤Í¤¤ /ÃúÇ«/ ¤Æ¤«¤º /¼ê¿ô/ ¤Æ¤¬¤ß /¼ê»æ/ ¤Æ¤­ /Ū/Ũ/Å­/Ŭ/Å«/Å©/ŧ/Ŧ/ ¤Æ¤­¤»¤Ä /ŬÀÚ/ ¤Æ¤­¤È¤¦ /ŬÅö/ ¤Æ¤­¤É /ŬÅÙ/ ¤Æ¤­¤è¤¦ /ŬÍÑ/ ¤Æ¤¯¤Ó /¼ê¼ó/ ¤Æ¤¸¤å¤ó /¼ê½ç/ ¤Æ¤Ä /Å´/ų/Ų/ű/Ű/ů/ ¤Æ¤Ä¤¬¤¯ /ů³Ø/ ¤Æ¤Ä¤¬¤¯¤·¤ã /ů³Ø¼Ô/ ¤Æ¤Ä¤É¤¦ /Å´Æ»/ ¤Æ¤Ä¤ä /ŰÌë/ ¤Æ¤Ó¤­ /¼ê°ú/ ¤Æ¤Õ¤À /¼ê»¥/ ¤Æ¤Þ /¼ê´Ö/ ¤Æ¤Þ¤¨ /¼êÁ°/ ¤Æ¤â¤È /¼ê¸µ/ ¤Æ¤é /»û/ ¤Æ¤ó /ÅÀ/Ź/Å·/ž/Å¿/ż/Å»/ź/Ÿ/Ŷ/ŵ/Ž/ÅÂ/ ¤Æ¤ó¤«¤¤ /Ÿ³«/ ¤Æ¤ó¤­ /Å·µ¤/ ¤Æ¤ó¤¯¤¦ /Å·¶õ/ ¤Æ¤ó¤³¤¦ /ž¹»/ ¤Æ¤ó¤µ¤¤ /žºÜ/ ¤Æ¤ó¤½¤¦ /žÁ÷/ ¤Ç /Äï/ ¤Ç¤¤ /Å¥/ ¤Ç¤­ /½ÐÍè/Å®/ ¤Ç¤°¤Á /½Ð¸ý/ ¤Ç¤ó /ÅÅ/ÅÄ/ÅÃ/ÅÂ/ÅÁ/ ¤Ç¤ó¤« /ÅŲ½/ ¤Ç¤ó¤­ /Åŵ¤/ ¤Ç¤ó¤²¤ó /ÅŸ»/ ¤Ç¤ó¤· /ÅÅ»Ò/ ¤Ç¤ó¤·¤ã /ÅżÖ/ ¤Ç¤ó¤¿¤Ä /ÅÁã/ ¤Ç¤ó¤ï /ÅÅÏÃ/ ¤Ç¤ó¤ï¤À¤¤ /ÅÅÏÃÂå/ ¤È /ÅÔ/ÅÐ/ÅÓ/¿Þ/¸Í/Ƭ/½½/ÅÚ/ÅÌ/ÅÏ/ÅÉ/ÅÍ/ÅÇ/ÅÒ/ÅÙ/ÅÎ/ÅÖ/ÅË/Å×/ÅÊ/ÅÈ/ÅÕ/ÅÆ/ÅÑ/ ¤È¤¤ /Ìä/ ¤È¤¦ /Åù/Ƭ/Åö/Ƥ/Æ¡/Åì/Åê/Åß/Åð/Æ®/Æ­/Æ«/ƪ/Æ©/ƨ/Ƨ/Ʀ/Æ¥/Æ£/Æ¢/Åþ/Åý/Åü/Åû/Åú/Åø/Å÷/Åõ/Åô/Åó/Åò/Åñ/Åï/Åî/Åí/Åë/Åé/Åè/Åç/Åæ/Åå/Åä/Åã/Åâ/Åá/Åà/ÅÞ/ÅÝ/ÅÐ/ÆÉ/Æ»/Ǽ/¿à/ ¤È¤¦¤¤¤Ä /Åý°ì/ ¤È¤¦¤«¤¤¤É¤¦ /Å쳤ƻ/ ¤È¤¦¤­¤ç¤¦ /Åìµþ/ ¤È¤¦¤­¤ç¤¦¤È /ÅìµþÅÔ/ ¤È¤¦¤±¤¤ /Åý·×/ ¤È¤¦¤² /ƽ/ ¤È¤¦¤³¤¦ /Åê¹Æ/ ¤È¤¦¤³¤¦¤·¤ã /Åê¹Æ¼Ô/ ¤È¤¦¤·¤ç¤¦ /Æ®¾­/ ¤È¤¦¤¸ /Åö»þ/ ¤È¤¦¤¸¤Ä /ÅöÆü/ ¤È¤¦¤¸¤ç¤¦ /Åоì/ ¤È¤¦¤¼¤ó /ÅöÁ³/ ¤È¤¦¤Á¤ã¤¯ /ÅþÃå/ ¤È¤¦¤Ò¤ç¤¦ /Åêɼ/ ¤È¤¦¤Û¤¦ /ÅöÊý/ ¤È¤¦¤Û¤¯ /ÅìËÌ/ ¤È¤¦¤á¤ó /ÅöÌÌ/ ¤È¤¦¤í¤¯ /ÅÐÏ¿/ ¤È¤ª /½½/ ¤È¤ª¤ê /ÄÌ/ ¤È¤«¤¤ /ÅÔ²ñ/ ¤È¤­ /»þ/ƾ/ ¤È¤¯ /ÆÃ/ÆÀ/ÆÆ/ÆÅ/ÆÄ/ÆÂ/ÆÁ/Æ¿/ÆÉ/ ¤È¤¯¤µ¤Ä /ÆÃ»£/ ¤È¤¯¤·¤å /ÆÃ¼ì/ ¤È¤¯¤·¤å¤¦ /ÆÃ½¸/ ¤È¤¯¤·¤å¤¦¤´¤¦ /ÆÃ½¸¹æ/ ¤È¤¯¤»¤¤ /ÆÃÀ­/ ¤È¤¯¤Á¤ç¤¦ /ÆÃħ/ ¤È¤¯¤Æ¤¤ /ÆÃÄê/ ¤È¤¯¤Æ¤ó /ÆÀÅÀ/ ¤È¤¯¤Ð¤ó /ÆÃÈÖ/ ¤È¤¯¤Ù¤Ä /ÆÃÊÌ/ ¤È¤±¤¤ /»þ·×/ ¤È¤³ /¾ï/¾²/ ¤È¤³¤í /½ê/ ¤È¤· /ǯ/ºÐ/ ¤È¤·¤ç¤«¤ó /¿Þ½ñ´Û/ ¤È¤Á /ÅÚÃÏ/ÆË/ÆÊ/ ¤È¤Á¤å¤¦ /ÅÓÃæ/ ¤È¤Ä /ÆÍ/ÆÌ/ ¤È¤Ä¤¼¤ó /ÆÍÁ³/ ¤È¤É /ÆÎ/ ¤È¤Ê¤¤ /ÅÔÆâ/ ¤È¤Ê¤ê /ÎÙ/ ¤È¤Î /ÅÂ/ ¤È¤Ó /ÆÐ/ ¤È¤Ó¤é /Èâ/ ¤È¤Þ /ÆÑ/ ¤È¤ß /ÉÙ/ ¤È¤â /¶¦/¶¡/ͧ/ ¤È¤â¤À¤Á /ͧã/ ¤È¤é /ÆÒ/ ¤È¤ê /ÆÓ/Ä»/ ¤È¤í /ÆÔ/ ¤È¤ó /ÆÚ/ÆÜ/ÆÛ/ÆÙ/ÆØ/Æ×/ÆÖ/ÆÕ/ÃÄ/Ìä/ ¤É /ÅÙ/ÅÛ/ÅÚ/ÅÜ/ÅØ/ ¤É¤¦ /Æ»/ư/Æ·/Ƴ/Ʊ/Ƽ/ƹ/Ƹ/ƶ/Ƶ/Æ´/Ʋ/Ư/ ¤É¤¦¤¤¤Ä /Ʊ°ì/ ¤É¤¦¤«¤ó /Ʊ´¶/ ¤É¤¦¤­ /Ʊ´ü/ ¤É¤¦¤° /Æ»¶ñ/ ¤É¤¦¤µ /ưºî/ ¤É¤¦¤· /ư»ì/Ʊ»Î/ ¤É¤¦¤¸ /Ʊ»þ/ ¤É¤¦¤¸¤ç¤¦ /Ʊ¾å/Ʊ¾è/ ¤É¤¦¤»¤¤ /ƱÀ«/ ¤É¤¦¤Á¤ç¤¦ /ƱĴ/ ¤É¤¦¤Æ¤­ /ưŪ/ ¤É¤¦¤Ë¤å¤¦ /ƳÆþ/ ¤É¤¦¤Ö¤Ä /ưʪ/ ¤É¤¦¤á¤¤ /Ʊ̾/ ¤É¤¦¤è¤¦ /ƱÍÍ/ ¤É¤¦¤í /ƻϩ/ ¤É¤¯ /ÆÇ/ÆÉ/ÆÈ/ ¤É¤¯¤·¤ã /ÆÉ¼Ô/ ¤É¤¯¤¸ /ÆÈ¼«/ ¤É¤¯¤ê¤Ä /ÆÈΩ/ ¤É¤³ /²¿½è/ ¤É¤Ë¤Á /ÅÚÆü/ ¤É¤Î /ÅÂ/ ¤É¤è¤¦ /ÅÚÍË/ ¤É¤ê¤ç¤¯ /ÅØÎÏ/ ¤É¤í /Å¥/ ¤É¤ó /Æß/ÆÞ/ÆÝ/ ¤Ê /̾/Æá/Æà/ºÚ/Ǽ/Æî/ ¤Ê¤¤ /Æâ/ ¤Ê¤¤¤»¤ó /ÆâÀþ/ ¤Ê¤¤¤Ö /ÆâÉô/ ¤Ê¤¤¤è¤¦ /ÆâÍÆ/ ¤Ê¤¤¤ê¤ó /ÆâÎØ/ ¤Ê¤¨ /ÉÄ/ ¤Ê¤« /Ãæ/Ãç/ ¤Ê¤«¤Þ /Ãç´Ö/ ¤Ê¤«¤ß /Ãæ¿È/ ¤Ê¤¬¤é /Æã/ ¤Ê¤® /Æä/Æå/ ¤Ê¤®¤µ /½í/ ¤Ê¤° /Æå/ ¤Ê¤´¤ä /̾¸Å²°/ ¤Ê¤· /Íü/ ¤Ê¤¼ /²¿¸Î/ ¤Ê¤¾ /Ææ/ ¤Ê¤À /Æç/ ¤Ê¤Ã /Ǽ/ ¤Ê¤Ã¤È¤¯ /ǼÆÀ/ ¤Ê¤Ä /²Æ/Æè/ ¤Ê¤Ê /¼·/ ¤Ê¤Ë /²¿/ ¤Ê¤Î /¼·/ ¤Ê¤Ù /Æé/ ¤Ê¤Þ /À¸/ ¤Ê¤Þ¤¨ /̾Á°/ ¤Ê¤Þ¤ê /±ô/ ¤Ê¤ß /ÇÈ/ÊÂ/ ¤Ê¤ß¤À /ÎÞ/ ¤Ê¤é /ÆàÎÉ/Æê/ ¤Ê¤ï /Æì/ÉÄ/ ¤Ê¤ï¤Æ /Æí/ ¤Ê¤ó /²¿/Æñ/Æî/Æð/Æï/ÃË/Ǽ/ ¤Ê¤ó¤«¤¤ /²¿²ó/ ¤Ê¤ó¤­¤ç¤¯ /Æî¶Ë/ ¤Ê¤ó¤¸ /Æò/ ¤Ê¤ó¤É /²¿ÅÙ/ ¤Ê¤ó¤Ë¤ó /²¿¿Í/ ¤Ê¤ó¤Í¤ó /²¿Ç¯/ ¤Ë /Æó/²Ù/¿Î/»ù/Æô/Æö/Æõ/ ¤Ë¤¤ /¿·/ ¤Ë¤¬¤Æ /¶ì¼ê/ ¤Ë¤¯ /Æù/ ¤Ë¤· /À¾/ ¤Ë¤¸ /Æú/ ¤Ë¤¸¤å¤¦ /Æû/ ¤Ë¤» /µ¶/ ¤Ë¤Á /Æü/ ¤Ë¤Á¤¸ /Æü»þ/ ¤Ë¤Á¤ä /ÆüÌë/ ¤Ë¤Á¤è¤¦ /ÆüÍË/ ¤Ë¤Ã¤Ý¤ó /ÆüËÜ/ ¤Ë¤Û¤ó /ÆüËÜ/ ¤Ë¤Û¤ó¤¬¤ï /ÆüËܦ/ ¤Ë¤Û¤ó¤´ /ÆüËܸì/ ¤Ë¤Û¤ó¤´¤« /ÆüËܸ첽/ ¤Ë¤Û¤ó¤´¤Ë¤å¤¦¤ê¤ç¤¯ /ÆüËܸìÆþÎÏ/ ¤Ë¤Û¤ó¤¸¤ó /ÆüËÜ¿Í/ ¤Ë¤â¤Î /¼Ñʪ/ ¤Ë¤ã¤¯ /¼ã/ ¤Ë¤å¤¦ /Æþ/Æý/ ¤Ë¤å¤¦¤¤¤ó /Æþ±¡/ ¤Ë¤å¤¦¤·¤å /Æþ¼ê/ ¤Ë¤å¤¦¤ê¤ç¤¯ /ÆþÎÏ/ ¤Ë¤ç /½÷/Ç¡/ ¤Ë¤ç¤¦ /Ç¢/½÷/ ¤Ë¤é /Ç£/ ¤Ë¤ï /Äí/ ¤Ë¤ï¤È¤ê /·Ü/ ¤Ë¤ó /¿Í/Ǥ/Ç¥/Ǧ/ǧ/ ¤Ë¤ó¤¤ /Ǥ°Õ/ ¤Ë¤ó¤­ /¿Íµ¤/ ¤Ë¤ó¤²¤ó /¿Í´Ö/ ¤Ë¤ó¤·¤­ /ǧ¼±/ ¤Ë¤ó¤¸¤ã /Ǧ¼Ô/ ¤Ë¤ó¤º¤¦ /¿Í¿ô/ ¤Ì /ÅÛ/ ¤Ì¤« /¹Ç/ ¤Ì¤· /¼ç/ ¤Ì¤Î /ÉÛ/ ¤Ì¤Þ /¾Â/ ¤Í /²»/ÃÍ/¿²/º¬/Ǫ/Ç©/ ¤Í¤¤ /Ç«/Ǫ/Ç©/ ¤Í¤® /Ǭ/ ¤Í¤³ /Ç­/ ¤Í¤À¤ó /ÃÍÃÊ/ ¤Í¤Ä /Ç®/ ¤Í¤ó /ǯ/ǰ/Ç´/dz/Dz/DZ/Á³/ ¤Í¤ó¤«¤ó /ǯ´Ö/ ¤Í¤ó¤À¤¤ /ǯÂå/ ¤Í¤ó¤Ð¤ó /ǯÈÇ/ ¤Í¤ó¤Ô /dzÈñ/ ¤Í¤ó¤Þ¤¨ /ǯÁ°/ ¤Í¤ó¤ì¤¤ /ǯÎð/ ¤Î /Ǹ/Ç·/Ƕ/ǵ/Ìî/ ¤Î¤¦ /ÇÀ/Ç¿/Ǿ/ǽ/Ǽ/Ç»/Ǻ/ǹ/ ¤Î¤¦¤®¤ç¤¦ /ÇÀ¶È/ ¤Î¤¦¤É /Ç»ÅÙ/ ¤Î¤¦¤Ë¤å¤¦ /ǼÆþ/ ¤Î¤¦¤ê¤ç¤¯ /ǽÎÏ/ ¤Î¤­ /¸®/ ¤Î¤Á /¸å/ ¤Î¤Ö /¿®/ ¤Î¤ß /ÇÂ/ ¤Î¤ê /Ë¡/¸Ò/ ¤Ï /ÇË/ÍÕ/»õ/ÇÈ/ü/ÇÉ/ÇÆ/ÇÅ/ÇÄ/ÇÃ/±©/¿Ï/ ¤Ï¤¢¤¯ /Çİ®/ ¤Ï¤¤ /ÇØ/ÇÛ/ÇÚ/ÇÙ/Ç×/ÇÖ/ÇÕ/ÇÔ/ÇÓ/ÇÒ/ÇÑ/ÇÐ/³¥/ ¤Ï¤¤¤¤¤í /³¥¿§/ ¤Ï¤¤¤±¤¤ /ÇØ·Ê/ ¤Ï¤¤¤±¤ó /ÇÒ¸«/ ¤Ï¤¤¤· /ÇÑ»ß/ ¤Ï¤¤¤½¤¦ /ÇÛÁ÷/ ¤Ï¤¤¤Õ /ÇÛÉÛ/ ¤Ï¤¤¤ê /ÇØÍý/ ¤Ï¤¤¤ê¤Û¤¦ /ÇØÍýË¡/ ¤Ï¤¤¤ì¤Ä /ÇÛÎó/ ¤Ï¤¨ /Çè/ ¤Ï¤« /Êè/ ¤Ï¤«¤¤ /Ç˲õ/ ¤Ï¤«¤Þ /¸Ó/ ¤Ï¤«¤ê /Çé/ ¤Ï¤¬¤Í /¹Ý/ ¤Ï¤® /Çë/Çê/ ¤Ï¤¯ /Çñ/Çò/Çö/Ç÷/Çõ/Çô/Çó/Çð/Çï/Çî/Çí/Çì/ ¤Ï¤¯¤¤ /Çò°á/ ¤Ï¤³ /È¢/È¡/ ¤Ï¤¶¤Þ /È£/ ¤Ï¤· /Ȥ/¶¶/ü/ ¤Ï¤·¤é /Ãì/ ¤Ï¤¸ /ÃÑ/ ¤Ï¤¸¤á /È¥/ ¤Ï¤¹ /Ï¡/ ¤Ï¤º /Ȧ/ ¤Ï¤º¤ì /³°/ ¤Ï¤¼ /ȧ/ ¤Ï¤¿ /Ȩ/´ú/µ¡/ü/Ȫ/ ¤Ï¤¿¤± /È«/Ȫ/ ¤Ï¤¿¤ó /ÇËþ/ ¤Ï¤À /È©/ ¤Ï¤À¤« /Íç/ ¤Ï¤Á /È­/Ȭ/˪/ ¤Ï¤Ã /Ë¡/ ¤Ï¤Ã¤±¤ó /ȯ¸«/ ¤Ï¤Ã¤³¤¦ /ȯ¹Ô/ ¤Ï¤Ã¤·¤ó /ȯ¿®/ ¤Ï¤Ã¤»¤¤ /ȯÀ¸/ ¤Ï¤Ã¤½¤¦ /ȯÁ÷/ȯÁÛ/ ¤Ï¤Ã¤Æ¤ó /ȯŸ/ ¤Ï¤Ã¤Ô¤ç¤¦ /ȯɽ/ ¤Ï¤Ä /ȱ/½é/ȯ/Ȱ/È®/ ¤Ï¤Ä¤ª¤ó /ȯ²»/ ¤Ï¤Ä¤²¤ó /ȯ¸À/ ¤Ï¤Ä¤Ð¤¤ /ȯÇä/ ¤Ï¤Ç /Çɼê/ ¤Ï¤È /È·/ ¤Ï¤Ê /²Ö/É¡/²Ú/ ¤Ï¤Ê¤· /ÏÃ/ȸ/ ¤Ï¤Ê¤ï /ȹ/ ¤Ï¤Í /±©/ ¤Ï¤Ï /Êì/ ¤Ï¤Ï¤ª¤ä /Êì¿Æ/ ¤Ï¤Ð /Éý/ ¤Ï¤Þ /ÉÍ/ ¤Ï¤Þ¤°¤ê /Ⱥ/ ¤Ï¤ä¤· /ÎÓ/ ¤Ï¤ä¤Ö¤µ /È»/ ¤Ï¤é /Ê¢/¸¶/ ¤Ï¤ê /¿Ë/ ¤Ï¤ë /½Õ/ ¤Ï¤ë¤« /ÍÚ/ ¤Ï¤ó /ÈÇ/Ⱦ/ºä/Ƚ/È¿/ÈÓ/ÈÒ/ÈÑ/ÈÐ/ÈÏ/ÈÎ/ÈÍ/ÈÌ/ÈË/ÈÊ/ÈÉ/ÈÈ/ÈÆ/ÈÅ/ÈÄ/ÈÃ/ÈÂ/ÈÁ/ÈÀ/ȼ/ËÞ/ ¤Ï¤ó¤¤ /ÈϰÏ/ ¤Ï¤ó¤¨¤¤ /È¿±Ç/ ¤Ï¤ó¤«¤¯ /Ⱦ³Ñ/ ¤Ï¤ó¤«¤¯¤«¤¿¤«¤Ê /Ⱦ³ÑÊÒ²¾Ì¾/ ¤Ï¤ó¤«¤¯¤«¤Ê /Ⱦ³Ñ²¾Ì¾/ ¤Ï¤ó¤­¤ç¤¦ /È¿¶Á/ ¤Ï¤ó¤¿¤¤ /È¿ÂÐ/ ¤Ï¤ó¤À¤ó /ȽÃÇ/ ¤Ï¤ó¤Æ¤¤ /ȽÄê/ ¤Ï¤ó¤Î¤¦ /È¿±þ/ ¤Ï¤ó¤Ð¤¤ /ÈÎÇä/ ¤Ï¤ó¤Ñ /Ⱦü/ ¤Ï¤ó¤Ö¤ó /Ⱦʬ/ ¤Ï¤ó¤í¤ó /È¿ÏÀ/ ¤Ð /¾ì/ÇÏ/ÇÍ/ÇÌ/ ¤Ð¤¢¤¤ /¾ì¹ç/ ¤Ð¤¤ /ÇÜ/Çæ/Çå/Çä/Çã/Çâ/Çá/Çà/Çß/ÇÞ/ÇÝ/ ¤Ð¤¤¤¹¤¦ /ÇÜ¿ô/ ¤Ð¤« /Çϼ¯/ ¤Ð¤¯ /Çþ/Çý/Çü/Çû/Çú/Çù/Çø/Çî/˽/Ëë/ ¤Ð¤·¤ç /¾ì½ê/ ¤Ð¤·¤ç¤¦ /ÇξÖ/ ¤Ð¤Á /ȳ/ ¤Ð¤Ã¤¹¤¤ /È´¿è/ ¤Ð¤Ä /ȳ/ȶ/È´/Ȳ/Ëö/ȵ/ ¤Ð¤á¤ó /¾ìÌÌ/ ¤Ð¤ó /ÈÖ/Ƚ/ÈÄ/Ëü/ÈÕ/È×/ÈØ/ȼ/ÈÚ/ÈÔ/ÈÙ/ ¤Ð¤ó¤°¤ß /ÈÖÁÈ/ ¤Ð¤ó¤´¤¦ /ÈÖ¹æ/ ¤Ò /Æü/Èà/Èæ/Èâ/²Ð/ÍÛ/Èñ/Èõ/Èô/Èó/Èò/Èð/Èï/Èî/Èí/Èì/Èë/Èê/Èé/Èè/Èç/Èå/Èä/Èã/Èá/Èß/ÈÞ/ÈÝ/ÈÜ/ÈÛ/Åô/ɹ/ ¤Ò¤¤¤é¤® /É¢/ ¤Ò¤¨ /É£/ ¤Ò¤«¤¯ /Èæ³Ó/ ¤Ò¤«¤ê /¸÷/ ¤Ò¤«¤ï /ÈöÀî/ ¤Ò¤¬¤¤ /Èï³²/ ¤Ò¤¬¤· /Åì/ ¤Ò¤­ /ɤ/É¥/ ¤Ò¤­¤¹¤¦ /°ú¿ô/ ¤Ò¤² /ɦ/ ¤Ò¤³ /ɧ/ ¤Ò¤¶ /ɨ/ ¤Ò¤· /É©/ ¤Ò¤¸ /ɪ/ ¤Ò¤¸¤ç¤¦ /Èó¾ï/ ¤Ò¤¿¤¤ /³Û/ ¤Ò¤¿¤Á /ÆüΩ/ ¤Ò¤À /ÈôÂÍ/ ¤Ò¤À¤ê /º¸/ ¤Ò¤À¤ê¤¬¤ï /º¸Â¦/ ¤Ò¤Ã¤¹ /ɬ¿Ü/ ¤Ò¤Ä /ɬ/ɯ/É®/É­/É«/Èç/ ¤Ò¤Ä¤® /´½/ ¤Ò¤Ä¤¸ /ÍÓ/̤/ ¤Ò¤Ä¤è¤¦ /ɬÍ×/ ¤Ò¤Ä¤è¤¦¤»¤¤ /ɬÍ×À­/ ¤Ò¤Å¤± /ÆüÉÕ/ ¤Ò¤Æ¤¤ /ÈÝÄê/ ¤Ò¤Ç /±Ñ/ ¤Ò¤È /°ì/¿Í/ ¤Ò¤È¤± /¿Íµ¤/ ¤Ò¤È¤³¤È /°ì¸À/ ¤Ò¤È¤¿¤Ó /°ìÅÙ/ ¤Ò¤È¤ß /Æ·/ ¤Ò¤È¤ê /°ì¿Í/ ¤Ò¤Ê¤ó /ÈóÆñ/ ¤Ò¤Î¤­ /ɰ/ ¤Ò¤Ï¤ó /ÈãȽ/ ¤Ò¤Õ /ÈéÉæ/ ¤Ò¤Þ /²Ë/ ¤Ò¤ß¤Ä /ÈëÌ©/ ¤Ò¤á /ɲ/ɱ/ ¤Ò¤â /ɳ/ ¤Ò¤ã¤¯ /É´/ ¤Ò¤ç¤¦ /ɽ/É¿/ɾ/ɼ/ɺ/ɹ/ɸ/É·/ɶ/Çï/ʼ/É»/ ¤Ò¤ç¤¦¤« /ɾ²Á/ ¤Ò¤ç¤¦¤­ /ɽµ­/ ¤Ò¤ç¤¦¤²¤ó /ɽ¸½/ ¤Ò¤ç¤¦¤· /ɽ»æ/ ¤Ò¤ç¤¦¤·¤ç¤¦ /ɽ¾Ý/ ¤Ò¤ç¤¦¤¸ /ɽ¼¨/ ¤Ò¤ç¤¦¤¸¤å¤ó /ɸ½à/ ¤Ò¤ç¤¦¤¸¤å¤ó¤Æ¤­ /ɸ½àŪ/ ¤Ò¤ç¤¦¤¿¤ó /ɻý/ ¤Ò¤ç¤¦¤Ð¤ó /ɾȽ/ ¤Ò¤è¤¦ /ÈñÍÑ/ ¤Ò¤é /Ê¿/ ¤Ò¤ë /Ãë/ÉÈ/ÉÇ/ ¤Ò¤ë¤Þ /Ãë´Ö/ ¤Ò¤ì /ÉÉ/ ¤Ò¤í /͵/ ¤Ò¤ó /ÉÑ/ÉÐ/ÉÏ/ÉÎ/ÉÍ/ÉÌ/ÉË/ÉÊ/ ¤Ò¤ó¤Ñ¤ó /ÉÑÈË/ ¤Ó /É¡/Èþ/Èý/Èû/Èù/Èø/È÷/ ¤Ó¤ª¤ó /É¡²»/ ¤Ó¤¸¤ó /Èþ¿Í/ ¤Ó¤ß /ÈþÌ£/ ¤Ó¤ß¤ç¤¦ /Èù̯/ ¤Ó¤ã¤¯ /Çò/ ¤Ó¤å¤¦ /ɵ/ ¤Ó¤ç¤¦ /ÉÃ/Ê¿/ÉÆ/ÉÄ/ÉÂ/ÉÁ/ÉÀ/Ç­/ÉÅ/ ¤Ó¤ç¤¦¤¤¤ó /ɱ¡/ ¤Ó¤ç¤¦¤­ /ɵ¤/ ¤Ó¤ï /ÈúÇÇ/ÈüÇÊ/ ¤Ó¤ó /ÉÓ/ÉÒ/ÉÏ/ÊØ/ ¤Ó¤ó¤¸¤ç¤¦ /ÊØ¾è/ ¤Õ /Éã/Éé/Éí/Éë/Éê/Éè/Éå/Éä/Éâ/Éá/Éß/ÉÞ/ÉÝ/ÉÜ/ÉÛ/ÉÚ/ÉÙ/ÉØ/É×/ÉÖ/ÉÕ/ÉÔ/É÷/Êâ/Éæ/Éà/Éì/ ¤Õ¤¢¤ó /ÉÔ°Â/ ¤Õ¤¦ /É÷/Éõ/É×/ÉÙ/Éö/ ¤Õ¤¦¤Á¤ç¤¦ /É÷Ĭ/ ¤Õ¤¦¤ß /É÷Ì£/ ¤Õ¤¨ /Å«/ ¤Õ¤« /ÉÕ²Ã/ ¤Õ¤«¤Î¤¦ /ÉÔ²Äǽ/ ¤Õ¤­ /Éù/Éø/ ¤Õ¤­¤å¤¦ /ÉáµÚ/ ¤Õ¤¯ /ʤ/Éý/Ê¢/Ê¡/Éþ/Ê£/Éü/Éû/Éú/ ¤Õ¤¯¤¶¤Ä /Ê£»¨/ ¤Õ¤¯¤·¤ã /Ê£¼Ì/ ¤Õ¤¯¤·¤å¤¦ /Éü½²/ ¤Õ¤¯¤¹¤¦ /Ê£¿ô/ ¤Õ¤¯¤»¤¤ /Ê£À½/ ¤Õ¤¯¤í /ÂÞ/ ¤Õ¤³¤¦ /ÉÔ¹¬/ ¤Õ¤´¤¦¤« /É乿²½/ ¤Õ¤µ /˼/ ¤Õ¤· /Àá/ ¤Õ¤·¤® /ÉÔ»×µÄ/ ¤Õ¤·¤¼¤ó /ÉÔ¼«Á³/ ¤Õ¤¹¤Þ /²¨/ ¤Õ¤½¤¯ /ÉÔ­/ ¤Õ¤¿ /Æó/ÁÐ/ ¤Õ¤¿¤´ /ÁлÒ/ ¤Õ¤¿¤ê /Æó¿Í/ ¤Õ¤¿¤ó /Ééô/ ¤Õ¤À /»¥/ ¤Õ¤À¤ó /ÉáÃÊ/ ¤Õ¤Á /Ê¥/±ï/ ¤Õ¤Á¤ç¤¦ /ÉÔÄ´/ ¤Õ¤Ã¤«¤Ä /Éü³è/ ¤Õ¤Ä /ʨ/ʧ/ʦ/ ¤Õ¤Ä¤¦ /ÉáÄÌ/ ¤Õ¤Ä¤´¤¦ /ÉÔÅÔ¹ç/ ¤Õ¤Ç /É®/ ¤Õ¤È¤³¤í /²û/ ¤Õ¤Ê /Ê«/Á¥/½®/ ¤Õ¤Í /Á¥/½®/ ¤Õ¤Ù¤ó /ÉÔÊØ/ ¤Õ¤ß /ʸ/ ¤Õ¤á¤¤ /ÉÔÌÀ/ ¤Õ¤æ /Åß/ ¤Õ¤è¤¦ /ÉçÍÖ/ ¤Õ¤ó /ʬ/ʵ/Ê·/ʶ/Ê´/ʳ/ʲ/ʱ/ʰ/ʯ/Ê®/Ê­/ ¤Õ¤ó¤·¤Ä /ʶ¼º/ ¤Ö /ʬ/Éô/̵/Éñ/Éð/Éï/Éî/ÉÔ/Êâ/Êô/Éó/ ¤Ö¤­¤ß /ÉÔµ¤Ì£/ ¤Ö¤¸ /̵»ö/ ¤Ö¤¿ /ÆÚ/ ¤Ö¤Ä /ʪ/Ê©/ ¤Ö¤Ä¤ê¤Æ¤­ /ʪÍýŪ/ ¤Ö¤É¤¦ /Éòƺ/ ¤Ö¤Ê¤ó /̵Æñ/ ¤Ö¤Ò¤ó /ÉôÉÊ/ ¤Ö¤Ö¤ó /Éôʬ/ ¤Ö¤â¤ó /ÉôÌç/ ¤Ö¤ó /ʬ/ʸ/ʹ/ ¤Ö¤ó¤« /ʸ²½/ ¤Ö¤ó¤«¤Ä /ʬ³ä/ ¤Ö¤ó¤±¤ó /ʸ¸¥/ ¤Ö¤ó¤·¤ç /ʸ½ñ/ ¤Ö¤ó¤·¤ç¤¦ /ʸ¾Ï/ ¤Ö¤ó¤Ý¤¦ /ʸˡ/ ¤Ö¤ó¤ä /ʬÌî/ ¤Ö¤ó¤ë¤¤ /ʬÎà/ ¤Ø¤¤ /ÊÄ/Ê¿/ÊÅ/ÊÃ/ÊÂ/ÊÁ/ÊÀ/ʾ/ʽ/ʼ/Ê»/ʺ/ÉÂ/ ¤Ø¤¤¤¬¤¤ /ÊÀ³²/ ¤Ø¤¤¤­ /Ê¿µ¤/ ¤Ø¤¤¤­¤ó /Ê¿¶Ñ/ ¤Ø¤¤¤²¤ó /Ê¿¸¶/ ¤Ø¤¤¤ì¤Ä /ÊÂÎó/ ¤Ø¤­ /ÊÉ/ÊË/ÊÊ/ÊÈ/ ¤Ø¤¿ /²¼¼ê/ ¤Ø¤Ó /¼Ø/ ¤Ø¤ä /Éô²°/ ¤Ø¤é /ÊÏ/ ¤Ø¤ó /ÊÑ/ÊÕ/ÊÔ/ÊÖ/Ê×/ÊÓ/ÊÒ/ÊÐ/ ¤Ø¤ó¤« /ÊѲ½/ ¤Ø¤ó¤«¤ó /ÊÑ´¹/ ¤Ø¤ó¤±¤ó /Êи«/ ¤Ø¤ó¤² /ÊѲ½/ ¤Ø¤ó¤³¤¦ /Êѹ¹/ ¤Ø¤ó¤·¤å¤¦ /ÊÔ½¸/ ¤Ø¤ó¤¸ /ÊÖ»ö/ ¤Ø¤ó¤¹¤¦ /ÊÑ¿ô/ ¤Ø¤ó¤¹¤¦¤á¤¤ /ÊÑ¿ô̾/ ¤Ø¤ó¤È¤¦ /ÊÖÅú/ ¤Ø¤ó¤Ô¤ó /ÊÖÉÊ/ ¤Ù /ÊÕ/ ¤Ù¤¤ /ÊÆ/ ¤Ù¤¤¤³¤¯ /ÊÆ¹ñ/ ¤Ù¤Ã¤È /ÊÌÅÓ/ ¤Ù¤Ä /ÊÌ/ÊÎ/ÊÍ/ ¤Ù¤Ä¤á¤¤ /ÊÌ̾/ ¤Ù¤Ë /¹È/ ¤Ù¤ó /ÊÙ/ÊÜ/ÊÛ/ÊÚ/ÊØ/ ¤Ù¤ó¤­¤ç¤¦ /ÊÙ¶¯/ ¤Ù¤ó¤® /ÊØµ¹/ ¤Ù¤ó¤´¤· /ÊÛ¸î»Î/ ¤Ù¤ó¤È¤¦ /ÊÛÅö/ ¤Ù¤ó¤ê /ÊØÍø/ ¤Ú¡¼¤¸ /ÊÇ/ ¤Û /ÊÝ/Êæ/Êå/Êä/Êã/Êâ/Êá/Êà/Êß/ÊÞ/²Ð/ÈÁ/ ¤Û¤¦ /Êý/Ë¡/Ë¢/ˤ/Êü/Êó/˲/˱/˰/˯/Ë®/Ë­/ˬ/Ë©/˨/˧/˦/Ë£/Êþ/Êû/Êú/Êù/Êø/Ê÷/Êö/Êõ/Êô/Êò/Êñ/Êð/Êï/Ë¥/Éõ/Ë«/˪/ ¤Û¤¦¤¨¤¤ /Êü±Ç/ ¤Û¤¦¤­ /Êü´þ/ ¤Û¤¦¤²¤ó /Êý¸À/ ¤Û¤¦¤³¤¦ /Êý¸þ/ ¤Û¤¦¤³¤¯ /Êó¹ð/ ¤Û¤¦¤·¤­ /Êý¼°/ ¤Û¤¦¤·¤å¤¦ /Êó½·/ ¤Û¤¦¤·¤ó /Êý¿Ë/ ¤Û¤¦¤½¤¦ /ÊüÁ÷/ ¤Û¤¦¤½¤¯ /ˡ§/ ¤Û¤¦¤É¤¦ /ÊóÆ»/ ¤Û¤¦¤Ó /Ë«Èþ/ ¤Û¤¦¤Û¤¦ /ÊýË¡/ ¤Û¤¦¤á¤ó /ÊýÌÌ/ ¤Û¤¦¤ê¤Ä /ˡΧ/ ¤Û¤ª /ËË/ ¤Û¤« /¾/³°/ ¤Û¤¯ /ËÌ/ ¤Û¤¯¤ê¤¯ /ËÌΦ/ ¤Û¤±¤ó /Êݸ±/ ¤Û¤³ /Ì·/ËÈ/ ¤Û¤´ /Êݸî/ ¤Û¤· /À±/ ¤Û¤·¤ç¤¦ /ÊݾÚ/ ¤Û¤½¤¯ /Êä­/ ¤Û¤¾¤ó /Êݸ/ ¤Û¤¿¤ë /·Ö/ ¤Û¤Ã /Ë¡/ ¤Û¤Ã¤«¤¤¤É¤¦ /Ë̳¤Æ»/ ¤Û¤Ä /ȯ/ ¤Û¤È¤± /Ê©/ ¤Û¤È¤ó¤É /ËØ¤É/ ¤Û¤É /Äø/ ¤Û¤Í /¹ü/ ¤Û¤Î¤ª /±ê/ ¤Û¤é /ƶ/ ¤Û¤ê /ËÙ/ ¤Û¤í /ËÚ/ ¤Û¤ó /ËÜ/ËÝ/ËÛ/È¿/ ¤Û¤ó¤­ /Ëܵ¤/ ¤Û¤ó¤®¤ç¤¦ /ËܶÈ/ ¤Û¤ó¤·¤Ä¤Æ¤­ /ËܼÁŪ/ ¤Û¤ó¤¸¤Ä /ËÜÆü/ ¤Û¤ó¤»¤ó /ËÜÀþ/ ¤Û¤ó¤¿¤¤ /ËÜÂÎ/ ¤Û¤ó¤À¤¤ /ËÜÂê/ ¤Û¤ó¤È¤¦ /ËÜÅö/ ¤Û¤ó¤Ë¤ó /ËÜ¿Í/ ¤Û¤ó¤Ö /ËÜÉô/ ¤Û¤ó¤Ö¤ó /ËÜʸ/ ¤Û¤ó¤ä /Ëܲ°/ ¤Û¤ó¤ä¤¯ /ËÝÌõ/ ¤Û¤ó¤é¤¤ /ËÜÍè/ ¤Ü /Êì/Êë/Êí/Êê/Êé/Êè/Êç/ÌÏ/ ¤Ü¤¤¤ó /Êì²»/ ¤Ü¤¦ /Ë¿/˸/ËÉ/ËÇ/ËÆ/ËÅ/ËÄ/ËÂ/ËÁ/ËÀ/˾/˽/˼/Ë»/˺/Ë·/˶/˵/Ë´/˳/ÌÑ/ËÃ/˹/ ¤Ü¤¦¤· /˹»Ò/ ¤Ü¤¦¤½¤¦ /˽Áö/ ¤Ü¤¦¤È¤¦ /ËÁƬ/ ¤Ü¤¯ /ËÍ/ÌÚ/ËÔ/ËÓ/ËÒ/ËÑ/ËÐ/ËÏ/ËÎ/ÌÜ/ ¤Ü¤µ¤Ä /Êî»§/ ¤Ü¤·¤å¤¦ /Ê罸/ ¤Ü¤¿¤ó /ËÕ/ ¤Ü¤À¤¤ /ÊîÄó/ ¤Ü¤Ã /Ë·/ ¤Ü¤Ä /Ë×/ËÖ/ ¤Ü¤ó /Ëß/ËÞ/ ¤Þ /´Ö/ÌÜ/¿¿/Ëã/Ëâ/Ëá/Ëà/ÇÏ/ ¤Þ¤¤ /Ëç/Ëè/Ëæ/Ëå/Ëä/Éñ/ÊÆ/ ¤Þ¤¤¤¹¤¦ /Ëç¿ô/ ¤Þ¤¤¤Ë¤Á /ËèÆü/ ¤Þ¤¤¤ë /Ëé/ ¤Þ¤¨ /Á°/ ¤Þ¤¨¤·¤ç¤ê /Á°½èÍý/ ¤Þ¤­ /´¬/Ëê/ËÒ/ ¤Þ¤­¤¿ /¿¿ËÌ/ ¤Þ¤¯ /Ëì/Ëë/ ¤Þ¤¯¤é /Ëí/ ¤Þ¤°¤í /Ëî/ ¤Þ¤³¤È /À¿/ ¤Þ¤´ /¹/ ¤Þ¤µ /Àµ/Ëï/ ¤Þ¤¸¤á /¿¿ÌÌÌÜ/ ¤Þ¤¹ /Ëñ/Ëð/¾£/Á¤/ ¤Þ¤¿ /Ëô/Ëó/Ëò/ ¤Þ¤Á /³¹/Ä®/ ¤Þ¤Ä /¾¾/Ëö/Ë÷/Ëõ/ ¤Þ¤Ä¤ê¤´¤È /À¯/ ¤Þ¤Ç /Ëø/ ¤Þ¤È /Ū/ ¤Þ¤É /Áë/ ¤Þ¤É¤°¤Á /Áë¸ý/ ¤Þ¤Ê¤³ /´ã/ ¤Þ¤Í /¿¿»÷/ ¤Þ¤Ò¤¬¤· /¿¿Åì/ ¤Þ¤Û¤¦ /ËâË¡/ ¤Þ¤Ü¤í¤· /¸¸/ ¤Þ¤Þ /Ëù/ ¤Þ¤ß¤Ê¤ß /¿¿Æî/ ¤Þ¤á /Ʀ/ ¤Þ¤æ /Ëú/ ¤Þ¤æ¤º¤ß /Âã/ ¤Þ¤è¤Ê¤« /¿¿ÌëÃæ/ ¤Þ¤ë /´Ý/ ¤Þ¤í /Ëû/ ¤Þ¤ó /Ëü/Ëþ/Ì¡/Ëý/Ì¢/ ¤Þ¤ó¤¨¤ó /Ëü±ß/ ¤Þ¤ó¤¬ /Ì¡²è/ ¤Þ¤ó¤¾¤¯ /Ëþ­/ ¤ß /¼Â/Ì£/»°/¿È/̤/̧/̦/Ì¥/ ¤ß¤­ /´´/ ¤ß¤® /±¦/ ¤ß¤®¤¬¤ï /±¦Â¦/ ¤ß¤³¤È¤Î¤ê /¾Û/ ¤ß¤µ¤ª /Áà/ ¤ß¤µ¤­ /̨/ ¤ß¤µ¤µ¤® /ÎÍ/ ¤ß¤º /¿å/ ¤ß¤º¤¦¤ß /¸Ð/ ¤ß¤» /Ź/ ¤ß¤½ /Ì£Á¹/ ¤ß¤½¤« /³¢/ ¤ß¤¾ /¹Â/ ¤ß¤Á /Æ»/ ¤ß¤Ä /̪/Ì©/ ¤ß¤Æ¤¤ /̤Äê/ ¤ß¤É¤¯ /̤ÆÉ/ ¤ß¤É¤ê /ÎÐ/ ¤ß¤Ê /³§/ ¤ß¤Ê¤µ¤Þ /³§ÍÍ/ ¤ß¤Ê¤È /Ì«/¹Á/ ¤ß¤Ê¤ß /Æî/ ¤ß¤Ê¤â¤È /¸»/ ¤ß¤Í /Êö/ ¤ß¤Î /̬/ ¤ß¤Î¤ë /Ì­/ ¤ß¤ß /¼ª/ ¤ß¤ã¤¯ /Ì®/ ¤ß¤ä /µÜ/ ¤ß¤ä¤³ /ÅÔ/ ¤ß¤ç¤¦ /̾/ÌÀ/Ì¿/̯/ ¤ß¤ç¤¦¤Ë¤Á /ÌÀÆü/ ¤ß¤é¤¤ /̤Íè/ ¤ß¤ê /̰/ ¤ß¤ê¤á¡¼¤È¤ë /̰/ ¤ß¤ó /̲/̱/ ¤à /Ì´/̵/̸/Ì·/̶/̳/Éð/Ï»/ËÅ/ ¤à¤¤ /Ï»/ ¤à¤¤¤ß /̵°ÕÌ£/ ¤à¤«¤· /ÀÎ/ ¤à¤«¤ó¤±¤¤ /̵´Ø·¸/ ¤à¤® /Çþ/ ¤à¤¯ /̺/ ¤à¤²¤ó /̵¸Â/ ¤à¤³ /Ì»/ ¤à¤³¤¦ /̵¸ú/ ¤à¤· /̵»ë/Ãî/ ¤à¤·¤ç¤¦ /̵½þ/ ¤à¤¹¤³ /©»Ò/ ¤à¤¹¤á /̼/ ¤à¤»¤¤¤« /̵À¼²½/ ¤à¤»¤­¤Ë¤ó /̵ÀÕǤ/ ¤à¤»¤ó /̵Àþ/ ¤à¤À /̵ÂÌ/ ¤à¤Ê /¶»/Åï/ ¤à¤Í /»Ý/¶»/Åï/ ¤à¤Î¤¦ /̵ǽ/ ¤à¤é /·²/¼/ ¤à¤é¤µ¤­ /»ç/ ¤à¤ê /̵Íý/ ¤à¤ê¤ç¤¦ /̵ÎÁ/ ¤à¤ì /·²/ ¤à¤í /¼¼/ ¤á /ÌÜ/½÷/²ê/»ó/ ¤á¤¤ /̾/ÌÀ/Ì¿/ÌÂ/ÌÅ/ÌÄ/ÌÃ/ÌÁ/̽/ ¤á¤¤¤«¤¯ /ÌÀ³Î/ ¤á¤¤¤­ /ÌÀµ­/ ¤á¤¤¤µ¤¯ /̾ºî/ ¤á¤¤¤· /̾»ì/ ¤á¤¤¤·¤ç¤¦ /̾¾Î/ ¤á¤¤¤¸ /ÌÀ¼¨/ ¤á¤¤¤ì¤¤ /Ì¿Îá/ ¤á¤¤¤ï¤¯ /ÌÂÏÇ/ ¤á¤· /ÈÓ/ ¤á¤¹ /ÌÆ/»ó/ ¤á¤Ä /ÌÇ/ ¤á¤ó /ÌÌ/ÌÍ/ÌË/ÌÊ/ÌÉ/ÌÈ/ ¤á¤ó¤­¤ç /Ìȵö/ ¤á¤ó¤É¤¦ /ÌÌÅÝ/ ¤â /ÌÐ/ÌÏ/ÌÎ/ÁÓ/ ¤â¤¦ /ÌØ/Ì×/ÌÖ/ÌÕ/ÌÔ/ÌÓ/ÌÒ/ÌÑ/Ë´/˾/ ¤â¤¯ /ÌÜ/ÌÚ/ÌÝ/ÌÛ/ ¤â¤¯¤¸ /Ìܼ¡/ ¤â¤¯¤Æ¤­ /ÌÜŪ/ ¤â¤¯¤Ò¤ç¤¦ /ÌÜɸ/ ¤â¤¸ /ʸ»ú/ ¤â¤¸¤ì¤Ä /ʸ»úÎó/ ¤â¤Á /Ìß/ÌÞ/ ¤â¤Á¤í¤ó /ÌÞÏÀ/ ¤â¤Ã¤È¤â /Ìà¤â/ ¤â¤Ä /ʪ/ ¤â¤È /²¼/ËÜ/¸µ/´ð/ ¤â¤È¤¤ /´ð/ ¤â¤Ê¤« /ºÇÃæ/ ¤â¤Î /ʪ/¼Ô/ ¤â¤Î¤¬¤¿¤ê /ʪ¸ì/ ¤â¤ß /Ìâ/ ¤â¤â /Åí/ ¤â¤ê /¿¹/ ¤â¤ó /Ìä/ʸ/Ìç/Ìæ/Ìå/ʹ/ ¤â¤ó¤¯ /ʸ¶ç/ ¤â¤ó¤À¤¤ /ÌäÂê/ ¤â¤ó¤À¤¤¤Æ¤ó /ÌäÂêÅÀ/ ¤â¤ó¤á /Ìè/ ¤ä /²°/²È/Ìë/Ìð/Ìï/Ìî/Ìí/Ìì/Ìê/Ìé/Ȭ/ ¤ä¤­¤å¤¦ /Ìîµå/ ¤ä¤¯ /Ìó/Ìò/Ìõ/Ìô/Ìö/Ìñ/±×/ ¤ä¤¯¤·¤ã /Ìõ¼Ô/ ¤ä¤¯¤½¤¯ /Ìó«/ ¤ä¤¯¤Á¤å¤¦ /ÌõÃí/ ¤ä¤¯¤Û¤ó /ÌõËÜ/ ¤ä¤¯¤ï¤ê /Ìò³ä/ ¤ä¤·¤í /¼Ò/ ¤ä¤¸ /Ì/ ¤ä¤¹¤¤ /Ì÷/ ¤ä¤Ã¤³ /ÅÛ/ ¤ä¤Ä /ÅÛ/ ¤ä¤É /½É/ ¤ä¤Ê¤® /Ìø/ ¤ä¤Ö /Ìù/ ¤ä¤Þ /»³/ ¤ä¤Þ¤¤ /ÉÂ/ ¤ä¤ê /Ìú/ ¤æ /Í¡/Ìý/ͳ/Í¢/Ìþ/Ìü/Ìû/Åò/Í·/ ¤æ¤¤ /ͳ/Í£/ ¤æ¤¤¤¤¤Ä /Í£°ì/ ¤æ¤¦ /Í­/Í¥/ͳ/ͼ/ͧ/͹/Ͷ/͵/Í»/Í·/±¦/ͦ/ͺ/Í´/Í«/Í©/ͪ/ͯ/ͱ/ͨ/ͤ/͸/Ͳ/ͬ/Ͱ/Í®/ ¤æ¤¦¤¤ /Í­°Ù/ ¤æ¤¦¤«¤¤ /Ͷ²ý/ ¤æ¤¦¤¬ /Í¥²í/ ¤æ¤¦¤¬¤¿ /ͼÊý/ ¤æ¤¦¤³¤¦ /Í­¸ú/ ¤æ¤¦¤·¤ç¤¦ /Í¥¾¡/ ¤æ¤¦¤¸¤ó /ͧ¿Í/ ¤æ¤¦¤»¤ó /Í¥Àè/ ¤æ¤¦¤á¤¤ /ͭ̾/ ¤æ¤¦¤á¤¤¤¸¤ó /ͭ̾¿Í/ ¤æ¤¦¤è¤¦ /Í­ÍÑ/ ¤æ¤¦¤ê¤ç¤¯ /Í­ÎÏ/ ¤æ¤¨ /¸Î/ ¤æ¤« /¾²/ ¤æ¤­ /Àã/ ¤æ¤¿¤« /͵/ ¤æ¤Ó /»Ø/ ¤æ¤ß /µÝ/ ¤æ¤á /Ì´/ ¤è /Âå/À¤/;/Ìë/ͽ/ÍÂ/ÍÁ/ÍÀ/Í¿/»Í/ ¤è¤¤ /¾¬/ ¤è¤¦ /ÍÑ/ÍÍ/Í×/ÍÛ/ÍÚ/ÍÕ/ÍÜ/ÍÙ/ÍØ/ÍÔ/ÍÓ/ÍÒ/ÍÐ/ÍÏ/ÍÎ/ÍÌ/ÍË/ÍÊ/ÍÉ/ÍÈ/ÍÇ/ÍÆ/ÍÅ/ÍÄ/ÍÃ/¹ø/Ȭ/ ¤è¤¦¤¤ /ÍѰÕ/ÍÆ°×/ ¤è¤¦¤­¤å¤¦ /Í×µá/ ¤è¤¦¤· /ÍÑ»æ/ ¤è¤¦¤¹ /ÍÍ»Ò/ ¤è¤¦¤½ /Í×ÁÇ/ ¤è¤¦¤½¤¦ /ÍÍÁê/ ¤è¤¦¤Ó /ÍËÆü/ ¤è¤¦¤Û¤¦ /ÍÑË¡/ ¤è¤¦¤Ü¤¦ /Í×˾/ ¤è¤¦¤ä¤¯ /Í×Ìó/ ¤è¤¦¤ê¤ç¤¦ /ÍÆÎÌ/ ¤è¤¯ /Íã/Íâ/Íá/Íà/Íß/ÍÞ/ÍÝ/ ¤è¤³ /²£/ ¤è¤³¤Ï¤Þ /²£ÉÍ/ ¤è¤· /ͳ/ ¤è¤½¤¦ /ͽÁÛ/ ¤è¤½¤¯ /ͽ¬/ ¤è¤À¤ó /;ÃÌ/ ¤è¤Æ¤¤ /ͽÄê/ ¤è¤É /Íä/ ¤è¤Ê¤« /ÌëÃæ/ ¤è¤Í /ÊÆ/ ¤è¤Ö¤ó /;ʬ/ ¤è¤á /²Ç/ ¤è¤æ¤¦ /;͵/ ¤è¤ë /Ìë/ ¤è¤í¤¤ /³»/ ¤è¤ó /»Í/ ¤é /Åù/Íç/Íæ/Íå/ ¤é¤¤ /Íè/Íë/Íê/Íé/Îé/ ¤é¤¤¤·¤å¤¦ /Íè½µ/ ¤é¤¤¤Í¤ó¤É /ÍèǯÅÙ/ ¤é¤¯ /³Ú/Íî/Íï/Íí/Íì/ ¤é¤ó /Í÷/Íó/Íò/Íð/Íö/Íõ/Íô/Íñ/ ¤ê /΢/Τ/Î¥/Íý/Íø/Ρ/Σ/Íþ/Íû/Íú/Íù/Íü/ ¤ê¤¨¤­ /Íø±×/ ¤ê¤«¤¤ /Íý²ò/ ¤ê¤­ /ÎÏ/ ¤ê¤¯ /Φ/ ¤ê¤¸¤å¤ó /Íø½á/ ¤ê¤Á /Χ/ ¤ê¤Ã¤Ñ /ΩÇÉ/ ¤ê¤Ä /Ψ/Ω/Ϊ/Χ/ ¤ê¤Æ¤ó /ÍøÅÀ/ ¤ê¤ã¤¯ /ά/Ϋ/ ¤ê¤å¤¦ /ή/δ/Ω/ζ/ε/γ/β/α/ί/έ/Ìø/ ¤ê¤å¤¦¤­¤å¤¦ /ΰµå/ ¤ê¤å¤¦¤³¤¦ /ή¹Ô/ ¤ê¤å¤¦¤Ä¤¦ /ήÄÌ/ ¤ê¤æ¤¦ /Íýͳ/ ¤ê¤ç /κ/ι/θ/η/ ¤ê¤ç¤¦ /ÎÌ/ÎÀ/ξ/ÎÎ/ÎÍ/ÎË/ÎÊ/ÎÉ/ÎÈ/ÎÇ/ÎÆ/ÎÅ/ÎÄ/ÎÃ/ÎÂ/ÎÁ/ο/ν/μ/λ/µù/Îî/ ¤ê¤ç¤¦¤¤¤­ /Îΰè/ ¤ê¤ç¤¦¤«¤¤ /λ²ò/ ¤ê¤ç¤¦¤­¤ó /ÎÁ¶â/ ¤ê¤ç¤¦¤³¤¦ /Îɹ¥/ ¤ê¤ç¤¦¤·¤ã /ξ¼Ô/ ¤ê¤ç¤¦¤Û¤¦ /ξÊý/ ¤ê¤ç¤¦¤á /ξÌÜ/ ¤ê¤ç¤¦¤ê /ÎÁÍý/ ¤ê¤ç¤¯ /ÎÏ/ÎÐ/ ¤ê¤è¤¦ /ÍøÍÑ/ ¤ê¤è¤¦¤·¤ã /ÍøÍѼÔ/ ¤ê¤í¤ó /ÍýÏÀ/ ¤ê¤í¤ó¤Æ¤­ /ÍýÏÀŪ/ ¤ê¤ó /ÎÙ/ÎØ/ÎÛ/ÎÚ/Î×/ÎÖ/ÎÕ/ÎÔ/ÎÓ/ÎÒ/ÎÑ/Îë/ ¤ê¤ó¤´ /ÎÓ¸é/ ¤ê¤ó¤»¤Ä /ÎÙÀÜ/ ¤ë /ή/ÎÜ/ ¤ë¤¤ /ÎÞ/Îà/Îß/ÎÝ/ ¤ì¤¤ /Îã/Îð/Îï/Îî/Îí/Îì/Îë/Îê/Îé/Îè/Îç/Îæ/Îå/Îä/Îâ/Îá/Ìá/ ¤ì¤¤¤¬¤¤ /Îã³°/ ¤ì¤­ /Îò/Îñ/ ¤ì¤­¤· /Îò»Ë/ ¤ì¤Ã¤·¤ã /Îó¼Ö/ ¤ì¤Ä /Îó/Îö/Îõ/Îô/ ¤ì¤ó /Îø/Ï¡/Ï¢/Îþ/Îý/Îü/Îû/Îú/Îù/Î÷/Ï£/ ¤ì¤ó¤­¤å¤¦ /Ï¢µÙ/ ¤ì¤ó¤µ¤¤ /Ï¢ºÜ/ ¤ì¤ó¤·¤å¤¦ /Îý½¬/ ¤ì¤ó¤¾¤¯ /Ϣ³/ ¤ì¤ó¤¾¤¯¤Á /Ϣ³ÃÍ/ ¤ì¤ó¤é¤¯ /Ï¢Íí/ ¤ì¤ó¤é¤¯¤µ¤­ /Ï¢ÍíÀè/ ¤í /Ϫ/Ï©/ϧ/Ϧ/Ï¥/Ϥ/ ¤í¤¦ /ϯ/Ϻ/Ϲ/ϸ/Ï·/Ï´/ϳ/ϲ/ϱ/ϰ/Ï®/Ϭ/Ï«/ÎÈ/Ϫ/ϵ/Ï­/϶/ ¤í¤¦¤« /Ï­²¼/ ¤í¤¦¤Ò /ϲÈñ/ ¤í¤¦¤ê¤ç¤¯ /Ï«ÎÏ/ ¤í¤¯ /ÎÐ/Ï¿/Ͼ/Ͻ/Ï»/ ¤í¤¯¤¬ /Ï¿²è/ ¤í¤ó /ÏÀ/ ¤í¤ó¤® /ÏÀµÄ/ ¤í¤ó¤Ö¤ó /ÏÀʸ/ ¤í¤ó¤ê /ÏÀÍý/ ¤ï /ÏÃ/ÏÂ/²æ/ÎØ/ÏÁ/ ¤ï¤¤ /ÏÄ/ ¤ï¤¤¤í /ÏÅϨ/ ¤ï¤­ /ÏÆ/ ¤ï¤¯ /ÏÈ/ÏÇ/ ¤ï¤¯¤»¤¤ /ÏÇÀ±/ ¤ï¤± /Ìõ/ ¤ï¤¶ /µ»/¶È/ ¤ï¤· /ÏÉ/ ¤ï¤·¤ã /ÏüÔ/ ¤ï¤¿ /ÌÊ/ ¤ï¤¿¤¯¤· /»ä/ ¤ï¤¿¤· /»ä/ ¤ï¤À¤¤ /ÏÃÂê/ ¤ï¤Ë /ÏÌ/ ¤ï¤é /ÏÎ/ ¤ï¤é¤Ó /ÏÏ/ ¤ï¤é¤Ù /Ƹ/ ¤ï¤ê /³ä/ ¤ï¤ê¤Ð¤· /³äȤ/ ¤ï¤ì /²æ/ ¤ï¤ó /ÏÓ/ÏÒ/ÏÑ/ÏÐ/ libskk-1.0.0/tests/cdb-dict.dat0000664000076400007640000000457211703700064013235 00000000000000ÚÚÚÚÚÚÚÚÚÚÚÚÚÚêêêêêêêêêêêêúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúúú                                            * * * * * * * * * * * * * * * * * : : : J J Z j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j j z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z ¤¢¤¤¤«¤ïr/ÁêÊÑ/¤¢w/¹ç/ ¤¢u/¹ç/°©/²ñ/Áø/¤¢t/Åö/½¼/ ¤¢r/Í­/ºß/¹Ó/ ¤«¤ó¤·¤å¤¦/´·½¬/¤«¤ó¤·¤ó/´¶¿´/ ¤«¤ó¤¸/´Á»ú/´´»ö/ ¤«¤ó¤¸¤ç¤¦/´¶¾ð/¤«¤ó¤¹¤¦/´Ø¿ô/ T0èeªê}A‹“U7覀‰*笑„ P”„ –„ &—„ >ÂpêÄlibskk-1.0.0/tests/basic.c0000664000076400007640000005201011727607314012317 00000000000000#include #include "common.h" static SkkTransition input_mode_transitions[] = { { SKK_INPUT_MODE_HIRAGANA, "q", "", "", SKK_INPUT_MODE_KATAKANA }, { SKK_INPUT_MODE_HIRAGANA, "C-q", "", "", SKK_INPUT_MODE_HANKAKU_KATAKANA }, { SKK_INPUT_MODE_HIRAGANA, "l", "", "", SKK_INPUT_MODE_LATIN }, { SKK_INPUT_MODE_HIRAGANA, "L", "", "", SKK_INPUT_MODE_WIDE_LATIN }, { SKK_INPUT_MODE_KATAKANA, "q", "", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_KATAKANA, "C-q", "", "", SKK_INPUT_MODE_HANKAKU_KATAKANA }, { SKK_INPUT_MODE_KATAKANA, "l", "", "", SKK_INPUT_MODE_LATIN }, { SKK_INPUT_MODE_KATAKANA, "L", "", "", SKK_INPUT_MODE_WIDE_LATIN }, { SKK_INPUT_MODE_HANKAKU_KATAKANA, "q", "", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HANKAKU_KATAKANA, "C-q", "", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HANKAKU_KATAKANA, "l", "", "", SKK_INPUT_MODE_LATIN }, { SKK_INPUT_MODE_HANKAKU_KATAKANA, "L", "", "", SKK_INPUT_MODE_WIDE_LATIN }, { SKK_INPUT_MODE_LATIN, "C-j", "", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "w w q", "", "ã£", SKK_INPUT_MODE_KATAKANA }, /* Issue#10 */ { SKK_INPUT_MODE_HIRAGANA, "l Q", "", "Q", SKK_INPUT_MODE_LATIN }, /* Issue#15 */ { SKK_INPUT_MODE_HIRAGANA, "n q", "", "ã‚“", SKK_INPUT_MODE_KATAKANA }, { SKK_INPUT_MODE_KATAKANA, "n q", "", "ン", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "n l", "", "ã‚“", SKK_INPUT_MODE_LATIN }, { 0, NULL } }; static SkkTransition rom_kana_transitions[] = { { SKK_INPUT_MODE_HIRAGANA, "k", "k", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "k a", "", "ã‹", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "m", "m", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "m y", "my", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "m y o", "", "ã¿ã‚‡", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "q", "", "", SKK_INPUT_MODE_KATAKANA }, { SKK_INPUT_MODE_KATAKANA, "k", "k", "", SKK_INPUT_MODE_KATAKANA }, { SKK_INPUT_MODE_KATAKANA, "k a", "", "ã‚«", SKK_INPUT_MODE_KATAKANA }, { SKK_INPUT_MODE_KATAKANA, "n .", "", "ン。", SKK_INPUT_MODE_KATAKANA }, { SKK_INPUT_MODE_HIRAGANA, "z l", "", "→", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "m y C-g", "", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "m y a C-g", "", "ã¿ã‚ƒ", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "A i q", "", "アイ", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_KATAKANA, "A i q", "", "ã‚ã„", SKK_INPUT_MODE_KATAKANA }, { SKK_INPUT_MODE_HIRAGANA, "V u", "â–½ã†ã‚›", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "V u q", "", "ヴ", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_KATAKANA, "V u", "▽ヴ", "", SKK_INPUT_MODE_KATAKANA }, { SKK_INPUT_MODE_KATAKANA, "V u q", "", "ã†ã‚›", SKK_INPUT_MODE_KATAKANA }, { SKK_INPUT_MODE_HIRAGANA, "Q n q", "", "ン", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "Q Q", "â–½", "", SKK_INPUT_MODE_HIRAGANA }, /* Issue#9 */ { SKK_INPUT_MODE_HIRAGANA, "n SPC", "", "ã‚“ ", SKK_INPUT_MODE_HIRAGANA }, /* ibus-skk Issue#36 */ { SKK_INPUT_MODE_HIRAGANA, "W o", "▽を", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "\t K a", "â–½ã‹", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_LATIN, "a \t", "", "a", SKK_INPUT_MODE_LATIN }, /* Issue#11 */ { SKK_INPUT_MODE_HIRAGANA, "q s a n S y a", "▽シャ", "サン", SKK_INPUT_MODE_KATAKANA }, { 0, NULL } }; static SkkTransition okuri_nasi_transitions[] = { { SKK_INPUT_MODE_HIRAGANA, "A", "â–½ã‚", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "A i", "â–½ã‚ã„", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "A i SPC", "▼愛", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "A i SPC SPC", "▼哀", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "A i SPC SPC \n", "", "å“€", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_KATAKANA, "A i SPC", "▼哀", "", SKK_INPUT_MODE_KATAKANA }, { SKK_INPUT_MODE_HIRAGANA, "N A", "â–½ãª", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "N A N", "â–½ãª*n", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "I z e n SPC", "▼以å‰", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "K a n j i SPC C-j", "", "漢字", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "K a n j i SPC C-g", "â–½ã‹ã‚“ã˜", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HANKAKU_KATAKANA, "K a n j i SPC", "▼漢字", "", SKK_INPUT_MODE_HANKAKU_KATAKANA }, { SKK_INPUT_MODE_HIRAGANA, "K a n j i SPC q", "", "漢字", SKK_INPUT_MODE_KATAKANA }, { SKK_INPUT_MODE_KATAKANA, "K a n j i SPC q", "", "漢字", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "N A N A", "â–¼ãª*ã‚“ã‚ã€ã€‘", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "N A N a", "â–¼ãª*ãªã€ã€‘", "", SKK_INPUT_MODE_HIRAGANA }, { 0, NULL } }; static SkkTransition okuri_ari_transitions[] = { { SKK_INPUT_MODE_HIRAGANA, "K a n g a E", "▼考ãˆ", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "K a n g a E r", "r", "考ãˆ", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "H a Z", "â–½ã¯*z", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "H a Z u", "â–¼æ¥ãš", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "T u k a T t", "â–½ã¤ã‹*ã£t", "", SKK_INPUT_MODE_HIRAGANA }, /* Debian Bug#591052 */ { SKK_INPUT_MODE_HIRAGANA, "K a n J", "â–½ã‹ã‚“*j", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "K a n J i", "▼感ã˜", "", SKK_INPUT_MODE_HIRAGANA }, /* ibus-skk Issue#10 */ { SKK_INPUT_MODE_HIRAGANA, "F u N d a", "â–¼è¸ã‚“ã ", "", SKK_INPUT_MODE_HIRAGANA }, /* ibus-skk Issue#18 */ { SKK_INPUT_MODE_HIRAGANA, "S a S s", "â–½ã•*ã£s", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "S a s S", "â–½ã•ã£*s", "", SKK_INPUT_MODE_HIRAGANA }, /* ibus-skk Issue#19 */ { SKK_INPUT_MODE_HIRAGANA, "A z u m a SPC", "â–¼æ±", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "A z u m a SPC >", "â–½>", "æ±", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "A z u m a SPC > s h i SPC", "â–¼æ°", "æ±", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "T y o u >", "▼超", "", SKK_INPUT_MODE_HIRAGANA }, /* Issue#12 */ { SKK_INPUT_MODE_HIRAGANA, "q S i r o K u", "▼白ク", "", SKK_INPUT_MODE_KATAKANA }, { 0, NULL } }; static SkkTransition abort_transitions[] = { /* back to select state if candidate list is not empty */ { SKK_INPUT_MODE_HIRAGANA, "A k a SPC SPC SPC C-g", "▼垢", "", SKK_INPUT_MODE_HIRAGANA }, /* back to preedit state if candidate list is empty */ { SKK_INPUT_MODE_HIRAGANA, "A p a SPC C-g", "â–½ã‚ã±", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "O K i C-g", "â–½ãŠã", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "O K C-g", "", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "A o i O C-g", "â–½ã‚ãŠã„ãŠ", "", SKK_INPUT_MODE_HIRAGANA }, { 0, NULL } }; static SkkTransition delete_transitions[] = { { SKK_INPUT_MODE_HIRAGANA, "A DEL", "â–½", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "A DEL DEL", "", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "A i s a t s u SPC DEL", "", "挨", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "A C-h", "â–½", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "A C-h C-h", "", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "E B DEL", "â–½ãˆ", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "E B DEL r a B", "â–½ãˆã‚‰*b", "", SKK_INPUT_MODE_HIRAGANA }, { 0, NULL } }; static SkkTransition hankaku_katakana_transitions[] = { { SKK_INPUT_MODE_HIRAGANA, "C-q Z e n k a k u", "▽ゼï¾ï½¶ï½¸", "", SKK_INPUT_MODE_HANKAKU_KATAKANA }, { 0, NULL } }; static SkkTransition completion_transitions[] = { /* midasi word (= "ã‚") exists in the dictionary */ { SKK_INPUT_MODE_HIRAGANA, "A \t", "â–½ã‚ã„", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "A \t \t", "â–½ã‚ã„ã•ã¤", "", SKK_INPUT_MODE_HIRAGANA }, /* midasi word (= "ã‚ã‹") exists in the dictionary */ { SKK_INPUT_MODE_HIRAGANA, "A k a \t", "â–½ã‚ã‹ã¤ã", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "A k a \t \t", "â–½ã‚ã‹ã­", "", SKK_INPUT_MODE_HIRAGANA }, /* no more match for midasi word (= "ã‚ã‹") */ { SKK_INPUT_MODE_HIRAGANA, "A k a \t \t \t", "â–½ã‚ã‹ã­", "", SKK_INPUT_MODE_HIRAGANA }, /* midasi word (= "ã“ã†ã“") does not exist in the dictionary */ { SKK_INPUT_MODE_HIRAGANA, "K o u k o \t", "â–½ã“ã†ã“ã†", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "K o u k o \t \t", "â–½ã“ã†ã“ã", "", SKK_INPUT_MODE_HIRAGANA }, /* no match for midasi word (= "ã‚ã±") */ { SKK_INPUT_MODE_HIRAGANA, "A p a \t", "â–½ã‚ã±", "", SKK_INPUT_MODE_HIRAGANA }, { 0, NULL } }; static SkkTransition abbrev_transitions[] = { /* We choose "request" since it contains "q", which normally triggers input mode change */ { SKK_INPUT_MODE_HIRAGANA, "/ r e q u e s t", "â–½request", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "/ r e q u e s t SPC", "▼リクエスト", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "z /", "", "・", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "/ ]", "â–½]", "", SKK_INPUT_MODE_HIRAGANA }, /* Ignore "" in abbrev mode (ibus-skk Issue#16). */ { SKK_INPUT_MODE_HIRAGANA, "/ \\(", "â–½(", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "/ A", "â–½A", "", SKK_INPUT_MODE_HIRAGANA }, /* Convert latin to wide latin with ctrl+q (ibus-skk Issue#17). */ { SKK_INPUT_MODE_HIRAGANA, "/ a a C-q", "", "ï½ï½", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "/ d o s v SPC", "â–¼DOS/V", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "/ b s d 3 SPC", "â–¼BSD/3", "", SKK_INPUT_MODE_HIRAGANA }, { 0, NULL } }; static SkkTransition dict_edit_transitions[] = { { SKK_INPUT_MODE_HIRAGANA, "K a p a SPC", "â–¼ã‹ã±ã€ã€‘", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "K a p a SPC a", "â–¼ã‹ã±ã€ã‚】", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "K a p a SPC K a", "â–¼ã‹ã±ã€â–½ã‹ã€‘", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "K a p a SPC K a p a SPC", "â–¼ã‹ã±ã€â–¼ã‹ã±ã€ã€‘】", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "K a p a SPC K a p a SPC C-g", "â–¼ã‹ã±ã€â–½ã‹ã±ã€‘", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "K a p a SPC K a p a SPC C-g C-g", "â–¼ã‹ã±ã€ã€‘", "", SKK_INPUT_MODE_HIRAGANA }, /* Don't register empty string (Debian Bug#590191). */ { SKK_INPUT_MODE_HIRAGANA, "K a p a SPC \n", "â–½ã‹ã±", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "K a p a SPC K a SPC", "â–¼ã‹ã±ã€â–¼ä¸‹ã€‘", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "K a p a SPC K a SPC H a SPC C-j", "â–¼ã‹ã±ã€ä¸‹ç ´ã€‘", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "K a p a SPC K a SPC H a SPC \n", "", "下破", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "K a p a SPC", "▼下破", "", SKK_INPUT_MODE_HIRAGANA }, /* Purge "下破" from the user dictionary (Debian Bug#590188). */ { SKK_INPUT_MODE_HIRAGANA, "K a p a SPC X", "", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "K a p a SPC", "â–¼ã‹ã±ã€ã€‘", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "K a n g a E SPC", "â–¼ã‹ã‚“ãŒ*ãˆã€ã€‘", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "K a t a k a n a SPC SPC K a t a k a n a q", "â–¼ã‹ãŸã‹ãªã€ã‚«ã‚¿ã‚«ãƒŠã€‘", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "K a t a k a n a SPC SPC K a t a k a n a q l n a", "â–¼ã‹ãŸã‹ãªã€ã‚«ã‚¿ã‚«ãƒŠna】", "", SKK_INPUT_MODE_LATIN }, { SKK_INPUT_MODE_HIRAGANA, "K a t a k a n a SPC SPC K a t a k a n a q C-m", "", "カタカナ", SKK_INPUT_MODE_HIRAGANA }, /* Issue#11 */ { SKK_INPUT_MODE_HIRAGANA, "t a k K u n SPC", "â–¼ã£ãã‚“ã€ã€‘", "ãŸ", SKK_INPUT_MODE_HIRAGANA }, { 0, NULL } }; static SkkTransition kuten_transitions[] = { { SKK_INPUT_MODE_HIRAGANA, "\\\\", "Kuten([MM]KKTT) ", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "\\\\ a DEL", "Kuten([MM]KKTT) ", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "\\\\ a 1 a 2 \n", "", "ã€", SKK_INPUT_MODE_HIRAGANA }, /* Don't start KUTEN input on latin input modes. */ { SKK_INPUT_MODE_LATIN, "\\\\", "", "\\", SKK_INPUT_MODE_LATIN }, { SKK_INPUT_MODE_WIDE_LATIN, "\\\\", "", "ï¼¼", SKK_INPUT_MODE_WIDE_LATIN }, { 0, NULL } }; static SkkTransition auto_conversion_transitions[] = { { SKK_INPUT_MODE_HIRAGANA, "A i ,", "▼愛ã€", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "A i , SPC", "▼哀ã€", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "A i w o", "▼愛を", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "A i SPC \\(", "", "æ„›(", SKK_INPUT_MODE_HIRAGANA }, { 0, NULL } }; static SkkTransition numeric_transitions[] = { { SKK_INPUT_MODE_HIRAGANA, "Q 5 / 1 SPC", "â–¼5月1æ—¥", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "Q 5 h i k i SPC", "▼5匹", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "Q 5 h i k i SPC SPC", "▼五匹", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "Q 5 h i k i SPC SPC C-j", "", "五匹", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "Q 1 h i k i SPC", "▼一匹", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "Q 5 0 0 0 0 h i k i SPC", "▼五万匹", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "Q 1 0 h i k i SPC", "â–¼å匹", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "Q 1 1 1 1 1 h i k i SPC", "▼一万åƒç™¾å一匹", "", SKK_INPUT_MODE_HIRAGANA }, { 0, NULL } }; struct _SkkFixture { SkkContext *context; }; typedef struct _SkkFixture SkkFixture; static void context_setup (SkkFixture *fixture, gconstpointer data) { fixture->context = create_context (TRUE, TRUE); } static void context_teardown (SkkFixture *fixture, gconstpointer data) { destroy_context (fixture->context); } static void test_transitions (SkkFixture *fixture, gconstpointer data) { const SkkTransition *transitions = data; check_transitions (fixture->context, transitions); } static void candidate_list (void) { SkkContext *context; SkkTransition transitions[] = { { SKK_INPUT_MODE_HIRAGANA, "I SPC SPC SPC SPC SPC", "▼唯", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "I SPC SPC SPC SPC SPC SPC", "â–¼é•", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "I SPC SPC SPC SPC SPC SPC x x", "▼井", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "I SPC SPC SPC SPC SPC SPC SPC", "▼移", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "I SPC SPC SPC SPC SPC SPC SPC SPC", "▼委", "", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "I SPC SPC SPC SPC SPC SPC SPC SPC SPC", "â–¼ã„ã€ã€‘", "", SKK_INPUT_MODE_HIRAGANA }, { 0, NULL } }; SkkCandidateList *candidates; SkkCandidate *candidate; gint cursor_pos; gint retval; context = create_context (TRUE, TRUE); check_transitions (context, transitions); candidates = skk_context_get_candidates (context); skk_candidate_list_set_page_start (candidates, 4); skk_candidate_list_set_page_size (candidates, 7); cursor_pos = skk_candidate_list_get_cursor_pos (candidates); g_assert_cmpint (cursor_pos, ==, -1); retval = skk_context_process_key_events (context, "I SPC"); g_assert (retval); cursor_pos = skk_candidate_list_get_cursor_pos (candidates); g_assert_cmpint (cursor_pos, ==, 0); skk_candidate_list_cursor_down (candidates); cursor_pos = skk_candidate_list_get_cursor_pos (candidates); g_assert_cmpint (cursor_pos, ==, 1); skk_candidate_list_cursor_up (candidates); cursor_pos = skk_candidate_list_get_cursor_pos (candidates); g_assert_cmpint (cursor_pos, ==, 0); /* page_down has no effect if cursor_pos < page_start */ retval = skk_candidate_list_page_down (candidates); g_assert (!retval); cursor_pos = skk_candidate_list_get_cursor_pos (candidates); g_assert_cmpint (cursor_pos, ==, 0); /* page_up has no effect if cursor_pos < page_start + page_size */ retval = skk_candidate_list_page_up (candidates); g_assert (!retval); cursor_pos = skk_candidate_list_get_cursor_pos (candidates); g_assert_cmpint (cursor_pos, ==, 0); for (cursor_pos = 0; cursor_pos < skk_candidate_list_get_page_start (candidates); cursor_pos++) { g_assert (!skk_candidate_list_get_page_visible (candidates)); skk_candidate_list_next (candidates); } g_assert (skk_candidate_list_get_page_visible (candidates)); skk_candidate_list_next (candidates); cursor_pos = skk_candidate_list_get_cursor_pos (candidates); g_assert_cmpint (cursor_pos, ==, skk_candidate_list_get_page_start (candidates) + skk_candidate_list_get_page_size (candidates)); skk_candidate_list_previous (candidates); cursor_pos = skk_candidate_list_get_cursor_pos (candidates); g_assert_cmpint (cursor_pos, ==, skk_candidate_list_get_page_start (candidates)); candidate = skk_candidate_list_get (candidates, -1); g_assert_cmpstr (skk_candidate_get_text (candidate), ==, "唯"); g_object_unref (candidate); skk_candidate_list_previous (candidates); cursor_pos = skk_candidate_list_get_cursor_pos (candidates); g_assert_cmpint (cursor_pos, ==, skk_candidate_list_get_page_start (candidates) - 1); skk_candidate_list_select (candidates); destroy_context (context); } static gboolean retrieve_surrounding_text_cb (SkkContext* self, gchar** text, guint* cursor_pos, gpointer user_data) { *text = g_strdup ("ã‚ã‚ã‚"); *cursor_pos = 0; return TRUE; } static gboolean delete_surrounding_text_cb (SkkContext* self, gint offset, guint nchars, gpointer user_data) { return TRUE; } static void surrounding (void) { SkkContext *context = create_context (TRUE, TRUE); const gchar *preedit; g_signal_connect (context, "retrieve-surrounding-text", G_CALLBACK (retrieve_surrounding_text_cb), NULL); g_signal_connect (context, "delete-surrounding-text", G_CALLBACK (delete_surrounding_text_cb), NULL); skk_context_process_key_events (context, "Q Right SPC"); preedit = skk_context_get_preedit (context); g_assert_cmpstr (preedit, ==, "▼阿ã‚ã‚"); destroy_context (context); } int main (int argc, char **argv) { g_type_init (); skk_init (); g_test_init (&argc, &argv, NULL); g_test_add ("/libskk/input-mode", SkkFixture, input_mode_transitions, context_setup, test_transitions, context_teardown); g_test_add ("/libskk/rom-kana", SkkFixture, rom_kana_transitions, context_setup, test_transitions, context_teardown); g_test_add ("/libskk/okuri-nasi", SkkFixture, okuri_nasi_transitions, context_setup, test_transitions, context_teardown); g_test_add ("/libskk/okuri-ari", SkkFixture, okuri_ari_transitions, context_setup, test_transitions, context_teardown); g_test_add ("/libskk/abort", SkkFixture, abort_transitions, context_setup, test_transitions, context_teardown); g_test_add ("/libskk/delete", SkkFixture, delete_transitions, context_setup, test_transitions, context_teardown); g_test_add ("/libskk/hankaku-katakana", SkkFixture, hankaku_katakana_transitions, context_setup, test_transitions, context_teardown); g_test_add ("/libskk/completion", SkkFixture, completion_transitions, context_setup, test_transitions, context_teardown); g_test_add ("/libskk/abbrev", SkkFixture, abbrev_transitions, context_setup, test_transitions, context_teardown); g_test_add ("/libskk/dict-edit", SkkFixture, dict_edit_transitions, context_setup, test_transitions, context_teardown); g_test_add ("/libskk/kuten", SkkFixture, kuten_transitions, context_setup, test_transitions, context_teardown); g_test_add ("/libskk/auto-conversion", SkkFixture, auto_conversion_transitions, context_setup, test_transitions, context_teardown); g_test_add ("/libskk/numeric", SkkFixture, numeric_transitions, context_setup, test_transitions, context_teardown); g_test_add_func ("/libskk/candidate-list", candidate_list); g_test_add_func ("/libskk/surrounding", surrounding); return g_test_run (); } libskk-1.0.0/tests/common.c0000664000076400007640000000403411725033707012526 00000000000000#include #include #include "common.h" SkkContext * create_context (gboolean use_user_dict, gboolean use_file_dict) { SkkDict *dictionaries[3]; gint n_dictionaries = 0; SkkEmptyDict *empty_dict; SkkUserDict *user_dict = NULL; SkkFileDict *file_dict = NULL; SkkContext *context; GError *error; error = NULL; empty_dict = skk_empty_dict_new (); g_assert_no_error (error); dictionaries[n_dictionaries++] = SKK_DICT (empty_dict); if (use_user_dict) { error = NULL; user_dict = skk_user_dict_new ("user-dict.dat", "EUC-JP", &error); g_assert_no_error (error); dictionaries[n_dictionaries++] = SKK_DICT (user_dict); } if (use_file_dict) { error = NULL; file_dict = skk_file_dict_new (LIBSKK_FILE_DICT, "EUC-JP", &error); g_assert_no_error (error); dictionaries[n_dictionaries++] = SKK_DICT (file_dict); } context = skk_context_new (dictionaries, n_dictionaries); g_object_unref (empty_dict); if (user_dict) g_object_unref (user_dict); if (file_dict) g_object_unref (file_dict); return context; } void destroy_context (SkkContext *context) { unlink ("user-dict.dat"); g_object_unref (context); } void check_transitions (SkkContext *context, const SkkTransition *transitions) { gint i; for (i = 0; transitions[i].keys != NULL; i++) { const gchar *preedit; gchar *output; SkkInputMode input_mode; skk_context_reset (context); output = skk_context_poll_output (context); g_free (output); skk_context_set_input_mode (context, transitions[i].input_mode); skk_context_process_key_events (context, transitions[i].keys); preedit = skk_context_get_preedit (context); g_assert_cmpstr (preedit, ==, transitions[i].preedit); output = skk_context_poll_output (context); g_assert_cmpstr (output, ==, transitions[i].output); g_free (output); input_mode = skk_context_get_input_mode (context); g_assert_cmpint (input_mode, ==, transitions[i].next_input_mode); } } libskk-1.0.0/tests/rule.c0000664000076400007640000001075211733752513012213 00000000000000#include #include "common.h" static void list (void) { SkkRuleMetadata *rules; gint len; rules = skk_rule_list (&len); g_assert_cmpint (len, >, 0); while (--len >= 0) { skk_rule_metadata_destroy (&rules[len]); } g_free (rules); } static void azik (void) { SkkContext *context; GError *error; SkkRule *rule; SkkTransition transitions[] = { { SKK_INPUT_MODE_HIRAGANA, "x x a", "", "ã", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "Y o :", "▼酔ã£", "", SKK_INPUT_MODE_HIRAGANA }, { 0, NULL } }; context = create_context (TRUE, TRUE); error = NULL; rule = skk_rule_new ("azik", &error); g_assert_no_error (error); skk_context_set_typing_rule (context, rule); g_object_unref (rule); check_transitions (context, transitions); destroy_context (context); } static void kzik (void) { SkkContext *context; GError *error; SkkRule *rule; SkkTransition transitions[] = { { SKK_INPUT_MODE_HIRAGANA, "b g d", "", "ã³ã‡ã‚“", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "s q", "", "ã•ã„", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "d l", "", "ã©ã‚“", SKK_INPUT_MODE_HIRAGANA }, { 0, NULL } }; context = create_context (TRUE, TRUE); error = NULL; rule = skk_rule_new ("kzik", &error); g_assert_no_error (error); skk_context_set_typing_rule (context, rule); g_object_unref (rule); check_transitions (context, transitions); destroy_context (context); } static void nicola (void) { SkkContext *context; SkkRule *rule; SkkTransition transitions[] = { /* single key - timeout */ { SKK_INPUT_MODE_HIRAGANA, "a (usleep 200000)", "", "ã†", SKK_INPUT_MODE_HIRAGANA }, /* single key - release */ { SKK_INPUT_MODE_HIRAGANA, "a (release a)", "", "ã†", SKK_INPUT_MODE_HIRAGANA }, /* single key - overlap */ { SKK_INPUT_MODE_HIRAGANA, "a (usleep 50000) b", "", "ã†", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "a (usleep 50000) b (usleep 200000)", "", "ã†ã¸", SKK_INPUT_MODE_HIRAGANA }, /* double key - shifted */ { SKK_INPUT_MODE_HIRAGANA, "a (usleep 10000) (lshift) (usleep 200000)", "", "ã‚’", SKK_INPUT_MODE_HIRAGANA }, /* double key - shifted reverse */ { SKK_INPUT_MODE_HIRAGANA, "(lshift) (usleep 10000) a (usleep 200000)", "", "ã‚’", SKK_INPUT_MODE_HIRAGANA }, /* double key - shifted expired */ { SKK_INPUT_MODE_HIRAGANA, "a (usleep 60000) (lshift)", "", "ã†", SKK_INPUT_MODE_HIRAGANA }, /* double key - skk-nicola */ { SKK_INPUT_MODE_HIRAGANA, "f (usleep 30000) j", "â–½", "", SKK_INPUT_MODE_HIRAGANA }, /* double key - skk-nicola reverse */ { SKK_INPUT_MODE_HIRAGANA, "j (usleep 30000) f", "â–½", "", SKK_INPUT_MODE_HIRAGANA }, /* double key - skk-nicola (shift only) */ { SKK_INPUT_MODE_HIRAGANA, "(lshift) (usleep 30000) (rshift)", "", "", SKK_INPUT_MODE_LATIN }, /* triple key t1 <= t2 */ { SKK_INPUT_MODE_HIRAGANA, "a (usleep 10000) (lshift) (usleep 20000) b", "", "ã‚’", SKK_INPUT_MODE_HIRAGANA }, { SKK_INPUT_MODE_HIRAGANA, "a (usleep 20000) (lshift) (usleep 10000) b", "", "ã†ãƒ", SKK_INPUT_MODE_HIRAGANA }, /* preedit */ { SKK_INPUT_MODE_HIRAGANA, "f (usleep 30000) j a (release a)", "â–½ã†", "", SKK_INPUT_MODE_HIRAGANA }, /* preedit */ { SKK_INPUT_MODE_HIRAGANA, "f (usleep 30000) j a (release a) f (usleep 30000) j", "â–½ã†*", "", SKK_INPUT_MODE_HIRAGANA }, /* preedit */ { SKK_INPUT_MODE_HIRAGANA, "f (usleep 30000) j a (release a) f (usleep 30000) j i (release i)", "â–¼å—ã", "", SKK_INPUT_MODE_HIRAGANA }, /* hiragana -> katakana */ { SKK_INPUT_MODE_HIRAGANA, "d (usleep 30000) k a (release a)", "", "ウ", SKK_INPUT_MODE_KATAKANA }, /* hiragana -> latin */ { SKK_INPUT_MODE_HIRAGANA, "A (release A)", "", "", SKK_INPUT_MODE_LATIN }, /* hiragana -> wide latin */ { SKK_INPUT_MODE_HIRAGANA, "Z (release Z)", "", "", SKK_INPUT_MODE_WIDE_LATIN }, { 0, NULL } }; GError *error; context = create_context (TRUE, TRUE); error = NULL; rule = skk_rule_new ("nicola", &error); g_assert_no_error (error); skk_context_set_typing_rule (context, rule); g_object_unref (rule); check_transitions (context, transitions); destroy_context (context); } int main (int argc, char **argv) { g_type_init (); skk_init (); g_test_init (&argc, &argv, NULL); g_test_add_func ("/libskk/list", list); g_test_add_func ("/libskk/azik", azik); g_test_add_func ("/libskk/kzik", kzik); g_test_add_func ("/libskk/nicola", nicola); return g_test_run (); } libskk-1.0.0/tests/Makefile.am0000664000076400007640000000433111765527035013134 00000000000000# Copyright (C) 2011-2012 Daiki Ueno # Copyright (C) 2011-2012 Red Hat, 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 3 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, see . INCLUDES = -I$(top_srcdir) $(LIBSKK_CFLAGS) TESTS_ENVIRONMENT = \ G_DEBUG=${G_DEBUG:+"${G_DEBUG},"}gc-friendly \ G_SLICE=${G_SLICE},always-malloc \ LIBSKK_DATA_PATH=$(top_srcdir) \ $(LIBTOOL) --mode=execute $(VALGRIND) $(VALGRIND_OPTS) TESTS = rom-kana file-dict user-dict cdb-dict skkserv rule context basic noinst_PROGRAMS = $(TESTS) noinst_HEADERS = common.h AM_CPPFLAGS = \ -DLIBSKK_FILE_DICT=\"$(top_srcdir)/tests/file-dict.dat\" \ -DLIBSKK_CDB_DICT=\"$(top_srcdir)/tests/cdb-dict.dat\" \ $(NULL) rom_kana_SOURCES = rom-kana.c rom_kana_LDADD = $(top_builddir)/libskk/libskk.la $(LIBSKK_LIBS) # kana_kan_SOURCES = kana-kan.c # kana_kan_LDADD = $(top_builddir)/libskk/libskk.la $(LIBSKK_LIBS) file_dict_SOURCES = file-dict.c file_dict_LDADD = $(top_builddir)/libskk/libskk.la $(LIBSKK_LIBS) cdb_dict_SOURCES = cdb-dict.c cdb_dict_LDADD = $(top_builddir)/libskk/libskk.la $(LIBSKK_LIBS) skkserv_SOURCES = skkserv.c skkserv_LDADD = $(top_builddir)/libskk/libskk.la $(LIBSKK_LIBS) user_dict_SOURCES = user-dict.c common.c user_dict_LDADD = $(top_builddir)/libskk/libskk.la $(LIBSKK_LIBS) rule_SOURCES = rule.c common.c rule_LDADD = $(top_builddir)/libskk/libskk.la $(LIBSKK_LIBS) context_SOURCES = context.c common.c context_LDADD = $(top_builddir)/libskk/libskk.la $(LIBSKK_LIBS) basic_SOURCES = basic.c common.c basic_LDADD = $(top_builddir)/libskk/libskk.la $(LIBSKK_LIBS) EXTRA_DIST = file-dict.dat cdb-dict.dat kana-kan.c CLEANFILES = user-dict.dat valgrind.log.* -include $(top_srcdir)/git.mk libskk-1.0.0/tests/context.c0000664000076400007640000000536512005665120012722 00000000000000#include #include "common.h" static void dictionary (void) { SkkContext *context = create_context (TRUE, TRUE); SkkEmptyDict *dict = skk_empty_dict_new (); SkkDict **dictionaries; gint n_dictionaries; skk_context_add_dictionary (context, SKK_DICT (dict)); dictionaries = skk_context_get_dictionaries (context, &n_dictionaries); g_assert_cmpint (n_dictionaries, ==, 4); skk_context_set_dictionaries (context, dictionaries, n_dictionaries); while (--n_dictionaries >= 0) { g_object_unref (dictionaries[n_dictionaries]); } g_free (dictionaries); skk_context_remove_dictionary (context, SKK_DICT (dict)); g_object_unref (dict); destroy_context (context); } static void basic (void) { SkkContext *context = create_context (TRUE, TRUE); gboolean retval; const gchar *preedit; gchar *output; guint offset, nchars; retval = skk_context_process_key_events (context, "a i r"); g_assert (retval); output = skk_context_peek_output (context); g_assert_cmpstr (output, ==, "ã‚ã„"); g_free (output); skk_context_clear_output (context); preedit = skk_context_get_preedit (context); g_assert_cmpstr (preedit, ==, "r"); skk_context_get_preedit_underline (context, &offset, &nchars); g_assert_cmpint (offset, ==, 0); g_assert_cmpint (nchars, ==, 0); skk_context_reset (context); skk_context_clear_output (context); retval = skk_context_process_key_events (context, "A"); g_assert (retval); preedit = skk_context_get_preedit (context); g_assert_cmpstr (preedit, ==, "â–½ã‚"); retval = skk_context_process_key_events (context, "i"); g_assert (retval); output = skk_context_poll_output (context); g_assert_cmpstr (output, ==, ""); g_free (output); preedit = skk_context_get_preedit (context); g_assert_cmpstr (preedit, ==, "â–½ã‚ã„"); retval = skk_context_process_key_events (context, "SPC"); g_assert (retval); preedit = skk_context_get_preedit (context); g_assert_cmpstr (preedit, ==, "▼愛"); retval = skk_context_process_key_events (context, "\n"); g_assert (!retval); output = skk_context_poll_output (context); g_assert_cmpstr (output, ==, "æ„›"); g_free (output); retval = skk_context_process_key_events (context, "\n"); g_assert (!retval); skk_context_reset (context); skk_context_clear_output (context); retval = skk_context_process_key_events (context, "A U"); preedit = skk_context_get_preedit (context); g_assert_cmpstr (preedit, ==, "â–¼åˆã†"); destroy_context (context); } int main (int argc, char **argv) { g_type_init (); skk_init (); g_test_init (&argc, &argv, NULL); g_test_add_func ("/libskk/context/dictionary", dictionary); g_test_add_func ("/libskk/context/basic", basic); return g_test_run (); } libskk-1.0.0/tests/skkserv.c0000664000076400007640000001075211703762216012732 00000000000000#include #include #include struct _SkkServTransaction { gchar *request; gchar *response; }; typedef struct _SkkServTransaction SkkServTransaction; struct _SkkServData { GSocket *server; GThread *thread; SkkServTransaction *transactions; gsize n_transactions; }; typedef struct _SkkServData SkkServData; static gpointer skkserv_thread (gpointer user_data) { SkkServData *data = user_data; GSocket *socket; GError *error = NULL; gssize nread; gchar buf[4096]; /* large enough */ GSocketConnection *connection; GOutputStream *output; socket = g_socket_accept (data->server, NULL, &error); g_assert_no_error (error); connection = g_socket_connection_factory_create_connection (socket); output = g_io_stream_get_output_stream (G_IO_STREAM (connection)); while (TRUE) { gint i; nread = g_socket_receive (socket, buf, sizeof (buf), NULL, &error); g_assert_no_error (error); g_assert_cmpint (nread, >=, 0); if (nread == 0) break; for (i = 0; i < data->n_transactions; i++) { gsize bytes_written; SkkServTransaction *transaction = &data->transactions[i]; if (strncmp (buf, transaction->request, nread) == 0) { error = NULL; g_output_stream_write_all (output, transaction->response, strlen (transaction->response), &bytes_written, NULL, &error); g_assert_no_error (error); g_output_stream_flush (output, NULL, &error); g_assert_no_error (error); break; } } } g_object_unref (connection); g_socket_close (socket, &error); g_assert_no_error (error); g_object_unref (socket); return NULL; } static SkkServData * create_server () { SkkServData *data; GSocket *server; GError *error = NULL; GSocketAddress *addr; GInetAddress *iaddr; data = g_slice_new (SkkServData); data->server = server = g_socket_new (G_SOCKET_FAMILY_IPV4, G_SOCKET_TYPE_STREAM, G_SOCKET_PROTOCOL_DEFAULT, &error); g_assert_no_error (error); g_socket_set_blocking (server, TRUE); iaddr = g_inet_address_new_loopback (G_SOCKET_FAMILY_IPV4); addr = g_inet_socket_address_new (iaddr, 0); g_object_unref (iaddr); g_socket_bind (server, addr, TRUE, &error); g_assert_no_error (error); g_object_unref (addr); g_socket_listen (server, &error); g_assert_no_error (error); data->thread = g_thread_create (skkserv_thread, data, TRUE, &error); g_assert_no_error (error); return data; } static void skkserv (void) { GError *error; SkkServData *data; GSocketAddress *addr; gchar *host; guint16 port; GInetAddress *iaddr; SkkSkkServ *dict; gint len; SkkCandidate **candidates; gboolean read_only; gchar **completion; SkkServTransaction transactions[] = { { "2", "0.0 " }, { "1ã‚ã„ ", "1/æ„›/å“€/相/挨/\n" }, { "1ã‚ã± ", "4" }, { "4ã‚ ", "1/ã‚ã„/ã‚ã„ã•ã¤/\n" }, { "4ã‚ã± ", "4" }, }; data = create_server (); data->transactions = transactions; data->n_transactions = G_N_ELEMENTS (transactions); error = NULL; addr = g_socket_get_local_address (data->server, &error); g_assert_no_error (error); port = g_inet_socket_address_get_port (G_INET_SOCKET_ADDRESS (addr)); iaddr = g_inet_socket_address_get_address (G_INET_SOCKET_ADDRESS (addr)); host = g_inet_address_to_string (iaddr); g_object_unref (addr); error = NULL; dict = skk_skk_serv_new (host, port, "UTF-8", &error); g_free (host); g_assert_no_error (error); g_assert (skk_dict_get_read_only (SKK_DICT (dict))); g_object_get (dict, "read-only", &read_only, NULL); g_assert (read_only); candidates = skk_dict_lookup (SKK_DICT (dict), "ã‚ã„", FALSE, &len); g_assert_cmpint (len, ==, 4); while (--len >= 0) { g_object_unref (candidates[len]); } g_free (candidates); completion = skk_dict_complete (SKK_DICT (dict), "ã‚", &len); g_assert_cmpint (len, ==, 2); g_strfreev (completion); g_object_unref (dict); g_thread_join (data->thread); g_object_unref (data->server); g_slice_free (SkkServData, data); } int main (int argc, char **argv) { g_type_init (); skk_init (); g_test_init (&argc, &argv, NULL); g_test_add_func ("/libskk/skkserv", skkserv); return g_test_run (); } libskk-1.0.0/tests/user-dict.c0000664000076400007640000000425011703760576013144 00000000000000#include #include "common.h" static void user_dict (void) { GError *error = NULL; SkkUserDict *dict = skk_user_dict_new ("user-dict.dat", "EUC-JP", &error); g_assert_no_error (error); gboolean read_only; g_assert (skk_dict_get_read_only (SKK_DICT (dict)) == FALSE); g_object_get (dict, "read-only", &read_only, NULL); g_assert (read_only == FALSE); g_object_unref (dict); } static void save (void) { SkkContext *context; gboolean retval; GError *error; context = create_context (TRUE, TRUE); retval = skk_context_process_key_events (context, "A i SPC RET"); g_assert (retval); error = NULL; skk_context_save_dictionaries (context, &error); g_assert_no_error (error); g_object_unref (context); } static void completion (void) { SkkContext *context0, *context; gboolean retval; const gchar *preedit; GError *error; /* prepare user dict with four candidates */ context0 = create_context (TRUE, TRUE); retval = skk_context_process_key_events (context0, "A i SPC RET"); g_assert (retval); retval = skk_context_process_key_events (context0, "A i s a t s u SPC RET"); g_assert (retval); retval = skk_context_process_key_events (context0, "A I SPC RET"); g_assert (retval); retval = skk_context_process_key_events (context0, "A U SPC RET"); g_assert (retval); error = NULL; skk_context_save_dictionaries (context0, &error); g_assert_no_error (error); /* perform completion */ context = create_context (TRUE, FALSE); retval = skk_context_process_key_events (context, "A TAB"); g_assert (retval); preedit = skk_context_get_preedit (context); g_assert_cmpstr (preedit, ==, "â–½ã‚ã„"); retval = skk_context_process_key_events (context, "TAB"); g_assert (retval); preedit = skk_context_get_preedit (context); g_assert_cmpstr (preedit, ==, "â–½ã‚ã„ã•ã¤"); destroy_context (context); destroy_context (context0); } int main (int argc, char **argv) { g_type_init (); skk_init (); g_test_init (&argc, &argv, NULL); g_test_add_func ("/libskk/user-dict", user_dict); g_test_add_func ("/libskk/save", save); g_test_add_func ("/libskk/completion", completion); return g_test_run (); } libskk-1.0.0/rules/0000775000076400007640000000000012016557043011137 500000000000000libskk-1.0.0/rules/tutcode/0000775000076400007640000000000012016557043012606 500000000000000libskk-1.0.0/rules/tutcode/rom-kana/0000775000076400007640000000000012016557043014313 500000000000000libskk-1.0.0/rules/tutcode/rom-kana/default.json0000664000076400007640000025563711675742075016607 00000000000000{ "define": { "rom-kana": { "rk": [ "", "ã‚" ], "rlk": [ "", "ã" ], "ek": [ "", "ã‹" ], "elk": [ "", "ãŒ" ], "sk": [ "", "ã•" ], "slk": [ "", "ã–" ], "dk": [ "", "ãŸ" ], "dlk": [ "", "ã " ], "fk": [ "", "ãª" ], "tk": [ "", "ã¯" ], "tlk": [ "", "ã°" ], "tltk": [ "", "ã±" ], "wk": [ "", "ã¾" ], "qk": [ "", "ã‚„" ], "qlk": [ "", "ゃ" ], "gk": [ "", "ら" ], "ak": [ "", "ã‚" ], "alk": [ "", "ゎ" ], "ri": [ "", "ã„" ], "rli": [ "", "ãƒ" ], "ei": [ "", "ã" ], "eli": [ "", "ãŽ" ], "si": [ "", "ã—" ], "sli": [ "", "ã˜" ], "di": [ "", "ã¡" ], "dli": [ "", "ã¢" ], "fi": [ "", "ã«" ], "ti": [ "", "ã²" ], "tli": [ "", "ã³" ], "tlti": [ "", "ã´" ], "wi": [ "", "ã¿" ], "gi": [ "", "り" ], "ai": [ "", "ã‚" ], "ru": [ "", "ã†" ], "rlu": [ "", "ã…" ], "eu": [ "", "ã" ], "elu": [ "", "ã" ], "su": [ "", "ã™" ], "slu": [ "", "ãš" ], "du": [ "", "ã¤" ], "dlu": [ "", "ã£" ], "dldu": [ "", "ã¥" ], "fu": [ "", "ã¬" ], "tu": [ "", "ãµ" ], "tlu": [ "", "ã¶" ], "tltu": [ "", "ã·" ], "wu": [ "", "ã‚€" ], "qu": [ "", "ゆ" ], "qlu": [ "", "ã‚…" ], "gu": [ "", "ã‚‹" ], "rh": [ "", "ãˆ" ], "rlh": [ "", "ã‡" ], "eh": [ "", "ã‘" ], "elh": [ "", "ã’" ], "sh": [ "", "ã›" ], "slh": [ "", "ãœ" ], "dh": [ "", "ã¦" ], "dlh": [ "", "ã§" ], "fh": [ "", "ã­" ], "th": [ "", "ã¸" ], "tlh": [ "", "ã¹" ], "tlth": [ "", "ãº" ], "wh": [ "", "ã‚" ], "gh": [ "", "れ" ], "ah": [ "", "ã‚‘" ], "rj": [ "", "ãŠ" ], "rlj": [ "", "ã‰" ], "ej": [ "", "ã“" ], "elj": [ "", "ã”" ], "sj": [ "", "ã" ], "slj": [ "", "ãž" ], "dj": [ "", "ã¨" ], "dlj": [ "", "ã©" ], "fj": [ "", "ã®" ], "tj": [ "", "ã»" ], "tlj": [ "", "ã¼" ], "tltj": [ "", "ã½" ], "wj": [ "", "ã‚‚" ], "qj": [ "", "よ" ], "qlj": [ "", "ょ" ], "gj": [ "", "ã‚" ], "aj": [ "", "ã‚’" ], "fl": [ "", "ã‚“" ], "rlru": [ "", "ヴ" ], "eleh": [ "", "ヶ" ], "elek": [ "", "ヵ" ], "/ ": [ "", "ï¼" ], "q ": [ "", "“" ], "w ": [ "", "〒" ], "e ": [ "", "ー" ], "r ": [ "", "(" ], "u ": [ "", ")" ], "i ": [ "", "…" ], "o ": [ "", "・" ], "p ": [ "", "â€" ], "a ": [ "", "‘" ], "s ": [ "", "☆" ], "j ": [ "", "々" ], "k ": [ "", "※" ], "l ": [ "", "ï¼¼" ], "; ": [ "", "’" ], "z ": [ "", "〆" ], "x ": [ "", "§" ], "c ": [ "", "〇" ], "v ": [ "", "ã€" ], "m ": [ "", "】" ], ", ": [ "", "《" ], ". ": [ "", "》" ], "t ": [ "", "「" ], "y ": [ "", "ã€" ], "g ": [ "", "『" ], "h ": [ "", "ã€" ], "b ": [ "", "â†" ], "n ": [ "", "→" ], "zz": [ "", "雑" ], "xz": [ "", "推" ], "cz": [ "", "渡" ], "vz": [ "", "効" ], "bz": [ "", "宇" ], "nz": [ "", "振" ], "mz": [ "", "鉱" ], ",z": [ "", "æ•·" ], "az": [ "", "星" ], "sz": [ "", "許" ], "dz": [ "", "è¡—" ], "fz": [ "", "鈴" ], "gz": [ "", "å¸" ], "hz": [ "", "ç²¾" ], "jz": [ "", "å‹" ], "kz": [ "", "åŽ" ], "qz": [ "", "è¿”" ], "wz": [ "", "ç«¶" ], "ez": [ "", "æ¯" ], "rz": [ "", "熱" ], "tz": [ "", "退" ], "yz": [ "", "ä¼" ], "uz": [ "", "æœ" ], "iz": [ "", "鋼" ], ".z": [ "", "èž" ], "/z": [ "", "浦" ], "lz": [ "", "寺" ], ";z": [ "", "å±¥" ], "oz": [ "", "åœ" ], "pz": [ "", "å·ž" ], "zx": [ "", "刊" ], "xx": [ "", "å¾³" ], "cx": [ "", "ç™»" ], "vx": [ "", "冷" ], "bx": [ "", "響" ], "nx": [ "", "æ´¥" ], "mx": [ "", "塚" ], ",x": [ "", "å°¾" ], "ax": [ "", "æ—" ], "sx": [ "", "従" ], "dx": [ "", "å ‚" ], "fx": [ "", "å…µ" ], "gx": [ "", "監" ], "hx": [ "", "浜" ], "jx": [ "", "戸" ], "kx": [ "", "æ–™" ], "qx": [ "", "祭" ], "wx": [ "", "訪" ], "ex": [ "", "諸" ], "rx": [ "", "ä¿®" ], "tx": [ "", "版" ], "yx": [ "", "伊" ], "ux": [ "", "週" ], "ix": [ "", "階" ], ".x": [ "", "竹" ], "/x": [ "", "泉" ], "lx": [ "", "ç«" ], ";x": [ "", "å‚" ], "ox": [ "", "労" ], "px": [ "", "æ¿" ], "zc": [ "", "é…’" ], "xc": [ "", "御" ], "cc": [ "", "守" ], "vc": [ "", "程" ], "bc": [ "", "å²" ], "nc": [ "", "è‰" ], "mc": [ "", "æ¡" ], ",c": [ "", "æ „" ], "ac": [ "", "賃" ], "sc": [ "", "æ™´" ], "dc": [ "", "独" ], "fc": [ "", "観" ], "gc": [ "", "変" ], "hc": [ "", "å—" ], "jc": [ "", "è°·" ], "kc": [ "", "é“" ], "qc": [ "", "曇" ], "wc": [ "", "注" ], "ec": [ "", "å…" ], "rc": [ "", "茶" ], "tc": [ "", "昨" ], "yc": [ "", "ç§‘" ], "uc": [ "", "屋" ], "ic": [ "", "映" ], ".c": [ "", "庫" ], "/c": [ "", "æ³¢" ], "lc": [ "", "å…±" ], ";c": [ "", "江" ], "oc": [ "", "阪" ], "pc": [ "", "昇" ], "nv": [ "", "èŠ" ], "mv": [ "", "幸" ], ",v": [ "", "玉" ], "hv": [ "", "横" ], "jv": [ "", "å°" ], "kv": [ "", "æ©‹" ], "yv": [ "", "央" ], "uv": [ "", "æ± " ], "iv": [ "", "制" ], ".v": [ "", "曜" ], "/v": [ "", "ç’°" ], "lv": [ "", "æ­¦" ], ";v": [ "", "å®" ], "ov": [ "", "証" ], "pv": [ "", "æµ…" ], "nb": [ "", "岩" ], "mb": [ "", "城" ], ",b": [ "", "æ°¸" ], "hb": [ "", "è»" ], "jb": [ "", "土" ], "kb": [ "", "神" ], "yb": [ "", "昭" ], "ub": [ "", "å®®" ], "ib": [ "", "è·" ], ".b": [ "", "ç§‹" ], "/b": [ "", "陸" ], "lb": [ "", "造" ], ";b": [ "", "芸" ], "ob": [ "", "雄" ], "pb": [ "", "春" ], "ng": [ "", "次" ], "mg": [ "", "å®…" ], ",g": [ "", "æ‘" ], "hg": [ "", "円" ], "jg": [ "", "å››" ], "kg": [ "", "å" ], "yg": [ "", "内" ], "ug": [ "", "åƒ" ], "ig": [ "", "分" ], ".g": [ "", "å¤" ], "/g": [ "", "袋" ], "lg": [ "", "é¢" ], ";g": [ "", "æ•™" ], "og": [ "", "ç«‹" ], "pg": [ "", "外" ], "zn": [ "", "è² " ], "xn": [ "", "èª" ], "cn": [ "", "æ„›" ], "vn": [ "", "ç€" ], "bn": [ "", "消" ], "an": [ "", "助" ], "sn": [ "", "性" ], "dn": [ "", "話" ], "fn": [ "", "語" ], "gn": [ "", "点" ], "qn": [ "", "å¿…" ], "wn": [ "", "官" ], "en": [ "", "æ²»" ], "rn": [ "", "å…ˆ" ], "tn": [ "", "åˆ" ], "zm": [ "", "失" ], "xm": [ "", "想" ], "cm": [ "", "æµ" ], "vm": [ "", "検" ], "bm": [ "", "å†" ], "am": [ "", "写" ], "sm": [ "", "募" ], "dm": [ "", "作" ], "fm": [ "", "交" ], "gm": [ "", "é‡" ], "qm": [ "", "講" ], "wm": [ "", "府" ], "em": [ "", "談" ], "rm": [ "", "å”" ], "tm": [ "", "å" ], "z,": [ "", "èµ·" ], "x,": [ "", "命" ], "c,": [ "", "説" ], "v,": [ "", "婦" ], "b,": [ "", "言" ], "n,": [ "", "ç½²" ], "m,": [ "", "害" ], ",,": [ "", "個" ], "a,": [ "", "権" ], "s,": [ "", "é¸" ], "d,": [ "", "売" ], "f,": [ "", "店" ], "g,": [ "", "ç”·" ], "h,": [ "", "å«" ], "j,": [ "", "èž" ], "k,": [ "", "ä»¶" ], "q,": [ "", "使" ], "w,": [ "", "真" ], "e,": [ "", "é–‹" ], "r,": [ "", "決" ], "t,": [ "", "美" ], "y,": [ "", "隊" ], "u,": [ "", "飛" ], "i,": [ "", "航" ], ".,": [ "", "å·»" ], "/,": [ "", "雨" ], "l,": [ "", "師" ], ";,": [ "", "低" ], "o,": [ "", "寄" ], "p,": [ "", "満" ], "za": [ "", "å¥" ], "xa": [ "", "示" ], "ca": [ "", "å…" ], "va": [ "", "å¿—" ], "ba": [ "", "未" ], "na": [ "", "ç ”" ], "ma": [ "", "葉" ], ",a": [ "", "倉" ], "aa": [ "", "æ·±" ], "sa": [ "", "管" ], "da": [ "", "勤" ], "fa": [ "", "増" ], "ga": [ "", "ç¿’" ], "ha": [ "", "è—¤" ], "ja": [ "", "付" ], "ka": [ "", "経" ], "qa": [ "", "念" ], "wa": [ "", "å³" ], "ea": [ "", "残" ], "ra": [ "", "赤" ], "ta": [ "", "å½¢" ], "ya": [ "", "é‡" ], "ua": [ "", "井" ], "ia": [ "", "å³¶" ], ".a": [ "", "è±" ], "/a": [ "", "æµ´" ], "la": [ "", "æ­£" ], ";a": [ "", "賞" ], "oa": [ "", "士" ], "pa": [ "", "åª" ], "zs": [ "", "医" ], "xs": [ "", "å˜" ], "cs": [ "", "貸" ], "vs": [ "", "追" ], "bs": [ "", "挙" ], "ns": [ "", "丸" ], "ms": [ "", "å’" ], ",s": [ "", "æœ" ], "as": [ "", "毎" ], "ss": [ "", "ç¦" ], "ds": [ "", "ä»–" ], "fs": [ "", "ç±³" ], "gs": [ "", "利" ], "hs": [ "", "代" ], "js": [ "", "月" ], "ks": [ "", "ç”°" ], "qs": [ "", "税" ], "ws": [ "", "質" ], "es": [ "", "団" ], "rs": [ "", "å‚" ], "ts": [ "", "基" ], "ys": [ "", "機" ], "us": [ "", "野" ], "is": [ "", "å‰" ], ".s": [ "", "è¾²" ], "/s": [ "", "å„„" ], "ls": [ "", "後" ], ";s": [ "", "商" ], "os": [ "", "百" ], "ps": [ "", "接" ], "zd": [ "", "è©•" ], "xd": [ "", "庭" ], "cd": [ "", "改" ], "vd": [ "", "å½¹" ], "bd": [ "", "花" ], "nd": [ "", "急" ], "md": [ "", "æµ·" ], ",d": [ "", "市" ], "ad": [ "", "ç´„" ], "sd": [ "", "有" ], "dd": [ "", "å…¨" ], "fd": [ "", "自" ], "gd": [ "", "ä½" ], "hd": [ "", "æ±" ], "jd": [ "", "二" ], "kd": [ "", "æ—¥" ], "qd": [ "", "é»’" ], "wd": [ "", "資" ], "ed": [ "", "æ•°" ], "rd": [ "", "å“" ], "td": [ "", "座" ], "yd": [ "", "å­¦" ], "ud": [ "", "本" ], "id": [ "", "大" ], ".d": [ "", "支" ], "/d": [ "", "森" ], "ld": [ "", "時" ], ";d": [ "", "ä¸" ], "od": [ "", "å…­" ], "pd": [ "", "æ ª" ], "zf": [ "", "討" ], "xf": [ "", "å…·" ], "cf": [ "", "防" ], "vf": [ "", "ç´ " ], "bf": [ "", "介" ], "nf": [ "", "å…‰" ], "mf": [ "", "郎" ], ",f": [ "", "æ–‡" ], "af": [ "", "ç›´" ], "sf": [ "", "é€" ], "df": [ "", "ä¿" ], "ff": [ "", "世" ], "gf": [ "", "ç¾" ], "hf": [ "", "æ–°" ], "jf": [ "", "å¹´" ], "kf": [ "", "一" ], "qf": [ "", "è­¦" ], "wf": [ "", "託" ], "ef": [ "", "å…¬" ], "rf": [ "", "ç´°" ], "tf": [ "", "è²»" ], "yf": [ "", "å·¥" ], "uf": [ "", "事" ], "if": [ "", "中" ], ".f": [ "", "æ²¢" ], "/f": [ "", "馬" ], "lf": [ "", "åŒ" ], ";f": [ "", "æ­©" ], "of": [ "", "ä¹" ], "pf": [ "", "åˆ" ], "zh": [ "", "判" ], "xh": [ "", "投" ], "ch": [ "", "戦" ], "vh": [ "", "組" ], "bh": [ "", "多" ], "qh": [ "", "主" ], "zj": [ "", "ç­–" ], "xj": [ "", "å‚™" ], "cj": [ "", "当" ], "vj": [ "", "æ¥" ], "bj": [ "", "å¼·" ], "nj": [ "", "良" ], "mj": [ "", "様" ], ",j": [ "", "çœ" ], "hj": [ "", "力" ], "jj": [ "", "験" ], "kj": [ "", "é–“" ], "yj": [ "", "å‹" ], "uj": [ "", "æ°" ], "ij": [ "", "ç”»" ], ".j": [ "", "åž‹" ], "/j": [ "", "æ•…" ], "lj": [ "", "設" ], ";j": [ "", "å·" ], "oj": [ "", "心" ], "pj": [ "", "販" ], "zk": [ "", "è‹¥" ], "xk": [ "", "記" ], "ck": [ "", "å§”" ], "vk": [ "", "å…¥" ], "bk": [ "", "実" ], "nk": [ "", "è«–" ], "mk": [ "", "値" ], ",k": [ "", "è·¯" ], "hk": [ "", "化" ], "jk": [ "", "下" ], "kk": [ "", "回" ], "yk": [ "", "æ­³" ], "uk": [ "", "度" ], "ik": [ "", "æ ¡" ], ".k": [ "", "装" ], "/k": [ "", "åƒ" ], "lk": [ "", "æ­´" ], ";k": [ "", "ä¿‚" ], "ok": [ "", "銀" ], "pk": [ "", "転" ], "zq": [ "", "伸" ], "xq": [ "", "ç¾½" ], "cq": [ "", "é™" ], "vq": [ "", "財" ], "bq": [ "", "å§‹" ], "nq": [ "", "æ²³" ], "mq": [ "", "è¶Š" ], ",q": [ "", "çµ±" ], "aq": [ "", "悪" ], "sq": [ "", "ç—…" ], "dq": [ "", "æ—©" ], "fq": [ "", "糸" ], "gq": [ "", "試" ], "hq": [ "", "æ¾" ], "jq": [ "", "安" ], "kq": [ "", "都" ], "qq": [ "", "並" ], "wq": [ "", "æ…‹" ], "eq": [ "", "両" ], "rq": [ "", "ä¹—" ], "tq": [ "", "å°‚" ], "yq": [ "", "興" ], "uq": [ "", "å£" ], "iq": [ "", "æ´‹" ], ".q": [ "", "ç§€" ], "/q": [ "", "æ²¹" ], "lq": [ "", "与" ], ";q": [ "", "清" ], "oq": [ "", "船" ], "pq": [ "", "ä¹…" ], "zw": [ "", "è£" ], "xw": [ "", "短" ], "cw": [ "", "何" ], "vw": [ "", "ç©" ], "bw": [ "", "迎" ], "nw": [ "", "å…ƒ" ], "mw": [ "", "蔵" ], ",w": [ "", "県" ], "aw": [ "", "æ ¹" ], "sw": [ "", "仕" ], "dw": [ "", "ç„¡" ], "fw": [ "", "案" ], "gw": [ "", "é¡" ], "hw": [ "", "å‹•" ], "jw": [ "", "å·" ], "kw": [ "", "給" ], "qw": [ "", "ä¼" ], "ww": [ "", "å¥" ], "ew": [ "", "å¾…" ], "rw": [ "", "白" ], "tw": [ "", "港" ], "yw": [ "", "æ°´" ], "uw": [ "", "産" ], "iw": [ "", "å‹™" ], ".w": [ "", "築" ], "/w": [ "", "è§’" ], "lw": [ "", "木" ], ";w": [ "", "ä½" ], "ow": [ "", "é§…" ], "pw": [ "", "é ­" ], "ze": [ "", "類" ], "xe": [ "", "éž" ], "ce": [ "", "補" ], "ve": [ "", "軽" ], "be": [ "", "率" ], "ne": [ "", "å´Ž" ], "me": [ "", "宿" ], ",e": [ "", "å¯" ], "ae": [ "", "天" ], "se": [ "", "今" ], "de": [ "", "å„" ], "fe": [ "", "é–¢" ], "ge": [ "", "é‹" ], "he": [ "", "高" ], "je": [ "", "国" ], "ke": [ "", "三" ], "qe": [ "", "é’" ], "we": [ "", "æ´»" ], "ee": [ "", "çµ" ], "re": [ "", "優" ], "te": [ "", "最" ], "ye": [ "", "金" ], "ue": [ "", "地" ], "ie": [ "", "万" ], ".e": [ "", "室" ], "/e": [ "", "渋" ], "le": [ "", "å…«" ], ";e": [ "", "北" ], "oe": [ "", "建" ], "pe": [ "", "鉄" ], "zr": [ "", "復" ], "xr": [ "", "éŠ" ], "cr": [ "", "æ–½" ], "vr": [ "", "帰" ], "br": [ "", "便" ], "nr": [ "", "åŠ" ], "mr": [ "", "岡" ], ",r": [ "", "石" ], "ar": [ "", "寮" ], "sr": [ "", "広" ], "dr": [ "", "å¹³" ], "fr": [ "", "音" ], "gr": [ "", "計" ], "hr": [ "", "å±±" ], "jr": [ "", "é›»" ], "kr": [ "", "五" ], "qr": [ "", "æ•´" ], "wr": [ "", "å°‘" ], "er": [ "", "ä¿¡" ], "rr": [ "", "å ±" ], "tr": [ "", "太" ], "yr": [ "", "町" ], "ur": [ "", "七" ], "ir": [ "", "京" ], ".r": [ "", "休" ], "/r": [ "", "豊" ], "lr": [ "", "å°" ], ";r": [ "", "原" ], "or": [ "", "ç†" ], "pr": [ "", "å–¶" ], "nt": [ "", "æž—" ], "mt": [ "", "é–€" ], ",t": [ "", "æ ¼" ], "ht": [ "", "å" ], "jt": [ "", "部" ], "kt": [ "", "業" ], "yt": [ "", "第" ], "ut": [ "", "å’Œ" ], "it": [ "", "区" ], ".t": [ "", "å‰" ], "/t": [ "", "é½¢" ], "lt": [ "", "å•" ], ";t": [ "", "è¿‘" ], "ot": [ "", "西" ], "pt": [ "", "富" ], "zy": [ "", "è½" ], "xy": [ "", "情" ], "cy": [ "", "ç§" ], "vy": [ "", "å–" ], "by": [ "", "別" ], "ay": [ "", "書" ], "sy": [ "", "å ´" ], "dy": [ "", "会" ], "fy": [ "", "上" ], "gy": [ "", "通" ], "qy": [ "", "食" ], "wy": [ "", "æŒ" ], "ey": [ "", "å­" ], "ry": [ "", "出" ], "ty": [ "", "行" ], "zu": [ "", "好" ], "xu": [ "", "館" ], "cu": [ "", "調" ], "vu": [ "", "知" ], "bu": [ "", "切" ], "nu": [ "", "åº" ], "mu": [ "", "之" ], ",u": [ "", "æ—…" ], "au": [ "", "ç›®" ], "hu": [ "", "製" ], "ju": [ "", "種" ], "ku": [ "", "用" ], "yu": [ "", "割" ], "uu": [ "", "åŠ" ], "iu": [ "", "楽" ], ".u": [ "", "仲" ], "/u": [ "", "極" ], "lu": [ "", "界" ], ";u": [ "", "容" ], "ou": [ "", "園" ], "pu": [ "", "終" ], "zi": [ "", "器" ], "xi": [ "", "進" ], "ci": [ "", "対" ], "vi": [ "", "è¦" ], "bi": [ "", "æ„" ], "ni": [ "", "ç„¶" ], "mi": [ "", "æ–­" ], ",i": [ "", "険" ], "hi": [ "", "連" ], "ji": [ "", "車" ], "ki": [ "", "以" ], "qi": [ "", "相" ], "yi": [ "", "æ°‘" ], "ui": [ "", "表" ], "ii": [ "", "夫" ], ".i": [ "", "æ§‹" ], "/i": [ "", "郵" ], "li": [ "", "完" ], ";i": [ "", "技" ], "oi": [ "", "加" ], "pi": [ "", "能" ], "z.": [ "", "抜" ], "x.": [ "", "å°Ž" ], "c.": [ "", "席" ], "v.": [ "", "録" ], "b.": [ "", "å¼µ" ], "n.": [ "", "è¯" ], "m.": [ "", "é‡" ], ",.": [ "", "視" ], "a.": [ "", "申" ], "s.": [ "", "風" ], "d.": [ "", "打" ], "f.": [ "", "価" ], "g.": [ "", "è¾¼" ], "h.": [ "", "比" ], "j.": [ "", "æ­¢" ], "k.": [ "", "審" ], "q.": [ "", "å·¦" ], "w.": [ "", "ç®—" ], "e.": [ "", "指" ], "r.": [ "", "å‘" ], "t.": [ "", "放" ], "y.": [ "", "減" ], "u.": [ "", "陽" ], "i.": [ "", "払" ], "..": [ "", "å½¼" ], "/.": [ "", "æ‰" ], "l.": [ "", "殺" ], ";.": [ "", "例" ], "o.": [ "", "é¡”" ], "p.": [ "", "æ™®" ], "z/": [ "", "é•" ], "x/": [ "", "声" ], "c/": [ "", "æ" ], "v/": [ "", "ç­”" ], "b/": [ "", "éŽ" ], "n/": [ "", "厚" ], "m/": [ "", "ç£" ], ",/": [ "", "ç·´" ], "a/": [ "", "確" ], "s/": [ "", "è¶³" ], "d/": [ "", "考" ], "f/": [ "", "望" ], "g/": [ "", "è¦" ], "h/": [ "", "準" ], "j/": [ "", "難" ], "k/": [ "", "è£" ], "q/": [ "", "展" ], "w/": [ "", "å¾—" ], "e/": [ "", "æ­»" ], "r/": [ "", "輸" ], "t/": [ "", "味" ], "y/": [ "", "ä¸" ], "u/": [ "", "å–„" ], "i/": [ "", "æ" ], "./": [ "", "æ³" ], "//": [ "", "景" ], "l/": [ "", "é©" ], ";/": [ "", "図" ], "o/": [ "", "å·®" ], "p/": [ "", "æ´—" ], "zl": [ "", "ä»»" ], "xl": [ "", "引" ], "cl": [ "", "å…š" ], "vl": [ "", "å—" ], "bl": [ "", "æ€" ], "nl": [ "", "般" ], "ml": [ "", "ç·¨" ], ",l": [ "", "å°" ], "gl": [ "", "社" ], "hl": [ "", "夜" ], "jl": [ "", "物" ], "kl": [ "", "所" ], "wl": [ "", "見" ], "yl": [ "", "ç´™" ], "ul": [ "", "英" ], "il": [ "", "題" ], ".l": [ "", "æ•—" ], "/l": [ "", "授" ], "ll": [ "", "éš›" ], ";l": [ "", "å´" ], "ol": [ "", "告" ], "pl": [ "", "å‹¢" ], "z;": [ "", "ç½®" ], "x;": [ "", "争" ], "c;": [ "", "義" ], "v;": [ "", "査" ], "b;": [ "", "æ´¾" ], "n;": [ "", "末" ], "m;": [ "", "å¡" ], ",;": [ "", "状" ], "a;": [ "", "æ­Œ" ], "s;": [ "", "明" ], "d;": [ "", "é•·" ], "f;": [ "", "æ–¹" ], "g;": [ "", "政" ], "h;": [ "", "ä½" ], "j;": [ "", "在" ], "k;": [ "", "å¼" ], "q;": [ "", "空" ], "w;": [ "", "ç·š" ], "e;": [ "", "åˆ" ], "r;": [ "", "å®¶" ], "t;": [ "", "集" ], "y;": [ "", "王" ], "u;": [ "", "è¡›" ], "i;": [ "", "劇" ], ".;": [ "", "å³" ], "/;": [ "", "辺" ], "l;": [ "", "済" ], ";;": [ "", "ç©¶" ], "o;": [ "", "親" ], "p;": [ "", "爆" ], "zo": [ "", "読" ], "xo": [ "", "求" ], "co": [ "", "æ¼”" ], "vo": [ "", "è¡“" ], "bo": [ "", "身" ], "no": [ "", "å­—" ], "mo": [ "", "養" ], ",o": [ "", "æ’ƒ" ], "ao": [ "", "期" ], "so": [ "", "発" ], "do": [ "", "人" ], "fo": [ "", "å“¡" ], "go": [ "", "生" ], "ho": [ "", "ç”±" ], "jo": [ "", "å±€" ], "ko": [ "", "体" ], "qo": [ "", "è§£" ], "wo": [ "", "æ°—" ], "eo": [ "", "者" ], "ro": [ "", "手" ], "to": [ "", "çš„" ], "yo": [ "", "çƒ" ], "uo": [ "", "院" ], "io": [ "", "番" ], ".o": [ "", "å¸" ], "/o": [ "", "å±…" ], "lo": [ "", "è–¬" ], ";o": [ "", "段" ], "oo": [ "", "常" ], "po": [ "", "é ˜" ], "zp": [ "", "é”" ], "xp": [ "", "é™" ], "cp": [ "", "応" ], "vp": [ "", "è²·" ], "bp": [ "", "感" ], "np": [ "", "é–£" ], "mp": [ "", "æ‹…" ], ",p": [ "", "å°†" ], "ap": [ "", "ç¶š" ], "sp": [ "", "ç·" ], "dp": [ "", "定" ], "fp": [ "", "女" ], "gp": [ "", "æˆ" ], "hp": [ "", "ç´š" ], "jp": [ "", "課" ], "kp": [ "", "育" ], "qp": [ "", "é…" ], "wp": [ "", "予" ], "ep": [ "", "è­°" ], "rp": [ "", "特" ], "tp": [ "", "法" ], "yp": [ "", "æžœ" ], "up": [ "", "ç­‰" ], "ip": [ "", "首" ], ".p": [ "", "械" ], "/p": [ "", "è­·" ], "lp": [ "", "色" ], ";p": [ "", "å·¨" ], "op": [ "", "毛" ], "pp": [ "", "券" ], "nnz": [ "", "鵬" ], "mnz": [ "", "æ¡“" ], ",nz": [ "", "讃" ], "hnz": [ "", "嵯" ], "jnz": [ "", "é¥" ], "knz": [ "", "劾" ], "ynz": [ "", "鋸" ], "unz": [ "", "裟" ], "inz": [ "", "勃" ], ".nz": [ "", "å…Ž" ], "/nz": [ "", "å¶" ], "lnz": [ "", "鹸" ], ";nz": [ "", "è©®" ], "onz": [ "", "çŠ" ], "pnz": [ "", "å †" ], "nmz": [ "", "æ½°" ], "mmz": [ "", "硯" ], ",mz": [ "", "å®" ], "hmz": [ "", "蓉" ], "jmz": [ "", "朔" ], "kmz": [ "", "茜" ], "ymz": [ "", "鉱" ], "umz": [ "", "雫" ], "imz": [ "", "怨" ], ".mz": [ "", "諜" ], "/mz": [ "", "脆" ], "lmz": [ "", "謎" ], ";mz": [ "", "匙" ], "omz": [ "", "肘" ], "pmz": [ "", "ä¿£" ], "nnx": [ "", "竪" ], "mnx": [ "", "凧" ], ",nx": [ "", "茨" ], "hnx": [ "", "勾" ], "jnx": [ "", "è›®" ], "knx": [ "", "憤" ], "ynx": [ "", "峨" ], "unx": [ "", "怜" ], "inx": [ "", "茎" ], ".nx": [ "", "å¼›" ], "/nx": [ "", "è‘›" ], "lnx": [ "", "妖" ], ";nx": [ "", "éš™" ], "onx": [ "", "è©£" ], "pnx": [ "", "柑" ], "nmx": [ "", "æ­Ž" ], "mmx": [ "", "檀" ], ",mx": [ "", "秦" ], "hmx": [ "", "æ‹·" ], "jmx": [ "", "哉" ], "kmx": [ "", "俺" ], "ymx": [ "", "ä¼¶" ], "umx": [ "", "é³³" ], "imx": [ "", "磯" ], ".mx": [ "", "è‹›" ], "/mx": [ "", "箕" ], "lmx": [ "", "å„’" ], ";mx": [ "", "挨" ], "omx": [ "", "麓" ], "pmx": [ "", "蛋" ], "nnc": [ "", "溢" ], "mnc": [ "", "çµ" ], ",nc": [ "", "è—»" ], "hnc": [ "", "å±" ], "jnc": [ "", "çš¿" ], "knc": [ "", "励" ], "ync": [ "", "æ´²" ], "unc": [ "", "虞" ], "inc": [ "", "伺" ], ".nc": [ "", "æ«›" ], "/nc": [ "", "椀" ], "lnc": [ "", "è¡·" ], ";nc": [ "", "嚇" ], "onc": [ "", "釘" ], "pnc": [ "", "樽" ], "nmc": [ "", "è¿‚" ], "mmc": [ "", "餅" ], ",mc": [ "", "è—»" ], "hmc": [ "", "狼" ], "jmc": [ "", "è™" ], "kmc": [ "", "æ¶™" ], "ymc": [ "", "爺" ], "umc": [ "", "錘" ], "imc": [ "", "軌" ], ".mc": [ "", "帖" ], "/mc": [ "", "剥" ], "lmc": [ "", "訟" ], ";mc": [ "", "肇" ], "omc": [ "", "呆" ], "pmc": [ "", "æ±²" ], "nnv": [ "", "è…º" ], "mnv": [ "", "è›™" ], ",nv": [ "", "禄" ], "hnv": [ "", "昆" ], "jnv": [ "", "矛" ], "knv": [ "", "惨" ], "ynv": [ "", "èŽ" ], "unv": [ "", "å°­" ], "inv": [ "", "æ¨" ], ".nv": [ "", "è¿„" ], "/nv": [ "", "ç¢" ], "lnv": [ "", "襟" ], ";nv": [ "", "寅" ], "onv": [ "", "麺" ], "pnv": [ "", "稜" ], "nmv": [ "", "é®­" ], "mmv": [ "", "è¿" ], ",mv": [ "", "å­Ÿ" ], "hmv": [ "", "æ„" ], "jmv": [ "", "æ®´" ], "kmv": [ "", "æ¡" ], "ymv": [ "", "矯" ], "umv": [ "", "è—" ], "imv": [ "", "ç¹­" ], ".mv": [ "", "戚" ], "/mv": [ "", "é†" ], "lmv": [ "", "ç§Ÿ" ], ";mv": [ "", "æ–¡" ], "omv": [ "", "笹" ], "pmv": [ "", "ä¿„" ], "nnb": [ "", "é·²" ], "mnb": [ "", "糞" ], ",nb": [ "", "姦" ], "hnb": [ "", "è•—" ], "jnb": [ "", "冗" ], "knb": [ "", "隈" ], "ynb": [ "", "èŽ" ], "unb": [ "", "悌" ], "inb": [ "", "醜" ], ".nb": [ "", "å§" ], "/nb": [ "", "劫" ], "lnb": [ "", "覇" ], ";nb": [ "", "å º" ], "onb": [ "", "ç®”" ], "pnb": [ "", "è†" ], "nmb": [ "", "æ–" ], "mmb": [ "", "å±" ], ",mb": [ "", "蔑" ], "hmb": [ "", "嘱" ], "jmb": [ "", "惰" ], "kmb": [ "", "蘭" ], "ymb": [ "", "蔦" ], "umb": [ "", "蘇" ], "imb": [ "", "å‘‘" ], ".mb": [ "", "è–®" ], "/mb": [ "", "凌" ], "lmb": [ "", "殉" ], ";mb": [ "", "廓" ], "omb": [ "", "甫" ], "pmb": [ "", "å " ], "nna": [ "", "罫" ], "mna": [ "", "屯" ], ",na": [ "", "å–" ], "hna": [ "", "æ—º" ], "jna": [ "", "è¶" ], "kna": [ "", "床" ], "yna": [ "", "å«¡" ], "una": [ "", "棟" ], "ina": [ "", "輩" ], ".na": [ "", "諺" ], "/na": [ "", "çƒ" ], "lna": [ "", "庸" ], ";na": [ "", "æ‹­" ], "ona": [ "", "惣" ], "pna": [ "", "梨" ], "nma": [ "", "é…‰" ], "mma": [ "", "篠" ], ",ma": [ "", "盆" ], "hma": [ "", "è‹‘" ], "jma": [ "", "胴" ], "kma": [ "", "è…" ], "yma": [ "", "ç·¯" ], "uma": [ "", "å´–" ], "ima": [ "", "å¹¾" ], ".ma": [ "", "èŒ" ], "/ma": [ "", "ä»”" ], "lma": [ "", "å°¿" ], ";ma": [ "", "渥" ], "oma": [ "", "è¹´" ], "pma": [ "", "è…Ž" ], "nns": [ "", "岬" ], "mns": [ "", "膜" ], ",ns": [ "", "å" ], "hns": [ "", "éš”" ], "jns": [ "", "奉" ], "kns": [ "", "æµ®" ], "yns": [ "", "å©¿" ], "uns": [ "", "æ±—" ], "ins": [ "", "沈" ], ".ns": [ "", "抹" ], "/ns": [ "", "é¾" ], "lns": [ "", "憂" ], ";ns": [ "", "膨" ], "ons": [ "", "å •" ], "pns": [ "", "飢" ], "nms": [ "", "æ¹§" ], "mms": [ "", "鮎" ], ",ms": [ "", "é–¥" ], "hms": [ "", "æš" ], "jms": [ "", "å“" ], "kms": [ "", "載" ], "yms": [ "", "ä¿—" ], "ums": [ "", "妊" ], "ims": [ "", "芦" ], ".ms": [ "", "è”­" ], "/ms": [ "", "倭" ], "lms": [ "", "懇" ], ";ms": [ "", "çž³" ], "oms": [ "", "湿" ], "pms": [ "", "壱" ], "nnd": [ "", "è¡¿" ], "mnd": [ "", "è‹—" ], ",nd": [ "", "è«­" ], "hnd": [ "", "寛" ], "jnd": [ "", "æš®" ], "knd": [ "", "片" ], "ynd": [ "", "å·´" ], "und": [ "", "è¶£" ], "ind": [ "", "å¾´" ], ".nd": [ "", "æ·‹" ], "/nd": [ "", "餓" ], "lnd": [ "", "律" ], ";nd": [ "", "ç´›" ], "ond": [ "", "誉" ], "pnd": [ "", "款" ], "nmd": [ "", "è©" ], "mmd": [ "", "朴" ], ",md": [ "", "æ®" ], "hmd": [ "", "é‚„" ], "jmd": [ "", "悲" ], "kmd": [ "", "å±" ], "ymd": [ "", "é˜" ], "umd": [ "", "å¿™" ], "imd": [ "", "æ¡‚" ], ".md": [ "", "å™" ], "/md": [ "", "é§¿" ], "lmd": [ "", "èº" ], ";md": [ "", "ç£" ], "omd": [ "", "磨" ], "pmd": [ "", "嘩" ], "nnf": [ "", "çµ¢" ], "mnf": [ "", "棚" ], ",nf": [ "", "æ®–" ], "hnf": [ "", "眠" ], "jnf": [ "", "亀" ], "knf": [ "", "å¼±" ], "ynf": [ "", "肺" ], "unf": [ "", "æ³£" ], "inf": [ "", "逮" ], ".nf": [ "", "丑" ], "/nf": [ "", "爾" ], "lnf": [ "", "襲" ], ";nf": [ "", "寒" ], "onf": [ "", "貌" ], "pnf": [ "", "邪" ], "nmf": [ "", "脈" ], "mmf": [ "", "縛" ], ",mf": [ "", "ç¹°" ], "hmf": [ "", "å …" ], "jmf": [ "", "献" ], "kmf": [ "", "乞" ], "ymf": [ "", "é·¹" ], "umf": [ "", "訂" ], "imf": [ "", "弟" ], ".mf": [ "", "妃" ], "/mf": [ "", "åŒ" ], "lmf": [ "", "欠" ], ";mf": [ "", "溜" ], "omf": [ "", "柔" ], "pmf": [ "", "壷" ], "nng": [ "", "瑞" ], "mng": [ "", "艶" ], ",ng": [ "", "ç²’" ], "hng": [ "", "奨" ], "jng": [ "", "çµµ" ], "kng": [ "", "勇" ], "yng": [ "", "æ•¢" ], "ung": [ "", "å…†" ], "ing": [ "", "å¿" ], ".ng": [ "", "å³»" ], "/ng": [ "", "褒" ], "lng": [ "", "釣" ], ";ng": [ "", "瓦" ], "ong": [ "", "諾" ], "png": [ "", "剖" ], "nmg": [ "", "ç‹™" ], "mmg": [ "", "戴" ], ",mg": [ "", "ç¢" ], "hmg": [ "", "æ‚©" ], "jmg": [ "", "ç«¥" ], "kmg": [ "", "替" ], "ymg": [ "", "ç°¿" ], "umg": [ "", "欺" ], "img": [ "", "棄" ], ".mg": [ "", "愉" ], "/mg": [ "", "å§‘" ], "lmg": [ "", "æ ƒ" ], ";mg": [ "", "浸" ], "omg": [ "", "è…" ], "pmg": [ "", "糎" ], "nnq": [ "", "å‹¿" ], "mnq": [ "", "阜" ], ",nq": [ "", "è¡" ], "hnq": [ "", "æ–¤" ], "jnq": [ "", "憶" ], "knq": [ "", "嘉" ], "ynq": [ "", "æ­ª" ], "unq": [ "", "噂" ], "inq": [ "", "軸" ], ".nq": [ "", "烹" ], "/nq": [ "", "縞" ], "lnq": [ "", "妓" ], ";nq": [ "", "馨" ], "onq": [ "", "å–‰" ], "pnq": [ "", "飴" ], "nmq": [ "", "妾" ], "mmq": [ "", "碇" ], ",mq": [ "", "é…Œ" ], "hmq": [ "", "æ–œ" ], "jmq": [ "", "æž•" ], "kmq": [ "", "誕" ], "ymq": [ "", "è‚¡" ], "umq": [ "", "è–ª" ], "imq": [ "", "é¡•" ], ".mq": [ "", "牡" ], "/mq": [ "", "ç…" ], "lmq": [ "", "猟" ], ";mq": [ "", "è©" ], "omq": [ "", "倣" ], "pmq": [ "", "ç—”" ], "nnw": [ "", "é “" ], "mnw": [ "", "ç²" ], ",nw": [ "", "稼" ], "hnw": [ "", "嶺" ], "jnw": [ "", "åµ" ], "knw": [ "", "ä»®" ], "ynw": [ "", "è¬" ], "unw": [ "", "循" ], "inw": [ "", "ç‹­" ], ".nw": [ "", "è‹”" ], "/nw": [ "", "娼" ], "lnw": [ "", "屈" ], ";nw": [ "", "è³ " ], "onw": [ "", "嬉" ], "pnw": [ "", "è›" ], "nmw": [ "", "åŠ" ], "mmw": [ "", "é »" ], ",mw": [ "", "蚊" ], "hmw": [ "", "炎" ], "jmw": [ "", "庶" ], "kmw": [ "", "åº" ], "ymw": [ "", "裸" ], "umw": [ "", "å‘" ], "imw": [ "", "é­" ], ".mw": [ "", "å…" ], "/mw": [ "", "溺" ], "lmw": [ "", "帽" ], ";mw": [ "", "爵" ], "omw": [ "", "è³­" ], "pmw": [ "", "朋" ], "nne": [ "", "亨" ], "mne": [ "", "è·µ" ], ",ne": [ "", "暇" ], "hne": [ "", "縦" ], "jne": [ "", "騒" ], "kne": [ "", "辞" ], "yne": [ "", "éš…" ], "une": [ "", "å¾€" ], "ine": [ "", "銃" ], ".ne": [ "", "渇" ], "/ne": [ "", "ç¢" ], "lne": [ "", "å£" ], ";ne": [ "", "é…”" ], "one": [ "", "泡" ], "pne": [ "", "錯" ], "nme": [ "", "燥" ], "mme": [ "", "ç™–" ], ",me": [ "", "è…¹" ], "hme": [ "", "æ·¡" ], "jme": [ "", "誇" ], "kme": [ "", "被" ], "yme": [ "", "棋" ], "ume": [ "", "åœ" ], "ime": [ "", "è¡" ], ".me": [ "", "云" ], "/me": [ "", "ç•¿" ], "lme": [ "", "貫" ], ";me": [ "", "劣" ], "ome": [ "", "å²" ], "pme": [ "", "è’¼" ], "nnr": [ "", "彬" ], "mnr": [ "", "ç‹—" ], ",nr": [ "", "æ­" ], "hnr": [ "", "æ¶¼" ], "jnr": [ "", "肌" ], "knr": [ "", "牧" ], "ynr": [ "", "扉" ], "unr": [ "", "騰" ], "inr": [ "", "ç ²" ], ".nr": [ "", "惇" ], "/nr": [ "", "æž " ], "lnr": [ "", "炊" ], ";nr": [ "", "唆" ], "onr": [ "", "窟" ], "pnr": [ "", "帆" ], "nmr": [ "", "èš•" ], "mmr": [ "", "鈎" ], ",mr": [ "", "è¡¡" ], "hmr": [ "", "ä½³" ], "jmr": [ "", "裳" ], "kmr": [ "", "縮" ], "ymr": [ "", "æ¼¢" ], "umr": [ "", "å¹»" ], "imr": [ "", "妹" ], ".mr": [ "", "箇" ], "/mr": [ "", "塵" ], "lmr": [ "", "åµ" ], ";mr": [ "", "å™´" ], "omr": [ "", "ç¸" ], "pmr": [ "", "廿" ], "nnt": [ "", "ç•" ], "mnt": [ "", "赦" ], ",nt": [ "", "å´©" ], "hnt": [ "", "奮" ], "jnt": [ "", "è“„" ], "knt": [ "", "å‹§" ], "ynt": [ "", "膳" ], "unt": [ "", "å’²" ], "int": [ "", "æ‹’" ], ".nt": [ "", "汎" ], "/nt": [ "", "ç‰" ], "lnt": [ "", "è“®" ], ";nt": [ "", "沸" ], "ont": [ "", "郭" ], "pnt": [ "", "æ’’" ], "nmt": [ "", "ç¹" ], "mmt": [ "", "鯉" ], ",mt": [ "", "æ‹™" ], "hmt": [ "", "挑" ], "jmt": [ "", "ç²›" ], "kmt": [ "", "å¹" ], "ymt": [ "", "ç´«" ], "umt": [ "", "芽" ], "imt": [ "", "æ­" ], ".mt": [ "", "釦" ], "/mt": [ "", "瓜" ], "lmt": [ "", "貞" ], ";mt": [ "", "盲" ], "omt": [ "", "蛇" ], "pmt": [ "", "è‚¢" ], "zgn": [ "", "芥" ], "xgn": [ "", "把" ], "cgn": [ "", "謄" ], "vgn": [ "", "漆" ], "bgn": [ "", "楓" ], "agn": [ "", "æ·‘" ], "sgn": [ "", "麦" ], "dgn": [ "", "ç®±" ], "fgn": [ "", "é´¨" ], "ggn": [ "", "æ…¢" ], "qgn": [ "", "å–°" ], "wgn": [ "", "窒" ], "egn": [ "", "ä¾µ" ], "rgn": [ "", "墓" ], "tgn": [ "", "ç²—" ], "zgm": [ "", "佑" ], "xgm": [ "", "欽" ], "cgm": [ "", "é€" ], "vgm": [ "", "囚" ], "bgm": [ "", "ç´˜" ], "agm": [ "", "éš»" ], "sgm": [ "", "俳" ], "dgm": [ "", "å­˜" ], "fgm": [ "", "è“" ], "ggm": [ "", "弦" ], "qgm": [ "", "符" ], "wgm": [ "", "廊" ], "egm": [ "", "黄" ], "rgm": [ "", "脚" ], "tgm": [ "", "æ…°" ], "zg,": [ "", "é¾" ], "xg,": [ "", "剃" ], "cg,": [ "", "麗" ], "vg,": [ "", "拳" ], "bg,": [ "", "帥" ], "ag,": [ "", "奪" ], "sg,": [ "", "露" ], "dg,": [ "", "ä¹³" ], "fg,": [ "", "看" ], "gg,": [ "", "è…°" ], "qg,": [ "", "怖" ], "wg,": [ "", "埋" ], "eg,": [ "", "ç¶±" ], "rg,": [ "", "è´ˆ" ], "tg,": [ "", "ç²" ], "zgh": [ "", "雀" ], "xgh": [ "", "墜" ], "cgh": [ "", "銭" ], "vgh": [ "", "帳" ], "bgh": [ "", "æ¡" ], "agh": [ "", "倒" ], "sgh": [ "", "笑" ], "dgh": [ "", "婚" ], "fgh": [ "", "çµ¶" ], "ggh": [ "", "éšœ" ], "qgh": [ "", "å°š" ], "wgh": [ "", "憲" ], "egh": [ "", "肉" ], "rgh": [ "", "è¡£" ], "tgh": [ "", "ç¹" ], "zgj": [ "", "勘" ], "xgj": [ "", "翌" ], "cgj": [ "", "里" ], "vgj": [ "", "掃" ], "bgj": [ "", "唯" ], "agj": [ "", "ç¶­" ], "sgj": [ "", "盤" ], "dgj": [ "", "å¹¹" ], "fgj": [ "", "舎" ], "ggj": [ "", "瀬" ], "qgj": [ "", "è©©" ], "wgj": [ "", "æ²–" ], "egj": [ "", "丘" ], "rgj": [ "", "æ•£" ], "tgj": [ "", "願" ], "zgk": [ "", "è·" ], "xgk": [ "", "åŠ" ], "cgk": [ "", "渉" ], "vgk": [ "", "ç°¡" ], "bgk": [ "", "到" ], "agk": [ "", "æ‹¡" ], "sgk": [ "", "é™" ], "dgk": [ "", "ä¾›" ], "fgk": [ "", "圧" ], "ggk": [ "", "繊" ], "qgk": [ "", "å¿«" ], "wgk": [ "", "麻" ], "egk": [ "", "æ‰" ], "rgk": [ "", "æ•" ], "tgk": [ "", "貿" ], "zgy": [ "", "培" ], "xgy": [ "", "å ª" ], "cgy": [ "", "浩" ], "vgy": [ "", "æ¶²" ], "bgy": [ "", "奴" ], "agy": [ "", "ç´" ], "sgy": [ "", "郷" ], "dgy": [ "", "奥" ], "fgy": [ "", "åˆ" ], "ggy": [ "", "ç­†" ], "qgy": [ "", "哲" ], "wgy": [ "", "å¼¾" ], "egy": [ "", "ç‚­" ], "rgy": [ "", "稲" ], "tgy": [ "", "為" ], "zgu": [ "", "è²¢" ], "xgu": [ "", "è‚" ], "cgu": [ "", "俊" ], "vgu": [ "", "契" ], "bgu": [ "", "æ©" ], "agu": [ "", "ç—›" ], "sgu": [ "", "é †" ], "dgu": [ "", "周" ], "fgu": [ "", "è’" ], "ggu": [ "", "錠" ], "qgu": [ "", "錦" ], "wgu": [ "", "罪" ], "egu": [ "", "績" ], "rgu": [ "", "昼" ], "tgu": [ "", "熊" ], "zgi": [ "", "醸" ], "xgi": [ "", "鋳" ], "cgi": [ "", "雲" ], "vgi": [ "", "也" ], "bgi": [ "", "抵" ], "agi": [ "", "牛" ], "sgi": [ "", "ç¹”" ], "dgi": [ "", "å¤" ], "fgi": [ "", "æ´" ], "ggi": [ "", "盟" ], "qgi": [ "", "è’²" ], "wgi": [ "", "候" ], "egi": [ "", "ç››" ], "rgi": [ "", "æ¿€" ], "tgi": [ "", "批" ], "zg.": [ "", "æ‹¶" ], "xg.": [ "", "釧" ], "cg.": [ "", "耗" ], "vg.": [ "", "ä¾®" ], "bg.": [ "", "幌" ], "ag.": [ "", "滋" ], "sg.": [ "", "壇" ], "dg.": [ "", "亡" ], "fg.": [ "", "敵" ], "gg.": [ "", "凡" ], "qg.": [ "", "餌" ], "wg.": [ "", "ç©" ], "eg.": [ "", "胃" ], "rg.": [ "", "è–" ], "tg.": [ "", "僕" ], "zg/": [ "", "樋" ], "xg/": [ "", "æ§" ], "cg/": [ "", "凹" ], "vg/": [ "", "ç¥" ], "bg/": [ "", "ç‡" ], "ag/": [ "", "愚" ], "sg/": [ "", "倫" ], "dg/": [ "", "控" ], "fg/": [ "", "鉛" ], "gg/": [ "", "懲" ], "qg/": [ "", "éš¼" ], "wg/": [ "", "傘" ], "eg/": [ "", "唄" ], "rg/": [ "", "ç½°" ], "tg/": [ "", "臥" ], "zgl": [ "", "ç£" ], "xgl": [ "", "å¬" ], "cgl": [ "", "å¾¹" ], "vgl": [ "", "汚" ], "bgl": [ "", "å–ª" ], "agl": [ "", "ç¦" ], "sgl": [ "", "底" ], "dgl": [ "", "節" ], "fgl": [ "", "焼" ], "ggl": [ "", "ç§»" ], "qgl": [ "", "骨" ], "wgl": [ "", "è˜" ], "egl": [ "", "帯" ], "rgl": [ "", "æœ" ], "tgl": [ "", "逆" ], "zg;": [ "", "陪" ], "xg;": [ "", "è‚–" ], "cg;": [ "", "艦" ], "vg;": [ "", "概" ], "bg;": [ "", "ç–Ž" ], "ag;": [ "", "虫" ], "sg;": [ "", "èœ" ], "dg;": [ "", "ç•°" ], "fg;": [ "", "努" ], "gg;": [ "", "å›°" ], "qg;": [ "", "é´" ], "wg;": [ "", "奇" ], "eg;": [ "", "ç´…" ], "rg;": [ "", "窓" ], "tg;": [ "", "掛" ], "zgo": [ "", "丞" ], "xgo": [ "", "ç“¶" ], "cgo": [ "", "å•“" ], "vgo": [ "", "æ’" ], "bgo": [ "", "å°½" ], "ago": [ "", "å¼¥" ], "sgo": [ "", "承" ], "dgo": [ "", "域" ], "fgo": [ "", "å›" ], "ggo": [ "", "幕" ], "qgo": [ "", "誘" ], "wgo": [ "", "剤" ], "ego": [ "", "å¼" ], "rgo": [ "", "æ­¯" ], "tgo": [ "", "祥" ], "zgp": [ "", "è©”" ], "xgp": [ "", "寧" ], "cgp": [ "", "æ–—" ], "vgp": [ "", "媒" ], "bgp": [ "", "è© " ], "agp": [ "", "æ·»" ], "sgp": [ "", "å´" ], "dgp": [ "", "幡" ], "fgp": [ "", "震" ], "ggp": [ "", "ç¯" ], "qgp": [ "", "匠" ], "wgp": [ "", "æ·µ" ], "egp": [ "", "å®—" ], "rgp": [ "", "鬼" ], "tgp": [ "", "æ…£" ], "nhz": [ "", "å¦" ], "mhz": [ "", "ç¾…" ], ",hz": [ "", "æ®»" ], "hhz": [ "", "胎" ], "jhz": [ "", "å°Š" ], "khz": [ "", "é›¶" ], "yhz": [ "", "è¿…" ], "uhz": [ "", "牲" ], "ihz": [ "", "抑" ], ".hz": [ "", "賎" ], "/hz": [ "", "é†" ], "lhz": [ "", "èµ´" ], ";hz": [ "", "漸" ], "ohz": [ "", "å¼”" ], "phz": [ "", "æ‹" ], "nhx": [ "", "玩" ], "mhx": [ "", "ä¼" ], ",hx": [ "", "å–§" ], "hhx": [ "", "梶" ], "jhx": [ "", "至" ], "khx": [ "", "å®™" ], "yhx": [ "", "å‰" ], "uhx": [ "", "æ‹“" ], "ihx": [ "", "亭" ], ".hx": [ "", "芯" ], "/hx": [ "", "銚" ], "lhx": [ "", "ç³§" ], ";hx": [ "", "é…¢" ], "ohx": [ "", "涯" ], "phx": [ "", "å¹£" ], "nhc": [ "", "絞" ], "mhc": [ "", "ç—¢" ], ",hc": [ "", "壊" ], "hhc": [ "", "è„‚" ], "jhc": [ "", "å„€" ], "khc": [ "", "å–«" ], "yhc": [ "", "垣" ], "uhc": [ "", "排" ], "ihc": [ "", "逃" ], ".hc": [ "", "é ‘" ], "/hc": [ "", "且" ], "lhc": [ "", "è¬" ], ";hc": [ "", "硬" ], "ohc": [ "", "å­«" ], "phc": [ "", "é–‘" ], "nhv": [ "", "å¡€" ], "mhv": [ "", "ç¿»" ], ",hv": [ "", "æ‹" ], "hhv": [ "", "é¡" ], "jhv": [ "", "飲" ], "khv": [ "", "欧" ], "yhv": [ "", "é‚" ], "uhv": [ "", "æ½®" ], "ihv": [ "", "æ··" ], ".hv": [ "", "矩" ], "/hv": [ "", "敦" ], "lhv": [ "", "ç©´" ], ";hv": [ "", "豚" ], "ohv": [ "", "å¾" ], "phv": [ "", "妨" ], "nhb": [ "", "å¡€" ], "mhb": [ "", "陵" ], ",hb": [ "", "ç•”" ], "hhb": [ "", "抽" ], "jhb": [ "", "賦" ], "khb": [ "", "致" ], "yhb": [ "", "炉" ], "uhb": [ "", "驚" ], "ihb": [ "", "é›…" ], ".hb": [ "", "鉢" ], "/hb": [ "", "å’½" ], "lhb": [ "", "姉" ], ";hb": [ "", "丈" ], "ohb": [ "", "僧" ], "phb": [ "", "机" ], "nha": [ "", "å¶" ], "mha": [ "", "刃" ], ",ha": [ "", "扶" ], "hha": [ "", "å…¼" ], "jha": [ "", "å› " ], "kha": [ "", "ç­‹" ], "yha": [ "", "æ·³" ], "uha": [ "", "阿" ], "iha": [ "", "刷" ], ".ha": [ "", "å" ], "/ha": [ "", "或" ], "lha": [ "", "æ¹¾" ], ";ha": [ "", "é " ], "oha": [ "", "棒" ], "pha": [ "", "触" ], "nhs": [ "", "阻" ], "mhs": [ "", "呉" ], ",hs": [ "", "囲" ], "hhs": [ "", "飯" ], "jhs": [ "", "象" ], "khs": [ "", "ç³»" ], "yhs": [ "", "æ…®" ], "uhs": [ "", "ä¹±" ], "ihs": [ "", "房" ], ".hs": [ "", "ç©€" ], "/hs": [ "", "謀" ], "lhs": [ "", "å‚·" ], ";hs": [ "", "柳" ], "ohs": [ "", "å¡—" ], "phs": [ "", "措" ], "nhd": [ "", "æ³³" ], "mhd": [ "", "包" ], ",hd": [ "", "端" ], "hhd": [ "", "責" ], "jhd": [ "", "康" ], "khd": [ "", "é‡" ], "yhd": [ "", "ç´€" ], "uhd": [ "", "è³€" ], "ihd": [ "", "çª" ], ".hd": [ "", "è‚¥" ], "/hd": [ "", "å·±" ], "lhd": [ "", "ç· " ], ";hd": [ "", "債" ], "ohd": [ "", "互" ], "phd": [ "", "è‘—" ], "nhf": [ "", "ç±" ], "mhf": [ "", "æ¯" ], ",hf": [ "", "å­£" ], "hhf": [ "", "ä¾" ], "jhf": [ "", "ç´¡" ], "khf": [ "", "å¾’" ], "yhf": [ "", "輪" ], "uhf": [ "", "ç´”" ], "ihf": [ "", "ç³–" ], ".hf": [ "", "æ–Ž" ], "/hf": [ "", "å·³" ], "lhf": [ "", "æ›" ], ";hf": [ "", "æ±½" ], "ohf": [ "", "竜" ], "phf": [ "", "çµ¹" ], "nhg": [ "", "æ’²" ], "mhg": [ "", "è¸" ], ",hg": [ "", "è»" ], "hhg": [ "", "ç›—" ], "jhg": [ "", "è­˜" ], "khg": [ "", "å–œ" ], "yhg": [ "", "è€" ], "uhg": [ "", "奈" ], "ihg": [ "", "å¹²" ], ".hg": [ "", "陳" ], "/hg": [ "", "å·§" ], "lhg": [ "", "犯" ], ";hg": [ "", "å¡©" ], "ohg": [ "", "夢" ], "phg": [ "", "複" ], "nhq": [ "", "å‰" ], "mhq": [ "", "掌" ], ",hq": [ "", "å‘‚" ], "hhq": [ "", "å¯" ], "jhq": [ "", "扱" ], "khq": [ "", "豪" ], "yhq": [ "", "函" ], "uhq": [ "", "å­" ], "ihq": [ "", "陣" ], ".hq": [ "", "馳" ], "/hq": [ "", "è¤" ], "lhq": [ "", "眼" ], ";hq": [ "", "窯" ], "ohq": [ "", "ç·©" ], "phq": [ "", "妥" ], "nhw": [ "", "æ“" ], "mhw": [ "", "æ¨" ], ",hw": [ "", "殿" ], "hhw": [ "", "å°±" ], "jhw": [ "", "父" ], "khw": [ "", "謡" ], "yhw": [ "", "殊" ], "uhw": [ "", "償" ], "ihw": [ "", "ä½™" ], ".hw": [ "", "虜" ], "/hw": [ "", "å ¤" ], "lhw": [ "", "ç½" ], ";hw": [ "", "葬" ], "ohw": [ "", "å°" ], "phw": [ "", "促" ], "nhe": [ "", "æ’®" ], "mhe": [ "", "昌" ], ",he": [ "", "é¶´" ], "hhe": [ "", "é ˆ" ], "jhe": [ "", "布" ], "khe": [ "", "舞" ], "yhe": [ "", "弘" ], "uhe": [ "", "å»¶" ], "ihe": [ "", "彦" ], ".he": [ "", "ç" ], "/he": [ "", "æ—‹" ], "lhe": [ "", "ç ´" ], ";he": [ "", "å¿ " ], "ohe": [ "", "樹" ], "phe": [ "", "é®®" ], "nhr": [ "", "é™›" ], "mhr": [ "", "訓" ], ",hr": [ "", "燃" ], "hhr": [ "", "æ“" ], "jhr": [ "", "温" ], "khr": [ "", "密" ], "yhr": [ "", "å·£" ], "uhr": [ "", "標" ], "ihr": [ "", "押" ], ".hr": [ "", "暦" ], "/hr": [ "", "åµ" ], "lhr": [ "", "舗" ], ";hr": [ "", "éº" ], "ohr": [ "", "梅" ], "phr": [ "", "冬" ], "nht": [ "", "å…¶" ], "mht": [ "", "ç©‚" ], ",ht": [ "", "診" ], "hht": [ "", "æ‹›" ], "jht": [ "", "è¡€" ], "kht": [ "", "é " ], "yht": [ "", "æ‘©" ], "uht": [ "", "æ—§" ], "iht": [ "", "æ ¸" ], ".ht": [ "", "è’¸" ], "/ht": [ "", "篤" ], "lht": [ "", "豆" ], ";ht": [ "", "礎" ], "oht": [ "", "了" ], "pht": [ "", "裕" ], "zvn": [ "", "é¡" ], "xvn": [ "", "峯" ], "cvn": [ "", "榊" ], "vvn": [ "", "æ’«" ], "bvn": [ "", "æ…¾" ], "avn": [ "", "è±¹" ], "svn": [ "", "æ¼" ], "dvn": [ "", "æ‘‚" ], "fvn": [ "", "ç…©" ], "gvn": [ "", "æ¡¶" ], "qvn": [ "", "è‚‹" ], "wvn": [ "", "碧" ], "evn": [ "", "銑" ], "rvn": [ "", "ç‹" ], "tvn": [ "", "脹" ], "zbn": [ "", "å °" ], "xbn": [ "", "蕉" ], "cbn": [ "", "厭" ], "vbn": [ "", "采" ], "bbn": [ "", "膿" ], "abn": [ "", "柵" ], "sbn": [ "", "虹" ], "dbn": [ "", "椅" ], "fbn": [ "", "å°º" ], "gbn": [ "", "芙" ], "qbn": [ "", "ç¼" ], "wbn": [ "", "å©" ], "ebn": [ "", "é ¬" ], "rbn": [ "", "暢" ], "tbn": [ "", "冥" ], "zvm": [ "", "茸" ], "xvm": [ "", "é›" ], "cvm": [ "", "妄" ], "vvm": [ "", "芭" ], "bvm": [ "", "埼" ], "avm": [ "", "牙" ], "svm": [ "", "陥" ], "dvm": [ "", "å®›" ], "fvm": [ "", "è¿­" ], "gvm": [ "", "ç´¯" ], "qvm": [ "", "燕" ], "wvm": [ "", "æ¾" ], "evm": [ "", "è©" ], "rvm": [ "", "æ¿«" ], "tvm": [ "", "å–¬" ], "zbm": [ "", "å± " ], "xbm": [ "", "蓬" ], "cbm": [ "", "é¼" ], "vbm": [ "", "楚" ], "bbm": [ "", "ä¼½" ], "abm": [ "", "耶" ], "sbm": [ "", "欣" ], "dbm": [ "", "å½" ], "fbm": [ "", "廉" ], "gbm": [ "", "æº" ], "qbm": [ "", "謬" ], "wbm": [ "", "賑" ], "ebm": [ "", "丙" ], "rbm": [ "", "匡" ], "tbm": [ "", "ç…Ž" ], "zv,": [ "", "æ‚¶" ], "xv,": [ "", "é–ƒ" ], "cv,": [ "", "勺" ], "vv,": [ "", "é­" ], "bv,": [ "", "蜜" ], "av,": [ "", "å¼" ], "sv,": [ "", "æž¶" ], "dv,": [ "", "雇" ], "fv,": [ "", "窮" ], "gv,": [ "", "æ™¶" ], "qv,": [ "", "ç¸" ], "wv,": [ "", "æ¿¡" ], "ev,": [ "", "é­‚" ], "rv,": [ "", "ç©£" ], "tv,": [ "", "å§»" ], "zb,": [ "", "é…‹" ], "xb,": [ "", "噌" ], "cb,": [ "", "å¡‘" ], "vb,": [ "", "牢" ], "bb,": [ "", "å°¤" ], "ab,": [ "", "梢" ], "sb,": [ "", "é ’" ], "db,": [ "", "å‡" ], "fb,": [ "", "刀" ], "gb,": [ "", "蹟" ], "qb,": [ "", "夷" ], "wb,": [ "", "æ·«" ], "eb,": [ "", "å»»" ], "rb,": [ "", "舌" ], "tb,": [ "", "æŸ" ], "zvh": [ "", "梱" ], "xvh": [ "", "é–²" ], "cvh": [ "", "釜" ], "vvh": [ "", "å‡" ], "bvh": [ "", "ç°" ], "avh": [ "", "滑" ], "svh": [ "", "詳" ], "dvh": [ "", "é§" ], "fvh": [ "", "摘" ], "gvh": [ "", "濃" ], "qvh": [ "", "繕" ], "wvh": [ "", "ä¼¼" ], "evh": [ "", "æ³°" ], "rvh": [ "", "æ¬" ], "tvh": [ "", "è¿·" ], "zbh": [ "", "串" ], "xbh": [ "", "ç´—" ], "cbh": [ "", "虚" ], "vbh": [ "", "ç©«" ], "bbh": [ "", "晋" ], "abh": [ "", "騎" ], "sbh": [ "", "稿" ], "dbh": [ "", "刑" ], "fbh": [ "", "å®" ], "gbh": [ "", "笠" ], "qbh": [ "", "葦" ], "wbh": [ "", "æŸ" ], "ebh": [ "", "冊" ], "rbh": [ "", "ç´‹" ], "tbh": [ "", "å" ], "zvj": [ "", "稔" ], "xvj": [ "", "附" ], "cvj": [ "", "å­¤" ], "vvj": [ "", "厄" ], "bvj": [ "", "é…¬" ], "avj": [ "", "誰" ], "svj": [ "", "戻" ], "dvj": [ "", "礼" ], "fvj": [ "", "犬" ], "gvj": [ "", "æš–" ], "qvj": [ "", "é›°" ], "wvj": [ "", "è¾»" ], "evj": [ "", "è´" ], "rvj": [ "", "祉" ], "tvj": [ "", "ç´" ], "zbj": [ "", "禎" ], "xbj": [ "", "æ²™" ], "cbj": [ "", "æ’¤" ], "vbj": [ "", "å¾" ], "bbj": [ "", "梓" ], "abj": [ "", "猛" ], "sbj": [ "", "å½°" ], "dbj": [ "", "æ®" ], "fbj": [ "", "傾" ], "gbj": [ "", "銅" ], "qbj": [ "", "芋" ], "wbj": [ "", "庄" ], "ebj": [ "", "晩" ], "rbj": [ "", "潜" ], "tbj": [ "", "ä¹" ], "zvk": [ "", "æ±" ], "xvk": [ "", "径" ], "cvk": [ "", "ç§°" ], "vvk": [ "", "憎" ], "bvk": [ "", "ç‹©" ], "avk": [ "", "抱" ], "svk": [ "", "æ›´" ], "dvk": [ "", "å€" ], "fvk": [ "", "鎌" ], "gvk": [ "", "ç " ], "qvk": [ "", "胞" ], "wvk": [ "", "覧" ], "evk": [ "", "乃" ], "rvk": [ "", "瞬" ], "tvk": [ "", "縫" ], "zbk": [ "", "渦" ], "xbk": [ "", "僅" ], "cbk": [ "", "é " ], "vbk": [ "", "æŽ" ], "bbk": [ "", "婆" ], "abk": [ "", "弊" ], "sbk": [ "", "熟" ], "dbk": [ "", "å½±" ], "fbk": [ "", "欲" ], "gbk": [ "", "胸" ], "qbk": [ "", "é‹" ], "wbk": [ "", "è«®" ], "ebk": [ "", "å°„" ], "rbk": [ "", "臓" ], "tbk": [ "", "准" ], "zvy": [ "", "ç ¦" ], "xvy": [ "", "é—‡" ], "cvy": [ "", "éµ" ], "vvy": [ "", "渓" ], "bvy": [ "", "抄" ], "avy": [ "", "å°‰" ], "svy": [ "", "軟" ], "dvy": [ "", "è¾°" ], "fvy": [ "", "祖" ], "gvy": [ "", "彫" ], "qvy": [ "", "桟" ], "wvy": [ "", "é ƒ" ], "evy": [ "", "篇" ], "rvy": [ "", "猿" ], "tvy": [ "", "æž" ], "zby": [ "", "舷" ], "xby": [ "", "柿" ], "cby": [ "", "éˆ" ], "vby": [ "", "醤" ], "bby": [ "", "柴" ], "aby": [ "", "盾" ], "sby": [ "", "猫" ], "dby": [ "", "漫" ], "fby": [ "", "敬" ], "gby": [ "", "å”" ], "qby": [ "", "ç’½" ], "wby": [ "", "å°¼" ], "eby": [ "", "æ‹" ], "rby": [ "", "弓" ], "tby": [ "", "匂" ], "zvu": [ "", "æœ" ], "xvu": [ "", "ç¶´" ], "cvu": [ "", "è³¼" ], "vvu": [ "", "裾" ], "bvu": [ "", "介" ], "avu": [ "", "賜" ], "svu": [ "", "犠" ], "dvu": [ "", "隆" ], "fvu": [ "", "沿" ], "gvu": [ "", "é­”" ], "qvu": [ "", "訊" ], "wvu": [ "", "漂" ], "evu": [ "", "畜" ], "rvu": [ "", "没" ], "tvu": [ "", "裂" ], "zbu": [ "", "çž­" ], "xbu": [ "", "å¡”" ], "cbu": [ "", "å³ " ], "vbu": [ "", "剛" ], "bbu": [ "", "ç½·" ], "abu": [ "", "如" ], "sbu": [ "", "耕" ], "dbu": [ "", "ç·‘" ], "fbu": [ "", "è…•" ], "gbu": [ "", "脇" ], "qbu": [ "", "葵" ], "wbu": [ "", "忌" ], "ebu": [ "", "滞" ], "rbu": [ "", "烈" ], "tbu": [ "", "賓" ], "zvi": [ "", "æ§™" ], "xvi": [ "", "娯" ], "cvi": [ "", "伯" ], "vvi": [ "", "é" ], "bvi": [ "", "享" ], "avi": [ "", "袖" ], "svi": [ "", "ç²§" ], "dvi": [ "", "é ¼" ], "fvi": [ "", "å³°" ], "gvi": [ "", "ç¥" ], "qvi": [ "", "嫌" ], "wvi": [ "", "ç­" ], "evi": [ "", "墨" ], "rvi": [ "", "披" ], "tvi": [ "", "舶" ], "zbi": [ "", "æ§™" ], "xbi": [ "", "ç‘›" ], "cbi": [ "", "è²¼" ], "vbi": [ "", "æ’­" ], "bbi": [ "", "毅" ], "abi": [ "", "袖" ], "sbi": [ "", "é…µ" ], "dbi": [ "", "è¿«" ], "fbi": [ "", "娘" ], "gbi": [ "", "è²" ], "qbi": [ "", "悼" ], "wbi": [ "", "æ»´" ], "ebi": [ "", "èŒ" ], "rbi": [ "", "ä¼" ], "tbi": [ "", "ç­ˆ" ], "zv.": [ "", "蕪" ], "xv.": [ "", "è…¿" ], "cv.": [ "", "湘" ], "vv.": [ "", "å¿" ], "bv.": [ "", "鎚" ], "av.": [ "", "æ´›" ], "sv.": [ "", "馴" ], "dv.": [ "", "åŽ" ], "fv.": [ "", "æ´ª" ], "gv.": [ "", "å®°" ], "qv.": [ "", "麹" ], "wv.": [ "", "æ˜" ], "ev.": [ "", "惟" ], "rv.": [ "", "ç—•" ], "tv.": [ "", "è«’" ], "zb.": [ "", "醒" ], "xb.": [ "", "è‹…" ], "cb.": [ "", "æ·€" ], "vb.": [ "", "æ§»" ], "bb.": [ "", "耽" ], "ab.": [ "", "å¡" ], "sb.": [ "", "唾" ], "db.": [ "", "ç¤" ], "fb.": [ "", "雌" ], "gb.": [ "", "è«" ], "qb.": [ "", "ç¶»" ], "wb.": [ "", "碓" ], "eb.": [ "", "圭" ], "rb.": [ "", "亮" ], "tb.": [ "", "牌" ], "zv/": [ "", "袴" ], "xv/": [ "", "壬" ], "cv/": [ "", "蛾" ], "vv/": [ "", "曾" ], "bv/": [ "", "æ±€" ], "av/": [ "", "祇" ], "sv/": [ "", "亘" ], "dv/": [ "", "駈" ], "fv/": [ "", "臆" ], "gv/": [ "", "ç™’" ], "qv/": [ "", "倦" ], "wv/": [ "", "ç˜" ], "ev/": [ "", "éž" ], "rv/": [ "", "凪" ], "tv/": [ "", "舘" ], "zb/": [ "", "éž­" ], "xb/": [ "", "屑" ], "cb/": [ "", "狽" ], "vb/": [ "", "ç«¿" ], "bb/": [ "", "饗" ], "ab/": [ "", "樫" ], "sb/": [ "", "奄" ], "db/": [ "", "å¯" ], "fb/": [ "", "é–" ], "gb/": [ "", "迦" ], "qb/": [ "", "弄" ], "wb/": [ "", "æº" ], "eb/": [ "", "宋" ], "rb/": [ "", "諦" ], "tb/": [ "", "è´‹" ], "zvl": [ "", "凱" ], "xvl": [ "", "å–š" ], "cvl": [ "", "溶" ], "vvl": [ "", "æ—­" ], "bvl": [ "", "éš·" ], "avl": [ "", "拾" ], "svl": [ "", "è–¦" ], "dvl": [ "", "å…„" ], "fvl": [ "", "é™°" ], "gvl": [ "", "æ¯" ], "qvl": [ "", "æ" ], "wvl": [ "", "æ±" ], "evl": [ "", "戒" ], "rvl": [ "", "宵" ], "tvl": [ "", "é›·" ], "zbl": [ "", "ç¶" ], "xbl": [ "", "亦" ], "cbl": [ "", "ç¡" ], "vbl": [ "", "è¾±" ], "bbl": [ "", "麿" ], "abl": [ "", "è¡°" ], "sbl": [ "", "浄" ], "dbl": [ "", "刻" ], "fbl": [ "", "誤" ], "gbl": [ "", "è„…" ], "qbl": [ "", "胤" ], "wbl": [ "", "胡" ], "ebl": [ "", "髪" ], "rbl": [ "", "駆" ], "tbl": [ "", "å§“" ], "zv;": [ "", "æ½…" ], "xv;": [ "", "俸" ], "cv;": [ "", "è…«" ], "vv;": [ "", "庵" ], "bv;": [ "", "凸" ], "av;": [ "", "è“‹" ], "sv;": [ "", "俵" ], "dv;": [ "", "厘" ], "fv;": [ "", "ç­’" ], "gv;": [ "", "å«" ], "qv;": [ "", "呪" ], "wv;": [ "", "å¹½" ], "ev;": [ "", "羊" ], "rv;": [ "", "棺" ], "tv;": [ "", "轄" ], "zb;": [ "", "註" ], "xb;": [ "", "æ±°" ], "cb;": [ "", "稽" ], "vb;": [ "", "ç—˜" ], "bb;": [ "", "牟" ], "ab;": [ "", "墳" ], "sb;": [ "", "è¾›" ], "db;": [ "", "ç´¢" ], "fb;": [ "", "å»·" ], "gb;": [ "", "æ¿" ], "qb;": [ "", "å’³" ], "wb;": [ "", "嵩" ], "eb;": [ "", "æº" ], "rb;": [ "", "憾" ], "tb;": [ "", "åª" ], "zvo": [ "", "é«­" ], "xvo": [ "", "éƒ" ], "cvo": [ "", "逢" ], "vvo": [ "", "ç·‹" ], "bvo": [ "", "è²°" ], "avo": [ "", "寂" ], "svo": [ "", "霊" ], "dvo": [ "", "æ¡‘" ], "fvo": [ "", "勲" ], "gvo": [ "", "æº" ], "qvo": [ "", "è¼”" ], "wvo": [ "", "匿" ], "evo": [ "", "æ½”" ], "rvo": [ "", "肪" ], "tvo": [ "", "括" ], "zbo": [ "", "楯" ], "xbo": [ "", "粟" ], "cbo": [ "", "ç¼¶" ], "vbo": [ "", "嘘" ], "bbo": [ "", "榎" ], "abo": [ "", "å·¾" ], "sbo": [ "", "剰" ], "dbo": [ "", "芳" ], "fbo": [ "", "é›" ], "gbo": [ "", "怠" ], "qbo": [ "", "ç¦" ], "wbo": [ "", "æ°" ], "ebo": [ "", "賄" ], "rbo": [ "", "鯨" ], "tbo": [ "", "寡" ], "zvp": [ "", "è’™" ], "xvp": [ "", "箸" ], "cvp": [ "", "é®" ], "vvp": [ "", "舵" ], "bvp": [ "", "å¶‹" ], "avp": [ "", "楠" ], "svp": [ "", "濯" ], "dvp": [ "", "悟" ], "fvp": [ "", "峡" ], "gvp": [ "", "æ–" ], "qvp": [ "", "è‹«" ], "wvp": [ "", "殆" ], "evp": [ "", "æš«" ], "rvp": [ "", "壌" ], "tvp": [ "", "ç–«" ], "zbp": [ "", "椎" ], "xbp": [ "", "é¼ " ], "cbp": [ "", "æ “" ], "vbp": [ "", "冨" ], "bbp": [ "", "乎" ], "abp": [ "", "渚" ], "sbp": [ "", "æ…Œ" ], "dbp": [ "", "曽" ], "fbp": [ "", "æ´ž" ], "gbp": [ "", "ç¿" ], "qbp": [ "", "樺" ], "wbp": [ "", "甥" ], "ebp": [ "", "漬" ], "rbp": [ "", "凄" ], "tbp": [ "", "癌" ], "ztn": [ "", "å…œ" ], "xtn": [ "", "蟻" ], "ctn": [ "", "ç´" ], "vtn": [ "", "朕" ], "btn": [ "", "æ–§" ], "atn": [ "", "唇" ], "stn": [ "", "嬢" ], "dtn": [ "", "ç¶²" ], "ftn": [ "", "虎" ], "gtn": [ "", "惜" ], "qtn": [ "", "奔" ], "wtn": [ "", "ç—´" ], "etn": [ "", "å¨" ], "rtn": [ "", "è€" ], "ttn": [ "", "ä¾" ], "ztm": [ "", "倶" ], "xtm": [ "", "羨" ], "ctm": [ "", "擦" ], "vtm": [ "", "挟" ], "btm": [ "", "椿" ], "atm": [ "", "æ¼ " ], "stm": [ "", "鎖" ], "dtm": [ "", "ç•‘" ], "ftm": [ "", "浪" ], "gtm": [ "", "é»™" ], "qtm": [ "", "娠" ], "wtm": [ "", "æƒ" ], "etm": [ "", "æ‚£" ], "rtm": [ "", "å¥" ], "ttm": [ "", "笛" ], "zt,": [ "", "å°–" ], "xt,": [ "", "爪" ], "ct,": [ "", "é…ª" ], "vt,": [ "", "昂" ], "bt,": [ "", "盃" ], "at,": [ "", "禅" ], "st,": [ "", "郊" ], "dt,": [ "", "çš®" ], "ft,": [ "", "é³´" ], "gt,": [ "", "å¾®" ], "qt,": [ "", "胆" ], "wt,": [ "", "è²§" ], "et,": [ "", "ç•¥" ], "rt,": [ "", "å…‹" ], "tt,": [ "", "謹" ], "zth": [ "", "å‹…" ], "xth": [ "", "é…·" ], "cth": [ "", "é–‰" ], "vth": [ "", "ç…®" ], "bth": [ "", "ç³¾" ], "ath": [ "", "翼" ], "sth": [ "", "å " ], "dth": [ "", "æµ" ], "fth": [ "", "å‡" ], "gth": [ "", "列" ], "qth": [ "", "範" ], "wth": [ "", "ç´¹" ], "eth": [ "", "èµ°" ], "rth": [ "", "香" ], "tth": [ "", "層" ], "ztj": [ "", "霜" ], "xtj": [ "", "éš " ], "ctj": [ "", "æ——" ], "vtj": [ "", "泊" ], "btj": [ "", "å—£" ], "atj": [ "", "折" ], "stj": [ "", "誌" ], "dtj": [ "", "岸" ], "ftj": [ "", "è­²" ], "gtj": [ "", "é­š" ], "qtj": [ "", "æ•‘" ], "wtj": [ "", "臨" ], "etj": [ "", "妻" ], "rtj": [ "", "処" ], "ttj": [ "", "ç•™" ], "ztk": [ "", "æ§½" ], "xtk": [ "", "è³¢" ], "ctk": [ "", "廃" ], "vtk": [ "", "甘" ], "btk": [ "", "朱" ], "atk": [ "", "æ‹" ], "stk": [ "", "療" ], "dtk": [ "", "客" ], "ftk": [ "", "除" ], "gtk": [ "", "å…¸" ], "qtk": [ "", "ç¶™" ], "wtk": [ "", "ç ‚" ], "etk": [ "", "é©" ], "rtk": [ "", "è«‹" ], "ttk": [ "", "亜" ], "zty": [ "", "亥" ], "xty": [ "", "朽" ], "cty": [ "", "懸" ], "vty": [ "", "臭" ], "bty": [ "", "眉" ], "aty": [ "", "縄" ], "sty": [ "", "探" ], "dty": [ "", "æ­“" ], "fty": [ "", "催" ], "gty": [ "", "需" ], "qty": [ "", "智" ], "wty": [ "", "誠" ], "ety": [ "", "訳" ], "rty": [ "", "æº" ], "tty": [ "", "æ" ], "ztu": [ "", "é«„" ], "xtu": [ "", "骸" ], "ctu": [ "", "掘" ], "vtu": [ "", "彩" ], "btu": [ "", "泌" ], "atu": [ "", "皆" ], "stu": [ "", "矢" ], "dtu": [ "", "副" ], "ftu": [ "", "å¹…" ], "gtu": [ "", "é…" ], "qtu": [ "", "忘" ], "wtu": [ "", "覚" ], "etu": [ "", "秘" ], "rtu": [ "", "雪" ], "ttu": [ "", "ç´³" ], "zti": [ "", "宜" ], "xti": [ "", "誓" ], "cti": [ "", "ç¡«" ], "vti": [ "", "謙" ], "bti": [ "", "刈" ], "ati": [ "", "æ»" ], "sti": [ "", "鹿" ], "dti": [ "", "固" ], "fti": [ "", "å €" ], "gti": [ "", "創" ], "qti": [ "", "é­…" ], "wti": [ "", "è¿°" ], "eti": [ "", "令" ], "rti": [ "", "測" ], "tti": [ "", "朗" ], "zt.": [ "", "茅" ], "xt.": [ "", "脊" ], "ct.": [ "", "æ…§" ], "vt.": [ "", "ç‘ " ], "bt.": [ "", "禿" ], "at.": [ "", "鳩" ], "st.": [ "", "è–«" ], "dt.": [ "", "舟" ], "ft.": [ "", "妙" ], "gt.": [ "", "祈" ], "qt.": [ "", "飽" ], "wt.": [ "", "楼" ], "et.": [ "", "是" ], "rt.": [ "", "択" ], "tt.": [ "", "凶" ], "zt/": [ "", "漕" ], "xt/": [ "", "稀" ], "ct/": [ "", "糊" ], "vt/": [ "", "粕" ], "bt/": [ "", "逗" ], "at/": [ "", "éµ" ], "st/": [ "", "墾" ], "dt/": [ "", "柱" ], "ft/": [ "", "粋" ], "gt/": [ "", "é·" ], "qt/": [ "", "ç­‘" ], "wt/": [ "", "韻" ], "et/": [ "", "削" ], "rt/": [ "", "å­”" ], "tt/": [ "", "å·Œ" ], "ztl": [ "", "粘" ], "xtl": [ "", "æ¥" ], "ctl": [ "", "剣" ], "vtl": [ "", "澄" ], "btl": [ "", "å´‡" ], "atl": [ "", "ç…§" ], "stl": [ "", "銘" ], "dtl": [ "", "æ¼" ], "ftl": [ "", "桜" ], "gtl": [ "", "宣" ], "qtl": [ "", "è©°" ], "wtl": [ "", "åŒ" ], "etl": [ "", "属" ], "rtl": [ "", "抗" ], "ttl": [ "", "ä¼´" ], "zt;": [ "", "éž„" ], "xt;": [ "", "é€" ], "ct;": [ "", "覆" ], "vt;": [ "", "甚" ], "bt;": [ "", "å¦" ], "at;": [ "", "æ—¨" ], "st;": [ "", "å‡" ], "dt;": [ "", "脱" ], "ft;": [ "", "å”±" ], "gt;": [ "", "毒" ], "qt;": [ "", "寸" ], "wt;": [ "", "è»’" ], "et;": [ "", "脳" ], "rt;": [ "", "è·¡" ], "tt;": [ "", "ç‹‚" ], "zto": [ "", "ç•" ], "xto": [ "", "倹" ], "cto": [ "", "å‚‘" ], "vto": [ "", "錬" ], "bto": [ "", "æ–¥" ], "ato": [ "", "怪" ], "sto": [ "", "焦" ], "dto": [ "", "ç¶¿" ], "fto": [ "", "則" ], "gto": [ "", "踊" ], "qto": [ "", "å«" ], "wto": [ "", "æ" ], "eto": [ "", "隣" ], "rto": [ "", "æ…¶" ], "tto": [ "", "æ—¢" ], "ztp": [ "", "莫" ], "xtp": [ "", "窪" ], "ctp": [ "", "åž‚" ], "vtp": [ "", "å”" ], "btp": [ "", "æ±" ], "atp": [ "", "é¶" ], "stp": [ "", "è­œ" ], "dtp": [ "", "勉" ], "ftp": [ "", "å……" ], "gtp": [ "", "ç·’" ], "qtp": [ "", "嘆" ], "wtp": [ "", "釈" ], "etp": [ "", "厳" ], "rtp": [ "", "惑" ], "ttp": [ "", "憩" ], "nyz": [ "", "塞" ], "myz": [ "", "æ­¤" ], ",yz": [ "", "è©«" ], "hyz": [ "", "燈" ], "jyz": [ "", "ä»°" ], "kyz": [ "", "較" ], "yyz": [ "", "橘" ], "uyz": [ "", "ç¶œ" ], "iyz": [ "", "戯" ], ".yz": [ "", "覗" ], "/yz": [ "", "æ•" ], "lyz": [ "", "仇" ], ";yz": [ "", "該" ], "oyz": [ "", "霞" ], "pyz": [ "", "挿" ], "nyx": [ "", "憧" ], "myx": [ "", "玲" ], ",yx": [ "", "侯" ], "hyx": [ "", "å“€" ], "jyx": [ "", "怒" ], "kyx": [ "", "染" ], "yyx": [ "", "擬" ], "uyx": [ "", "å§«" ], "iyx": [ "", "è…¸" ], ".yx": [ "", "æ¡§" ], "/yx": [ "", "æ–‘" ], "lyx": [ "", "æ–¼" ], ";yx": [ "", "碑" ], "oyx": [ "", "æ–¬" ], "pyx": [ "", "æ…¨" ], "nyc": [ "", "佃" ], "myc": [ "", "æ—¦" ], ",yc": [ "", "ç •" ], "hyc": [ "", "畳" ], "jyc": [ "", "é …" ], "kyc": [ "", "ç¡" ], "yyc": [ "", "é§„" ], "uyc": [ "", "ç…™" ], "iyc": [ "", "ç—‡" ], ".yc": [ "", "韓" ], "/yc": [ "", "è•" ], "lyc": [ "", "æš‘" ], ";yc": [ "", "æ–‰" ], "oyc": [ "", "é¼»" ], "pyc": [ "", "但" ], "nyv": [ "", "曳" ], "myv": [ "", "曲" ], ",yv": [ "", "ä¼" ], "hyv": [ "", "桃" ], "jyv": [ "", "å¾" ], "kyv": [ "", "臣" ], "yyv": [ "", "鎮" ], "uyv": [ "", "æ…Ž" ], "iyv": [ "", "æ‹ " ], ".yv": [ "", "é š" ], "/yv": [ "", "ç• " ], "lyv": [ "", "æ³¥" ], ";yv": [ "", "æ ½" ], "oyv": [ "", "æ»…" ], "pyv": [ "", "ç–¾" ], "nyb": [ "", "蟹" ], "myb": [ "", "挺" ], ",yb": [ "", "肯" ], "hyb": [ "", "ç¶¾" ], "jyb": [ "", "伎" ], "kyb": [ "", "ç–²" ], "yyb": [ "", "膚" ], "uyb": [ "", "昔" ], "iyb": [ "", "æ —" ], ".yb": [ "", "燭" ], "/yb": [ "", "狸" ], "lyb": [ "", "悦" ], ";yb": [ "", "å" ], "oyb": [ "", "詞" ], "pyb": [ "", "æ‡" ], "nya": [ "", "猪" ], "mya": [ "", "篭" ], ",ya": [ "", "å°‹" ], "hya": [ "", "掲" ], "jya": [ "", "å²³" ], "kya": [ "", "寿" ], "yya": [ "", "稚" ], "uya": [ "", "è³›" ], "iya": [ "", "貨" ], ".ya": [ "", "鯛" ], "/ya": [ "", "ç’ƒ" ], "lya": [ "", "ç„" ], ";ya": [ "", "冒" ], "oya": [ "", "é‹­" ], "pya": [ "", "潤" ], "nys": [ "", "åŸ" ], "mys": [ "", "壮" ], ",ys": [ "", "éš" ], "hys": [ "", "è–„" ], "jys": [ "", "ç§’" ], "kys": [ "", "æ”»" ], "yys": [ "", "é™¶" ], "uys": [ "", "æš´" ], "iys": [ "", "郡" ], ".ys": [ "", "ç¦" ], "/ys": [ "", "塊" ], "lys": [ "", "åƒ" ], ";ys": [ "", "è¼" ], "oys": [ "", "è²´" ], "pys": [ "", "å¹¼" ], "nyd": [ "", "艇" ], "myd": [ "", "ä¹¾" ], ",yd": [ "", "ç·Š" ], "hyd": [ "", "湯" ], "jyd": [ "", "é—˜" ], "kyd": [ "", "邦" ], "yyd": [ "", "群" ], "uyd": [ "", "苦" ], "iyd": [ "", "模" ], ".yd": [ "", "å®´" ], "/yd": [ "", "逸" ], "lyd": [ "", "é…¸" ], ";yd": [ "", "柄" ], "oyd": [ "", "票" ], "pyd": [ "", "途" ], "nyf": [ "", "æš" ], "myf": [ "", "ç§©" ], ",yf": [ "", "ä»" ], "hyf": [ "", "呼" ], "jyf": [ "", "ç–‘" ], "kyf": [ "", "衆" ], "yyf": [ "", "å¦" ], "uyf": [ "", "察" ], "iyf": [ "", "希" ], ".yf": [ "", "眺" ], "/yf": [ "", "æ…ˆ" ], "lyf": [ "", "札" ], ";yf": [ "", "甲" ], "oyf": [ "", "背" ], "pyf": [ "", "æ²¼" ], "nyg": [ "", "賊" ], "myg": [ "", "é ‚" ], ",yg": [ "", "å¸" ], "hyg": [ "", "絡" ], "jyg": [ "", "ä»" ], "kyg": [ "", "å§¿" ], "yyg": [ "", "è·" ], "uyg": [ "", "速" ], "iyg": [ "", "邸" ], ".yg": [ "", "é€" ], "/yg": [ "", "枯" ], "lyg": [ "", "丹" ], ";yg": [ "", "é¿" ], "oyg": [ "", "刺" ], "pyg": [ "", "æŸ" ], "nyq": [ "", "臼" ], "myq": [ "", "è·³" ], ",yq": [ "", "æ…•" ], "hyq": [ "", "匹" ], "jyq": [ "", "æ—¬" ], "kyq": [ "", "潟" ], "yyq": [ "", "玄" ], "uyq": [ "", "é‘‘" ], "iyq": [ "", "僚" ], ".yq": [ "", "蜂" ], "/yq": [ "", "æ›™" ], "lyq": [ "", "扇" ], ";yq": [ "", "å°»" ], "oyq": [ "", "耳" ], "pyq": [ "", "å‚" ], "nyw": [ "", "æ´©" ], "myw": [ "", "拘" ], ",yw": [ "", "ä¹™" ], "hyw": [ "", "皇" ], "jyw": [ "", "飾" ], "kyw": [ "", "åš" ], "yyw": [ "", "æ°·" ], "uyw": [ "", "茂" ], "iyw": [ "", "粉" ], ".yw": [ "", "æ‚”" ], "/yw": [ "", "晃" ], "lyw": [ "", "届" ], ";yw": [ "", "æ•" ], "oyw": [ "", "貯" ], "pyw": [ "", "我" ], "nye": [ "", "猶" ], "mye": [ "", "é£" ], ",ye": [ "", "霧" ], "hye": [ "", "æ¹–" ], "jye": [ "", "採" ], "kye": [ "", "境" ], "yye": [ "", "æ¤" ], "uye": [ "", "去" ], "iye": [ "", "易" ], ".ye": [ "", "ç´º" ], "/ye": [ "", "逓" ], "lye": [ "", "ä½µ" ], ";ye": [ "", "å¸" ], "oye": [ "", "ç« " ], "pye": [ "", "è¶…" ], "nyr": [ "", "鼓" ], "myr": [ "", "欄" ], ",yr": [ "", "è‚©" ], "hyr": [ "", "ä»™" ], "jyr": [ "", "離" ], "kyr": [ "", "借" ], "yyr": [ "", "æš—" ], "uyr": [ "", "訴" ], "iyr": [ "", "é³¥" ], ".yr": [ "", "æ‚ " ], "/yr": [ "", "å¼§" ], "lyr": [ "", "執" ], ";yr": [ "", "é§’" ], "oyr": [ "", "呈" ], "pyr": [ "", "曹" ], "ppnyt":[ "", "枢" ], "myt": [ "", "è–©" ], ",yt": [ "", "é¡§" ], "hyt": [ "", "æ" ], "jyt": [ "", "功" ], "kyt": [ "", "夕" ], "yyt": [ "", "æš—" ], "uyt": [ "", "訴" ], "iyt": [ "", "æžš" ], ".yt": [ "", "窃" ], "/yt": [ "", "å‘" ], "lyt": [ "", "èŠ" ], ";yt": [ "", "é‚£" ], "oyt": [ "", "å·¡" ], "pyt": [ "", "飼" ] } } } libskk-1.0.0/rules/tutcode/metadata.json0000664000076400007640000000025711675742075015220 00000000000000{ "name": "TUT-Code", "description": "Japanese direct input method developed by Hajime Ohiwa and Takaaki Takashima " } libskk-1.0.0/rules/tutcode/keymap/0000775000076400007640000000000012016557043014074 500000000000000libskk-1.0.0/rules/tutcode/keymap/latin.json0000664000076400007640000000006511675742075016032 00000000000000{ "include": [ "default/default" ] } libskk-1.0.0/rules/tutcode/keymap/katakana.json0000664000076400007640000000006511675742075016476 00000000000000{ "include": [ "default/default" ] } libskk-1.0.0/rules/tutcode/keymap/hankaku-katakana.json0000664000076400007640000000006511675742075020116 00000000000000{ "include": [ "default/default" ] } libskk-1.0.0/rules/tutcode/keymap/wide-latin.json0000664000076400007640000000006511675742075016760 00000000000000{ "include": [ "default/default" ] } libskk-1.0.0/rules/tutcode/keymap/hiragana.json0000664000076400007640000000006511675742075016475 00000000000000{ "include": [ "default/default" ] } libskk-1.0.0/rules/azik/0000775000076400007640000000000012016557043012075 500000000000000libskk-1.0.0/rules/azik/rom-kana/0000775000076400007640000000000012016557043013602 500000000000000libskk-1.0.0/rules/azik/rom-kana/default.json0000664000076400007640000004246011733021605016042 00000000000000{ "include": [ "default/default" ], "define": { "rom-kana": { ";": ["", "ã£" ], "b.": ["", "ã¶" ], "bd": ["", "ã¹ã‚“" ], "bh": ["", "ã¶ã†" ], "bj": ["", "ã¶ã‚“" ], "bk": ["", "ã³ã‚“" ], "bl": ["", "ã¼ã‚“" ], "bn": ["", "ã°ã‚“" ], "bp": ["", "ã¼ã†" ], "bq": ["", "ã°ã„" ], "br": ["", "ã°ã‚‰" ], "bt": ["", "ã³ã¨" ], "bw": ["", "ã¹ã„" ], "bx": ["", "ã¹ã„" ], "byd": ["", "ã³ã‡ã‚“" ], "byh": ["", "ã³ã‚…ã†" ], "byj": ["", "ã³ã‚…ã‚“" ], "byl": ["", "ã³ã‚‡ã‚“" ], "byn": ["", "ã³ã‚ƒã‚“" ], "byp": ["", "ã³ã‚‡ã†" ], "byq": ["", "ã³ã‚ƒã„" ], "byw": ["", "ã³ã‡ã„" ], "byz": ["", "ã³ã‚ƒã‚“" ], "bz": ["", "ã°ã‚“" ], "ca": ["", "ã¡ã‚ƒ" ], "cc": ["", "ã¡ã‚ƒ" ], "cd": ["", "ã¡ã‡ã‚“" ], "ce": ["", "ã¡ã‡" ], "cf": ["", "ã¡ã‡" ], "ch": ["", "ã¡ã‚…ã†" ], "cha": null, "che": null, "chi": null, "cho": null, "chu": null, "ci": ["", "ã¡" ], "cj": ["", "ã¡ã‚…ã‚“" ], "ck": ["", "ã¡ã‚“" ], "cl": ["", "ã¡ã‚‡ã‚“" ], "cn": ["", "ã¡ã‚ƒã‚“" ], "co": ["", "ã¡ã‚‡" ], "cp": ["", "ã¡ã‚‡ã†" ], "cq": ["", "ã¡ã‚ƒã„" ], "cu": ["", "ã¡ã‚…" ], "cv": ["", "ã¡ã‚ƒã„" ], "cw": ["", "ã¡ã‡ã„" ], "cx": ["", "ã¡ã‡ã„" ], "cz": ["", "ã¡ã‚ƒã‚“" ], "dch": ["", "ã§ã‚…ー" ], "dci": ["", "ã§ãƒ" ], "dck": ["", "ã§ãƒã‚“" ], "dcp": ["", "ã©ã…ー" ], "dcu": ["", "ã§ã‚…" ], "dd": ["", "ã§ã‚“" ], "df": ["", "ã§" ], "dg": ["", "ã ãŒ" ], "dh": ["", "ã¥ã†" ], "dha": null, "dhe": null, "dhi": null, "dho": null, "dhu": null, "dj": ["", "ã¥ã‚“" ], "dk": ["", "ã¢ã‚“" ], "dl": ["", "ã©ã‚“" ], "dm": ["", "ã§ã‚‚" ], "dn": ["", "ã ã‚“" ], "dp": ["", "ã©ã†" ], "dq": ["", "ã ã„" ], "dr": ["", "ã§ã‚ã‚‹" ], "ds": ["", "ã§ã™" ], "dt": ["", "ã ã¡" ], "dv": ["", "ã§ã‚“" ], "dw": ["", "ã§ã„" ], "dy": ["", "ã§ãƒ" ], "dz": ["", "ã ã‚“" ], "fd": ["", "ãµã‡ã‚“" ], "fh": ["", "ãµã†" ], "fj": ["", "ãµã‚“" ], "fk": ["", "ãµãƒã‚“" ], "fl": ["", "ãµã‰ã‚“" ], "fm": ["", "ãµã‚€" ], "fn": ["", "ãµãã‚“" ], "fp": ["", "ãµã‰ãƒ¼" ], "fq": ["", "ãµãã„" ], "fr": ["", "ãµã‚‹" ], "fs": ["", "ãµãã„" ], "fw": ["", "ãµã‡ã„" ], "fz": ["", "ãµãã‚“" ], "gd": ["", "ã’ã‚“" ], "gh": ["", "ãã†" ], "gj": ["", "ãã‚“" ], "gk": ["", "ãŽã‚“" ], "gl": ["", "ã”ã‚“" ], "gn": ["", "ãŒã‚“" ], "gp": ["", "ã”ã†" ], "gq": ["", "ãŒã„" ], "gr": ["", "ãŒã‚‰" ], "gt": ["", "ã”ã¨" ], "gw": ["", "ã’ã„" ], "gyd": ["", "ãŽã‡ã‚“" ], "gyh": ["", "ãŽã‚…ã†" ], "gyj": ["", "ãŽã‚…ã‚“" ], "gyl": ["", "ãŽã‚‡ã‚“" ], "gyn": ["", "ãŽã‚ƒã‚“" ], "gyp": ["", "ãŽã‚‡ã†" ], "gyq": ["", "ãŽã‚ƒã„" ], "gyw": ["", "ãŽã‡ã„" ], "gyz": ["", "ãŽã‚ƒã‚“" ], "gz": ["", "ãŒã‚“" ], "hd": ["", "ã¸ã‚“" ], "hf": ["", "ãµ" ], "hga": ["", "ã²ã‚ƒ" ], "hgd": ["", "ã²ã‡ã‚“" ], "hge": ["", "ã²ã‡" ], "hgh": ["", "ã²ã‚…ã†" ], "hgj": ["", "ã²ã‚…ã‚“" ], "hgl": ["", "ã²ã‚‡ã‚“" ], "hgn": ["", "ã²ã‚ƒã‚“" ], "hgo": ["", "ã²ã‚‡" ], "hgp": ["", "ã²ã‚‡ã†" ], "hgq": ["", "ã²ã‚ƒã„" ], "hgu": ["", "ã²ã‚…" ], "hgw": ["", "ã²ã‡ã„" ], "hgz": ["", "ã²ã‚ƒã‚“" ], "hh": ["", "ãµã†" ], "hj": ["", "ãµã‚“" ], "hk": ["", "ã²ã‚“" ], "hl": ["", "ã»ã‚“" ], "hn": ["", "ã¯ã‚“" ], "hp": ["", "ã»ã†" ], "hq": ["", "ã¯ã„" ], "ht": ["", "ã²ã¨" ], "hw": ["", "ã¸ã„" ], "hyd": ["", "ã²ã‡ã‚“" ], "hyh": ["", "ã²ã‚…ã†" ], "hyl": ["", "ã²ã‚‡ã‚“" ], "hyp": ["", "ã²ã‚‡ã†" ], "hyq": ["", "ã²ã‚ƒã„" ], "hyw": ["", "ã²ã‡ã„" ], "hyz": ["", "ã²ã‚ƒã‚“" ], "hz": ["", "ã¯ã‚“" ], "jd": ["", "ã˜ã‡ã‚“" ], "jf": ["", "ã˜ã‚…" ], "jh": ["", "ã˜ã‚…ã†" ], "jj": ["", "ã˜ã‚…ã‚“" ], "jk": ["", "ã˜ã‚“" ], "jl": ["", "ã˜ã‚‡ã‚“" ], "jn": ["", "ã˜ã‚ƒã‚“" ], "jp": ["", "ã˜ã‚‡ã†" ], "jq": ["", "ã˜ã‚ƒã„" ], "jv": ["", "ã˜ã‚…ã†" ], "jw": ["", "ã˜ã‡ã„" ], "jz": ["", "ã˜ã‚ƒã‚“" ], "kA": ["", "ヵ" ], "kE": ["", "ヶ" ], "kd": ["", "ã‘ã‚“" ], "kf": ["", "ã" ], "kga": ["", "ãゃ" ], "kgd": ["", "ãã‡ã‚“" ], "kge": ["", "ãã‡" ], "kgh": ["", "ãã‚…ã†" ], "kgl": ["", "ãょん" ], "kgn": ["", "ãゃん" ], "kgo": ["", "ãょ" ], "kgp": ["", "ãょã†" ], "kgq": ["", "ãゃã„" ], "kgu": ["", "ãã‚…" ], "kgw": ["", "ãã‡ã„" ], "kgz": ["", "ãゃん" ], "kh": ["", "ãã†" ], "kj": ["", "ãã‚“" ], "kk": ["", "ãã‚“" ], "kl": ["", "ã“ã‚“" ], "km": ["", "ã‹ã‚‚" ], "kn": ["", "ã‹ã‚“" ], "kp": ["", "ã“ã†" ], "kq": ["", "ã‹ã„" ], "kr": ["", "ã‹ã‚‰" ], "kt": ["", "ã“ã¨" ], "kv": ["", "ãã‚“" ], "kw": ["", "ã‘ã„" ], "kyd": ["", "ãã‡ã‚“" ], "kyh": ["", "ãã‚…ã†" ], "kyj": ["", "ãã‚…ã‚“" ], "kyl": ["", "ãょん" ], "kyn": ["", "ãゃん" ], "kyp": ["", "ãょã†" ], "kyq": ["", "ãゃã„" ], "kyw": ["", "ãã‡ã„" ], "kyz": ["", "ãゃん" ], "kz": ["", "ã‹ã‚“" ], "m.": ["", "ã‚€" ], "md": ["", "ã‚ã‚“" ], "mf": ["", "ã‚€" ], "mga": ["", "ã¿ã‚ƒ" ], "mgd": ["", "ã¿ã‡ã‚“" ], "mge": ["", "ã¿ã‡" ], "mgh": ["", "ã¿ã‚…ã†" ], "mgj": ["", "ã¿ã‚…ã‚“" ], "mgl": ["", "ã¿ã‚‡ã‚“" ], "mgn": ["", "ã¿ã‚ƒã‚“" ], "mgo": ["", "ã¿ã‚‡" ], "mgp": ["", "ã¿ã‚‡ã†" ], "mgq": ["", "ã¿ã‚ƒã„" ], "mgu": ["", "ã¿ã‚…" ], "mgw": ["", "ã¿ã‡ã„" ], "mgz": ["", "ã¿ã‚ƒã‚“" ], "mh": ["", "ã‚€ã†" ], "mj": ["", "むん" ], "mk": ["", "ã¿ã‚“" ], "ml": ["", "ã‚‚ã‚“" ], "mn": ["", "ã‚‚ã®" ], "mp": ["", "ã‚‚ã†" ], "mq": ["", "ã¾ã„" ], "mr": ["", "ã¾ã‚‹" ], "ms": ["", "ã¾ã™" ], "mt": ["", "ã¾ãŸ" ], "mv": ["", "むん" ], "mw": ["", "ã‚ã„" ], "myd": ["", "ã¿ã‡ã‚“" ], "myh": ["", "ã¿ã‚…ã†" ], "myj": ["", "ã¿ã‚…ã‚“" ], "myl": ["", "ã¿ã‚‡ã‚“" ], "myn": ["", "ã¿ã‚ƒã‚“" ], "myp": ["", "ã¿ã‚‡ã†" ], "myq": ["", "ã¿ã‚ƒã„" ], "myw": ["", "ã¿ã‡ã„" ], "myz": ["", "ã¿ã‚ƒã‚“" ], "mz": ["", "ã¾ã‚“" ], "n.": ["", "ã¬" ], "nb": ["", "ã­ã°" ], "nd": ["", "ã­ã‚“" ], "nf": ["", "ã¬" ], "nga": ["", "ã«ã‚ƒ" ], "ngd": ["", "ã«ã‡ã‚“" ], "nge": ["", "ã«ã‡" ], "ngh": ["", "ã«ã‚…ã†" ], "ngj": ["", "ã«ã‚…ã‚“" ], "ngl": ["", "ã«ã‚‡ã‚“" ], "ngn": ["", "ã«ã‚ƒã‚“" ], "ngo": ["", "ã«ã‚‡" ], "ngp": ["", "ã«ã‚‡ã†" ], "ngq": ["", "ã«ã‚ƒã„" ], "ngu": ["", "ã«ã‚…" ], "ngw": ["", "ã«ã‡ã„" ], "ngz": ["", "ã«ã‚ƒã‚“" ], "nh": ["", "ã¬ã†" ], "nj": ["", "ã¬ã‚“" ], "nk": ["", "ã«ã‚“" ], "nl": ["", "ã®ã‚“" ], "np": ["", "ã®ã†" ], "nq": ["", "ãªã„" ], "nr": ["", "ãªã‚‹" ], "nt": ["", "ã«ã¡" ], "nv": ["", "ã¬ã‚“" ], "nw": ["", "ã­ã„" ], "nyd": ["", "ã«ã‡ã‚“" ], "nyh": ["", "ã«ã‚…ã†" ], "nyj": ["", "ã«ã‚…ã‚“" ], "nyl": ["", "ã«ã‚‡ã‚“" ], "nyn": ["", "ã«ã‚ƒã‚“" ], "nyp": ["", "ã«ã‚‡ã†" ], "nyq": ["", "ã«ã‚ƒã„" ], "nyw": ["", "ã«ã‡ã„" ], "nyz": ["", "ã«ã‚ƒã‚“" ], "nz": ["", "ãªã‚“" ], "pd": ["", "ãºã‚“" ], "pf": ["", "ã½ã‚“" ], "pga": ["", "ã´ã‚ƒ" ], "pgd": ["", "ã´ã‡ã‚“" ], "pge": ["", "ã´ã‡" ], "pgh": ["", "ã´ã‚…ã†" ], "pgj": ["", "ã´ã‚…ã‚“" ], "pgl": ["", "ã´ã‚‡ã‚“" ], "pgn": ["", "ã´ã‚ƒã‚“" ], "pgo": ["", "ã´ã‚‡" ], "pgp": ["", "ã´ã‚‡ã†" ], "pgq": ["", "ã´ã‚ƒã„" ], "pgu": ["", "ã´ã‚…" ], "pgw": ["", "ã´ã‡ã„" ], "pgz": ["", "ã´ã‚ƒã‚“" ], "ph": ["", "ã·ã†" ], "pj": ["", "ã·ã‚“" ], "pk": ["", "ã´ã‚“" ], "pl": ["", "ã½ã‚“" ], "pn": ["", "ã±ã‚“" ], "pp": ["", "ã½ã†" ], "pq": ["", "ã±ã„" ], "pv": ["", "ã½ã†" ], "pw": ["", "ãºã„" ], "pyd": ["", "ã´ã‡ã‚“" ], "pyh": ["", "ã´ã‚…ã†" ], "pyj": ["", "ã´ã‚…ã‚“" ], "pyl": ["", "ã´ã‚‡ã‚“" ], "pyn": ["", "ã´ã‚ƒã‚“" ], "pyp": ["", "ã´ã‚‡ã†" ], "pyq": ["", "ã´ã‚ƒã„" ], "pyw": ["", "ã´ã‡ã„" ], "pyz": ["", "ã´ã‚ƒã‚“" ], "pz": ["", "ã±ã‚“" ], "q": ["", "ã‚“" ], "rd": ["", "れん" ], "rh": ["", "ã‚‹ã†" ], "rj": ["", "ã‚‹ã‚“" ], "rk": ["", "りん" ], "rl": ["", "ã‚ã‚“" ], "rn": ["", "らん" ], "rp": ["", "ã‚ã†" ], "rq": ["", "らã„" ], "rr": ["", "られ" ], "rw": ["", "れã„" ], "ryd": ["", "りã‡ã‚“" ], "ryh": ["", "りゅã†" ], "ryj": ["", "りゅん" ], "ryk": ["", "りょã" ], "ryl": ["", "りょん" ], "ryn": ["", "りゃん" ], "ryp": ["", "りょã†" ], "ryq": ["", "りゃã„" ], "ryw": ["", "りã‡ã„" ], "ryz": ["", "りゃん" ], "rz": ["", "らん" ], "sd": ["", "ã›ã‚“" ], "sf": ["", "ã•ã„" ], "sh": ["", "ã™ã†" ], "sha": null, "she": null, "shi": null, "sho": null, "shu": null, "sj": ["", "ã™ã‚“" ], "sk": ["", "ã—ã‚“" ], "sl": ["", "ãã‚“" ], "sm": ["", "ã—ã‚‚" ], "sn": ["", "ã•ã‚“" ], "sp": ["", "ãã†" ], "sq": ["", "ã•ã„" ], "sr": ["", "ã™ã‚‹" ], "ss": ["", "ã›ã„" ], "st": ["", "ã—ãŸ" ], "sv": ["", "ã•ã„" ], "sw": ["", "ã›ã„" ], "syd": ["", "ã—ã‡ã‚“" ], "syh": ["", "ã—ã‚…ã†" ], "syj": ["", "ã—ã‚…ã‚“" ], "syl": ["", "ã—ょん" ], "syp": ["", "ã—ょã†" ], "syq": ["", "ã—ゃã„" ], "syw": ["", "ã—ã‡ã„" ], "syz": ["", "ã—ゃん" ], "sz": ["", "ã•ã‚“" ], "tU": ["", "ã£" ], "tb": ["", "ãŸã³" ], "td": ["", "ã¦ã‚“" ], "tgh": ["", "ã¦ã‚…ー" ], "tgi": ["", "ã¦ãƒ" ], "tgk": ["", "ã¦ãƒã‚“" ], "tgp": ["", "ã¨ã…ー" ], "tgu": ["", "ã¦ã‚…" ], "th": ["", "ã¤ã†" ], "tha": null, "the": null, "thi": null, "tho": null, "thu": null, "tj": ["", "ã¤ã‚“" ], "tk": ["", "ã¡ã‚“" ], "tl": ["", "ã¨ã‚“" ], "tm": ["", "ãŸã‚" ], "tn": ["", "ãŸã‚“" ], "tp": ["", "ã¨ã†" ], "tq": ["", "ãŸã„" ], "tr": ["", "ãŸã‚‰" ], "tsU": ["", "ã£" ], "tsa": ["", "ã¤ã" ], "tse": ["", "ã¤ã‡" ], "tsi": ["", "ã¤ãƒ" ], "tso": ["", "ã¤ã‰" ], "tt": ["", "ãŸã¡" ], "tw": ["", "ã¦ã„" ], "tyd": ["", "ã¡ã‡ã‚“" ], "tyh": ["", "ã¡ã‚…ã†" ], "tyj": ["", "ã¡ã‚…ã‚“" ], "tyl": ["", "ã¡ã‚‡ã‚“" ], "tyn": ["", "ã¡ã‚ƒã‚“" ], "typ": ["", "ã¡ã‚‡ã†" ], "tyq": ["", "ã¡ã‚ƒã„" ], "tyw": ["", "ã¡ã‡ã„" ], "tyz": ["", "ã¡ã‚ƒã‚“" ], "tz": ["", "ãŸã‚“" ], "vd": ["", "ã†ã‚›ã‡ã‚“" ], "vk": ["", "ã†ã‚›ãƒã‚“" ], "vl": ["", "ã†ã‚›ã‰ã‚“" ], "vn": ["", "ã†ã‚›ãã‚“" ], "vp": ["", "ã†ã‚›ã‰ãƒ¼" ], "vq": ["", "ã†ã‚›ãã„" ], "vw": ["", "ã†ã‚›ã‡ã„" ], "vya": ["", "ã†ã‚›ã‚ƒ" ], "vye": ["", "ã†ã‚›ã‡" ], "vyo": ["", "ã†ã‚›ã‚‡" ], "vyu": ["", "ã†ã‚›ã‚…" ], "vz": ["", "ã†ã‚›ãã‚“" ], "wA": ["", "ゎ" ], "wd": ["", "ã†ã‡ã‚“" ], "wf": ["", "ã‚ã„" ], "wha": ["", "ã†ã" ], "whe": ["", "ã†ã‡" ], "whi": ["", "ã†ãƒ" ], "who": ["", "ã†ã‰" ], "whu": ["", "ã†" ], "wk": ["", "ã†ãƒã‚“" ], "wl": ["", "ã†ã‰ã‚“" ], "wn": ["", "ã‚ã‚“" ], "wp": ["", "ã†ã‰ãƒ¼" ], "wq": ["", "ã‚ã„" ], "wr": ["", "ã‚れ" ], "wso": ["", "ã†ã‰" ], "wt": ["", "ã‚ãŸ" ], "wz": ["", "ã‚ã‚“" ], "x;": ["", ";" ], "xa": ["", "ã—ゃ" ], "xc": ["", "ã—ゃ" ], "xd": ["", "ã—ã‡ã‚“" ], "xe": ["", "ã—ã‡" ], "xf": ["", "ã—ã‡ã„" ], "xh": ["", "ã—ã‚…ã†" ], "xi": ["", "ã—" ], "xj": ["", "ã—ã‚…ã‚“" ], "xk": ["", "ã—ã‚“" ], "xl": ["", "ã—ょん" ], "xn": ["", "ã—ゃん" ], "xo": ["", "ã—ょ" ], "xp": ["", "ã—ょã†" ], "xq": ["", "ã—ゃã„" ], "xt": ["", "ã—ã‚…ã¤" ], "xu": ["", "ã—ã‚…" ], "xv": ["", "ã—ゃã„" ], "xw": ["", "ã—ã‡ã„" ], "xxa": ["", "ã" ], "xxe": ["", "ã‡" ], "xxh": ["", "â†" ], "xxi": ["", "ãƒ" ], "xxj": ["", "↓" ], "xxk": ["", "↑" ], "xxl": ["", "→" ], "xxo": ["", "ã‰" ], "xxu": ["", "ã…" ], "xz": ["", "ã—ゃん" ], "y<": ["", "â†" ], "y>": ["", "→" ], "y^": ["", "↑" ], "yf": ["", "ゆ" ], "yh": ["", "ゆã†" ], "yi": ["", "ã‚" ], "yj": ["", "ゆん" ], "yl": ["", "よん" ], "yn": ["", "ã‚„ã‚“" ], "yp": ["", "よã†" ], "yq": ["", "ã‚„ã„" ], "yr": ["", "よる" ], "yv": ["", "ゆã†" ], "yz": ["", "ã‚„ã‚“" ], "z.": ["", "ãš" ], "zc": ["", "ã–" ], "zd": ["", "ãœã‚“" ], "zf": ["", "ãœ" ], "zh": ["", "ãšã†" ], "zj": ["", "ãšã‚“" ], "zk": ["", "ã˜ã‚“" ], "zl": ["", "ãžã‚“" ], "zn": ["", "ã–ã‚“" ], "zp": ["", "ãžã†" ], "zq": ["", "ã–ã„" ], "zr": ["", "ã–ã‚‹" ], "zv": ["", "ã–ã„" ], "zw": ["", "ãœã„" ], "zx": ["", "ãœã„" ], "zyd": ["", "ã˜ã‡ã‚“" ], "zyh": ["", "ã˜ã‚…ã†" ], "zyj": ["", "ã˜ã‚…ã‚“" ], "zyl": ["", "ã˜ã‚‡ã‚“" ], "zyn": ["", "ã˜ã‚ƒã‚“" ], "zyp": ["", "ã˜ã‚‡ã†" ], "zyq": ["", "ã˜ã‚ƒã„" ], "zyw": ["", "ã˜ã‡ã„" ], "zyz": ["", "ã˜ã‚ƒã‚“" ], "zz": ["", "ã–ã‚“" ] } } } libskk-1.0.0/rules/azik/metadata.json0000664000076400007640000000024211675742075014501 00000000000000{ "name": "AZIK", "description": "Extended romaji input method developed by Kiyoshi Kimura " } libskk-1.0.0/rules/azik/keymap/0000775000076400007640000000000012016557043013363 500000000000000libskk-1.0.0/rules/azik/keymap/latin.json0000664000076400007640000000005511733747616015321 00000000000000{ "include": [ "default" ] } libskk-1.0.0/rules/azik/keymap/katakana.json0000664000076400007640000000021511733747713015761 00000000000000{ "include": [ "default" ], "define": { "keymap": { "[": "set-input-mode-hiragana" } } } libskk-1.0.0/rules/azik/keymap/hankaku-katakana.json0000664000076400007640000000021611734020537017367 00000000000000{ "include": [ "default" ], "define": { "keymap": { "\\": "set-input-mode-hiragana" } } } libskk-1.0.0/rules/azik/keymap/wide-latin.json0000664000076400007640000000005511733747624016246 00000000000000{ "include": [ "default" ] } libskk-1.0.0/rules/azik/keymap/hiragana.json0000664000076400007640000000021511733747657015767 00000000000000{ "include": [ "default" ], "define": { "keymap": { "[": "set-input-mode-katakana" } } } libskk-1.0.0/rules/azik/keymap/default.json0000664000076400007640000000020511733751620015621 00000000000000{ "include": [ "default/default" ], "define": { "keymap": { ":": "upper-;" } } } libskk-1.0.0/rules/trycode/0000775000076400007640000000000012016557043012610 500000000000000libskk-1.0.0/rules/trycode/rom-kana/0000775000076400007640000000000012016557043014315 500000000000000libskk-1.0.0/rules/trycode/rom-kana/default.json0000664000076400007640000032372411675742075016602 00000000000000{ "define": { "rom-kana": { "11": [ "", "â– " ], "21": [ "", "â– " ], "31": [ "", "â– " ], "41": [ "", "â– " ], "51": [ "", "â– " ], "61": [ "", "â– " ], "71": [ "", "â– " ], "81": [ "", "â– " ], "91": [ "", "â– " ], "01": [ "", "â– " ], "'1": [ "", "ヮ" ], ",1": [ "", "ヰ" ], ".1": [ "", "ヱ" ], "p1": [ "", "ヵ" ], "y1": [ "", "ヶ" ], "f1": [ "", "è«‹" ], "g1": [ "", "境" ], "c1": [ "", "ç³»" ], "r1": [ "", "探" ], "l1": [ "", "象" ], "a1": [ "", "ゎ" ], "o1": [ "", "ã‚" ], "e1": [ "", "ã‚‘" ], "u1": [ "", "æ²–" ], "i1": [ "", "縄" ], "d1": [ "", "ç››" ], "h1": [ "", "é©" ], "t1": [ "", "çª" ], "n1": [ "", "温" ], "s1": [ "", "æ•" ], ";1": [ "", "肺" ], "q1": [ "", "å®™" ], "j1": [ "", "泉" ], "k1": [ "", "ç½²" ], "x1": [ "", "奮" ], "b1": [ "", "ä¾" ], "m1": [ "", "繊" ], "w1": [ "", "借" ], "v1": [ "", "é ˆ" ], "z1": [ "", "訳" ], "12": [ "", "â– " ], "22": [ "", "â– " ], "32": [ "", "â– " ], "42": [ "", "â– " ], "52": [ "", "â– " ], "62": [ "", "â– " ], "72": [ "", "â– " ], "82": [ "", "â– " ], "92": [ "", "â– " ], "02": [ "", "â– " ], "'2": [ "", "丑" ], ",2": [ "", "臼" ], ".2": [ "", "å®´" ], "p2": [ "", "ç¸" ], "y2": [ "", "曳" ], "f2": [ "", "å°š" ], "g2": [ "", "è³€" ], "c2": [ "", "岸" ], "r2": [ "", "責" ], "l2": [ "", "æ¼" ], "a2": [ "", "æ–¼" ], "o2": [ "", "汚" ], "e2": [ "", "ä¹™" ], "u2": [ "", "ç©" ], "i2": [ "", "æ¨" ], "d2": [ "", "益" ], "h2": [ "", "æ´" ], "t2": [ "", "周" ], "n2": [ "", "域" ], "s2": [ "", "è’" ], ";2": [ "", "æ‹" ], "q2": [ "", "æš–" ], "j2": [ "", "誠" ], "k2": [ "", "縮" ], "x2": [ "", "è…¹" ], "b2": [ "", "ç¹”" ], "m2": [ "", "父" ], "w2": [ "", "æžš" ], "v2": [ "", "ä¹±" ], "z2": [ "", "香" ], "13": [ "", "â– " ], "23": [ "", "â– " ], "33": [ "", "â– " ], "43": [ "", "â– " ], "53": [ "", "â– " ], "63": [ "", "â– " ], "73": [ "", "â– " ], "83": [ "", "â– " ], "93": [ "", "â– " ], "03": [ "", "â– " ], "'3": [ "", "鬼" ], ",3": [ "", "虚" ], ".3": [ "", "ç‹­" ], "p3": [ "", "è„…" ], "y3": [ "", "驚" ], "f3": [ "", "舎" ], "g3": [ "", "å–œ" ], "c3": [ "", "å¹¹" ], "r3": [ "", "丘" ], "l3": [ "", "ç³–" ], "a3": [ "", "奇" ], "o3": [ "", "æ—¢" ], "e3": [ "", "èŠ" ], "u3": [ "", "å´" ], "i3": [ "", "享" ], "d3": [ "", "康" ], "h3": [ "", "å¾’" ], "t3": [ "", "景" ], "n3": [ "", "処" ], "s3": [ "", "ãœ" ], ";3": [ "", "届" ], "q3": [ "", "誕" ], "j3": [ "", "è–" ], "k3": [ "", "縦" ], "x3": [ "", "晩" ], "b3": [ "", "è­²" ], "m3": [ "", "ヘ" ], "w3": [ "", "模" ], "v3": [ "", "é™" ], "z3": [ "", "èµ°" ], "14": [ "", "â– " ], "24": [ "", "â– " ], "34": [ "", "â– " ], "44": [ "", "â– " ], "54": [ "", "â– " ], "64": [ "", "â– " ], "74": [ "", "â– " ], "84": [ "", "â– " ], "94": [ "", "â– " ], "04": [ "", "â– " ], "'4": [ "", "å­¤" ], ",4": [ "", "誇" ], ".4": [ "", "黄" ], "p4": [ "", "åŽ" ], "y4": [ "", "耕" ], "f4": [ "", "布" ], "g4": [ "", "苦" ], "c4": [ "", "圧" ], "r4": [ "", "æµ" ], "l4": [ "", "固" ], "a4": [ "", "å·§" ], "o4": [ "", "å…‹" ], "e4": [ "", "懇" ], "u4": [ "", "å›°" ], "i4": [ "", "æ˜" ], "d4": [ "", "邦" ], "h4": [ "", "舞" ], "t4": [ "", "雑" ], "n4": [ "", "æ¼¢" ], "s4": [ "", "ç·Š" ], ";4": [ "", "æ½®" ], "q4": [ "", "臓" ], "j4": [ "", "ä»" ], "k4": [ "", "å°º" ], "x4": [ "", "ç­" ], "b4": [ "", "æ¿€" ], "m4": [ "", "å¹²" ], "w4": [ "", "彦" ], "v4": [ "", "å‡" ], "z4": [ "", "åˆ" ], "15": [ "", "â– " ], "25": [ "", "â– " ], "35": [ "", "â– " ], "45": [ "", "â– " ], "55": [ "", "â– " ], "65": [ "", "â– " ], "75": [ "", "â– " ], "85": [ "", "â– " ], "95": [ "", "â– " ], "05": [ "", "â– " ], "'5": [ "", "奉" ], ",5": [ "", "æŸ" ], ".5": [ "", "貌" ], "p5": [ "", "åœ" ], "y5": [ "", "鋼" ], "f5": [ "", "å§¿" ], "g5": [ "", "çµ¶" ], "c5": [ "", "密" ], "r5": [ "", "秘" ], "l5": [ "", "押" ], "a5": [ "", "詞" ], "o5": [ "", "至" ], "e5": [ "", "èš•" ], "u5": [ "", "ç©€" ], "i5": [ "", "ç£" ], "d5": [ "", "衆" ], "h5": [ "", "節" ], "t5": [ "", "æ‰" ], "n5": [ "", "肉" ], "s5": [ "", "除" ], ";5": [ "", "俳" ], "q5": [ "", "é ‚" ], "j5": [ "", "染" ], "k5": [ "", "城" ], "x5": [ "", "é™›" ], "b5": [ "", "測" ], "m5": [ "", "è¡€" ], "w5": [ "", "æ•£" ], "v5": [ "", "笑" ], "z5": [ "", "å¼" ], "16": [ "", "â– " ], "26": [ "", "â– " ], "36": [ "", "â– " ], "46": [ "", "â– " ], "56": [ "", "â– " ], "66": [ "", "â– " ], "76": [ "", "â– " ], "86": [ "", "â– " ], "96": [ "", "â– " ], "06": [ "", "â– " ], "'6": [ "", "æ¹–" ], ",6": [ "", "礼" ], ".6": [ "", "è‘—" ], "p6": [ "", "ç§»" ], "y6": [ "", "郷" ], "f6": [ "", "æ¯" ], "g6": [ "", "è©©" ], "c6": [ "", "拾" ], "r6": [ "", "æš‘" ], "l6": [ "", "昭" ], "a6": [ "", "償" ], "o6": [ "", "欧" ], "e6": [ "", "努" ], "u6": [ "", "底" ], "i6": [ "", "亜" ], "d6": [ "", "悲" ], "h6": [ "", "柱" ], "t6": [ "", "笛" ], "n6": [ "", "ç«¥" ], "s6": [ "", "ç•‘" ], ";6": [ "", "ç¦" ], "q6": [ "", "ç¡" ], "j6": [ "", "樹" ], "k6": [ "", "å¥" ], "x6": [ "", "礎" ], "b6": [ "", "皇" ], "m6": [ "", "åƒ" ], "w6": [ "", "è‚¥" ], "v6": [ "", "沿" ], "z6": [ "", "å¸" ], "17": [ "", "â– " ], "27": [ "", "â– " ], "37": [ "", "â– " ], "47": [ "", "â– " ], "57": [ "", "â– " ], "67": [ "", "â– " ], "77": [ "", "â– " ], "87": [ "", "â– " ], "97": [ "", "â– " ], "07": [ "", "â– " ], "'7": [ "", "端" ], ",7": [ "", "飾" ], ".7": [ "", "郵" ], "p7": [ "", "å¡©" ], "y7": [ "", "群" ], "f7": [ "", "é³´" ], "g7": [ "", "星" ], "c7": [ "", "æž" ], "r7": [ "", "é·" ], "l7": [ "", "宣" ], "a7": [ "", "ç´…" ], "o7": [ "", "å‚·" ], "e7": [ "", "豪" ], "u7": [ "", "ç¶­" ], "i7": [ "", "脱" ], "d7": [ "", "é¼ " ], "h7": [ "", "曹" ], "t7": [ "", "å¥" ], "n7": [ "", "å°Š" ], "s7": [ "", "刀" ], ";7": [ "", "çµ¹" ], "q7": [ "", "被" ], "j7": [ "", "æº" ], "k7": [ "", "願" ], "x7": [ "", "臨" ], "b7": [ "", "胸" ], "m7": [ "", "è¬" ], "w7": [ "", "æ" ], "v7": [ "", "俵" ], "z7": [ "", "ç°" ], "18": [ "", "â– " ], "28": [ "", "â– " ], "38": [ "", "â– " ], "48": [ "", "â– " ], "58": [ "", "â– " ], "68": [ "", "â– " ], "78": [ "", "â– " ], "88": [ "", "â– " ], "98": [ "", "â– " ], "08": [ "", "â– " ], "'8": [ "", "刷" ], ",8": [ "", "寿" ], ".8": [ "", "é †" ], "p8": [ "", "å±" ], "y8": [ "", "ç ‚" ], "f8": [ "", "庶" ], "g8": [ "", "ç²§" ], "c8": [ "", "丈" ], "r8": [ "", "ç§°" ], "l8": [ "", "è’¸" ], "a8": [ "", "舗" ], "o8": [ "", "å……" ], "e8": [ "", "å–«" ], "u8": [ "", "è…•" ], "i8": [ "", "æš´" ], "d8": [ "", "冬" ], "h8": [ "", "è²" ], "t8": [ "", "犬" ], "n8": [ "", "森" ], "s8": [ "", "æž—" ], ";8": [ "", "批" ], "q8": [ "", "æ…¶" ], "j8": [ "", "渉" ], "k8": [ "", "竜" ], "x8": [ "", "ä½µ" ], "b8": [ "", "敬" ], "m8": [ "", "舌" ], "w8": [ "", "敵" ], "v8": [ "", "è²§" ], "z8": [ "", "é–£" ], "19": [ "", "â– " ], "29": [ "", "â– " ], "39": [ "", "â– " ], "49": [ "", "â– " ], "59": [ "", "â– " ], "69": [ "", "â– " ], "79": [ "", "â– " ], "89": [ "", "â– " ], "99": [ "", "â– " ], "09": [ "", "â– " ], "'9": [ "", "震" ], ",9": [ "", "扱" ], ".9": [ "", "片" ], "p9": [ "", "札" ], "y9": [ "", "乞" ], "f9": [ "", "æš—" ], "g9": [ "", "乃" ], "c9": [ "", "如" ], "r9": [ "", "å°¼" ], "l9": [ "", "帳" ], "a9": [ "", "輪" ], "o9": [ "", "倒" ], "e9": [ "", "æ“" ], "u9": [ "", "柄" ], "i9": [ "", "é­š" ], "d9": [ "", "馬" ], "h9": [ "", "æ­Œ" ], "t9": [ "", "çµµ" ], "n9": [ "", "弓" ], "s9": [ "", "æ™´" ], ";9": [ "", "å°±" ], "q9": [ "", "é§" ], "j9": [ "", "æ®" ], "k9": [ "", "丹" ], "x9": [ "", "é®®" ], "b9": [ "", "ç©´" ], "m9": [ "", "銭" ], "w9": [ "", "銅" ], "v9": [ "", "墓" ], "z9": [ "", "机" ], "10": [ "", "â– " ], "20": [ "", "â– " ], "30": [ "", "â– " ], "40": [ "", "â– " ], "50": [ "", "â– " ], "60": [ "", "â– " ], "70": [ "", "â– " ], "80": [ "", "â– " ], "90": [ "", "â– " ], "00": [ "", "â– " ], "'0": [ "", "弘" ], ",0": [ "", "ç—›" ], ".0": [ "", "票" ], "p0": [ "", "訴" ], "y0": [ "", "éº" ], "f0": [ "", "欄" ], "g0": [ "", "é¾" ], "c0": [ "", "ç•¥" ], "r0": [ "", "æ…®" ], "l0": [ "", "ç´¯" ], "a0": [ "", "則" ], "o0": [ "", "å­˜" ], "e0": [ "", "å€" ], "u0": [ "", "牛" ], "i0": [ "", "釈" ], "d0": [ "", "麦" ], "h0": [ "", "弟" ], "t0": [ "", "å…„" ], "n0": [ "", "姉" ], "s0": [ "", "妹" ], ";0": [ "", "ç¶±" ], "q0": [ "", "潟" ], "j0": [ "", "創" ], "k0": [ "", "背" ], "x0": [ "", "çš®" ], "b0": [ "", "å­" ], "m0": [ "", "祖" ], "w0": [ "", "燃" ], "v0": [ "", "é " ], "z0": [ "", "è²´" ], "1'": [ "", "ヲ" ], "2'": [ "", "å“€" ], "3'": [ "", "暇" ], "4'": [ "", "å•“" ], "5'": [ "", "把" ], "6'": [ "", "é…¸" ], "7'": [ "", "昼" ], "8'": [ "", "ç‚­" ], "9'": [ "", "稲" ], "0'": [ "", "湯" ], "''": [ "", "æžœ" ], ",'": [ "", "告" ], ".'": [ "", "ç­–" ], "p'": [ "", "首" ], "y'": [ "", "è¾²" ], "f'": [ "", "æ­©" ], "g'": [ "", "回" ], "c'": [ "", "å‹™" ], "r'": [ "", "å³¶" ], "l'": [ "", "é–‹" ], "a'": [ "", "å ±" ], "o'": [ "", "ç´™" ], "e'": [ "", "館" ], "u'": [ "", "夜" ], "i'": [ "", "ä½" ], "d'": [ "", "給" ], "h'": [ "", "å“¡" ], "t'": [ "", "ã©" ], "n'": [ "", "代" ], "s'": [ "", "レ" ], ";'": [ "", "欠" ], "q'": [ "", "å¤" ], "j'": [ "", "å½¼" ], "k'": [ "", "妻" ], "x'": [ "", "å–„" ], "b'": [ "", "相" ], "m'": [ "", "å®¶" ], "w'": [ "", "çš„" ], "v'": [ "", "対" ], "z'": [ "", "æ­´" ], "1,": [ "", "ã‚¥" ], "2,": [ "", "逢" ], "3,": [ "", "牙" ], "4,": [ "", "掲" ], "5,": [ "", "ä¼" ], "6,": [ "", "貿" ], "7,": [ "", "æœ" ], "8,": [ "", "ç•°" ], "9,": [ "", "隣" ], "0,": [ "", "æ—§" ], "',": [ "", "概" ], ",,": [ "", "è²·" ], ".,": [ "", "詳" ], "p,": [ "", "ç”±" ], "y,": [ "", "æ­»" ], "f,": [ "", "ã‚­" ], "g,": [ "", "ã›" ], "c,": [ "", "区" ], "r,": [ "", "百" ], "l,": [ "", "木" ], "a,": [ "", "音" ], "o,": [ "", "王" ], "e,": [ "", "放" ], "u,": [ "", "々" ], "i,": [ "", "応" ], "d,": [ "", "分" ], "h,": [ "", "よ" ], "t,": [ "", "ル" ], "n,": [ "", "åƒ" ], "s,": [ "", "ã‚¢" ], ";,": [ "", "財" ], "q,": [ "", "é‡" ], "j,": [ "", "è£" ], "k,": [ "", "å±…" ], "x,": [ "", "å·®" ], "b,": [ "", "付" ], "m,": [ "", "プ" ], "w,": [ "", "ã°" ], "v,": [ "", "ュ" ], "z,": [ "", "作" ], "1.": [ "", "ヴ" ], "2.": [ "", "å®›" ], "3.": [ "", "壊" ], "4.": [ "", "æº" ], "5.": [ "", "é¿" ], "6.": [ "", "æ”»" ], "7.": [ "", "焼" ], "8.": [ "", "é—˜" ], "9.": [ "", "奈" ], "0.": [ "", "夕" ], "'.": [ "", "æ­¦" ], ",.": [ "", "残" ], "..": [ "", "両" ], "p.": [ "", "在" ], "y.": [ "", "!" ], "f.": [ "", "ã‚„" ], "g.": [ "", "出" ], "c.": [ "", "ã‚¿" ], "r.": [ "", "手" ], "l.": [ "", "ä¿" ], "a.": [ "", "案" ], "o.": [ "", "曲" ], "e.": [ "", "情" ], "u.": [ "", "引" ], "i.": [ "", "è·" ], "d.": [ "", "7" ], "h.": [ "", "ã‹" ], "t.": [ "", "(" ], "n.": [ "", "ト" ], "s.": [ "", "れ" ], ";.": [ "", "従" ], "q.": [ "", "骨" ], "j.": [ "", "厚" ], "k.": [ "", "é¡”" ], "x.": [ "", "é‡" ], "b.": [ "", "内" ], "m.": [ "", "å·¥" ], "w.": [ "", "å…«" ], "v.": [ "", "テ" ], "z.": [ "", "見" ], "1p": [ "", "ヂ" ], "2p": [ "", "囲" ], "3p": [ "", "較" ], "4p": [ "", "劇" ], "5p": [ "", "å‘" ], "6p": [ "", "盤" ], "7p": [ "", "帯" ], "8p": [ "", "易" ], "9p": [ "", "速" ], "0p": [ "", "æ‹¡" ], "'p": [ "", "風" ], ",p": [ "", "階" ], ".p": [ "", "能" ], "pp": [ "", "è«–" ], "yp": [ "", "増" ], "fp": [ "", "コ" ], "gp": [ "", "å±±" ], "cp": [ "", "者" ], "rp": [ "", "発" ], "lp": [ "", "ç«‹" ], "ap": [ "", "横" ], "op": [ "", "興" ], "ep": [ "", "刺" ], "up": [ "", "å´" ], "ip": [ "", "覚" ], "dp": [ "", "ã" ], "hp": [ "", "ã£" ], "tp": [ "", "æ—¥" ], "np": [ "", "国" ], "sp": [ "", "二" ], ";p": [ "", "é©" ], "qp": [ "", "類" ], "jp": [ "", "御" ], "kp": [ "", "宇" ], "xp": [ "", "推" ], "bp": [ "", "ä¹" ], "mp": [ "", "å" ], "wp": [ "", "å·" ], "vp": [ "", "機" ], "zp": [ "", "ãƒ" ], "1y": [ "", "ヅ" ], "2y": [ "", "庵" ], "3y": [ "", "寒" ], "4y": [ "", "è³¢" ], "5y": [ "", "è—©" ], "6y": [ "", "æ±½" ], "7y": [ "", "æ›" ], "8y": [ "", "å»¶" ], "9y": [ "", "雪" ], "0y": [ "", "互" ], "'y": [ "", "ç´°" ], ",y": [ "", "å¤" ], ".y": [ "", "利" ], "py": [ "", "ペ" ], "yy": [ "", "ゃ" ], "fy": [ "", "ナ" ], "gy": [ "", "金" ], "cy": [ "", "マ" ], "ry": [ "", "å’Œ" ], "ly": [ "", "女" ], "ay": [ "", "å´Ž" ], "oy": [ "", "白" ], "ey": [ "", "ã" ], "uy": [ "", "官" ], "iy": [ "", "çƒ" ], "dy": [ "", "上" ], "hy": [ "", "ã" ], "ty": [ "", "8" ], "ny": [ "", "ãˆ" ], "sy": [ "", "å¹´" ], ";y": [ "", "æ¯" ], "qy": [ "", "奥" ], "jy": [ "", "å› " ], "ky": [ "", "é…’" ], "xy": [ "", "伸" ], "by": [ "", "サ" ], "my": [ "", "建" ], "wy": [ "", "パ" ], "vy": [ "", "第" ], "zy": [ "", "å…¥" ], "1f": [ "", "ç°¡" ], "2f": [ "", "å¾´" ], "3f": [ "", "触" ], "4f": [ "", "å®—" ], "5f": [ "", "æ¤" ], "6f": [ "", "é¼»" ], "7f": [ "", "ç´¢" ], "8f": [ "", "å°„" ], "9f": [ "", "æ¿" ], "0f": [ "", "æ…¢" ], "'f": [ "", "害" ], ",f": [ "", "賃" ], ".f": [ "", "æ•´" ], "pf": [ "", "軽" ], "yf": [ "", "è©•" ], "ff": [ "", "ä½" ], "gf": [ "", "法" ], "cf": [ "", "æ•°" ], "rf": [ "", "郎" ], "lf": [ "", "談" ], "af": [ "", "æœ" ], "of": [ "", "声" ], "ef": [ "", "ä»»" ], "uf": [ "", "検" ], "if": [ "", "豊" ], "df": [ "", "美" ], "hf": [ "", "題" ], "tf": [ "", "井" ], "nf": [ "", "æ´‹" ], "sf": [ "", "実" ], ";f": [ "", "爆" ], "qf": [ "", "仲" ], "jf": [ "", "茶" ], "kf": [ "", "率" ], "xf": [ "", "比" ], "bf": [ "", "昔" ], "mf": [ "", "短" ], "wf": [ "", "岩" ], "vf": [ "", "å·¨" ], "zf": [ "", "æ•—" ], "1g": [ "", "承" ], "2g": [ "", "ç« " ], "3g": [ "", "候" ], "4g": [ "", "途" ], "5g": [ "", "複" ], "6g": [ "", "æ°·" ], "7g": [ "", "冊" ], "8g": [ "", "需" ], "9g": [ "", "è©‘" ], "0g": [ "", "è¿·" ], "'g": [ "", "æ’ƒ" ], ",g": [ "", "折" ], ".g": [ "", "追" ], "pg": [ "", "隊" ], "yg": [ "", "è§’" ], "fg": [ "", "接" ], "gg": [ "", "å‚™" ], "cg": [ "", "最" ], "rg": [ "", "急" ], "lg": [ "", "験" ], "ag": [ "", "変" ], "og": [ "", "審" ], "eg": [ "", "改" ], "ug": [ "", "昇" ], "ig": [ "", "芸" ], "dg": [ "", "宿" ], "hg": [ "", "制" ], "tg": [ "", "集" ], "ng": [ "", "安" ], "sg": [ "", "ç”»" ], ";g": [ "", "陽" ], "qg": [ "", "æ§‹" ], "jg": [ "", "æ—…" ], "kg": [ "", "æ–½" ], "xg": [ "", "曜" ], "bg": [ "", "é " ], "mg": [ "", "ã‚©" ], "wg": [ "", "å°†" ], "vg": [ "", "ãž" ], "zg": [ "", "塚" ], "1c": [ "", "å¿«" ], "2c": [ "", "å¦" ], "3c": [ "", "æ­¯" ], "4c": [ "", "ç­†" ], "5c": [ "", "里" ], "6c": [ "", "æ²¹" ], "7c": [ "", "çš¿" ], "8c": [ "", "輯" ], "9c": [ "", "è“„" ], "0c": [ "", "戻" ], "'c": [ "", "æµ´" ], ",c": [ "", "ç§€" ], ".c": [ "", "糸" ], "pc": [ "", "春" ], "yc": [ "", "幸" ], "fc": [ "", "記" ], "gc": [ "", "æœ" ], "cc": [ "", "知" ], "rc": [ "", "ワ" ], "lc": [ "", "é€" ], "ac": [ "", "é™" ], "oc": [ "", "ç ”" ], "ec": [ "", "労" ], "uc": [ "", "çµ±" ], "ic": [ "", "å½¹" ], "dc": [ "", "ã‚»" ], "hc": [ "", "é‹" ], "tc": [ "", "ツ" ], "nc": [ "", "特" ], "sc": [ "", "è°·" ], ";c": [ "", "ã‚¡" ], "qc": [ "", "å°Ž" ], "jc": [ "", "èª" ], "kc": [ "", "å¥" ], "xc": [ "", "å°¾" ], "bc": [ "", "åº" ], "mc": [ "", "振" ], "wc": [ "", "ç·´" ], "vc": [ "", "念" ], "zc": [ "", "åƒ" ], "1r": [ "", "包" ], "2r": [ "", "ç´" ], "3r": [ "", "é ¼" ], "4r": [ "", "逃" ], "5r": [ "", "å¯" ], "6r": [ "", "ç·‘" ], "7r": [ "", "è³›" ], "8r": [ "", "瞬" ], "9r": [ "", "貯" ], "0r": [ "", "羊" ], "'r": [ "", "ç©" ], ",r": [ "", "程" ], ".r": [ "", "æ–­" ], "pr": [ "", "低" ], "yr": [ "", "減" ], "fr": [ "", "モ" ], "gr": [ "", "資" ], "cr": [ "", "士" ], "rr": [ "", "è²»" ], "lr": [ "", "ã‚£" ], "ar": [ "", "逆" ], "or": [ "", "ä¼" ], "er": [ "", "ç²¾" ], "ur": [ "", "ã–" ], "ir": [ "", "å°" ], "dr": [ "", "神" ], "hr": [ "", "ã³" ], "tr": [ "", "打" ], "nr": [ "", "勤" ], "sr": [ "", "ャ" ], ";r": [ "", "殺" ], "qr": [ "", "è² " ], "jr": [ "", "何" ], "kr": [ "", "å±¥" ], "xr": [ "", "般" ], "br": [ "", "耳" ], "mr": [ "", "授" ], "wr": [ "", "版" ], "vr": [ "", "効" ], "zr": [ "", "視" ], "1l": [ "", "å”±" ], "2l": [ "", "æš®" ], "3l": [ "", "憲" ], "4l": [ "", "勉" ], "5l": [ "", "罪" ], "6l": [ "", "芽" ], "7l": [ "", "飲" ], "8l": [ "", "盾" ], "9l": [ "", "虫" ], "0l": [ "", "æ³³" ], "'l": [ "", "æ•…" ], ",l": [ "", "鉱" ], ".l": [ "", "æ" ], "pl": [ "", "å…" ], "yl": [ "", "æ•·" ], "fl": [ "", "ç„¡" ], "gl": [ "", "石" ], "cl": [ "", "屋" ], "rl": [ "", "è§£" ], "ll": [ "", "募" ], "al": [ "", "令" ], "ol": [ "", "é•" ], "el": [ "", "装" ], "ul": [ "", "ç„¶" ], "il": [ "", "確" ], "dl": [ "", "優" ], "hl": [ "", "å…¬" ], "tl": [ "", "å“" ], "nl": [ "", "語" ], "sl": [ "", "æ¼”" ], ";l": [ "", "券" ], "ql": [ "", "悪" ], "jl": [ "", "ç§‹" ], "kl": [ "", "éž" ], "xl": [ "", "便" ], "bl": [ "", "示" ], "ml": [ "", "å³" ], "wl": [ "", "難" ], "vl": [ "", "æ™®" ], "zl": [ "", "辺" ], "1a": [ "", "ã±" ], "2a": [ "", "æ…°" ], "3a": [ "", "我" ], "4a": [ "", "å…¼" ], "5a": [ "", "è±" ], "6a": [ "", "桜" ], "7a": [ "", "瀬" ], "8a": [ "", "é³¥" ], "9a": [ "", "催" ], "0a": [ "", "éšœ" ], "'a": [ "", "åŽ" ], ",a": [ "", "éš›" ], ".a": [ "", "太" ], "pa": [ "", "園" ], "ya": [ "", "船" ], "fa": [ "", "中" ], "ga": [ "", "ス" ], "ca": [ "", "ã‚‚" ], "ra": [ "", "ãŠ" ], "la": [ "", "定" ], "aa": [ "", "種" ], "oa": [ "", "岡" ], "ea": [ "", "çµ" ], "ua": [ "", "進" ], "ia": [ "", "真" ], "da": [ "", "3" ], "ha": [ "", "ã¨" ], "ta": [ "", "→" ], "na": [ "", "ã¦" ], "sa": [ "", "ã‚‹" ], ";a": [ "", "ヒ" ], "qa": [ "", "江" ], "ja": [ "", "別" ], "ka": [ "", "考" ], "xa": [ "", "権" ], "ba": [ "", "ッ" ], "ma": [ "", "人" ], "wa": [ "", "三" ], "va": [ "", "京" ], "za": [ "", "ã¡" ], "1o": [ "", "ã´" ], "2o": [ "", "為" ], "3o": [ "", "掛" ], "4o": [ "", "嫌" ], "5o": [ "", "ç´" ], "6o": [ "", "å…¸" ], "7o": [ "", "åš" ], "8o": [ "", "ç­‹" ], "9o": [ "", "å¿ " ], "0o": [ "", "ä¹³" ], "'o": [ "", "è‹¥" ], ",o": [ "", "雄" ], ".o": [ "", "査" ], "po": [ "", "ãµ" ], "yo": [ "", "賞" ], "fo": [ "", "ã‚" ], "go": [ "", "ラ" ], "co": [ "", "æ±" ], "ro": [ "", "生" ], "lo": [ "", "ã‚" ], "ao": [ "", "å®…" ], "oo": [ "", "熟" ], "eo": [ "", "å¾…" ], "uo": [ "", "å–" ], "io": [ "", "ç§‘" ], "do": [ "", "ー" ], "ho": [ "", "ã—" ], "to": [ "", "ãŸ" ], "no": [ "", "一" ], "so": [ "", "ãŒ" ], ";o": [ "", "åŠ" ], "qo": [ "", "ä¹…" ], "jo": [ "", "蔵" ], "ko": [ "", "æ—©" ], "xo": [ "", "造" ], "bo": [ "", "ロ" ], "mo": [ "", "ク" ], "wo": [ "", "万" ], "vo": [ "", "æ–¹" ], "zo": [ "", "フ" ], "1e": [ "", "ã·" ], "2e": [ "", "é™°" ], "3e": [ "", "æ•¢" ], "4e": [ "", "é¡•" ], "5e": [ "", "æ" ], "6e": [ "", "採" ], "7e": [ "", "謡" ], "8e": [ "", "希" ], "9e": [ "", "ä»" ], "0e": [ "", "察" ], "'e": [ "", "指" ], ",e": [ "", "æ°" ], ".e": [ "", "丸" ], "pe": [ "", "ç¶š" ], "ye": [ "", "ã‚§" ], "fe": [ "", "ã†" ], "ge": [ "", "4" ], "ce": [ "", ")" ], "re": [ "", "å" ], "le": [ "", "リ" ], "ae": [ "", "æ–™" ], "oe": [ "", "土" ], "ee": [ "", "æ´»" ], "ue": [ "", "ã­" ], "ie": [ "", "å‚" ], "de": [ "", "ã„" ], "he": [ "", "ã€" ], "te": [ "", "ã®" ], "ne": [ "", "5" ], "se": [ "", "1" ], ";e": [ "", "投" ], "qe": [ "", "義" ], "je": [ "", "ç®—" ], "ke": [ "", "åŠ" ], "xe": [ "", "県" ], "be": [ "", "ã‚“" ], "me": [ "", "ã¾" ], "we": [ "", "ン" ], "ve": [ "", "ã¤" ], "ze": [ "", "å››" ], "1u": [ "", "ãº" ], "2u": [ "", "éš " ], "3u": [ "", "甘" ], "4u": [ "", "牽" ], "5u": [ "", "憤" ], "6u": [ "", "å›" ], "7u": [ "", "ç´”" ], "8u": [ "", "副" ], "9u": [ "", "盟" ], "0u": [ "", "標" ], "'u": [ "", "ãŽ" ], ",u": [ "", "æ ¼" ], ".u": [ "", "次" ], "pu": [ "", "ç¿’" ], "yu": [ "", "ç«" ], "fu": [ "", "ã‚" ], "gu": [ "", "ã“" ], "cu": [ "", "6" ], "ru": [ "", "å­¦" ], "lu": [ "", "月" ], "au": [ "", "å—" ], "ou": [ "", "予" ], "eu": [ "", "切" ], "uu": [ "", "育" ], "iu": [ "", "æ± " ], "du": [ "", "。" ], "hu": [ "", "â—†" ], "tu": [ "", "0" ], "nu": [ "", "・" ], "su": [ "", "2" ], ";u": [ "", "è¾¼" ], "qu": [ "", "æ²¢" ], "ju": [ "", "è»" ], "ku": [ "", "é’" ], "xu": [ "", "清" ], "bu": [ "", "ã‘" ], "mu": [ "", "イ" ], "wu": [ "", "ã™" ], "vu": [ "", "é›»" ], "zu": [ "", "地" ], "1i": [ "", "ã½" ], "2i": [ "", "胃" ], "3i": [ "", "æ‚£" ], "4i": [ "", "厳" ], "5i": [ "", "弊" ], "6i": [ "", "犯" ], "7i": [ "", "ä½™" ], "8i": [ "", "å €" ], "9i": [ "", "è‚©" ], "0i": [ "", "療" ], "'i": [ "", "æ€" ], ",i": [ "", "è¡“" ], ".i": [ "", "広" ], "pi": [ "", "é–€" ], "yi": [ "", "èž" ], "fi": [ "", "本" ], "gi": [ "", "ã•" ], "ci": [ "", "ら" ], "ri": [ "", "高" ], "li": [ "", "ã‚·" ], "ai": [ "", "英" ], "oi": [ "", "ボ" ], "ei": [ "", "加" ], "ui": [ "", "室" ], "ii": [ "", "å°‘" ], "di": [ "", "ã§" ], "hi": [ "", "ã¯" ], "ti": [ "", "ã«" ], "ni": [ "", "ãª" ], "si": [ "", "ã‚’" ], ";i": [ "", "転" ], "qi": [ "", "空" ], "ji": [ "", "性" ], "ki": [ "", "使" ], "xi": [ "", "ç´š" ], "bi": [ "", "業" ], "mi": [ "", "時" ], "wi": [ "", "「" ], "vi": [ "", "é•·" ], "zi": [ "", "ã¿" ], "1d": [ "", "朱" ], "2d": [ "", "é…" ], "3d": [ "", "甲" ], "4d": [ "", "致" ], "5d": [ "", "汎" ], "6d": [ "", "æ——" ], "7d": [ "", "è¡°" ], "8d": [ "", "滋" ], "9d": [ "", "沈" ], "0d": [ "", "å·±" ], "'d": [ "", "ç—…" ], ",d": [ "", "終" ], ".d": [ "", "èµ·" ], "pd": [ "", "è·¯" ], "yd": [ "", "è¶Š" ], "fd": [ "", "ã‚€" ], "gd": [ "", "å—" ], "cd": [ "", "原" ], "rd": [ "", "é§…" ], "ld": [ "", "物" ], "ad": [ "", "å‹¢" ], "od": [ "", "å¿…" ], "ed": [ "", "講" ], "ud": [ "", "æ„›" ], "id": [ "", "管" ], "dd": [ "", "è¦" ], "hd": [ "", "設" ], "td": [ "", "æ°´" ], "nd": [ "", "è—¤" ], "sd": [ "", "有" ], ";d": [ "", "ç´ " ], "qd": [ "", "å…µ" ], "jd": [ "", "å°‚" ], "kd": [ "", "親" ], "xd": [ "", "寮" ], "bd": [ "", "ホ" ], "md": [ "", "å…±" ], "wd": [ "", "ブ" ], "vd": [ "", "å¹³" ], "zd": [ "", "楽" ], "1h": [ "", "陣" ], "2h": [ "", "é¶´" ], "3h": [ "", "鹿" ], "4h": [ "", "貨" ], "5h": [ "", "絡" ], "6h": [ "", "æ³£" ], "7h": [ "", "趨" ], "8h": [ "", "湿" ], "9h": [ "", "æ·»" ], "0h": [ "", "å·²" ], "'h": [ "", "常" ], ",h": [ "", "å¼µ" ], ".h": [ "", "è–¬" ], "ph": [ "", "防" ], "yh": [ "", "å¾—" ], "fh": [ "", "ケ" ], "gh": [ "", "å¼" ], "ch": [ "", "戦" ], "rh": [ "", "é–¢" ], "lh": [ "", "ç”·" ], "ah": [ "", "輸" ], "oh": [ "", "å½¢" ], "eh": [ "", "助" ], "uh": [ "", "â—‡" ], "ih": [ "", "æµ" ], "dh": [ "", "連" ], "hh": [ "", "鉄" ], "th": [ "", "æ•™" ], "nh": [ "", "力" ], "sh": [ "", "ベ" ], ";h": [ "", "毛" ], "qh": [ "", "æ°¸" ], "jh": [ "", "申" ], "kh": [ "", "袋" ], "xh": [ "", "良" ], "bh": [ "", "ç§" ], "mh": [ "", "ã‚´" ], "wh": [ "", "æ¥" ], "vh": [ "", "ä¿¡" ], "zh": [ "", "åˆ" ], "1t": [ "", "眼" ], "2t": [ "", "ç¹" ], "3t": [ "", "誌" ], "4t": [ "", "æ‹›" ], "5t": [ "", "å­£" ], "6t": [ "", "æ•‘" ], "7t": [ "", "åž‚" ], "8t": [ "", "甚" ], "9t": [ "", "å¾¹" ], "0t": [ "", "å·³" ], "'t": [ "", "寺" ], ",t": [ "", "質" ], ".t": [ "", "ã¥" ], "pt": [ "", "港" ], "yt": [ "", "æ¡" ], "ft": [ "", "話" ], "gt": [ "", "座" ], "ct": [ "", "ç·š" ], "rt": [ "", "ダ" ], "lt": [ "", "æ©‹" ], "at": [ "", "基" ], "ot": [ "", "好" ], "et": [ "", "味" ], "ut": [ "", "å®" ], "it": [ "", "争" ], "dt": [ "", "デ" ], "ht": [ "", "ç¾" ], "tt": [ "", "エ" ], "nt": [ "", "ä»–" ], "st": [ "", "度" ], ";t": [ "", "ç­‰" ], "qt": [ "", "æµ…" ], "jt": [ "", "é ƒ" ], "kt": [ "", "è½" ], "xt": [ "", "命" ], "bt": [ "", "æ‘" ], "mt": [ "", "ガ" ], "wt": [ "", "製" ], "vt": [ "", "æ ¡" ], "zt": [ "", "ã”" ], "1n": [ "", "執" ], "2n": [ "", "ç´¹" ], "3n": [ "", "夢" ], "4n": [ "", "å¸" ], "5n": [ "", "阿" ], "6n": [ "", "é¡" ], "7n": [ "", "粋" ], "8n": [ "", "è·" ], "9n": [ "", "爪" ], "0n": [ "", "å·´" ], "'n": [ "", "åœ" ], ",n": [ "", "é ˜" ], ".n": [ "", "容" ], "pn": [ "", "玉" ], "yn": [ "", "å³" ], "fn": [ "", "ã¹" ], "gn": [ "", "æ°‘" ], "cn": [ "", "ソ" ], "rn": [ "", "点" ], "ln": [ "", "é‡" ], "an": [ "", "è¶³" ], "on": [ "", "è‰" ], "en": [ "", "築" ], "un": [ "", "観" ], "in": [ "", "言" ], "dn": [ "", "車" ], "hn": [ "", "æˆ" ], "tn": [ "", "天" ], "nn": [ "", "世" ], "sn": [ "", "æ–‡" ], ";n": [ "", "æ¿" ], "qn": [ "", "客" ], "jn": [ "", "師" ], "kn": [ "", "税" ], "xn": [ "", "飛" ], "bn": [ "", "ノ" ], "mn": [ "", "完" ], "wn": [ "", "é‡" ], "vn": [ "", "ç´„" ], "zn": [ "", "å„" ], "1s": [ "", "å²³" ], "2s": [ "", "刑" ], "3s": [ "", "å¼±" ], "4s": [ "", "雲" ], "5s": [ "", "窓" ], "6s": [ "", "訓" ], "7s": [ "", "寸" ], "8s": [ "", "çž³" ], "9s": [ "", "é™¶" ], "0s": [ "", "祭" ], "'s": [ "", "æ²³" ], ",s": [ "", "ç½®" ], ".s": [ "", "ä¾›" ], "ps": [ "", "試" ], "ys": [ "", "席" ], "fs": [ "", "期" ], "gs": [ "", "ゾ" ], "cs": [ "", "æ­³" ], "rs": [ "", "å¼·" ], "ls": [ "", "ä¿‚" ], "as": [ "", "婦" ], "os": [ "", "段" ], "es": [ "", "è¡›" ], "us": [ "", "é¡" ], "is": [ "", "渋" ], "ds": [ "", "主" ], "hs": [ "", "映" ], "ts": [ "", "書" ], "ns": [ "", "å¯" ], "ss": [ "", "ã¸" ], ";s": [ "", "ä¼" ], "qs": [ "", "庭" ], "js": [ "", "課" ], "ks": [ "", "ç€" ], "xs": [ "", "å‚" ], "bs": [ "", "è¿‘" ], "ms": [ "", "外" ], "ws": [ "", "ç±³" ], "vs": [ "", "ョ" ], "zs": [ "", "å…‰" ], "1;": [ "", "ã" ], "2;": [ "", "熊" ], "3;": [ "", "瓦" ], "4;": [ "", "幕" ], "5;": [ "", "梨" ], "6;": [ "", "呼" ], "7;": [ "", "å¹…" ], "8;": [ "", "æ­“" ], "9;": [ "", "功" ], "0;": [ "", "ç›—" ], "';": [ "", "å¾³" ], ",;": [ "", "渡" ], ".;": [ "", "守" ], "p;": [ "", "ç™»" ], "y;": [ "", "退" ], "f;": [ "", "店" ], "g;": [ "", "æŒ" ], "c;": [ "", "町" ], "r;": [ "", "所" ], "l;": [ "", "ã»" ], "a;": [ "", "ä»¶" ], "o;": [ "", "å‹" ], "e;": [ "", "å’" ], "u;": [ "", "åˆ" ], "i;": [ "", "æ…£" ], "d;": [ "", "行" ], "h;": [ "", "ド" ], "t;": [ "", "円" ], "n;": [ "", "å°" ], "s;": [ "", "ジ" ], ";;": [ "", "ヨ" ], "q;": [ "", "誤" ], "j;": [ "", "証" ], "k;": [ "", "å«" ], "x;": [ "", "%" ], "b;": [ "", "æµ·" ], "m;": [ "", "é“" ], "w;": [ "", "ãš" ], "v;": [ "", "西" ], "z;": [ "", "ã’" ], "1q": [ "", "ãƒ" ], "2q": [ "", "媛" ], "3q": [ "", "覧" ], "4q": [ "", "棒" ], "5q": [ "", "埼" ], "6q": [ "", "ç´€" ], "7q": [ "", "ç ´" ], "8q": [ "", "郡" ], "9q": [ "", "抗" ], "0q": [ "", "幡" ], "'q": [ "", "械" ], ",q": [ "", "刊" ], ".q": [ "", "訪" ], "pq": [ "", "èž" ], "yq": [ "", "雨" ], "fq": [ "", "å…¨" ], "gq": [ "", "ã˜" ], "cq": [ "", "自" ], "rq": [ "", "è­°" ], "lq": [ "", "明" ], "aq": [ "", "å®®" ], "oq": [ "", "伊" ], "eq": [ "", "求" ], "uq": [ "", "技" ], "iq": [ "", "写" ], "dq": [ "", "通" ], "hq": [ "", "ã‚«" ], "tq": [ "", "社" ], "nq": [ "", "野" ], "sq": [ "", "åŒ" ], ";q": [ "", "判" ], "qq": [ "", "è¦" ], "jq": [ "", "感" ], "kq": [ "", "値" ], "xq": [ "", "ã‚®" ], "bq": [ "", "当" ], "mq": [ "", "ç†" ], "wq": [ "", "メ" ], "vq": [ "", "ウ" ], "zq": [ "", "ã‚°" ], "1j": [ "", "ã…" ], "2j": [ "", "阪" ], "3j": [ "", "åµ" ], "4j": [ "", "亡" ], "5j": [ "", "æ ƒ" ], "6j": [ "", "房" ], "7j": [ "", "績" ], "8j": [ "", "è­˜" ], "9j": [ "", "属" ], "0j": [ "", "è¡£" ], "'j": [ "", "å¸" ], ",j": [ "", "å§‹" ], ".j": [ "", "了" ], "pj": [ "", "極" ], "yj": [ "", "熱" ], "fj": [ "", "ãƒ" ], "gj": [ "", "部" ], "cj": [ "", "å…­" ], "rj": [ "", "経" ], "lj": [ "", "å‹•" ], "aj": [ "", "å±€" ], "oj": [ "", "é ­" ], "ej": [ "", "é…" ], "uj": [ "", "é»’" ], "ij": [ "", "院" ], "dj": [ "", "ã " ], "hj": [ "", "り" ], "tj": [ "", "…" ], "nj": [ "", "ã‚" ], "sj": [ "", "大" ], ";j": [ "", "済" ], "qj": [ "", "å‰" ], "jj": [ "", "ゆ" ], "kj": [ "", "器" ], "xj": [ "", "ç…§" ], "bj": [ "", "ä¸" ], "mj": [ "", "åˆ" ], "wj": [ "", "é¢" ], "vj": [ "", "政" ], "zj": [ "", "オ" ], "1k": [ "", "ã‡" ], "2k": [ "", "å²" ], "3k": [ "", "翌" ], "4k": [ "", "é–‰" ], "5k": [ "", "茨" ], "6k": [ "", "去" ], "7k": [ "", "ç–‘" ], "8k": [ "", "ã¢" ], "9k": [ "", "ç¶¿" ], "0k": [ "", "離" ], "'k": [ "", "読" ], ",k": [ "", "鈴" ], ".k": [ "", "æ" ], "pk": [ "", "ç£" ], "yk": [ "", "æ³" ], "fk": [ "", "後" ], "gk": [ "", "é–“" ], "ck": [ "", "å ´" ], "rk": [ "", "ニ" ], "lk": [ "", "産" ], "ak": [ "", "å‘" ], "ok": [ "", "府" ], "ek": [ "", "富" ], "uk": [ "", "ç›´" ], "ik": [ "", "倉" ], "dk": [ "", "æ–°" ], "hk": [ "", "ã€" ], "tk": [ "", "9" ], "nk": [ "", "å­" ], "sk": [ "", "五" ], ";k": [ "", "説" ], "qk": [ "", "週" ], "jk": [ "", "å·" ], "kk": [ "", "葉" ], "xk": [ "", "æ´¾" ], "bk": [ "", "å§”" ], "mk": [ "", "化" ], "wk": [ "", "ビ" ], "vk": [ "", "ç›®" ], "zk": [ "", "市" ], "1x": [ "", "ã‰" ], "2x": [ "", "阜" ], "3x": [ "", "律" ], "4x": [ "", "å¹¼" ], "5x": [ "", "俺" ], "6x": [ "", "ç§’" ], "7x": [ "", "範" ], "8x": [ "", "æ ¸" ], "9x": [ "", "å½±" ], "0x": [ "", "麻" ], "'x": [ "", "æ—" ], ",x": [ "", "ä¸" ], ".x": [ "", "未" ], "px": [ "", "æ‰" ], "yx": [ "", "è¿”" ], "fx": [ "", "å•" ], "gx": [ "", "ム" ], "cx": [ "", "七" ], "rx": [ "", "ä½" ], "lx": [ "", "北" ], "ax": [ "", "割" ], "ox": [ "", "ã¶" ], "ex": [ "", "番" ], "ux": [ "", "望" ], "ix": [ "", "å…ƒ" ], "dx": [ "", "事" ], "hx": [ "", "ç”°" ], "tx": [ "", "会" ], "nx": [ "", "å‰" ], "sx": [ "", "ã" ], ";x": [ "", "休" ], "qx": [ "", "çœ" ], "jx": [ "", "央" ], "kx": [ "", "ç¦" ], "xx": [ "", "毎" ], "bx": [ "", "æ°—" ], "mx": [ "", "売" ], "wx": [ "", "下" ], "vx": [ "", "都" ], "zx": [ "", "æ ª" ], "1b": [ "", "欲" ], "2b": [ "", "å·£" ], "3b": [ "", "茂" ], "4b": [ "", "è¿°" ], "5b": [ "", "朗" ], "6b": [ "", "ä¼¼" ], "7b": [ "", "臣" ], "8b": [ "", "ç¯" ], "9b": [ "", "牧" ], "0b": [ "", "å¾€" ], "'b": [ "", "帰" ], ",b": [ "", "åº" ], ".b": [ "", "昨" ], "pb": [ "", "è·¡" ], "yb": [ "", "ゲ" ], "fb": [ "", "æ´—" ], "gb": [ "", "ç¾½" ], "cb": [ "", "個" ], "rb": [ "", "医" ], "lb": [ "", "é™" ], "ab": [ "", "å„„" ], "ob": [ "", "録" ], "eb": [ "", "赤" ], "ub": [ "", "想" ], "ib": [ "", "消" ], "db": [ "", "支" ], "hb": [ "", "å”" ], "tb": [ "", "用" ], "nb": [ "", "表" ], "sb": [ "", "æ­£" ], ";b": [ "", "図" ], "qb": [ "", "挙" ], "jb": [ "", "険" ], "kb": [ "", "ゼ" ], "xb": [ "", "æ³¢" ], "bb": [ "", "ヤ" ], "mb": [ "", "心" ], "wb": [ "", "界" ], "vb": [ "", "æ„" ], "zb": [ "", "今" ], "1m": [ "", "è¿«" ], "2m": [ "", "ç½" ], "3m": [ "", "æ‹" ], "4m": [ "", "脳" ], "5m": [ "", "è€" ], "6m": [ "", "ä»®" ], "7m": [ "", "径" ], "8m": [ "", "æŸ" ], "9m": [ "", "毒" ], "0m": [ "", "脈" ], "'m": [ "", "監" ], ",m": [ "", "寄" ], ".m": [ "", "è£" ], "pm": [ "", "é”" ], "ym": [ "", "èŠ" ], "fm": [ "", "響" ], "gm": [ "", "忘" ], "cm": [ "", "討" ], "rm": [ "", "å²" ], "lm": [ "", "ç’°" ], "am": [ "", "色" ], "om": [ "", "貸" ], "em": [ "", "販" ], "um": [ "", "ç·¨" ], "im": [ "", "仕" ], "dm": [ "", "å…ˆ" ], "hm": [ "", "多" ], "tm": [ "", "商" ], "nm": [ "", "ãƒ" ], "sm": [ "", "交" ], ";m": [ "", "之" ], "qm": [ "", "末" ], "jm": [ "", "ã¼" ], "km": [ "", "è¡—" ], "xm": [ "", "å…" ], "bm": [ "", "å†" ], "mm": [ "", "ãƒ" ], "wm": [ "", "〜" ], "vm": [ "", "å£" ], "zm": [ "", "å°" ], "1w": [ "", "ç•™" ], "2w": [ "", "列" ], "3w": [ "", "刻" ], "4w": [ "", "豆" ], "5w": [ "", "看" ], "6w": [ "", "æ½”" ], "7w": [ "", "èœ" ], "8w": [ "", "å­«" ], "9w": [ "", "梅" ], "0w": [ "", "勇" ], "'w": [ "", "竹" ], ",w": [ "", "注" ], ".w": [ "", "介" ], "pw": [ "", "å…·" ], "yw": [ "", "失" ], "fw": [ "", "å¸" ], "gw": [ "", "迎" ], "cw": [ "", "è¯" ], "rw": [ "", "許" ], "lw": [ "", "補" ], "aw": [ "", "å·¦" ], "ow": [ "", "æ…‹" ], "ew": [ "", "花" ], "uw": [ "", "æ „" ], "iw": [ "", "ã‚¶" ], "dw": [ "", "調" ], "hw": [ "", "æ··" ], "tw": [ "", "ãƒ" ], "nw": [ "", "決" ], "sw": [ "", "ミ" ], ";w": [ "", "å·ž" ], "qw": [ "", "払" ], "jw": [ "", "ä¹—" ], "kw": [ "", "庫" ], "xw": [ "", "状" ], "bw": [ "", "団" ], "mw": [ "", "計" ], "ww": [ "", "夫" ], "vw": [ "", "食" ], "zw": [ "", "ç·" ], "1v": [ "", "替" ], "2v": [ "", "æ²¼" ], "3v": [ "", "?" ], "4v": [ "", "辞" ], "5v": [ "", "献" ], "6v": [ "", "æž" ], "7v": [ "", "ç¥" ], "8v": [ "", "å…†" ], "9v": [ "", "飯" ], "0v": [ "", "æ¶²" ], "'v": [ "", "ã‚…" ], ",v": [ "", "ä¿®" ], ".v": [ "", "ç©¶" ], "pv": [ "", "ç­”" ], "yv": [ "", "養" ], "fv": [ "", "復" ], "gv": [ "", "並" ], "cv": [ "", "浦" ], "rv": [ "", "ユ" ], "lv": [ "", "冷" ], "av": [ "", "ã¬" ], "ov": [ "", "展" ], "ev": [ "", "è­¦" ], "uv": [ "", "åž‹" ], "iv": [ "", "誰" ], "dv": [ "", "組" ], "hv": [ "", "é¸" ], "tv": [ "", "å…š" ], "nv": [ "", "択" ], "sv": [ "", "体" ], ";v": [ "", "例" ], "qv": [ "", "満" ], "jv": [ "", "æ´¥" ], "kv": [ "", "準" ], "xv": [ "", "éŠ" ], "bv": [ "", "戸" ], "mv": [ "", "ã²" ], "wv": [ "", "ょ" ], "vv": [ "", "価" ], "zv": [ "", "与" ], "1z": [ "", "é‚„" ], "2z": [ "", "æ›´" ], "3z": [ "", "å " ], "4z": [ "", "ç®±" ], "5z": [ "", "矢" ], "6z": [ "", "飼" ], "7z": [ "", "æ¾" ], "8z": [ "", "è…¸" ], "9z": [ "", "粉" ], "0z": [ "", "æ©" ], "'z": [ "", "å¿—" ], ",z": [ "", "抜" ], ".z": [ "", "航" ], "pz": [ "", "層" ], "yz": [ "", "æ·±" ], "fz": [ "", "æ‹…" ], "gz": [ "", "陸" ], "cz": [ "", "å·»" ], "rz": [ "", "ç«¶" ], "lz": [ "", "è­·" ], "az": [ "", "æ ¹" ], "oz": [ "", "様" ], "ez": [ "", "独" ], "uz": [ "", "æ­¢" ], "iz": [ "", "å ‚" ], "dz": [ "", "銀" ], "hz": [ "", "以" ], "tz": [ "", "ヌ" ], "nz": [ "", "å–¶" ], "sz": [ "", "æ²»" ], ";z": [ "", "å­—" ], "qz": [ "", "æ" ], "jz": [ "", "éŽ" ], "kz": [ "", "諸" ], "xz": [ "", "å˜" ], "bz": [ "", "身" ], "mz": [ "", "ピ" ], "wz": [ "", "å‹" ], "vz": [ "", "å" ], "zz": [ "", "ズ" ], " 11": [ "", "â– " ], " 21": [ "", "â– " ], " 31": [ "", "â– " ], " 41": [ "", "â– " ], " 51": [ "", "â– " ], " 61": [ "", "â– " ], " 71": [ "", "â– " ], " 81": [ "", "â– " ], " 91": [ "", "â– " ], " 01": [ "", "â– " ], " '1": [ "", "é·²" ], " ,1": [ "", "幇" ], " .1": [ "", "ç’ƒ" ], " p1": [ "", "é›" ], " y1": [ "", "箇" ], " f1": [ "", "錆" ], " g1": [ "", "å º" ], " c1": [ "", "è­œ" ], " r1": [ "", "åµ" ], " l1": [ "", "犀" ], " a1": [ "", "æŸ" ], " o1": [ "", "猪" ], " e1": [ "", "ç‘ " ], " u1": [ "", "ç¿" ], " i1": [ "", "ç³¾" ], " d1": [ "", "æ—º" ], " h1": [ "", "é´" ], " t1": [ "", "ç…™" ], " n1": [ "", "肌" ], " s1": [ "", "æ‰" ], " ;1": [ "", "å’³" ], " q1": [ "", "â– " ], " j1": [ "", "â– " ], " k1": [ "", "â– " ], " x1": [ "", "昂" ], " b1": [ "", "憑" ], " m1": [ "", "è—" ], " w1": [ "", "惜" ], " v1": [ "", "ç…©" ], " z1": [ "", "â– " ], " 12": [ "", "â– " ], " 22": [ "", "â– " ], " 32": [ "", "â– " ], " 42": [ "", "â– " ], " 52": [ "", "â– " ], " 62": [ "", "â– " ], " 72": [ "", "â– " ], " 82": [ "", "â– " ], " 92": [ "", "â– " ], " 02": [ "", "â– " ], " '2": [ "", "呪" ], " ,2": [ "", "æµ" ], " .2": [ "", "â– " ], " p2": [ "", "æ·µ" ], " y2": [ "", "æ´©" ], " f2": [ "", "â– " ], " g2": [ "", "謹" ], " c2": [ "", "浜" ], " r2": [ "", "è²¢" ], " l2": [ "", "猟" ], " a2": [ "", "â– " ], " o2": [ "", "æ³¥" ], " e2": [ "", "åƒ" ], " u2": [ "", "â– " ], " i2": [ "", "棄" ], " d2": [ "", "溢" ], " h2": [ "", "â– " ], " t2": [ "", "垣" ], " n2": [ "", "åœ" ], " s2": [ "", "æ…Œ" ], " ;2": [ "", "祈" ], " q2": [ "", "ç·©" ], " j2": [ "", "â– " ], " k2": [ "", "èŽ" ], " x2": [ "", "鼓" ], " b2": [ "", "縫" ], " m2": [ "", "爺" ], " w2": [ "", "â– " ], " v2": [ "", "錯" ], " z2": [ "", "è–«" ], " 13": [ "", "â– " ], " 23": [ "", "â– " ], " 33": [ "", "â– " ], " 43": [ "", "â– " ], " 53": [ "", "â– " ], " 63": [ "", "â– " ], " 73": [ "", "â– " ], " 83": [ "", "â– " ], " 93": [ "", "â– " ], " 03": [ "", "â– " ], " '3": [ "", "醜" ], " ,3": [ "", "嘘" ], " .3": [ "", "挟" ], " p3": [ "", "剃" ], " y3": [ "", "é§•" ], " f3": [ "", "棟" ], " g3": [ "", "悦" ], " c3": [ "", "æ–¡" ], " r3": [ "", "陵" ], " l3": [ "", "蜜" ], " a3": [ "", "綺" ], " o3": [ "", "å’Ž" ], " e3": [ "", "麹" ], " u3": [ "", "â– " ], " i3": [ "", "烹" ], " d3": [ "", "逮" ], " h3": [ "", "æ·" ], " t3": [ "", "憬" ], " n3": [ "", "æ‹ " ], " s3": [ "", "邪" ], " ;3": [ "", "â– " ], " q3": [ "", "露" ], " j3": [ "", "è©£" ], " k3": [ "", "æ–œ" ], " x3": [ "", "é…Œ" ], " b3": [ "", "醸" ], " m3": [ "", "è²¶" ], " w3": [ "", "莫" ], " v3": [ "", "å •" ], " z3": [ "", "駆" ], " 14": [ "", "â– " ], " 24": [ "", "â– " ], " 34": [ "", "â– " ], " 44": [ "", "â– " ], " 54": [ "", "â– " ], " 64": [ "", "â– " ], " 74": [ "", "â– " ], " 84": [ "", "â– " ], " 94": [ "", "â– " ], " 04": [ "", "â– " ], " '4": [ "", "å¼§" ], " ,4": [ "", "æ¥" ], " .4": [ "", "廣" ], " p4": [ "", "妃" ], " y4": [ "", "â– " ], " f4": [ "", "帆" ], " g4": [ "", "å–‰" ], " c4": [ "", "軋" ], " r4": [ "", "æ…§" ], " l4": [ "", "é ‘" ], " a4": [ "", "朽" ], " o4": [ "", "â– " ], " e4": [ "", "墾" ], " u4": [ "", "窮" ], " i4": [ "", "婚" ], " d4": [ "", "é‚£" ], " h4": [ "", "è¸" ], " t4": [ "", "è›®" ], " n4": [ "", "嘆" ], " s4": [ "", "å³»" ], " ;4": [ "", "渦" ], " q4": [ "", "è‚" ], " j4": [ "", "â– " ], " k4": [ "", "勺" ], " x4": [ "", "æ–‘" ], " b4": [ "", "禿" ], " m4": [ "", "ä¹¾" ], " w4": [ "", "諺" ], " v4": [ "", "è¡¡" ], " z4": [ "", "且" ], " 15": [ "", "â– " ], " 25": [ "", "â– " ], " 35": [ "", "â– " ], " 45": [ "", "â– " ], " 55": [ "", "â– " ], " 65": [ "", "â– " ], " 75": [ "", "â– " ], " 85": [ "", "â– " ], " 95": [ "", "â– " ], " 05": [ "", "â– " ], " '5": [ "", "俸" ], " ,5": [ "", "媒" ], " .5": [ "", "ç—º" ], " p5": [ "", "朴" ], " y5": [ "", "â– " ], " f5": [ "", "æ·«" ], " g5": [ "", "æ‹’" ], " c5": [ "", "ç²—" ], " r5": [ "", "å›" ], " l5": [ "", "抑" ], " a5": [ "", "æž•" ], " o5": [ "", "å’¥" ], " e5": [ "", "æ¡‘" ], " u5": [ "", "æ®»" ], " i5": [ "", "â– " ], " d5": [ "", "é…‹" ], " h5": [ "", "æ«›" ], " t5": [ "", "â– " ], " n5": [ "", "ç‚’" ], " s5": [ "", "削" ], " ;5": [ "", "排" ], " q5": [ "", "å³ " ], " j5": [ "", "浸" ], " k5": [ "", "ç ¦" ], " x5": [ "", "殿" ], " b5": [ "", "秤" ], " m5": [ "", "æ±—" ], " w5": [ "", "æ’’" ], " v5": [ "", "è—" ], " z5": [ "", "å‡" ], " 16": [ "", "â– " ], " 26": [ "", "â– " ], " 36": [ "", "â– " ], " 46": [ "", "â– " ], " 56": [ "", "â– " ], " 66": [ "", "â– " ], " 76": [ "", "â– " ], " 86": [ "", "â– " ], " 96": [ "", "â– " ], " 06": [ "", "â– " ], " '6": [ "", "糊" ], " ,6": [ "", "霊" ], " .6": [ "", "躇" ], " p6": [ "", "è…Ž" ], " y6": [ "", "å¿" ], " f6": [ "", "å‘‘" ], " g6": [ "", "篇" ], " c6": [ "", "â– " ], " r6": [ "", "â– " ], " l6": [ "", "â– " ], " a6": [ "", "è³ " ], " o6": [ "", "â– " ], " e6": [ "", "怒" ], " u6": [ "", "â– " ], " i6": [ "", "å”–" ], " d6": [ "", "寂" ], " h6": [ "", "脊" ], " t6": [ "", "å¹" ], " n6": [ "", "æ‹" ], " s6": [ "", "ç•" ], " ;6": [ "", "襟" ], " q6": [ "", "â– " ], " j6": [ "", "åŠ" ], " k6": [ "", "æ—¬" ], " x6": [ "", "楚" ], " b6": [ "", "朕" ], " m6": [ "", "è‚–" ], " w6": [ "", "沃" ], " v6": [ "", "辿" ], " z6": [ "", "å" ], " 17": [ "", "â– " ], " 27": [ "", "â– " ], " 37": [ "", "â– " ], " 47": [ "", "â– " ], " 57": [ "", "â– " ], " 67": [ "", "â– " ], " 77": [ "", "â– " ], " 87": [ "", "â– " ], " 97": [ "", "â– " ], " 07": [ "", "â– " ], " '7": [ "", "å°–" ], " ,7": [ "", "â– " ], " .7": [ "", "逓" ], " p7": [ "", "æ‰" ], " y7": [ "", "â– " ], " f7": [ "", "禽" ], " g7": [ "", "屑" ], " c7": [ "", "æ–¤" ], " r7": [ "", "â– " ], " l7": [ "", "宜" ], " a7": [ "", "ç´†" ], " o7": [ "", "ç˜" ], " e7": [ "", "å‚‘" ], " u7": [ "", "ç¾…" ], " i7": [ "", "剥" ], " d7": [ "", "ç«„" ], " h7": [ "", "漕" ], " t7": [ "", "å¼¾" ], " n7": [ "", "噂" ], " s7": [ "", "刃" ], " ;7": [ "", "ç¹­" ], " q7": [ "", "披" ], " j7": [ "", "舷" ], " k7": [ "", "é¡§" ], " x7": [ "", "毅" ], " b7": [ "", "å µ" ], " m7": [ "", "â– " ], " w7": [ "", "毀" ], " v7": [ "", "畳" ], " z7": [ "", "仄" ], " 18": [ "", "â– " ], " 28": [ "", "â– " ], " 38": [ "", "â– " ], " 48": [ "", "â– " ], " 58": [ "", "â– " ], " 68": [ "", "â– " ], " 78": [ "", "â– " ], " 88": [ "", "â– " ], " 98": [ "", "â– " ], " 08": [ "", "â– " ], " '8": [ "", "滲" ], " ,8": [ "", "躊" ], " .8": [ "", "é€" ], " p8": [ "", "脆" ], " y8": [ "", "æ¼ " ], " f8": [ "", "é…Ž" ], " g8": [ "", "惹" ], " c8": [ "", "æ–" ], " r8": [ "", "å¼¥" ], " l8": [ "", "窯" ], " a8": [ "", "â– " ], " o8": [ "", "å¡«" ], " e8": [ "", "契" ], " u8": [ "", "è‚¢" ], " i8": [ "", "傲" ], " d8": [ "", "é‹" ], " h8": [ "", "蟹" ], " t8": [ "", "ä¼" ], " n8": [ "", "â– " ], " s8": [ "", "æ·‹" ], " ;8": [ "", "准" ], " q8": [ "", "é·¹" ], " j8": [ "", "æ—" ], " k8": [ "", "胆" ], " x8": [ "", "餅" ], " b8": [ "", "ç•" ], " m8": [ "", "èˆ" ], " w8": [ "", "仇" ], " v8": [ "", "貪" ], " z8": [ "", "â– " ], " 19": [ "", "â– " ], " 29": [ "", "â– " ], " 39": [ "", "â– " ], " 49": [ "", "â– " ], " 59": [ "", "â– " ], " 69": [ "", "â– " ], " 79": [ "", "â– " ], " 89": [ "", "â– " ], " 99": [ "", "â– " ], " 09": [ "", "â– " ], " '9": [ "", "è€" ], " ,9": [ "", "æ±²" ], " .9": [ "", "å" ], " p9": [ "", "幌" ], " y9": [ "", "è¿„" ], " f9": [ "", "é—‡" ], " g9": [ "", "å­•" ], " c9": [ "", "茹" ], " r9": [ "", "僧" ], " l9": [ "", "ç°¿" ], " a9": [ "", "鎖" ], " o9": [ "", "到" ], " e9": [ "", "ç¹°" ], " u9": [ "", "丙" ], " i9": [ "", "鯨" ], " d9": [ "", "騎" ], " h9": [ "", "踊" ], " t9": [ "", "è’”" ], " n9": [ "", "å¼”" ], " s9": [ "", "è…«" ], " ;9": [ "", "è¹´" ], " q9": [ "", "屯" ], " j9": [ "", "渾" ], " k9": [ "", "å¦" ], " x9": [ "", "韓" ], " b9": [ "", "å­”" ], " m9": [ "", "賎" ], " w9": [ "", "錘" ], " v9": [ "", "墳" ], " z9": [ "", "å“" ], " 10": [ "", "â– " ], " 20": [ "", "â– " ], " 30": [ "", "â– " ], " 40": [ "", "â– " ], " 50": [ "", "â– " ], " 60": [ "", "â– " ], " 70": [ "", "â– " ], " 80": [ "", "â– " ], " 90": [ "", "â– " ], " 00": [ "", "â– " ], " '0": [ "", "å®" ], " ,0": [ "", "鎮" ], " .0": [ "", "粟" ], " p0": [ "", "æ–¥" ], " y0": [ "", "é£" ], " f0": [ "", "蘭" ], " g0": [ "", "襲" ], " c0": [ "", "ä¾µ" ], " r0": [ "", "虜" ], " l0": [ "", "å¡" ], " a0": [ "", "â– " ], " o0": [ "", "â– " ], " e0": [ "", "ç„™" ], " u0": [ "", "豚" ], " i0": [ "", "爵" ], " d0": [ "", "蕎" ], " h0": [ "", "å”" ], " t0": [ "", "伯" ], " n0": [ "", "嬢" ], " s0": [ "", "娘" ], " ;0": [ "", "絆" ], " q0": [ "", "ç²¥" ], " j0": [ "", "踪" ], " k0": [ "", "è…°" ], " x0": [ "", "膚" ], " b0": [ "", "é…µ" ], " m0": [ "", "ç‹™" ], " w0": [ "", "èŒ" ], " v0": [ "", "â– " ], " z0": [ "", "é›…" ], " 1'": [ "", "â– " ], " 2'": [ "", "悼" ], " 3'": [ "", "é–‘" ], " 4'": [ "", "哲" ], " 5'": [ "", "掴" ], " 6'": [ "", "é…¢" ], " 7'": [ "", "â– " ], " 8'": [ "", "釜" ], " 9'": [ "", "ç©‚" ], " 0'": [ "", "沸" ], " ''": [ "", "è“" ], " ,'": [ "", "é…·" ], " .'": [ "", "溺" ], " p'": [ "", "æ™’" ], " y'": [ "", "濃" ], " f'": [ "", "這" ], " g'": [ "", "å·¡" ], " c'": [ "", "â– " ], " r'": [ "", "å¶‹" ], " l'": [ "", "æ‹“" ], " a'": [ "", "é…¬" ], " o'": [ "", "膜" ], " e'": [ "", "舘" ], " u'": [ "", "翳" ], " i'": [ "", "æ¡" ], " d'": [ "", "餌" ], " h'": [ "", "â– " ], " t'": [ "", "éš·" ], " n'": [ "", "â– " ], " s'": [ "", "檸" ], " ;'": [ "", "陥" ], " q'": [ "", "蚊" ], " j'": [ "", "奴" ], " k'": [ "", "凄" ], " x'": [ "", "膳" ], " b'": [ "", "å®°" ], " m'": [ "", "è»’" ], " w'": [ "", "憧" ], " v'": [ "", "å †" ], " z'": [ "", "暦" ], " 1,": [ "", "å…Ž" ], " 2,": [ "", "é­" ], " 3,": [ "", "å¡”" ], " 4,": [ "", "è¬" ], " 5,": [ "", "鎌" ], " 6,": [ "", "â– " ], " 7,": [ "", "ç—©" ], " 8,": [ "", "糞" ], " 9,": [ "", "æ†" ], " 0,": [ "", "â– " ], " ',": [ "", "æ…¨" ], " ,,": [ "", "è³¼" ], " .,": [ "", "ç–Ž" ], " p,": [ "", "袖" ], " y,": [ "", "没" ], " f,": [ "", "茸" ], " g,": [ "", "醤" ], " c,": [ "", "凶" ], " r,": [ "", "騰" ], " l,": [ "", "æ´ž" ], " a,": [ "", "韻" ], " o,": [ "", "冠" ], " e,": [ "", "倣" ], " u,": [ "", "ã‚" ], " i,": [ "", "ç­ˆ" ], " d,": [ "", "裾" ], " h,": [ "", "ç—’" ], " t,": [ "", "几" ], " n,": [ "", "箋" ], " s,": [ "", "è˜" ], " ;,": [ "", "â– " ], " q,": [ "", "釣" ], " j,": [ "", "æ¨" ], " k,": [ "", "æ®" ], " x,": [ "", "羞" ], " b,": [ "", "附" ], " m,": [ "", "冥" ], " w,": [ "", "狽" ], " v,": [ "", "â– " ], " z,": [ "", "é§„" ], " 1.": [ "", "嘲" ], " 2.": [ "", "椀" ], " 3.": [ "", "æ‡" ], " 4.": [ "", "éž„" ], " 5.": [ "", "辟" ], " 6.": [ "", "â– " ], " 7.": [ "", "ç…®" ], " 8.": [ "", "顎" ], " 9.": [ "", "æº" ], " 0.": [ "", "宵" ], " '.": [ "", "賦" ], " ,.": [ "", "è™" ], " ..": [ "", "åŒ" ], " p.": [ "", "â– " ], " y.": [ "", "å–" ], " f.": [ "", "也" ], " g.": [ "", "抽" ], " c.": [ "", "æ‹¶" ], " r.": [ "", "掌" ], " l.": [ "", "ä¿£" ], " a.": [ "", "餡" ], " o.": [ "", "屈" ], " e.": [ "", "惰" ], " u.": [ "", "é­…" ], " i.": [ "", "殉" ], " d.": [ "", "â– " ], " h.": [ "", "寡" ], " t.": [ "", "é¡°" ], " n.": [ "", "玩" ], " s.": [ "", "æ–‚" ], " ;.": [ "", "æ­" ], " q.": [ "", "é«„" ], " j.": [ "", "è–„" ], " k.": [ "", "é …" ], " x.": [ "", "ç³§" ], " b.": [ "", "â– " ], " m.": [ "", "匠" ], " w.": [ "", "蛸" ], " v.": [ "", "〒" ], " z.": [ "", "眺" ], " 1p": [ "", "å§œ" ], " 2p": [ "", "å¡€" ], " 3p": [ "", "â– " ], " 4p": [ "", "é½" ], " 5p": [ "", "碑" ], " 6p": [ "", "æ—‹" ], " 7p": [ "", "滞" ], " 8p": [ "", "å‹¿" ], " 9p": [ "", "æ•" ], " 0p": [ "", "â– " ], " 'p": [ "", "åµ" ], " ,p": [ "", "皆" ], " .p": [ "", "ç½·" ], " pp": [ "", "倫" ], " yp": [ "", "噌" ], " fp": [ "", "çˆ" ], " gp": [ "", "凸" ], " cp": [ "", "箸" ], " rp": [ "", "廃" ], " lp": [ "", "å" ], " ap": [ "", "脇" ], " op": [ "", "勃" ], " ep": [ "", "剣" ], " up": [ "", "ç­" ], " ip": [ "", "æ’¹" ], " dp": [ "", "ç•¿" ], " hp": [ "", "朔" ], " tp": [ "", "æ™¶" ], " np": [ "", "債" ], " sp": [ "", "å¼" ], " ;p": [ "", "å«¡" ], " qp": [ "", "哺" ], " jp": [ "", "â– " ], " kp": [ "", "è¿‚" ], " xp": [ "", "è–¦" ], " bp": [ "", "å°»" ], " mp": [ "", "å§“" ], " wp": [ "", "渓" ], " vp": [ "", "å¹¾" ], " zp": [ "", "窒" ], " 1y": [ "", "â– " ], " 2y": [ "", "奄" ], " 3y": [ "", "塞" ], " 4y": [ "", "愚" ], " 5y": [ "", "â– " ], " 6y": [ "", "â– " ], " 7y": [ "", "å–š" ], " 8y": [ "", "焉" ], " 9y": [ "", "霜" ], " 0y": [ "", "â– " ], " 'y": [ "", "些" ], " ,y": [ "", "枯" ], " .y": [ "", "ç—¢" ], " py": [ "", "é " ], " yy": [ "", "æ¶" ], " fy": [ "", "â– " ], " gy": [ "", "稼" ], " cy": [ "", "ä¾­" ], " ry": [ "", "ç¦" ], " ly": [ "", "æ·‘" ], " ay": [ "", "岬" ], " oy": [ "", "æ·¡" ], " ey": [ "", "虞" ], " uy": [ "", "â– " ], " iy": [ "", "ç²’" ], " dy": [ "", "↑" ], " hy": [ "", "垢" ], " ty": [ "", "蜂" ], " ny": [ "", "怨" ], " sy": [ "", "â– " ], " ;y": [ "", "婆" ], " qy": [ "", "窪" ], " jy": [ "", "å§»" ], " ky": [ "", "é…”" ], " xy": [ "", "â– " ], " by": [ "", "颯" ], " my": [ "", "éµ" ], " wy": [ "", "â– " ], " vy": [ "", "â– " ], " zy": [ "", "挿" ], " 1f": [ "", "â– " ], " 2f": [ "", "å¾®" ], " 3f": [ "", "è•" ], " 4f": [ "", "å´‡" ], " 5f": [ "", "鉢" ], " 6f": [ "", "臭" ], " 7f": [ "", "â– " ], " 8f": [ "", "è¼»" ], " 9f": [ "", "澄" ], " 0f": [ "", "漫" ], " 'f": [ "", "阻" ], " ,f": [ "", "凭" ], " .f": [ "", "é “" ], " pf": [ "", "蔑" ], " yf": [ "", "â– " ], " ff": [ "", "å°‰" ], " gf": [ "", "â– " ], " cf": [ "", "è–®" ], " rf": [ "", "廊" ], " lf": [ "", "冗" ], " af": [ "", "裸" ], " of": [ "", "艶" ], " ef": [ "", "èµ´" ], " uf": [ "", "倹" ], " if": [ "", "潤" ], " df": [ "", "麗" ], " hf": [ "", "是" ], " tf": [ "", "丼" ], " nf": [ "", "å”" ], " sf": [ "", "è·µ" ], " ;f": [ "", "æ›" ], " qf": [ "", "ä¾¶" ], " jf": [ "", "è¤" ], " kf": [ "", "â– " ], " xf": [ "", "æ­¤" ], " bf": [ "", "曾" ], " mf": [ "", "銃" ], " wf": [ "", "ç¤" ], " vf": [ "", "ç ²" ], " zf": [ "", "è…" ], " 1g": [ "", "â– " ], " 2g": [ "", "å½°" ], " 3g": [ "", "侯" ], " 4g": [ "", "å¾" ], " 5g": [ "", "â– " ], " 6g": [ "", "å‡" ], " 7g": [ "", "柵" ], " 8g": [ "", "å„’" ], " 9g": [ "", "è©«" ], " 0g": [ "", "謎" ], " 'g": [ "", "â– " ], " ,g": [ "", "誓" ], " .g": [ "", "鎚" ], " pg": [ "", "墜" ], " yg": [ "", "éš…" ], " fg": [ "", "繋" ], " gg": [ "", "憂" ], " cg": [ "", "æ’®" ], " rg": [ "", "å¿™" ], " lg": [ "", "â– " ], " ag": [ "", "妙" ], " og": [ "", "陪" ], " eg": [ "", "訂" ], " ug": [ "", "â– " ], " ig": [ "", "稽" ], " dg": [ "", "泊" ], " hg": [ "", "癌" ], " tg": [ "", "焦" ], " ng": [ "", "廉" ], " sg": [ "", "函" ], " ;g": [ "", "暢" ], " qg": [ "", "æº" ], " jg": [ "", "å½—" ], " kg": [ "", "â– " ], " xg": [ "", "濯" ], " bg": [ "", "é¥" ], " mg": [ "", "è»" ], " wg": [ "", "棋" ], " vg": [ "", "â– " ], " zg": [ "", "â– " ], " 1c": [ "", "愉" ], " 2c": [ "", "肯" ], " 3c": [ "", "å™›" ], " 4c": [ "", "硯" ], " 5c": [ "", "厘" ], " 6c": [ "", "è„‚" ], " 7c": [ "", "è“‹" ], " 8c": [ "", "轄" ], " 9c": [ "", "畜" ], " 0c": [ "", "â†" ], " 'c": [ "", "æ§½" ], " ,c": [ "", "誘" ], " .c": [ "", "弦" ], " pc": [ "", "è²¼" ], " yc": [ "", "è¾›" ], " fc": [ "", "ç¶´" ], " gc": [ "", "æš" ], " cc": [ "", "智" ], " rc": [ "", "â– " ], " lc": [ "", "è´ˆ" ], " ac": [ "", "å°½" ], " oc": [ "", "鑽" ], " ec": [ "", "ç–²" ], " uc": [ "", "çº" ], " ic": [ "", "è‚¡" ], " dc": [ "", "â– " ], " hc": [ "", "æ¬" ], " tc": [ "", "è¾£" ], " nc": [ "", "殊" ], " sc": [ "", "凹" ], " ;c": [ "", "芦" ], " qc": [ "", "â– " ], " jc": [ "", "å¿" ], " kc": [ "", "è…±" ], " xc": [ "", "梶" ], " bc": [ "", "ç§©" ], " mc": [ "", "娠" ], " wc": [ "", "錬" ], " vc": [ "", "æ»" ], " zc": [ "", "雇" ], " 1r": [ "", "抱" ], " 2r": [ "", "鞘" ], " 3r": [ "", "â– " ], " 4r": [ "", "囚" ], " 5r": [ "", "眠" ], " 6r": [ "", "ç´«" ], " 7r": [ "", "讃" ], " 8r": [ "", "埓" ], " 9r": [ "", "佇" ], " 0r": [ "", "姪" ], " 'r": [ "", "漬" ], " ,r": [ "", "呈" ], " .r": [ "", "é®" ], " pr": [ "", "抵" ], " yr": [ "", "æ»…" ], " fr": [ "", "檬" ], " gr": [ "", "â– " ], " cr": [ "", "ä¾" ], " rr": [ "", "â– " ], " lr": [ "", "ç‹—" ], " ar": [ "", "é¡" ], " or": [ "", "â– " ], " er": [ "", "妖" ], " ur": [ "", "æš«" ], " ir": [ "", "ç’½" ], " dr": [ "", "ä»™" ], " hr": [ "", "çµ" ], " tr": [ "", "æ®´" ], " nr": [ "", "僅" ], " sr": [ "", "â– " ], " ;r": [ "", "絞" ], " qr": [ "", "貞" ], " jr": [ "", "伺" ], " kr": [ "", "â– " ], " xr": [ "", "ä¿—" ], " br": [ "", "å£" ], " mr": [ "", "â– " ], " wr": [ "", "â– " ], " vr": [ "", "劾" ], " zr": [ "", "盲" ], " 1l": [ "", "昌" ], " 2l": [ "", "â– " ], " 3l": [ "", "â– " ], " 4l": [ "", "寃" ], " 5l": [ "", "ç½°" ], " 6l": [ "", "摘" ], " 7l": [ "", "渇" ], " 8l": [ "", "矛" ], " 9l": [ "", "昆" ], " 0l": [ "", "潜" ], " 'l": [ "", "â– " ], " ,l": [ "", "炉" ], " .l": [ "", "å ¤" ], " pl": [ "", "胎" ], " yl": [ "", "â– " ], " fl": [ "", "謬" ], " gl": [ "", "鹸" ], " cl": [ "", "æ¡" ], " rl": [ "", "剖" ], " ll": [ "", "æ…•" ], " al": [ "", "è©”" ], " ol": [ "", "å‰" ], " el": [ "", "壮" ], " ul": [ "", "æ„•" ], " il": [ "", "â– " ], " dl": [ "", "劣" ], " hl": [ "", "郭" ], " tl": [ "", "謳" ], " nl": [ "", "å½™" ], " sl": [ "", "壇" ], " ;l": [ "", "â– " ], " ql": [ "", "é­”" ], " jl": [ "", "æ„" ], " kl": [ "", "æ–" ], " xl": [ "", "å°¿" ], " bl": [ "", "â– " ], " ml": [ "", "â– " ], " wl": [ "", "ç˜" ], " vl": [ "", "ç" ], " zl": [ "", "磯" ], " 1a": [ "", "é§" ], " 2a": [ "", "弄" ], " 3a": [ "", "輩" ], " 4a": [ "", "謙" ], " 5a": [ "", "凌" ], " 6a": [ "", "楼" ], " 7a": [ "", "瀕" ], " 8a": [ "", "é¶" ], " 9a": [ "", "â– " ], " 0a": [ "", "ç¢" ], " 'a": [ "", "ç©«" ], " ,a": [ "", "â– " ], " .a": [ "", "æ±°" ], " pa": [ "", "è‹‘" ], " ya": [ "", "舟" ], " fa": [ "", "庸" ], " ga": [ "", "縞" ], " ca": [ "", "猛" ], " ra": [ "", "扇" ], " la": [ "", "錠" ], " aa": [ "", "ç—˜" ], " oa": [ "", "â– " ], " ea": [ "", "â– " ], " ua": [ "", "椎" ], " ia": [ "", "æ…Ž" ], " da": [ "", "çŠ" ], " ha": [ "", "è³­" ], " ta": [ "", "é›¶" ], " na": [ "", "剃" ], " sa": [ "", "縷" ], " ;a": [ "", "ç²" ], " qa": [ "", "æ°¾" ], " ja": [ "", "æŒ" ], " ka": [ "", "敲" ], " xa": [ "", "覇" ], " ba": [ "", "燕" ], " ma": [ "", "猿" ], " wa": [ "", "å‰" ], " va": [ "", "æ¶¼" ], " za": [ "", "馳" ], " 1o": [ "", "é››" ], " 2o": [ "", "å½" ], " 3o": [ "", "å¦" ], " 4o": [ "", "厭" ], " 5o": [ "", "縛" ], " 6o": [ "", "â– " ], " 7o": [ "", "â– " ], " 8o": [ "", "â– " ], " 9o": [ "", "â– " ], " 0o": [ "", "æ¾" ], " 'o": [ "", "匿" ], " ,o": [ "", "雌" ], " .o": [ "", "â– " ], " po": [ "", "耽" ], " yo": [ "", "â– " ], " fo": [ "", "ç¶" ], " go": [ "", "è–‡" ], " co": [ "", "陳" ], " ro": [ "", "涯" ], " lo": [ "", "狼" ], " ao": [ "", "邸" ], " oo": [ "", "塾" ], " eo": [ "", "款" ], " uo": [ "", "奪" ], " io": [ "", "æ–—" ], " do": [ "", "樫" ], " ho": [ "", "æ£" ], " to": [ "", "å©" ], " no": [ "", "壱" ], " so": [ "", "餓" ], " ;o": [ "", "â– " ], " qo": [ "", "ç¸" ], " jo": [ "", "â– " ], " ko": [ "", "è¿" ], " xo": [ "", "æ" ], " bo": [ "", "å‘‚" ], " mo": [ "", "倶" ], " wo": [ "", "蔓" ], " vo": [ "", "芳" ], " zo": [ "", "ç‡" ], " 1e": [ "", "蛋" ], " 2e": [ "", "謀" ], " 3e": [ "", "çž°" ], " 4e": [ "", "â– " ], " 5e": [ "", "猫" ], " 6e": [ "", "â– " ], " 7e": [ "", "æº" ], " 8e": [ "", "稀" ], " 9e": [ "", "悟" ], " 0e": [ "", "擦" ], " 'e": [ "", "æ—¨" ], " ,e": [ "", "â– " ], " .e": [ "", "ç­’" ], " pe": [ "", "ç¶™" ], " ye": [ "", "妬" ], " fe": [ "", "鬱" ], " ge": [ "", "é–" ], " ce": [ "", "è¹™" ], " re": [ "", "柔" ], " le": [ "", "稟" ], " ae": [ "", "â– " ], " oe": [ "", "壌" ], " ee": [ "", "括" ], " ue": [ "", "葱" ], " ie": [ "", "惨" ], " de": [ "", "鋳" ], " he": [ "", "," ], " te": [ "", "ç½µ" ], " ne": [ "", "瑚" ], " se": [ "", "å " ], " ;e": [ "", "匙" ], " qe": [ "", "å„€" ], " je": [ "", "ç°’" ], " ke": [ "", "ä¼´" ], " xe": [ "", "懸" ], " be": [ "", "訛" ], " me": [ "", "磨" ], " we": [ "", "ç…" ], " ve": [ "", "å—£" ], " ze": [ "", "匹" ], " 1u": [ "", "æ½°" ], " 2u": [ "", "蔽" ], " 3u": [ "", "飴" ], " 4u": [ "", "â– " ], " 5u": [ "", "å™´" ], " 6u": [ "", "è±¹" ], " 7u": [ "", "éˆ" ], " 8u": [ "", "â– " ], " 9u": [ "", "â– " ], " 0u": [ "", "漂" ], " 'u": [ "", "欺" ], " ,u": [ "", "賂" ], " .u": [ "", "羨" ], " pu": [ "", "摺" ], " yu": [ "", "炎" ], " fu": [ "", "或" ], " gu": [ "", "ä»”" ], " cu": [ "", "苺" ], " ru": [ "", "奨" ], " lu": [ "", "å´©" ], " au": [ "", "妥" ], " ou": [ "", "猶" ], " eu": [ "", "æ–¬" ], " uu": [ "", "培" ], " iu": [ "", "柳" ], " du": [ "", "." ], " hu": [ "", "â– " ], " tu": [ "", "å¡—" ], " nu": [ "", "蟻" ], " su": [ "", "壷" ], " ;u": [ "", "â– " ], " qu": [ "", "è´…" ], " ju": [ "", "艦" ], " ku": [ "", "ç´º" ], " xu": [ "", "ç²›" ], " bu": [ "", "罫" ], " mu": [ "", "訊" ], " wu": [ "", "枢" ], " vu": [ "", "é›·" ], " zu": [ "", "ç„" ], " 1i": [ "", "â– " ], " 2i": [ "", "謂" ], " 3i": [ "", "串" ], " 4i": [ "", "å¨" ], " 5i": [ "", "å¹£" ], " 6i": [ "", "牢" ], " 7i": [ "", "剰" ], " 8i": [ "", "掘" ], " 9i": [ "", "æ’²" ], " 0i": [ "", "çž­" ], " 'i": [ "", "å²" ], " ,i": [ "", "â– " ], " .i": [ "", "寛" ], " pi": [ "", "é–ƒ" ], " yi": [ "", "è´" ], " fi": [ "", "奔" ], " gi": [ "", "唆" ], " ci": [ "", "拉" ], " ri": [ "", "稿" ], " li": [ "", "â– " ], " ai": [ "", "俊" ], " oi": [ "", "釦" ], " ei": [ "", "æž¶" ], " ui": [ "", "â– " ], " ii": [ "", "æ²™" ], " di": [ "", "â– " ], " hi": [ "", "ç¶»" ], " ti": [ "", "匂" ], " ni": [ "", "æ’«" ], " si": [ "", "â– " ], " ;i": [ "", "舵" ], " qi": [ "", "控" ], " ji": [ "", "牲" ], " ki": [ "", "梗" ], " xi": [ "", "â– " ], " bi": [ "", "â– " ], " mi": [ "", "泡" ], " wi": [ "", "『" ], " vi": [ "", "æ‚ " ], " zi": [ "", "塵" ], " 1d": [ "", "雀" ], " 2d": [ "", "è¿…" ], " 3d": [ "", "é´¨" ], " 4d": [ "", "ç·»" ], " 5d": [ "", "凡" ], " 6d": [ "", "ç«¿" ], " 7d": [ "", "惚" ], " 8d": [ "", "æ…ˆ" ], " 9d": [ "", "æµ®" ], " 0d": [ "", "æž" ], " 'd": [ "", "ç–«" ], " ,d": [ "", "é‚" ], " .d": [ "", "励" ], " pd": [ "", "é" ], " yd": [ "", "僭" ], " fd": [ "", "霧" ], " gd": [ "", "楠" ], " cd": [ "", "漆" ], " rd": [ "", "ç¹¹" ], " ld": [ "", "唯" ], " ad": [ "", "ç…½" ], " od": [ "", "泌" ], " ed": [ "", "â– " ], " ud": [ "", "æ›–" ], " id": [ "", "è…" ], " dd": [ "", "ç…Ž" ], " hd": [ "", "儲" ], " td": [ "", "è›" ], " nd": [ "", "ç± " ], " sd": [ "", "賄" ], " ;d": [ "", "玄" ], " qd": [ "", "é§’" ], " jd": [ "", "â– " ], " kd": [ "", "戚" ], " xd": [ "", "僚" ], " bd": [ "", "â– " ], " md": [ "", "æ´ª" ], " wd": [ "", "呟" ], " vd": [ "", "æ³°" ], " zd": [ "", "娯" ], " 1h": [ "", "â– " ], " 2h": [ "", "亀" ], " 3h": [ "", "麓" ], " 4h": [ "", "â– " ], " 5h": [ "", "訃" ], " 6h": [ "", "å«" ], " 7h": [ "", "皺" ], " 8h": [ "", "燥" ], " 9h": [ "", "â– " ], " 0h": [ "", "â– " ], " 'h": [ "", "æ’" ], " ,h": [ "", "脹" ], " .h": [ "", "剤" ], " ph": [ "", "妨" ], " yh": [ "", "ç²" ], " fh": [ "", "è‹”" ], " gh": [ "", "æ‹­" ], " ch": [ "", "æ…„" ], " rh": [ "", "å °" ], " lh": [ "", "ç´³" ], " ah": [ "", "è«­" ], " oh": [ "", "â– " ], " eh": [ "", "è‚‹" ], " uh": [ "", "â– " ], " ih": [ "", "ç¡«" ], " dh": [ "", "載" ], " hh": [ "", "鉛" ], " th": [ "", "å‹…" ], " nh": [ "", "逞" ], " sh": [ "", "â– " ], " ;h": [ "", "髪" ], " qh": [ "", "劫" ], " jh": [ "", "å‘»" ], " kh": [ "", "å ª" ], " xh": [ "", "ä½³" ], " bh": [ "", "僕" ], " mh": [ "", "檎" ], " wh": [ "", "ç‹‚" ], " vh": [ "", "託" ], " zh": [ "", "ç¼¶" ], " 1t": [ "", "éš»" ], " 2t": [ "", "â– " ], " 3t": [ "", "â– " ], " 4t": [ "", "è˜" ], " 5t": [ "", "æŽ" ], " 6t": [ "", "â– " ], " 7t": [ "", "ç¡" ], " 8t": [ "", "勘" ], " 9t": [ "", "æ’¤" ], " 0t": [ "", "蛇" ], " 't": [ "", "禅" ], " ,t": [ "", "躓" ], " .t": [ "", "â– " ], " pt": [ "", "æ¹¾" ], " yt": [ "", "篠" ], " ft": [ "", "å–‹" ], " gt": [ "", "挫" ], " ct": [ "", "è…º" ], " rt": [ "", "埃" ], " lt": [ "", "矯" ], " at": [ "", "å…¶" ], " ot": [ "", "å—œ" ], " et": [ "", "昧" ], " ut": [ "", "â– " ], " it": [ "", "訟" ], " dt": [ "", "æ­ª" ], " ht": [ "", "忽" ], " tt": [ "", "ç¹" ], " nt": [ "", "å¼›" ], " st": [ "", "硬" ], " ;t": [ "", "勲" ], " qt": [ "", "桟" ], " jt": [ "", "傾" ], " kt": [ "", "烙" ], " xt": [ "", "é­‚" ], " bt": [ "", "蕪" ], " mt": [ "", "蛾" ], " wt": [ "", "燻" ], " vt": [ "", "ç‹¡" ], " zt": [ "", "ç¢" ], " 1n": [ "", "摯" ], " 2n": [ "", "â– " ], " 3n": [ "", "儚" ], " 4n": [ "", "â– " ], " 5n": [ "", "呆" ], " 6n": [ "", "â– " ], " 7n": [ "", "è¶£" ], " 8n": [ "", "梱" ], " 9n": [ "", "ç´" ], " 0n": [ "", "眉" ], " 'n": [ "", "亭" ], " ,n": [ "", "é ’" ], " .n": [ "", "溶" ], " pn": [ "", "ç " ], " yn": [ "", "銘" ], " fn": [ "", "â– " ], " gn": [ "", "ç½ " ], " cn": [ "", "蘇" ], " rn": [ "", "æ»´" ], " ln": [ "", "å¶" ], " an": [ "", "脚" ], " on": [ "", "è—»" ], " en": [ "", "ç­‘" ], " un": [ "", "å‚" ], " in": [ "", "æ›°" ], " dn": [ "", "滑" ], " hn": [ "", "促" ], " tn": [ "", "床" ], " nn": [ "", "泄" ], " sn": [ "", "æ‹™" ], " ;n": [ "", "盆" ], " qn": [ "", "賓" ], " jn": [ "", "帥" ], " kn": [ "", "é‹­" ], " xn": [ "", "è·³" ], " bn": [ "", "〆" ], " mn": [ "", "ç’§" ], " wn": [ "", "è¡" ], " vn": [ "", "â– " ], " zn": [ "", "â– " ], " 1s": [ "", "å³°" ], " 2s": [ "", "錮" ], " 3s": [ "", "軟" ], " 4s": [ "", "曇" ], " 5s": [ "", "扉" ], " 6s": [ "", "躾" ], " 7s": [ "", "肘" ], " 8s": [ "", "æ¿¡" ], " 9s": [ "", "æ·˜" ], " 0s": [ "", "祀" ], " 's": [ "", "æ»" ], " ,s": [ "", "措" ], " .s": [ "", "å±" ], " ps": [ "", "挑" ], " ys": [ "", "â– " ], " fs": [ "", "æ–¯" ], " gs": [ "", "â– " ], " cs": [ "", "é½¢" ], " rs": [ "", "剛" ], " ls": [ "", "ç½¹" ], " as": [ "", "å«" ], " os": [ "", "é›" ], " es": [ "", "惑" ], " us": [ "", "é ¬" ], " is": [ "", "â– " ], " ds": [ "", "åŠ" ], " hs": [ "", "â– " ], " ts": [ "", "æ–Ž" ], " ns": [ "", "è‹›" ], " ss": [ "", "å±" ], " ;s": [ "", "云" ], " qs": [ "", "ä¿„" ], " js": [ "", "â– " ], " ks": [ "", "膠" ], " xs": [ "", "榊" ], " bs": [ "", "漸" ], " ms": [ "", "郊" ], " ws": [ "", "åª" ], " vs": [ "", "葦" ], " zs": [ "", "è¼" ], " 1;": [ "", "ç‰" ], " 2;": [ "", "é®­" ], " 3;": [ "", "ç“¶" ], " 4;": [ "", "è‘›" ], " 5;": [ "", "â– " ], " 6;": [ "", "甥" ], " 7;": [ "", "å·¾" ], " 8;": [ "", "å‹§" ], " 9;": [ "", "â– " ], " 0;": [ "", "窃" ], " ';": [ "", "葵" ], " ,;": [ "", "亘" ], " .;": [ "", "éµ" ], " p;": [ "", "å´–" ], " y;": [ "", "è…¿" ], " f;": [ "", "â– " ], " g;": [ "", "å …" ], " c;": [ "", "å··" ], " r;": [ "", "è©®" ], " l;": [ "", "褒" ], " a;": [ "", "â– " ], " o;": [ "", "ç¶²" ], " e;": [ "", "ç¿ " ], " u;": [ "", "裕" ], " i;": [ "", "馴" ], " d;": [ "", "é€" ], " h;": [ "", "棺" ], " t;": [ "", "虹" ], " n;": [ "", "ç‹" ], " s;": [ "", "嫉" ], " ;;": [ "", "å‚­" ], " q;": [ "", "呉" ], " j;": [ "", "â– " ], " k;": [ "", "é ·" ], " x;": [ "", "è¶…" ], " b;": [ "", "賊" ], " m;": [ "", "軌" ], " w;": [ "", "ç–¼" ], " v;": [ "", "æ —" ], " z;": [ "", "ç¨" ], " 1q": [ "", "å’½" ], " 2q": [ "", "å§«" ], " 3q": [ "", "é–²" ], " 4q": [ "", "軸" ], " 5q": [ "", "â– " ], " 6q": [ "", "â– " ], " 7q": [ "", "ç •" ], " 8q": [ "", "â– " ], " 9q": [ "", "å‘" ], " 0q": [ "", "æ’­" ], " 'q": [ "", "戒" ], " ,q": [ "", "â– " ], " .q": [ "", "å°‹" ], " pq": [ "", "éš”" ], " yq": [ "", "傘" ], " fq": [ "", "悉" ], " gq": [ "", "é±" ], " cq": [ "", "æ±" ], " rq": [ "", "犠" ], " lq": [ "", "é€" ], " aq": [ "", "å»·" ], " oq": [ "", "è†" ], " eq": [ "", "毬" ], " uq": [ "", "妓" ], " iq": [ "", "謄" ], " dq": [ "", "貫" ], " hq": [ "", "臆" ], " tq": [ "", "æœ" ], " nq": [ "", "ç£" ], " sq": [ "", "飽" ], " ;q": [ "", "â– " ], " qq": [ "", "窺" ], " jq": [ "", "憾" ], " kq": [ "", "é–¾" ], " xq": [ "", "諦" ], " bq": [ "", "該" ], " mq": [ "", "埋" ], " wq": [ "", "爽" ], " vq": [ "", "çƒ" ], " zq": [ "", "â– " ], " 1j": [ "", "瓜" ], " 2j": [ "", "虎" ], " 3j": [ "", "å¯" ], " 4j": [ "", "葬" ], " 5j": [ "", "â– " ], " 6j": [ "", "厨" ], " 7j": [ "", "ç´¡" ], " 8j": [ "", "熾" ], " 9j": [ "", "嘱" ], " 0j": [ "", "裳" ], " 'j": [ "", "ç· " ], " ,j": [ "", "黎" ], " .j": [ "", "亮" ], " pj": [ "", "â– " ], " yj": [ "", "ç¼" ], " fj": [ "", "è–”" ], " gj": [ "", "â– " ], " cj": [ "", "å®" ], " rj": [ "", "ç·¯" ], " lj": [ "", "èº" ], " aj": [ "", "â– " ], " oj": [ "", "帽" ], " ej": [ "", "勾" ], " uj": [ "", "墨" ], " ij": [ "", "â– " ], " dj": [ "", "唾" ], " hj": [ "", "裡" ], " tj": [ "", "é»™" ], " nj": [ "", "é´Ž" ], " sj": [ "", "膨" ], " ;j": [ "", "æ–‰" ], " qj": [ "", "祥" ], " jj": [ "", "å°¤" ], " kj": [ "", "æ¯" ], " xj": [ "", "眩" ], " bj": [ "", "憫" ], " mj": [ "", "æ°" ], " wj": [ "", "麺" ], " vj": [ "", "æ‘‚" ], " zj": [ "", "套" ], " 1k": [ "", "榎" ], " 2k": [ "", "峡" ], " 3k": [ "", "â– " ], " 4k": [ "", "å°" ], " 5k": [ "", "棘" ], " 6k": [ "", "怯" ], " 7k": [ "", "å‡" ], " 8k": [ "", "ç—”" ], " 9k": [ "", "錦" ], " 0k": [ "", "è·" ], " 'k": [ "", "è© " ], " ,k": [ "", "é˜" ], " .k": [ "", "怖" ], " pk": [ "", "瞥" ], " yk": [ "", "â– " ], " fk": [ "", "æ‚”" ], " gk": [ "", "éš™" ], " ck": [ "", "æš" ], " rk": [ "", "韮" ], " lk": [ "", "妊" ], " ak": [ "", "å©¿" ], " ok": [ "", "俯" ], " ek": [ "", "冨" ], " uk": [ "", "æ®–" ], " ik": [ "", "æ§" ], " dk": [ "", "è–ª" ], " hk": [ "", "ã€" ], " tk": [ "", "殆" ], " nk": [ "", "胞" ], " sk": [ "", "å¾" ], " ;k": [ "", "刹" ], " qk": [ "", "è’" ], " jk": [ "", "符" ], " kk": [ "", "諜" ], " xk": [ "", "é–¥" ], " bk": [ "", "è«®" ], " mk": [ "", "å¹½" ], " wk": [ "", "é¡" ], " vk": [ "", "æ¶™" ], " zk": [ "", "柿" ], " 1x": [ "", "牡" ], " 2x": [ "", "埠" ], " 3x": [ "", "â– " ], " 4x": [ "", "稚" ], " 5x": [ "", "æ¼" ], " 6x": [ "", "抄" ], " 7x": [ "", "ç–‡" ], " 8x": [ "", "骸" ], " 9x": [ "", "å¹»" ], " 0x": [ "", "æ‘©" ], " 'x": [ "", "â– " ], " ,x": [ "", "寧" ], " .x": [ "", "â– " ], " px": [ "", "â– " ], " yx": [ "", "è›™" ], " fx": [ "", "æ‹·" ], " gx": [ "", "挨" ], " cx": [ "", "ç™–" ], " rx": [ "", "â– " ], " lx": [ "", "ä¹–" ], " ax": [ "", "裂" ], " ox": [ "", "è¾±" ], " ex": [ "", "ç¿»" ], " ux": [ "", "å¶" ], " ix": [ "", "æ—¦" ], " dx": [ "", "é¡›" ], " hx": [ "", "ç•”" ], " tx": [ "", "æ¡§" ], " nx": [ "", "æƒ" ], " sx": [ "", "å¡‘" ], " ;x": [ "", "憩" ], " qx": [ "", "懲" ], " jx": [ "", "芯" ], " kx": [ "", "祉" ], " xx": [ "", "ä¾®" ], " bx": [ "", "é›°" ], " mx": [ "", "嬉" ], " wx": [ "", "↓" ], " vx": [ "", "â– " ], " zx": [ "", "èŒ" ], " 1b": [ "", "æ…¾" ], " 2b": [ "", "窟" ], " 3b": [ "", "è—ª" ], " 4b": [ "", "å™" ], " 5b": [ "", "唄" ], " 6b": [ "", "è´‹" ], " 7b": [ "", "臥" ], " 8b": [ "", "燈" ], " 9b": [ "", "é…ª" ], " 0b": [ "", "â– " ], " 'b": [ "", "掃" ], " ,b": [ "", "霞" ], " .b": [ "", "è©" ], " pb": [ "", "ç—•" ], " yb": [ "", "戴" ], " fb": [ "", "浄" ], " gb": [ "", "翼" ], " cb": [ "", "涸" ], " rb": [ "", "â– " ], " lb": [ "", "騒" ], " ab": [ "", "憶" ], " ob": [ "", "禄" ], " eb": [ "", "嚇" ], " ub": [ "", "妄" ], " ib": [ "", "耗" ], " db": [ "", "伎" ], " hb": [ "", "â– " ], " tb": [ "", "â– " ], " nb": [ "", "â– " ], " sb": [ "", "å¾" ], " ;b": [ "", "é‘‘" ], " qb": [ "", "拳" ], " jb": [ "", "冒" ], " kb": [ "", "â– " ], " xb": [ "", "浪" ], " bb": [ "", "冶" ], " mb": [ "", "è¡·" ], " wb": [ "", "ç§Ÿ" ], " vb": [ "", "éš" ], " zb": [ "", "åŸ" ], " 1m": [ "", "逼" ], " 2m": [ "", "厄" ], " 3m": [ "", "憎" ], " 4m": [ "", "æ‚©" ], " 5m": [ "", "éž­" ], " 6m": [ "", "ç‹©" ], " 7m": [ "", "怪" ], " 8m": [ "", "拘" ], " 9m": [ "", "è†" ], " 0m": [ "", "æ‹" ], " 'm": [ "", "æ¿«" ], " ,m": [ "", "椅" ], " .m": [ "", "æ ½" ], " pm": [ "", "é—Š" ], " ym": [ "", "柴" ], " fm": [ "", "饗" ], " gm": [ "", "忌" ], " cm": [ "", "â– " ], " rm": [ "", "å" ], " lm": [ "", "循" ], " am": [ "", "彩" ], " om": [ "", "庇" ], " em": [ "", "賑" ], " um": [ "", "騙" ], " im": [ "", "â– " ], " dm": [ "", "銑" ], " hm": [ "", "é »" ], " tm": [ "", "橘" ], " nm": [ "", "åª" ], " sm": [ "", "盃" ], " ;m": [ "", "ä¹" ], " qm": [ "", "抹" ], " jm": [ "", "肪" ], " km": [ "", "â– " ], " xm": [ "", "挽" ], " bm": [ "", "甦" ], " mm": [ "", "â– " ], " wm": [ "", "è·¨" ], " vm": [ "", "唇" ], " zm": [ "", "怠" ], " 1w": [ "", "溜" ], " 2w": [ "", "烈" ], " 3w": [ "", "彫" ], " 4w": [ "", "芋" ], " 5w": [ "", "診" ], " 6w": [ "", "â– " ], " 7w": [ "", "采" ], " 8w": [ "", "éœ" ], " 9w": [ "", "桃" ], " 0w": [ "", "æ¹§" ], " 'w": [ "", "笹" ], " ,w": [ "", "註" ], " .w": [ "", "芥" ], " pw": [ "", "惧" ], " yw": [ "", "å–ª" ], " fw": [ "", "覗" ], " gw": [ "", "ä»°" ], " cw": [ "", "奢" ], " rw": [ "", "諾" ], " lw": [ "", "â– " ], " aw": [ "", "楕" ], " ow": [ "", "擬" ], " ew": [ "", "å’²" ], " uw": [ "", "誉" ], " iw": [ "", "â– " ], " dw": [ "", "凋" ], " hw": [ "", "掻" ], " tw": [ "", "â– " ], " nw": [ "", "掟" ], " sw": [ "", "蚤" ], " ;w": [ "", "æ´²" ], " qw": [ "", "祓" ], " jw": [ "", "æ­" ], " kw": [ "", "â– " ], " xw": [ "", "ç—‡" ], " bw": [ "", "塊" ], " mw": [ "", "什" ], " ww": [ "", "â– " ], " vw": [ "", "飢" ], " zw": [ "", "è¡" ], " 1v": [ "", "â– " ], " 2v": [ "", "å¬" ], " 3v": [ "", "ç—´" ], " 4v": [ "", "â– " ], " 5v": [ "", "â– " ], " 6v": [ "", "刈" ], " 7v": [ "", "â– " ], " 8v": [ "", "銚" ], " 9v": [ "", "炊" ], " 0v": [ "", "æ±" ], " 'v": [ "", "æ„" ], " ,v": [ "", "繕" ], " .v": [ "", "â– " ], " pv": [ "", "楷" ], " yv": [ "", "扶" ], " fv": [ "", "覆" ], " gv": [ "", "â– " ], " cv": [ "", "è’²" ], " rv": [ "", "è«§" ], " lv": [ "", "醒" ], " av": [ "", "狸" ], " ov": [ "", "â– " ], " ev": [ "", "å—…" ], " uv": [ "", "æž " ], " iv": [ "", "â– " ], " dv": [ "", "â– " ], " hv": [ "", "æ’°" ], " tv": [ "", "â– " ], " nv": [ "", "â– " ], " sv": [ "", "胴" ], " ;v": [ "", "å–©" ], " qv": [ "", "è©°" ], " jv": [ "", "â– " ], " kv": [ "", "â– " ], " xv": [ "", "戯" ], " bv": [ "", "ç±" ], " mv": [ "", "樋" ], " wv": [ "", "â– " ], " vv": [ "", "â– " ], " zv": [ "", "è²°" ], " 1z": [ "", "â– " ], " 2z": [ "", "è¿­" ], " 3z": [ "", "粘" ], " 4z": [ "", "棚" ], " 5z": [ "", "ç–¾" ], " 6z": [ "", "鵜" ], " 7z": [ "", "â– " ], " 8z": [ "", "賜" ], " 9z": [ "", "ç´›" ], " 0z": [ "", "赦" ], " 'z": [ "", "篤" ], " ,z": [ "", "æ “" ], " .z": [ "", "舶" ], " pz": [ "", "曽" ], " yz": [ "", "â– " ], " fz": [ "", "但" ], " gz": [ "", "隆" ], " cz": [ "", "æ²" ], " rz": [ "", "â– " ], " lz": [ "", "æ“" ], " az": [ "", "茎" ], " oz": [ "", "ç´‹" ], " ez": [ "", "逸" ], " uz": [ "", "釘" ], " iz": [ "", "â– " ], " dz": [ "", "ç®”" ], " hz": [ "", "â– " ], " tz": [ "", "å¡" ], " nz": [ "", "â– " ], " sz": [ "", "ç™’" ], " ;z": [ "", "è‹—" ], " qz": [ "", "â– " ], " jz": [ "", "ç¦" ], " kz": [ "", "ç·’" ], " xz": [ "", "åŒ" ], " bz": [ "", "艇" ], " mz": [ "", "é„™" ], " wz": [ "", "å…œ" ], " vz": [ "", "å›" ], " zz": [ "", "â– " ], "1 ": [ "", "1" ], "2 ": [ "", "2" ], "3 ": [ "", "3" ], "4 ": [ "", "4" ], "5 ": [ "", "5" ], "6 ": [ "", "6" ], "7 ": [ "", "7" ], "8 ": [ "", "8" ], "9 ": [ "", "9" ], "0 ": [ "", "0" ], "' ": [ "", "'" ], ", ": [ "", "," ], ". ": [ "", "." ], "p ": [ "", "p" ], "y ": [ "", "y" ], "f ": [ "", "f" ], "g ": [ "", "g" ], "c ": [ "", "c" ], "r ": [ "", "r" ], "l ": [ "", "l" ], "a ": [ "", "a" ], "o ": [ "", "o" ], "e ": [ "", "e" ], "u ": [ "", "u" ], "i ": [ "", "i" ], "d ": [ "", "d" ], "h ": [ "", "h" ], "t ": [ "", "t" ], "n ": [ "", "n" ], "s ": [ "", "s" ], "; ": [ "", ";" ], "q ": [ "", "q" ], "j ": [ "", "j" ], "k ": [ "", "k" ], "x ": [ "", "x" ], "b ": [ "", "b" ], "m ": [ "", "m" ], "w ": [ "", "w" ], "v ": [ "", "v" ], "z ": [ "", "z" ], " ": [ "", " " ] } } } libskk-1.0.0/rules/trycode/metadata.json0000664000076400007640000000027611675742075015223 00000000000000{ "name": "TRY-CODE", "description": "Japanese direct input method based on T-Code, developed by Naoto Takahashi " } libskk-1.0.0/rules/trycode/keymap/0000775000076400007640000000000012016557043014076 500000000000000libskk-1.0.0/rules/trycode/keymap/latin.json0000664000076400007640000000006511675742075016034 00000000000000{ "include": [ "default/default" ] } libskk-1.0.0/rules/trycode/keymap/katakana.json0000664000076400007640000000006511675742075016500 00000000000000{ "include": [ "default/default" ] } libskk-1.0.0/rules/trycode/keymap/hankaku-katakana.json0000664000076400007640000000006511675742075020120 00000000000000{ "include": [ "default/default" ] } libskk-1.0.0/rules/trycode/keymap/wide-latin.json0000664000076400007640000000006511675742075016762 00000000000000{ "include": [ "default/default" ] } libskk-1.0.0/rules/trycode/keymap/hiragana.json0000664000076400007640000000006511675742075016477 00000000000000{ "include": [ "default/default" ] } libskk-1.0.0/rules/default/0000775000076400007640000000000012016557043012563 500000000000000libskk-1.0.0/rules/default/rom-kana/0000775000076400007640000000000012016557043014270 500000000000000libskk-1.0.0/rules/default/rom-kana/default.json0000664000076400007640000001761711675742075016556 00000000000000{ "define": { "rom-kana": { "a": ["", "ã‚" ], "bb": ["b", "ã£" ], "ba": ["", "ã°" ], "be": ["", "ã¹" ], "bi": ["", "ã³" ], "bo": ["", "ã¼" ], "bu": ["", "ã¶" ], "bya": ["", "ã³ã‚ƒ" ], "bye": ["", "ã³ã‡" ], "byi": ["", "ã³ãƒ" ], "byo": ["", "ã³ã‚‡" ], "byu": ["", "ã³ã‚…" ], "cc": ["c", "ã£" ], "cha": ["", "ã¡ã‚ƒ" ], "che": ["", "ã¡ã‡" ], "chi": ["", "ã¡" ], "cho": ["", "ã¡ã‚‡" ], "chu": ["", "ã¡ã‚…" ], "cya": ["", "ã¡ã‚ƒ" ], "cye": ["", "ã¡ã‡" ], "cyi": ["", "ã¡ãƒ" ], "cyo": ["", "ã¡ã‚‡" ], "cyu": ["", "ã¡ã‚…" ], "dd": ["d", "ã£" ], "da": ["", "ã " ], "de": ["", "ã§" ], "dha": ["", "ã§ã‚ƒ" ], "dhe": ["", "ã§ã‡" ], "dhi": ["", "ã§ãƒ" ], "dho": ["", "ã§ã‚‡" ], "dhu": ["", "ã§ã‚…" ], "di": ["", "ã¢" ], "do": ["", "ã©" ], "du": ["", "ã¥" ], "dya": ["", "ã¢ã‚ƒ" ], "dye": ["", "ã¢ã‡" ], "dyi": ["", "ã¢ãƒ" ], "dyo": ["", "ã¢ã‚‡" ], "dyu": ["", "ã¢ã‚…" ], "e": ["", "ãˆ" ], "ff": ["f", "ã£" ], "fa": ["", "ãµã" ], "fe": ["", "ãµã‡" ], "fi": ["", "ãµãƒ" ], "fo": ["", "ãµã‰" ], "fu": ["", "ãµ" ], "fya": ["", "ãµã‚ƒ" ], "fye": ["", "ãµã‡" ], "fyi": ["", "ãµãƒ" ], "fyo": ["", "ãµã‚‡" ], "fyu": ["", "ãµã‚…" ], "gg": ["g", "ã£" ], "ga": ["", "ãŒ" ], "ge": ["", "ã’" ], "gi": ["", "ãŽ" ], "go": ["", "ã”" ], "gu": ["", "ã" ], "gya": ["", "ãŽã‚ƒ" ], "gye": ["", "ãŽã‡" ], "gyi": ["", "ãŽãƒ" ], "gyo": ["", "ãŽã‚‡" ], "gyu": ["", "ãŽã‚…" ], "ha": ["", "ã¯" ], "he": ["", "ã¸" ], "hh": ["h", "ã£" ], "hi": ["", "ã²" ], "ho": ["", "ã»" ], "hu": ["", "ãµ" ], "hya": ["", "ã²ã‚ƒ" ], "hye": ["", "ã²ã‡" ], "hyi": ["", "ã²ãƒ" ], "hyo": ["", "ã²ã‚‡" ], "hyu": ["", "ã²ã‚…" ], "i": ["", "ã„" ], "jj": ["j", "ã£" ], "ja": ["", "ã˜ã‚ƒ" ], "je": ["", "ã˜ã‡" ], "ji": ["", "ã˜" ], "jo": ["", "ã˜ã‚‡" ], "ju": ["", "ã˜ã‚…" ], "jya": ["", "ã˜ã‚ƒ" ], "jye": ["", "ã˜ã‡" ], "jyi": ["", "ã˜ãƒ" ], "jyo": ["", "ã˜ã‚‡" ], "jyu": ["", "ã˜ã‚…" ], "kk": ["k", "ã£" ], "ka": ["", "ã‹" ], "ke": ["", "ã‘" ], "ki": ["", "ã" ], "ko": ["", "ã“" ], "ku": ["", "ã" ], "kya": ["", "ãゃ" ], "kye": ["", "ãã‡" ], "kyi": ["", "ããƒ" ], "kyo": ["", "ãょ" ], "kyu": ["", "ãã‚…" ], "ma": ["", "ã¾" ], "me": ["", "ã‚" ], "mi": ["", "ã¿" ], "mm": ["m", "ã£" ], "mo": ["", "ã‚‚" ], "mu": ["", "ã‚€" ], "mya": ["", "ã¿ã‚ƒ" ], "mye": ["", "ã¿ã‡" ], "myi": ["", "ã¿ãƒ" ], "myo": ["", "ã¿ã‚‡" ], "myu": ["", "ã¿ã‚…" ], "n\'": ["", "ã‚“" ], "na": ["", "ãª" ], "ne": ["", "ã­" ], "ni": ["", "ã«" ], "nn": ["", "ã‚“" ], "no": ["", "ã®" ], "nu": ["", "ã¬" ], "nya": ["", "ã«ã‚ƒ" ], "nye": ["", "ã«ã‡" ], "nyi": ["", "ã«ãƒ" ], "nyo": ["", "ã«ã‚‡" ], "nyu": ["", "ã«ã‚…" ], "o": ["", "ãŠ" ], "pp": ["p", "ã£" ], "pa": ["", "ã±" ], "pe": ["", "ãº" ], "pi": ["", "ã´" ], "po": ["", "ã½" ], "pu": ["", "ã·" ], "pya": ["", "ã´ã‚ƒ" ], "pye": ["", "ã´ã‡" ], "pyi": ["", "ã´ãƒ" ], "pyo": ["", "ã´ã‚‡" ], "pyu": ["", "ã´ã‚…" ], "rr": ["r", "ã£" ], "ra": ["", "ら" ], "re": ["", "れ" ], "ri": ["", "り" ], "ro": ["", "ã‚" ], "ru": ["", "ã‚‹" ], "rya": ["", "りゃ" ], "rye": ["", "りã‡" ], "ryi": ["", "りãƒ" ], "ryo": ["", "りょ" ], "ryu": ["", "りゅ" ], "ss": ["s", "ã£" ], "sa": ["", "ã•" ], "se": ["", "ã›" ], "sha": ["", "ã—ゃ" ], "she": ["", "ã—ã‡" ], "shi": ["", "ã—" ], "sho": ["", "ã—ょ" ], "shu": ["", "ã—ã‚…" ], "si": ["", "ã—" ], "so": ["", "ã" ], "su": ["", "ã™" ], "sya": ["", "ã—ゃ" ], "sye": ["", "ã—ã‡" ], "syi": ["", "ã—ãƒ" ], "syo": ["", "ã—ょ" ], "syu": ["", "ã—ã‚…" ], "tt": ["t", "ã£" ], "ta": ["", "ãŸ" ], "te": ["", "ã¦" ], "tha": ["", "ã¦ã" ], "the": ["", "ã¦ã‡" ], "thi": ["", "ã¦ãƒ" ], "tho": ["", "ã¦ã‚‡" ], "thu": ["", "ã¦ã‚…" ], "ti": ["", "ã¡" ], "to": ["", "ã¨" ], "tsu": ["", "ã¤" ], "tu": ["", "ã¤" ], "tya": ["", "ã¡ã‚ƒ" ], "tye": ["", "ã¡ã‡" ], "tyi": ["", "ã¡ãƒ" ], "tyo": ["", "ã¡ã‚‡" ], "tyu": ["", "ã¡ã‚…" ], "u": ["", "ã†" ], "vv": ["v", "ã£" ], "va": ["", "ã†ã‚›ã" ], "ve": ["", "ã†ã‚›ã‡" ], "vi": ["", "ã†ã‚›ãƒ" ], "vo": ["", "ã†ã‚›ã‰" ], "vu": ["", "ã†ã‚›" ], "ww": ["w", "ã£" ], "wa": ["", "ã‚" ], "we": ["", "ã†ã‡" ], "wi": ["", "ã†ãƒ" ], "wo": ["", "ã‚’" ], "wu": ["", "ã†" ], "xx": ["x", "ã£" ], "xa": ["", "ã" ], "xe": ["", "ã‡" ], "xi": ["", "ãƒ" ], "xka": [ "", "ã‹", "ヵ" ], "xke": [ "", "ã‘", "ヶ" ], "xo": ["", "ã‰" ], "xtsu": ["", "ã£" ], "xtu": ["", "ã£" ], "xu": ["", "ã…" ], "xwa": ["", "ゎ" ], "xwe": ["", "ã‚‘" ], "xwi": ["", "ã‚" ], "xya": ["", "ゃ" ], "xyo": ["", "ょ" ], "xyu": ["", "ã‚…" ], "yy": ["y", "ã£" ], "ya": ["", "ã‚„" ], "ye": ["", "ã„ã‡" ], "yo": ["", "よ" ], "yu": ["", "ゆ" ], "zz": ["z", "ã£" ], "z,": ["", "‥" ], "z-": ["", "〜" ], "z.": ["", "…" ], "z/": ["", "・" ], "z[": ["", "『" ], "z]": ["", "ã€" ], "za": ["", "ã–" ], "ze": ["", "ãœ" ], "zh": ["", "â†" ], "zi": ["", "ã˜" ], "zj": ["", "↓" ], "zk": ["", "↑" ], "zl": ["", "→" ], "zo": ["", "ãž" ], "zu": ["", "ãš" ], "zya": ["", "ã˜ã‚ƒ" ], "zye": ["", "ã˜ã‡" ], "zyi": ["", "ã˜ãƒ" ], "zyo": ["", "ã˜ã‚‡" ], "zyu": ["", "ã˜ã‚…" ], "-": ["", "ー" ], ":": ["", ":" ], ";": ["", "ï¼›" ], "?": ["", "?" ], "[": ["", "「" ], "]": ["", "ã€" ] } } } libskk-1.0.0/rules/default/metadata.json0000664000076400007640000000010411675742075015164 00000000000000{ "name": "Default", "description": "Default typing rule" } libskk-1.0.0/rules/default/keymap/0000775000076400007640000000000012016557043014051 500000000000000libskk-1.0.0/rules/default/keymap/latin.json0000664000076400007640000000021711675742075016006 00000000000000{ "include": [ "default" ], "define": { "keymap": { "C-j": "set-input-mode-hiragana" } } } libskk-1.0.0/rules/default/keymap/katakana.json0000664000076400007640000000052211712171034016430 00000000000000{ "include": [ "default" ], "define": { "keymap": { "q": "set-input-mode-hiragana", "Q": "start-preedit", "l": "set-input-mode-latin", "L": "set-input-mode-wide-latin", "C-q": "set-input-mode-hankaku-katakana", "C-j": "commit" } } } libskk-1.0.0/rules/default/keymap/hankaku-katakana.json0000664000076400007640000000051211712171034020047 00000000000000{ "include": [ "default" ], "define": { "keymap": { "q": "set-input-mode-hiragana", "Q": "start-preedit", "l": "set-input-mode-latin", "L": "set-input-mode-wide-latin", "C-q": "set-input-mode-hiragana", "C-j": "commit" } } } libskk-1.0.0/rules/default/keymap/wide-latin.json0000664000076400007640000000021711675742075016734 00000000000000{ "include": [ "default" ], "define": { "keymap": { "C-j": "set-input-mode-hiragana" } } } libskk-1.0.0/rules/default/keymap/hiragana.json0000664000076400007640000000052211712171034016427 00000000000000{ "include": [ "default" ], "define": { "keymap": { "q": "set-input-mode-katakana", "Q": "start-preedit", "l": "set-input-mode-latin", "L": "set-input-mode-wide-latin", "C-q": "set-input-mode-hankaku-katakana", "C-j": "commit" } } } libskk-1.0.0/rules/default/keymap/default.json0000664000076400007640000000116411712171034016304 00000000000000{ "define": { "keymap": { "C-g": "abort", "\n": "commit-unhandled", "C-m": "commit-unhandled", "\b": "delete", "C-h": "delete", "/": "abbrev", "\\": "kuten", " ": "next-candidate", "\t": "complete", "C-i": "complete", ">": "special-midasi", "x": "previous-candidate", "X": "purge-candidate", "C-f": "expand-preedit", "C-b": "shrink-preedit", "Right": "expand-preedit", "Left": "shrink-preedit" } } } libskk-1.0.0/rules/tcode/0000775000076400007640000000000012016557043012235 500000000000000libskk-1.0.0/rules/tcode/rom-kana/0000775000076400007640000000000012016557043013742 500000000000000libskk-1.0.0/rules/tcode/rom-kana/default.json0000664000076400007640000012724511675742075016227 00000000000000{ "define": { "rom-kana": { "q1": [ "", "ヮ" ], "w1": [ "", "ヰ" ], "e1": [ "", "ヱ" ], "r1": [ "", "ヵ" ], "t1": [ "", "ヶ" ], "y1": [ "", "è«‹" ], "u1": [ "", "境" ], "i1": [ "", "ç³»" ], "o1": [ "", "探" ], "p1": [ "", "象" ], "a1": [ "", "ゎ" ], "s1": [ "", "ã‚" ], "d1": [ "", "ã‚‘" ], "h1": [ "", "ç››" ], "j1": [ "", "é©" ], "k1": [ "", "çª" ], "l1": [ "", "温" ], ";1": [ "", "æ•" ], "n1": [ "", "ä¾" ], "m1": [ "", "繊" ], ",1": [ "", "借" ], ".1": [ "", "é ˆ" ], "/1": [ "", "訳" ], "q2": [ "", "丑" ], "w2": [ "", "臼" ], "e2": [ "", "å®´" ], "r2": [ "", "ç¸" ], "t2": [ "", "曳" ], "y2": [ "", "å°š" ], "u2": [ "", "è³€" ], "i2": [ "", "岸" ], "o2": [ "", "責" ], "p2": [ "", "æ¼" ], "a2": [ "", "æ–¼" ], "s2": [ "", "汚" ], "d2": [ "", "ä¹™" ], "f2": [ "", "ç©" ], "h2": [ "", "益" ], "j2": [ "", "æ´" ], "k2": [ "", "周" ], "l2": [ "", "域" ], ";2": [ "", "è’" ], "n2": [ "", "ç¹”" ], "m2": [ "", "父" ], ",2": [ "", "æžš" ], ".2": [ "", "ä¹±" ], "/2": [ "", "香" ], "q3": [ "", "鬼" ], "w3": [ "", "虚" ], "e3": [ "", "ç‹­" ], "r3": [ "", "è„…" ], "t3": [ "", "驚" ], "y3": [ "", "舎" ], "u3": [ "", "å–œ" ], "i3": [ "", "å¹¹" ], "o3": [ "", "丘" ], "p3": [ "", "ç³–" ], "a3": [ "", "奇" ], "s3": [ "", "æ—¢" ], "d3": [ "", "èŠ" ], "f3": [ "", "å´" ], "g3": [ "", "享" ], "h3": [ "", "康" ], "j3": [ "", "å¾’" ], "k3": [ "", "景" ], "l3": [ "", "処" ], ";3": [ "", "ãœ" ], "n3": [ "", "è­²" ], "m3": [ "", "ヘ" ], ",3": [ "", "模" ], ".3": [ "", "é™" ], "/3": [ "", "èµ°" ], "q4": [ "", "å­¤" ], "w4": [ "", "誇" ], "e4": [ "", "黄" ], "r4": [ "", "åŽ" ], "t4": [ "", "耕" ], "y4": [ "", "布" ], "u4": [ "", "苦" ], "i4": [ "", "圧" ], "o4": [ "", "æµ" ], "p4": [ "", "固" ], "a4": [ "", "å·§" ], "s4": [ "", "å…‹" ], "d4": [ "", "懇" ], "f4": [ "", "å›°" ], "g4": [ "", "æ˜" ], "h4": [ "", "邦" ], "j4": [ "", "舞" ], "k4": [ "", "雑" ], "l4": [ "", "æ¼¢" ], ";4": [ "", "ç·Š" ], "n4": [ "", "æ¿€" ], "m4": [ "", "å¹²" ], ",4": [ "", "彦" ], ".4": [ "", "å‡" ], "/4": [ "", "åˆ" ], "q5": [ "", "奉" ], "w5": [ "", "æŸ" ], "e5": [ "", "貌" ], "r5": [ "", "åœ" ], "y5": [ "", "å§¿" ], "u5": [ "", "çµ¶" ], "i5": [ "", "密" ], "o5": [ "", "秘" ], "p5": [ "", "押" ], "h5": [ "", "衆" ], "j5": [ "", "節" ], "k5": [ "", "æ‰" ], "l5": [ "", "肉" ], ";5": [ "", "除" ], "n5": [ "", "測" ], "m5": [ "", "è¡€" ], ",5": [ "", "æ•£" ], ".5": [ "", "笑" ], "/5": [ "", "å¼" ], "q6": [ "", "æ¹–" ], "w6": [ "", "礼" ], "e6": [ "", "è‘—" ], "r6": [ "", "ç§»" ], "t6": [ "", "郷" ], "a6": [ "", "償" ], "s6": [ "", "欧" ], "d6": [ "", "努" ], "f6": [ "", "底" ], "g6": [ "", "亜" ], "z6": [ "", "ç¦" ], "x6": [ "", "ç¡" ], "c6": [ "", "樹" ], "v6": [ "", "å¥" ], "b6": [ "", "礎" ], "q7": [ "", "端" ], "w7": [ "", "飾" ], "e7": [ "", "郵" ], "r7": [ "", "å¡©" ], "t7": [ "", "群" ], "u7": [ "", "星" ], "i7": [ "", "æž" ], "o7": [ "", "é·" ], "p7": [ "", "宣" ], "a7": [ "", "ç´…" ], "s7": [ "", "å‚·" ], "d7": [ "", "豪" ], "f7": [ "", "ç¶­" ], "g7": [ "", "脱" ], "h7": [ "", "é¼ " ], "j7": [ "", "曹" ], "k7": [ "", "å¥" ], "l7": [ "", "å°Š" ], "z7": [ "", "çµ¹" ], "x7": [ "", "被" ], "c7": [ "", "æº" ], "v7": [ "", "願" ], "b7": [ "", "臨" ], "q8": [ "", "刷" ], "w8": [ "", "寿" ], "e8": [ "", "é †" ], "r8": [ "", "å±" ], "t8": [ "", "ç ‚" ], "y8": [ "", "庶" ], "u8": [ "", "ç²§" ], "i8": [ "", "丈" ], "o8": [ "", "ç§°" ], "p8": [ "", "è’¸" ], "a8": [ "", "舗" ], "s8": [ "", "å……" ], "d8": [ "", "å–«" ], "f8": [ "", "è…•" ], "g8": [ "", "æš´" ], "z8": [ "", "批" ], "x8": [ "", "æ…¶" ], "c8": [ "", "渉" ], "v8": [ "", "竜" ], "b8": [ "", "ä½µ" ], "q9": [ "", "震" ], "w9": [ "", "扱" ], "e9": [ "", "片" ], "r9": [ "", "札" ], "t9": [ "", "乞" ], "u9": [ "", "乃" ], "i9": [ "", "如" ], "o9": [ "", "å°¼" ], "a9": [ "", "輪" ], "s9": [ "", "倒" ], "d9": [ "", "æ“" ], "f9": [ "", "柄" ], "g9": [ "", "é­š" ], "z9": [ "", "å°±" ], "x9": [ "", "é§" ], "c9": [ "", "æ®" ], "v9": [ "", "丹" ], "b9": [ "", "é®®" ], "q0": [ "", "弘" ], "w0": [ "", "ç—›" ], "e0": [ "", "票" ], "r0": [ "", "訴" ], "t0": [ "", "éº" ], "y0": [ "", "欄" ], "u0": [ "", "é¾" ], "i0": [ "", "ç•¥" ], "o0": [ "", "æ…®" ], "p0": [ "", "ç´¯" ], "a0": [ "", "則" ], "s0": [ "", "å­˜" ], "d0": [ "", "å€" ], "f0": [ "", "牛" ], "g0": [ "", "釈" ], "z0": [ "", "ç¶±" ], "x0": [ "", "潟" ], "c0": [ "", "創" ], "v0": [ "", "背" ], "b0": [ "", "çš®" ], "1q": [ "", "ヲ" ], "2q": [ "", "å“€" ], "3q": [ "", "暇" ], "4q": [ "", "å•“" ], "5q": [ "", "把" ], "6q": [ "", "é…¸" ], "7q": [ "", "昼" ], "8q": [ "", "ç‚­" ], "9q": [ "", "稲" ], "0q": [ "", "湯" ], "qq": [ "", "æžœ" ], "wq": [ "", "告" ], "eq": [ "", "ç­–" ], "rq": [ "", "首" ], "tq": [ "", "è¾²" ], "yq": [ "", "æ­©" ], "uq": [ "", "回" ], "iq": [ "", "å‹™" ], "oq": [ "", "å³¶" ], "pq": [ "", "é–‹" ], "aq": [ "", "å ±" ], "sq": [ "", "ç´™" ], "dq": [ "", "館" ], "fq": [ "", "夜" ], "gq": [ "", "ä½" ], "hq": [ "", "給" ], "jq": [ "", "å“¡" ], "kq": [ "", "ã©" ], "lq": [ "", "代" ], ";q": [ "", "レ" ], "zq": [ "", "欠" ], "xq": [ "", "å¤" ], "cq": [ "", "å½¼" ], "vq": [ "", "妻" ], "bq": [ "", "å–„" ], "nq": [ "", "相" ], "mq": [ "", "å®¶" ], ",q": [ "", "çš„" ], ".q": [ "", "対" ], "/q": [ "", "æ­´" ], "1w": [ "", "ã‚¥" ], "2w": [ "", "逢" ], "3w": [ "", "牙" ], "4w": [ "", "掲" ], "5w": [ "", "ä¼" ], "6w": [ "", "貿" ], "7w": [ "", "æœ" ], "8w": [ "", "ç•°" ], "9w": [ "", "隣" ], "0w": [ "", "æ—§" ], "qw": [ "", "概" ], "ww": [ "", "è²·" ], "ew": [ "", "詳" ], "rw": [ "", "ç”±" ], "tw": [ "", "æ­»" ], "yw": [ "", "ã‚­" ], "uw": [ "", "ã›" ], "iw": [ "", "区" ], "ow": [ "", "百" ], "pw": [ "", "木" ], "aw": [ "", "音" ], "sw": [ "", "王" ], "dw": [ "", "放" ], "fw": [ "", "々" ], "gw": [ "", "応" ], "hw": [ "", "分" ], "jw": [ "", "よ" ], "kw": [ "", "ル" ], "lw": [ "", "åƒ" ], ";w": [ "", "ã‚¢" ], "zw": [ "", "財" ], "xw": [ "", "é‡" ], "cw": [ "", "è£" ], "vw": [ "", "å±…" ], "bw": [ "", "å·®" ], "nw": [ "", "付" ], "mw": [ "", "プ" ], ",w": [ "", "ã°" ], ".w": [ "", "ュ" ], "/w": [ "", "作" ], "1e": [ "", "ヴ" ], "2e": [ "", "å®›" ], "3e": [ "", "壊" ], "4e": [ "", "æº" ], "5e": [ "", "é¿" ], "6e": [ "", "æ”»" ], "7e": [ "", "焼" ], "8e": [ "", "é—˜" ], "9e": [ "", "奈" ], "0e": [ "", "夕" ], "qe": [ "", "æ­¦" ], "we": [ "", "残" ], "ee": [ "", "両" ], "re": [ "", "在" ], "te": [ "", "!" ], "ye": [ "", "ã‚„" ], "ue": [ "", "出" ], "ie": [ "", "ã‚¿" ], "oe": [ "", "手" ], "pe": [ "", "ä¿" ], "ae": [ "", "案" ], "se": [ "", "曲" ], "de": [ "", "情" ], "fe": [ "", "引" ], "ge": [ "", "è·" ], "he": [ "", "7" ], "je": [ "", "ã‹" ], "ke": [ "", "(" ], "le": [ "", "ト" ], ";e": [ "", "れ" ], "ze": [ "", "従" ], "xe": [ "", "骨" ], "ce": [ "", "厚" ], "ve": [ "", "é¡”" ], "be": [ "", "é‡" ], "ne": [ "", "内" ], "me": [ "", "å·¥" ], ",e": [ "", "å…«" ], ".e": [ "", "テ" ], "/e": [ "", "見" ], "1r": [ "", "ヂ" ], "2r": [ "", "囲" ], "3r": [ "", "較" ], "4r": [ "", "劇" ], "5r": [ "", "å‘" ], "6r": [ "", "盤" ], "7r": [ "", "帯" ], "8r": [ "", "易" ], "9r": [ "", "速" ], "0r": [ "", "æ‹¡" ], "qr": [ "", "風" ], "wr": [ "", "階" ], "er": [ "", "能" ], "rr": [ "", "è«–" ], "tr": [ "", "増" ], "yr": [ "", "コ" ], "ur": [ "", "å±±" ], "ir": [ "", "者" ], "or": [ "", "発" ], "pr": [ "", "ç«‹" ], "ar": [ "", "横" ], "sr": [ "", "興" ], "dr": [ "", "刺" ], "fr": [ "", "å´" ], "gr": [ "", "覚" ], "hr": [ "", "ã" ], "jr": [ "", "ã£" ], "kr": [ "", "æ—¥" ], "lr": [ "", "国" ], ";r": [ "", "二" ], "zr": [ "", "é©" ], "xr": [ "", "類" ], "cr": [ "", "御" ], "vr": [ "", "宇" ], "br": [ "", "推" ], "nr": [ "", "ä¹" ], "mr": [ "", "å" ], ",r": [ "", "å·" ], ".r": [ "", "機" ], "/r": [ "", "ãƒ" ], "1t": [ "", "ヅ" ], "2t": [ "", "庵" ], "3t": [ "", "寒" ], "4t": [ "", "è³¢" ], "5t": [ "", "è—©" ], "6t": [ "", "æ±½" ], "7t": [ "", "æ›" ], "8t": [ "", "å»¶" ], "9t": [ "", "雪" ], "0t": [ "", "互" ], "qt": [ "", "ç´°" ], "wt": [ "", "å¤" ], "et": [ "", "利" ], "rt": [ "", "ペ" ], "tt": [ "", "ゃ" ], "yt": [ "", "ナ" ], "ut": [ "", "金" ], "it": [ "", "マ" ], "ot": [ "", "å’Œ" ], "pt": [ "", "女" ], "at": [ "", "å´Ž" ], "st": [ "", "白" ], "dt": [ "", "ã" ], "ft": [ "", "官" ], "gt": [ "", "çƒ" ], "ht": [ "", "上" ], "jt": [ "", "ã" ], "kt": [ "", "8" ], "lt": [ "", "ãˆ" ], ";t": [ "", "å¹´" ], "zt": [ "", "æ¯" ], "xt": [ "", "奥" ], "ct": [ "", "å› " ], "vt": [ "", "é…’" ], "bt": [ "", "伸" ], "nt": [ "", "サ" ], "mt": [ "", "建" ], ",t": [ "", "パ" ], ".t": [ "", "第" ], "/t": [ "", "å…¥" ], "1y": [ "", "ç°¡" ], "2y": [ "", "å¾´" ], "3y": [ "", "触" ], "4y": [ "", "å®—" ], "5y": [ "", "æ¤" ], "7y": [ "", "ç´¢" ], "8y": [ "", "å°„" ], "9y": [ "", "æ¿" ], "0y": [ "", "æ…¢" ], "qy": [ "", "害" ], "wy": [ "", "賃" ], "ey": [ "", "æ•´" ], "ry": [ "", "軽" ], "ty": [ "", "è©•" ], "yy": [ "", "ä½" ], "uy": [ "", "法" ], "iy": [ "", "æ•°" ], "oy": [ "", "郎" ], "py": [ "", "談" ], "ay": [ "", "æœ" ], "sy": [ "", "声" ], "dy": [ "", "ä»»" ], "fy": [ "", "検" ], "gy": [ "", "豊" ], "hy": [ "", "美" ], "jy": [ "", "題" ], "ky": [ "", "井" ], "ly": [ "", "æ´‹" ], ";y": [ "", "実" ], "zy": [ "", "爆" ], "xy": [ "", "仲" ], "cy": [ "", "茶" ], "vy": [ "", "率" ], "by": [ "", "比" ], "ny": [ "", "昔" ], "my": [ "", "短" ], ",y": [ "", "岩" ], ".y": [ "", "å·¨" ], "/y": [ "", "æ•—" ], "1u": [ "", "承" ], "2u": [ "", "ç« " ], "3u": [ "", "候" ], "4u": [ "", "途" ], "5u": [ "", "複" ], "7u": [ "", "冊" ], "8u": [ "", "需" ], "9u": [ "", "è©‘" ], "0u": [ "", "è¿·" ], "qu": [ "", "æ’ƒ" ], "wu": [ "", "折" ], "eu": [ "", "追" ], "ru": [ "", "隊" ], "tu": [ "", "è§’" ], "yu": [ "", "接" ], "uu": [ "", "å‚™" ], "iu": [ "", "最" ], "ou": [ "", "急" ], "pu": [ "", "験" ], "au": [ "", "変" ], "su": [ "", "審" ], "du": [ "", "改" ], "fu": [ "", "昇" ], "gu": [ "", "芸" ], "hu": [ "", "宿" ], "ju": [ "", "制" ], "ku": [ "", "集" ], "lu": [ "", "安" ], ";u": [ "", "ç”»" ], "zu": [ "", "陽" ], "xu": [ "", "æ§‹" ], "cu": [ "", "æ—…" ], "vu": [ "", "æ–½" ], "bu": [ "", "曜" ], "nu": [ "", "é " ], "mu": [ "", "ã‚©" ], ",u": [ "", "å°†" ], ".u": [ "", "ãž" ], "/u": [ "", "塚" ], "1i": [ "", "å¿«" ], "2i": [ "", "å¦" ], "3i": [ "", "æ­¯" ], "4i": [ "", "ç­†" ], "5i": [ "", "里" ], "7i": [ "", "çš¿" ], "8i": [ "", "輯" ], "9i": [ "", "è“„" ], "0i": [ "", "戻" ], "qi": [ "", "æµ´" ], "wi": [ "", "ç§€" ], "ei": [ "", "糸" ], "ri": [ "", "春" ], "ti": [ "", "幸" ], "yi": [ "", "記" ], "ui": [ "", "æœ" ], "ii": [ "", "知" ], "oi": [ "", "ワ" ], "pi": [ "", "é€" ], "ai": [ "", "é™" ], "si": [ "", "ç ”" ], "di": [ "", "労" ], "fi": [ "", "çµ±" ], "gi": [ "", "å½¹" ], "hi": [ "", "ã‚»" ], "ji": [ "", "é‹" ], "ki": [ "", "ツ" ], "li": [ "", "特" ], ";i": [ "", "è°·" ], "zi": [ "", "ã‚¡" ], "xi": [ "", "å°Ž" ], "ci": [ "", "èª" ], "vi": [ "", "å¥" ], "bi": [ "", "å°¾" ], "ni": [ "", "åº" ], "mi": [ "", "振" ], ",i": [ "", "ç·´" ], ".i": [ "", "念" ], "/i": [ "", "åƒ" ], "1o": [ "", "包" ], "2o": [ "", "ç´" ], "3o": [ "", "é ¼" ], "4o": [ "", "逃" ], "5o": [ "", "å¯" ], "7o": [ "", "è³›" ], "8o": [ "", "瞬" ], "9o": [ "", "貯" ], "0o": [ "", "羊" ], "qo": [ "", "ç©" ], "wo": [ "", "程" ], "eo": [ "", "æ–­" ], "ro": [ "", "低" ], "to": [ "", "減" ], "yo": [ "", "モ" ], "uo": [ "", "資" ], "io": [ "", "士" ], "oo": [ "", "è²»" ], "po": [ "", "ã‚£" ], "ao": [ "", "逆" ], "so": [ "", "ä¼" ], "do": [ "", "ç²¾" ], "fo": [ "", "ã–" ], "go": [ "", "å°" ], "ho": [ "", "神" ], "jo": [ "", "ã³" ], "ko": [ "", "打" ], "lo": [ "", "勤" ], ";o": [ "", "ャ" ], "zo": [ "", "殺" ], "xo": [ "", "è² " ], "co": [ "", "何" ], "vo": [ "", "å±¥" ], "bo": [ "", "般" ], "no": [ "", "耳" ], "mo": [ "", "授" ], ",o": [ "", "版" ], ".o": [ "", "効" ], "/o": [ "", "視" ], "1p": [ "", "å”±" ], "2p": [ "", "æš®" ], "3p": [ "", "憲" ], "4p": [ "", "勉" ], "5p": [ "", "罪" ], "8p": [ "", "盾" ], "9p": [ "", "虫" ], "qp": [ "", "æ•…" ], "wp": [ "", "鉱" ], "ep": [ "", "æ" ], "rp": [ "", "å…" ], "tp": [ "", "æ•·" ], "yp": [ "", "ç„¡" ], "up": [ "", "石" ], "ip": [ "", "屋" ], "op": [ "", "è§£" ], "pp": [ "", "募" ], "ap": [ "", "令" ], "sp": [ "", "é•" ], "dp": [ "", "装" ], "fp": [ "", "ç„¶" ], "gp": [ "", "確" ], "hp": [ "", "優" ], "jp": [ "", "å…¬" ], "kp": [ "", "å“" ], "lp": [ "", "語" ], ";p": [ "", "æ¼”" ], "zp": [ "", "券" ], "xp": [ "", "悪" ], "cp": [ "", "ç§‹" ], "vp": [ "", "éž" ], "bp": [ "", "便" ], "np": [ "", "示" ], "mp": [ "", "å³" ], ",p": [ "", "難" ], ".p": [ "", "æ™®" ], "/p": [ "", "辺" ], "1a": [ "", "ã±" ], "2a": [ "", "æ…°" ], "3a": [ "", "我" ], "4a": [ "", "å…¼" ], "5a": [ "", "è±" ], "6a": [ "", "桜" ], "7a": [ "", "瀬" ], "8a": [ "", "é³¥" ], "9a": [ "", "催" ], "0a": [ "", "éšœ" ], "qa": [ "", "åŽ" ], "wa": [ "", "éš›" ], "ea": [ "", "太" ], "ra": [ "", "園" ], "ta": [ "", "船" ], "ya": [ "", "中" ], "ua": [ "", "ス" ], "ia": [ "", "ã‚‚" ], "oa": [ "", "ãŠ" ], "pa": [ "", "定" ], "aa": [ "", "種" ], "sa": [ "", "岡" ], "da": [ "", "çµ" ], "fa": [ "", "進" ], "ga": [ "", "真" ], "ha": [ "", "3" ], "ja": [ "", "ã¨" ], "ka": [ "", "〇" ], "la": [ "", "ã¦" ], ";a": [ "", "ã‚‹" ], "za": [ "", "ヒ" ], "xa": [ "", "江" ], "ca": [ "", "別" ], "va": [ "", "考" ], "ba": [ "", "権" ], "na": [ "", "ッ" ], "ma": [ "", "人" ], ",a": [ "", "三" ], ".a": [ "", "京" ], "/a": [ "", "ã¡" ], "1s": [ "", "ã´" ], "2s": [ "", "為" ], "3s": [ "", "掛" ], "4s": [ "", "嫌" ], "5s": [ "", "ç´" ], "6s": [ "", "å…¸" ], "7s": [ "", "åš" ], "8s": [ "", "ç­‹" ], "9s": [ "", "å¿ " ], "0s": [ "", "ä¹³" ], "qs": [ "", "è‹¥" ], "ws": [ "", "雄" ], "es": [ "", "査" ], "rs": [ "", "ãµ" ], "ts": [ "", "賞" ], "ys": [ "", "ã‚" ], "us": [ "", "ラ" ], "is": [ "", "æ±" ], "os": [ "", "生" ], "ps": [ "", "ã‚" ], "as": [ "", "å®…" ], "ss": [ "", "熟" ], "ds": [ "", "å¾…" ], "fs": [ "", "å–" ], "gs": [ "", "ç§‘" ], "hs": [ "", "ー" ], "js": [ "", "ã—" ], "ks": [ "", "ãŸ" ], "ls": [ "", "一" ], ";s": [ "", "ãŒ" ], "zs": [ "", "åŠ" ], "xs": [ "", "ä¹…" ], "cs": [ "", "蔵" ], "vs": [ "", "æ—©" ], "bs": [ "", "造" ], "ns": [ "", "ロ" ], "ms": [ "", "ク" ], ",s": [ "", "万" ], ".s": [ "", "æ–¹" ], "/s": [ "", "フ" ], "1d": [ "", "ã·" ], "2d": [ "", "é™°" ], "3d": [ "", "æ•¢" ], "4d": [ "", "é¡•" ], "5d": [ "", "æ" ], "6d": [ "", "採" ], "7d": [ "", "謡" ], "8d": [ "", "希" ], "9d": [ "", "ä»" ], "0d": [ "", "察" ], "qd": [ "", "指" ], "wd": [ "", "æ°" ], "ed": [ "", "丸" ], "rd": [ "", "ç¶š" ], "td": [ "", "ã‚§" ], "yd": [ "", "ã†" ], "ud": [ "", "4" ], "id": [ "", ")" ], "od": [ "", "å" ], "pd": [ "", "リ" ], "ad": [ "", "æ–™" ], "sd": [ "", "土" ], "dd": [ "", "æ´»" ], "fd": [ "", "ã­" ], "gd": [ "", "å‚" ], "hd": [ "", "ã„" ], "jd": [ "", "ã€" ], "kd": [ "", "ã®" ], "ld": [ "", "5" ], ";d": [ "", "1" ], "zd": [ "", "投" ], "xd": [ "", "義" ], "cd": [ "", "ç®—" ], "vd": [ "", "åŠ" ], "bd": [ "", "県" ], "nd": [ "", "ã‚“" ], "md": [ "", "ã¾" ], ",d": [ "", "ン" ], ".d": [ "", "ã¤" ], "/d": [ "", "å››" ], "1f": [ "", "ãº" ], "2f": [ "", "éš " ], "3f": [ "", "甘" ], "4f": [ "", "牽" ], "5f": [ "", "憤" ], "6f": [ "", "å›" ], "7f": [ "", "ç´”" ], "8f": [ "", "副" ], "9f": [ "", "盟" ], "0f": [ "", "標" ], "qf": [ "", "ãŽ" ], "wf": [ "", "æ ¼" ], "ef": [ "", "次" ], "rf": [ "", "ç¿’" ], "tf": [ "", "ç«" ], "yf": [ "", "ã‚" ], "uf": [ "", "ã“" ], "if": [ "", "6" ], "of": [ "", "å­¦" ], "pf": [ "", "月" ], "af": [ "", "å—" ], "sf": [ "", "予" ], "df": [ "", "切" ], "ff": [ "", "育" ], "gf": [ "", "æ± " ], "hf": [ "", "。" ], "jf": [ "", "â—†" ], "kf": [ "", "0" ], "lf": [ "", "・" ], ";f": [ "", "2" ], "zf": [ "", "è¾¼" ], "xf": [ "", "æ²¢" ], "cf": [ "", "è»" ], "vf": [ "", "é’" ], "bf": [ "", "清" ], "nf": [ "", "ã‘" ], "mf": [ "", "イ" ], ",f": [ "", "ã™" ], ".f": [ "", "é›»" ], "/f": [ "", "地" ], "1g": [ "", "ã½" ], "2g": [ "", "胃" ], "3g": [ "", "æ‚£" ], "4g": [ "", "厳" ], "5g": [ "", "弊" ], "6g": [ "", "犯" ], "7g": [ "", "ä½™" ], "8g": [ "", "å €" ], "9g": [ "", "è‚©" ], "0g": [ "", "療" ], "qg": [ "", "æ€" ], "wg": [ "", "è¡“" ], "eg": [ "", "広" ], "rg": [ "", "é–€" ], "tg": [ "", "èž" ], "yg": [ "", "本" ], "ug": [ "", "ã•" ], "ig": [ "", "ら" ], "og": [ "", "高" ], "pg": [ "", "ã‚·" ], "ag": [ "", "英" ], "sg": [ "", "ボ" ], "dg": [ "", "加" ], "fg": [ "", "室" ], "gg": [ "", "å°‘" ], "hg": [ "", "ã§" ], "jg": [ "", "ã¯" ], "kg": [ "", "ã«" ], "lg": [ "", "ãª" ], ";g": [ "", "ã‚’" ], "zg": [ "", "転" ], "xg": [ "", "空" ], "cg": [ "", "性" ], "vg": [ "", "使" ], "bg": [ "", "ç´š" ], "ng": [ "", "業" ], "mg": [ "", "時" ], ",g": [ "", "「" ], ".g": [ "", "é•·" ], "/g": [ "", "ã¿" ], "1h": [ "", "朱" ], "2h": [ "", "é…" ], "3h": [ "", "甲" ], "4h": [ "", "致" ], "5h": [ "", "汎" ], "7h": [ "", "è¡°" ], "8h": [ "", "滋" ], "9h": [ "", "沈" ], "0h": [ "", "å·±" ], "qh": [ "", "ç—…" ], "wh": [ "", "終" ], "eh": [ "", "èµ·" ], "rh": [ "", "è·¯" ], "th": [ "", "è¶Š" ], "yh": [ "", "ã‚€" ], "uh": [ "", "å—" ], "ih": [ "", "原" ], "oh": [ "", "é§…" ], "ph": [ "", "物" ], "ah": [ "", "å‹¢" ], "sh": [ "", "å¿…" ], "dh": [ "", "講" ], "fh": [ "", "æ„›" ], "gh": [ "", "管" ], "hh": [ "", "è¦" ], "jh": [ "", "設" ], "kh": [ "", "æ°´" ], "lh": [ "", "è—¤" ], ";h": [ "", "有" ], "zh": [ "", "ç´ " ], "xh": [ "", "å…µ" ], "ch": [ "", "å°‚" ], "vh": [ "", "親" ], "bh": [ "", "寮" ], "nh": [ "", "ホ" ], "mh": [ "", "å…±" ], ",h": [ "", "ブ" ], ".h": [ "", "å¹³" ], "/h": [ "", "楽" ], "1j": [ "", "陣" ], "2j": [ "", "é¶´" ], "3j": [ "", "鹿" ], "4j": [ "", "貨" ], "5j": [ "", "絡" ], "7j": [ "", "趨" ], "8j": [ "", "湿" ], "9j": [ "", "æ·»" ], "0j": [ "", "å·²" ], "qj": [ "", "常" ], "wj": [ "", "å¼µ" ], "ej": [ "", "è–¬" ], "rj": [ "", "防" ], "tj": [ "", "å¾—" ], "yj": [ "", "ケ" ], "uj": [ "", "å¼" ], "ij": [ "", "戦" ], "oj": [ "", "é–¢" ], "pj": [ "", "ç”·" ], "aj": [ "", "輸" ], "sj": [ "", "å½¢" ], "dj": [ "", "助" ], "fj": [ "", "â—‡" ], "gj": [ "", "æµ" ], "hj": [ "", "連" ], "jj": [ "", "鉄" ], "kj": [ "", "æ•™" ], "lj": [ "", "力" ], ";j": [ "", "ベ" ], "zj": [ "", "毛" ], "xj": [ "", "æ°¸" ], "cj": [ "", "申" ], "vj": [ "", "袋" ], "bj": [ "", "良" ], "nj": [ "", "ç§" ], "mj": [ "", "ã‚´" ], ",j": [ "", "æ¥" ], ".j": [ "", "ä¿¡" ], "/j": [ "", "åˆ" ], "1k": [ "", "眼" ], "2k": [ "", "ç¹" ], "3k": [ "", "誌" ], "4k": [ "", "æ‹›" ], "5k": [ "", "å­£" ], "7k": [ "", "åž‚" ], "8k": [ "", "甚" ], "9k": [ "", "å¾¹" ], "0k": [ "", "å·³" ], "qk": [ "", "寺" ], "wk": [ "", "質" ], "ek": [ "", "ã¥" ], "rk": [ "", "港" ], "tk": [ "", "æ¡" ], "yk": [ "", "話" ], "uk": [ "", "座" ], "ik": [ "", "ç·š" ], "ok": [ "", "ダ" ], "pk": [ "", "æ©‹" ], "ak": [ "", "基" ], "sk": [ "", "好" ], "dk": [ "", "味" ], "fk": [ "", "å®" ], "gk": [ "", "争" ], "hk": [ "", "デ" ], "jk": [ "", "ç¾" ], "kk": [ "", "エ" ], "lk": [ "", "ä»–" ], ";k": [ "", "度" ], "zk": [ "", "ç­‰" ], "xk": [ "", "æµ…" ], "ck": [ "", "é ƒ" ], "vk": [ "", "è½" ], "bk": [ "", "命" ], "nk": [ "", "æ‘" ], "mk": [ "", "ガ" ], ",k": [ "", "製" ], ".k": [ "", "æ ¡" ], "/k": [ "", "ã”" ], "1l": [ "", "執" ], "2l": [ "", "ç´¹" ], "3l": [ "", "夢" ], "4l": [ "", "å¸" ], "5l": [ "", "阿" ], "7l": [ "", "粋" ], "9l": [ "", "爪" ], "0l": [ "", "å·´" ], "ql": [ "", "åœ" ], "wl": [ "", "é ˜" ], "el": [ "", "容" ], "rl": [ "", "玉" ], "tl": [ "", "å³" ], "yl": [ "", "ã¹" ], "ul": [ "", "æ°‘" ], "il": [ "", "ソ" ], "ol": [ "", "点" ], "pl": [ "", "é‡" ], "al": [ "", "è¶³" ], "sl": [ "", "è‰" ], "dl": [ "", "築" ], "fl": [ "", "観" ], "gl": [ "", "言" ], "hl": [ "", "車" ], "jl": [ "", "æˆ" ], "kl": [ "", "天" ], "ll": [ "", "世" ], ";l": [ "", "æ–‡" ], "zl": [ "", "æ¿" ], "xl": [ "", "客" ], "cl": [ "", "師" ], "vl": [ "", "税" ], "bl": [ "", "飛" ], "nl": [ "", "ノ" ], "ml": [ "", "完" ], ",l": [ "", "é‡" ], ".l": [ "", "ç´„" ], "/l": [ "", "å„" ], "1;": [ "", "å²³" ], "2;": [ "", "刑" ], "3;": [ "", "å¼±" ], "4;": [ "", "雲" ], "5;": [ "", "窓" ], "7;": [ "", "寸" ], "8;": [ "", "çž³" ], "9;": [ "", "é™¶" ], "q;": [ "", "æ²³" ], "w;": [ "", "ç½®" ], "e;": [ "", "ä¾›" ], "r;": [ "", "試" ], "t;": [ "", "席" ], "y;": [ "", "期" ], "u;": [ "", "ゾ" ], "i;": [ "", "æ­³" ], "o;": [ "", "å¼·" ], "p;": [ "", "ä¿‚" ], "a;": [ "", "婦" ], "s;": [ "", "段" ], "d;": [ "", "è¡›" ], "f;": [ "", "é¡" ], "g;": [ "", "渋" ], "h;": [ "", "主" ], "j;": [ "", "映" ], "k;": [ "", "書" ], "l;": [ "", "å¯" ], ";;": [ "", "ã¸" ], "z;": [ "", "ä¼" ], "x;": [ "", "庭" ], "c;": [ "", "課" ], "v;": [ "", "ç€" ], "b;": [ "", "å‚" ], "n;": [ "", "è¿‘" ], "m;": [ "", "外" ], ",;": [ "", "ç±³" ], ".;": [ "", "ョ" ], "/;": [ "", "å…‰" ], "1z": [ "", "ã" ], "3z": [ "", "瓦" ], "6z": [ "", "呼" ], "7z": [ "", "å¹…" ], "8z": [ "", "æ­“" ], "9z": [ "", "功" ], "0z": [ "", "ç›—" ], "qz": [ "", "å¾³" ], "wz": [ "", "渡" ], "ez": [ "", "守" ], "rz": [ "", "ç™»" ], "tz": [ "", "退" ], "yz": [ "", "店" ], "uz": [ "", "æŒ" ], "iz": [ "", "町" ], "oz": [ "", "所" ], "pz": [ "", "ã»" ], "az": [ "", "ä»¶" ], "sz": [ "", "å‹" ], "dz": [ "", "å’" ], "fz": [ "", "åˆ" ], "gz": [ "", "æ…£" ], "hz": [ "", "行" ], "jz": [ "", "ド" ], "kz": [ "", "円" ], "lz": [ "", "å°" ], ";z": [ "", "ジ" ], "zz": [ "", "ヨ" ], "xz": [ "", "誤" ], "cz": [ "", "証" ], "vz": [ "", "å«" ], "bz": [ "", "%" ], "nz": [ "", "æµ·" ], "mz": [ "", "é“" ], ",z": [ "", "ãš" ], ".z": [ "", "西" ], "/z": [ "", "ã’" ], "1x": [ "", "ãƒ" ], "6x": [ "", "ç´€" ], "7x": [ "", "ç ´" ], "8x": [ "", "郡" ], "9x": [ "", "抗" ], "0x": [ "", "幡" ], "qx": [ "", "械" ], "wx": [ "", "刊" ], "ex": [ "", "訪" ], "rx": [ "", "èž" ], "tx": [ "", "雨" ], "yx": [ "", "å…¨" ], "ux": [ "", "ã˜" ], "ix": [ "", "自" ], "ox": [ "", "è­°" ], "px": [ "", "明" ], "ax": [ "", "å®®" ], "sx": [ "", "伊" ], "dx": [ "", "求" ], "fx": [ "", "技" ], "gx": [ "", "写" ], "hx": [ "", "通" ], "jx": [ "", "ã‚«" ], "kx": [ "", "社" ], "lx": [ "", "野" ], ";x": [ "", "åŒ" ], "zx": [ "", "判" ], "xx": [ "", "è¦" ], "cx": [ "", "感" ], "vx": [ "", "値" ], "bx": [ "", "ã‚®" ], "nx": [ "", "当" ], "mx": [ "", "ç†" ], ",x": [ "", "メ" ], ".x": [ "", "ウ" ], "/x": [ "", "ã‚°" ], "1c": [ "", "ã…" ], "6c": [ "", "房" ], "7c": [ "", "績" ], "8c": [ "", "è­˜" ], "9c": [ "", "属" ], "0c": [ "", "è¡£" ], "qc": [ "", "å¸" ], "wc": [ "", "å§‹" ], "ec": [ "", "了" ], "rc": [ "", "極" ], "tc": [ "", "熱" ], "yc": [ "", "ãƒ" ], "uc": [ "", "部" ], "ic": [ "", "å…­" ], "oc": [ "", "経" ], "pc": [ "", "å‹•" ], "ac": [ "", "å±€" ], "sc": [ "", "é ­" ], "dc": [ "", "é…" ], "fc": [ "", "é»’" ], "gc": [ "", "院" ], "hc": [ "", "ã " ], "jc": [ "", "り" ], "kc": [ "", "―" ], "lc": [ "", "ã‚" ], ";c": [ "", "大" ], "zc": [ "", "済" ], "xc": [ "", "å‰" ], "cc": [ "", "ゆ" ], "vc": [ "", "器" ], "bc": [ "", "ç…§" ], "nc": [ "", "ä¸" ], "mc": [ "", "åˆ" ], ",c": [ "", "é¢" ], ".c": [ "", "政" ], "/c": [ "", "オ" ], "1v": [ "", "ã‡" ], "6v": [ "", "去" ], "7v": [ "", "ç–‘" ], "8v": [ "", "ã¢" ], "9v": [ "", "ç¶¿" ], "0v": [ "", "離" ], "qv": [ "", "読" ], "wv": [ "", "鈴" ], "ev": [ "", "æ" ], "rv": [ "", "ç£" ], "tv": [ "", "æ³" ], "yv": [ "", "後" ], "uv": [ "", "é–“" ], "iv": [ "", "å ´" ], "ov": [ "", "ニ" ], "pv": [ "", "産" ], "av": [ "", "å‘" ], "sv": [ "", "府" ], "dv": [ "", "富" ], "fv": [ "", "ç›´" ], "gv": [ "", "倉" ], "hv": [ "", "æ–°" ], "jv": [ "", "ã€" ], "kv": [ "", "9" ], "lv": [ "", "å­" ], ";v": [ "", "五" ], "zv": [ "", "説" ], "xv": [ "", "週" ], "cv": [ "", "å·" ], "vv": [ "", "葉" ], "bv": [ "", "æ´¾" ], "nv": [ "", "å§”" ], "mv": [ "", "化" ], ",v": [ "", "ビ" ], ".v": [ "", "ç›®" ], "/v": [ "", "市" ], "1b": [ "", "ã‰" ], "6b": [ "", "ç§’" ], "7b": [ "", "範" ], "8b": [ "", "æ ¸" ], "9b": [ "", "å½±" ], "0b": [ "", "麻" ], "qb": [ "", "æ—" ], "wb": [ "", "ä¸" ], "eb": [ "", "未" ], "rb": [ "", "æ‰" ], "tb": [ "", "è¿”" ], "yb": [ "", "å•" ], "ub": [ "", "ム" ], "ib": [ "", "七" ], "ob": [ "", "ä½" ], "pb": [ "", "北" ], "ab": [ "", "割" ], "sb": [ "", "ã¶" ], "db": [ "", "番" ], "fb": [ "", "望" ], "gb": [ "", "å…ƒ" ], "hb": [ "", "事" ], "jb": [ "", "ç”°" ], "kb": [ "", "会" ], "lb": [ "", "å‰" ], ";b": [ "", "ã" ], "zb": [ "", "休" ], "xb": [ "", "çœ" ], "cb": [ "", "央" ], "vb": [ "", "ç¦" ], "bb": [ "", "毎" ], "nb": [ "", "æ°—" ], "mb": [ "", "売" ], ",b": [ "", "下" ], ".b": [ "", "都" ], "/b": [ "", "æ ª" ], "1n": [ "", "欲" ], "2n": [ "", "å·£" ], "3n": [ "", "茂" ], "4n": [ "", "è¿°" ], "5n": [ "", "朗" ], "qn": [ "", "帰" ], "wn": [ "", "åº" ], "en": [ "", "昨" ], "rn": [ "", "è·¡" ], "tn": [ "", "ゲ" ], "yn": [ "", "æ´—" ], "un": [ "", "ç¾½" ], "in": [ "", "個" ], "on": [ "", "医" ], "pn": [ "", "é™" ], "an": [ "", "å„„" ], "sn": [ "", "録" ], "dn": [ "", "赤" ], "fn": [ "", "想" ], "gn": [ "", "消" ], "hn": [ "", "支" ], "jn": [ "", "å”" ], "kn": [ "", "用" ], "ln": [ "", "表" ], ";n": [ "", "æ­£" ], "zn": [ "", "図" ], "xn": [ "", "挙" ], "cn": [ "", "険" ], "vn": [ "", "ゼ" ], "bn": [ "", "æ³¢" ], "nn": [ "", "ヤ" ], "mn": [ "", "心" ], ",n": [ "", "界" ], ".n": [ "", "æ„" ], "/n": [ "", "今" ], "1m": [ "", "è¿«" ], "2m": [ "", "ç½" ], "3m": [ "", "æ‹" ], "4m": [ "", "脳" ], "5m": [ "", "è€" ], "qm": [ "", "監" ], "wm": [ "", "寄" ], "em": [ "", "è£" ], "rm": [ "", "é”" ], "tm": [ "", "èŠ" ], "ym": [ "", "響" ], "um": [ "", "忘" ], "im": [ "", "討" ], "om": [ "", "å²" ], "pm": [ "", "ç’°" ], "am": [ "", "色" ], "sm": [ "", "貸" ], "dm": [ "", "販" ], "fm": [ "", "ç·¨" ], "gm": [ "", "仕" ], "hm": [ "", "å…ˆ" ], "jm": [ "", "多" ], "km": [ "", "商" ], "lm": [ "", "ãƒ" ], ";m": [ "", "交" ], "zm": [ "", "之" ], "xm": [ "", "末" ], "cm": [ "", "ã¼" ], "vm": [ "", "è¡—" ], "bm": [ "", "å…" ], "nm": [ "", "å†" ], "mm": [ "", "ãƒ" ], ",m": [ "", "〜" ], ".m": [ "", "å£" ], "/m": [ "", "å°" ], "1,": [ "", "ç•™" ], "2,": [ "", "列" ], "3,": [ "", "刻" ], "4,": [ "", "豆" ], "5,": [ "", "看" ], "q,": [ "", "竹" ], "w,": [ "", "注" ], "e,": [ "", "介" ], "r,": [ "", "å…·" ], "t,": [ "", "失" ], "y,": [ "", "å¸" ], "u,": [ "", "迎" ], "i,": [ "", "è¯" ], "o,": [ "", "許" ], "p,": [ "", "補" ], "a,": [ "", "å·¦" ], "s,": [ "", "æ…‹" ], "d,": [ "", "花" ], "f,": [ "", "æ „" ], "g,": [ "", "ã‚¶" ], "h,": [ "", "調" ], "j,": [ "", "æ··" ], "k,": [ "", "ãƒ" ], "l,": [ "", "決" ], ";,": [ "", "ミ" ], "z,": [ "", "å·ž" ], "x,": [ "", "払" ], "c,": [ "", "ä¹—" ], "v,": [ "", "庫" ], "b,": [ "", "状" ], "n,": [ "", "団" ], "m,": [ "", "計" ], ",,": [ "", "夫" ], ".,": [ "", "食" ], "/,": [ "", "ç·" ], "1.": [ "", "替" ], "2.": [ "", "æ²¼" ], "3.": [ "", "?" ], "4.": [ "", "辞" ], "5.": [ "", "献" ], "q.": [ "", "ã‚…" ], "w.": [ "", "ä¿®" ], "e.": [ "", "ç©¶" ], "r.": [ "", "ç­”" ], "t.": [ "", "養" ], "y.": [ "", "復" ], "u.": [ "", "並" ], "i.": [ "", "浦" ], "o.": [ "", "ユ" ], "p.": [ "", "冷" ], "a.": [ "", "ã¬" ], "s.": [ "", "展" ], "d.": [ "", "è­¦" ], "f.": [ "", "åž‹" ], "g.": [ "", "誰" ], "h.": [ "", "組" ], "j.": [ "", "é¸" ], "k.": [ "", "å…š" ], "l.": [ "", "択" ], ";.": [ "", "体" ], "z.": [ "", "例" ], "x.": [ "", "満" ], "c.": [ "", "æ´¥" ], "v.": [ "", "準" ], "b.": [ "", "éŠ" ], "n.": [ "", "戸" ], "m.": [ "", "ã²" ], ",.": [ "", "ょ" ], "..": [ "", "価" ], "/.": [ "", "与" ], "1/": [ "", "é‚„" ], "2/": [ "", "æ›´" ], "3/": [ "", "å " ], "4/": [ "", "ç®±" ], "5/": [ "", "矢" ], "q/": [ "", "å¿—" ], "w/": [ "", "抜" ], "e/": [ "", "航" ], "r/": [ "", "層" ], "t/": [ "", "æ·±" ], "y/": [ "", "æ‹…" ], "u/": [ "", "陸" ], "i/": [ "", "å·»" ], "o/": [ "", "ç«¶" ], "p/": [ "", "è­·" ], "a/": [ "", "æ ¹" ], "s/": [ "", "様" ], "d/": [ "", "独" ], "f/": [ "", "æ­¢" ], "g/": [ "", "å ‚" ], "h/": [ "", "銀" ], "j/": [ "", "以" ], "k/": [ "", "ヌ" ], "l/": [ "", "å–¶" ], ";/": [ "", "æ²»" ], "z/": [ "", "å­—" ], "x/": [ "", "æ" ], "c/": [ "", "éŽ" ], "v/": [ "", "諸" ], "b/": [ "", "å˜" ], "n/": [ "", "身" ], "m/": [ "", "ピ" ], ",/": [ "", "å‹" ], "./": [ "", "å" ], "//": [ "", "ズ" ] } } } libskk-1.0.0/rules/tcode/metadata.json0000664000076400007640000000020711675742075014642 00000000000000{ "name": "T-Code", "description": "Japanese direct input method developed by the T-Code project " } libskk-1.0.0/rules/tcode/keymap/0000775000076400007640000000000012016557043013523 500000000000000libskk-1.0.0/rules/tcode/keymap/latin.json0000664000076400007640000000006511675742075015461 00000000000000{ "include": [ "default/default" ] } libskk-1.0.0/rules/tcode/keymap/katakana.json0000664000076400007640000000006511675742075016125 00000000000000{ "include": [ "default/default" ] } libskk-1.0.0/rules/tcode/keymap/hankaku-katakana.json0000664000076400007640000000006511675742075017545 00000000000000{ "include": [ "default/default" ] } libskk-1.0.0/rules/tcode/keymap/wide-latin.json0000664000076400007640000000006511675742075016407 00000000000000{ "include": [ "default/default" ] } libskk-1.0.0/rules/tcode/keymap/hiragana.json0000664000076400007640000000006511675742075016124 00000000000000{ "include": [ "default/default" ] } libskk-1.0.0/rules/Makefile.in0000664000076400007640000004411712016556763013143 00000000000000# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 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@ # Copyright (C) 2011-2012 Daiki Ueno # Copyright (C) 2011-2012 Red Hat, 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 3 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, see . VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } 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 = rules DIST_COMMON = $(nobase_dist_rules_DATA) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \ $(top_srcdir)/m4/libtool.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/vala.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac 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__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(rulesdir)" DATA = $(nobase_dist_rules_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CODE_COVERAGE_CFLAGS = @CODE_COVERAGE_CFLAGS@ CODE_COVERAGE_LDFLAGS = @CODE_COVERAGE_LDFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FEP = @FEP@ FGREP = @FGREP@ GEE_CFLAGS = @GEE_CFLAGS@ GEE_LIBS = @GEE_LIBS@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@ INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@ INTROSPECTION_LIBS = @INTROSPECTION_LIBS@ INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@ INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@ INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@ JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@ JSON_GLIB_LIBS = @JSON_GLIB_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBFEP_CFLAGS = @LIBFEP_CFLAGS@ LIBFEP_LIBS = @LIBFEP_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBSKK_CFLAGS = @LIBSKK_CFLAGS@ LIBSKK_LIBS = @LIBSKK_LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ 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@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SKK_API_MAJOR_VERSION = @SKK_API_MAJOR_VERSION@ SKK_API_MINOR_VERSION = @SKK_API_MINOR_VERSION@ SKK_API_PC_VERSION = @SKK_API_PC_VERSION@ SKK_API_VERSION = @SKK_API_VERSION@ SKK_LIBRARY_SUFFIX = @SKK_LIBRARY_SUFFIX@ SKK_LIBRARY_SUFFIX_U = @SKK_LIBRARY_SUFFIX_U@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VALAC = @VALAC@ VALADOC = @VALADOC@ VALADOC_CFLAGS = @VALADOC_CFLAGS@ VALADOC_LIBS = @VALADOC_LIBS@ VALAFLAGS = @VALAFLAGS@ VALGRIND = @VALGRIND@ VALGRIND_OPTS = @VALGRIND_OPTS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ 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@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ 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@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ rulesdir = $(pkgdatadir)/rules default_files = \ default/metadata.json \ default/keymap/default.json \ default/keymap/hankaku-katakana.json \ default/keymap/hiragana.json \ default/keymap/katakana.json \ default/keymap/latin.json \ default/keymap/wide-latin.json \ default/rom-kana/default.json \ $(NULL) act_files = \ act/metadata.json \ act/keymap/default.json \ act/keymap/hankaku-katakana.json \ act/keymap/hiragana.json \ act/keymap/katakana.json \ act/keymap/latin.json \ act/keymap/wide-latin.json \ act/rom-kana/default.json \ $(NULL) azik_files = \ azik/metadata.json \ azik/keymap/default.json \ azik/keymap/hankaku-katakana.json \ azik/keymap/hiragana.json \ azik/keymap/katakana.json \ azik/keymap/latin.json \ azik/keymap/wide-latin.json \ azik/rom-kana/default.json \ $(NULL) kzik_files = \ kzik/metadata.json \ kzik/keymap/default.json \ kzik/keymap/hankaku-katakana.json \ kzik/keymap/hiragana.json \ kzik/keymap/katakana.json \ kzik/keymap/latin.json \ kzik/keymap/wide-latin.json \ kzik/rom-kana/default.json \ $(NULL) tutcode_files = \ tutcode/metadata.json \ tutcode/keymap/hankaku-katakana.json \ tutcode/keymap/hiragana.json \ tutcode/keymap/katakana.json \ tutcode/keymap/latin.json \ tutcode/keymap/wide-latin.json \ tutcode/rom-kana/default.json \ $(NULL) tutcode_touch16x_files = \ tutcode-touch16x/metadata.json \ tutcode-touch16x/keymap/hankaku-katakana.json \ tutcode-touch16x/keymap/hiragana.json \ tutcode-touch16x/keymap/katakana.json \ tutcode-touch16x/keymap/latin.json \ tutcode-touch16x/keymap/wide-latin.json \ tutcode-touch16x/rom-kana/default.json \ $(NULL) nicola_files = \ nicola/metadata.json \ nicola/keymap/default.json \ nicola/keymap/kana.json \ nicola/keymap/latin.json \ nicola/keymap/katakana.json \ nicola/keymap/hankaku-katakana.json \ nicola/keymap/wide-latin.json \ nicola/keymap/hiragana.json \ nicola/rom-kana/default.json \ $(NULL) tcode_files = \ tcode/rom-kana/default.json \ tcode/metadata.json \ tcode/keymap/latin.json \ tcode/keymap/katakana.json \ tcode/keymap/hankaku-katakana.json \ tcode/keymap/wide-latin.json \ tcode/keymap/hiragana.json \ $(NULL) trycode_files = \ trycode/rom-kana/default.json \ trycode/metadata.json \ trycode/keymap/latin.json \ trycode/keymap/katakana.json \ trycode/keymap/hankaku-katakana.json \ trycode/keymap/wide-latin.json \ trycode/keymap/hiragana.json \ $(NULL) nobase_dist_rules_DATA = \ $(default_files) \ $(act_files) \ $(azik_files) \ $(kzik_files) \ $(tutcode_files) \ $(tutcode_touch16x_files) \ $(nicola_files) \ $(tcode_files) \ $(trycode_files) \ README.rules \ $(NULL) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(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 rules/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu rules/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: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(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-nobase_dist_rulesDATA: $(nobase_dist_rules_DATA) @$(NORMAL_INSTALL) @list='$(nobase_dist_rules_DATA)'; test -n "$(rulesdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(rulesdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(rulesdir)" || exit 1; \ fi; \ $(am__nobase_list) | while read dir files; do \ xfiles=; for file in $$files; do \ if test -f "$$file"; then xfiles="$$xfiles $$file"; \ else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \ test -z "$$xfiles" || { \ test "x$$dir" = x. || { \ echo " $(MKDIR_P) '$(DESTDIR)$(rulesdir)/$$dir'"; \ $(MKDIR_P) "$(DESTDIR)$(rulesdir)/$$dir"; }; \ echo " $(INSTALL_DATA) $$xfiles '$(DESTDIR)$(rulesdir)/$$dir'"; \ $(INSTALL_DATA) $$xfiles "$(DESTDIR)$(rulesdir)/$$dir" || exit $$?; }; \ done uninstall-nobase_dist_rulesDATA: @$(NORMAL_UNINSTALL) @list='$(nobase_dist_rules_DATA)'; test -n "$(rulesdir)" || list=; \ $(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \ dir='$(DESTDIR)$(rulesdir)'; $(am__uninstall_files_from_dir) tags: TAGS TAGS: ctags: CTAGS CTAGS: cscope cscopelist: 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)$(rulesdir)"; 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: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi 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." 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-nobase_dist_rulesDATA 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-nobase_dist_rulesDATA .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-nobase_dist_rulesDATA 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-nobase_dist_rulesDATA -include $(top_srcdir)/git.mk # 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: libskk-1.0.0/rules/act/0000775000076400007640000000000012016557043011706 500000000000000libskk-1.0.0/rules/act/rom-kana/0000775000076400007640000000000012016557043013413 500000000000000libskk-1.0.0/rules/act/rom-kana/default.json0000664000076400007640000005677411675742075015710 00000000000000{ "include": [ "default/default" ], "define": { "rom-kana": { "bb": null, "cc": null, "dd": null, "ff": null, "gg": null, "jj": null, "kk": null, "pp": null, "rr": null, "ss": null, "tt": null, "vv": null, "ww": null, "xx": null, "yy": null, "zz": null, "cha": null, "che": null, "chi": null, "cho": null, "chu": null, "dha": null, "dhe": null, "dhi": null, "dho": null, "dhu": null, "ja": null, "je": null, "ji": null, "jo": null, "ju": null, "jya": null, "jye": null, "jyi": null, "jyo": null, "jyu": null, "ka": null, "ke": null, "ki": null, "ko": null, "ku": null, "kya": null, "kye": null, "kyi": null, "kyo": null, "kyu": null, "tsu": null, "tha": null, "the": null, "thi": null, "tho": null, "thu": null, "xa": null, "xe": null, "xi": null, "xo": null, "xu": null, "xka": null, "xke": null, "xtsu": null, "xtu": null, "xwa": null, "xwe": null, "xwi": null, "xya": null, "xyo": null, "xyu": null, "`|": [ "", "|" ], "'": [ "", "ã£" ], "`'": [ "", "'" ], "`;": [ "", ";" ], "`:": [ "", ":" ], "`\"": [ "", "\"" ], "`a": [ "", "ã" ], "`i": [ "", "ãƒ" ], "`u": [ "", "ã…" ], "`e": [ "", "ã‡" ], "`o": [ "", "ã‰" ], "`ca": [ "", "ã‹", "ヵ" ], "`ce": [ "", "ã‘", "ヶ" ], "`wa": [ "", "ゎ" ], "`we": [ "", "ã‚‘" ], "`wi": [ "", "ã‚" ], "`ya": [ "", "ゃ" ], "`yo": [ "", "ょ" ], "`yu": [ "", "ã‚…" ], "`ys": [ "", "ゃ" ], "`yn": [ "", "ょ" ], "`yh": [ "", "ã‚…" ], "`,": [ "", "‥" ], "`-": [ "", "〜" ], "`.": [ "", "…" ], "`/": [ "", "・" ], "`[": [ "", "『" ], "`]": [ "", "ã€" ], "`d": [ "", "â†" ], "`h": [ "", "↓" ], "`t": [ "", "↑" ], "`n": [ "", "→" ], "ca": [ "", "ã‹" ], "ci": [ "", "ã" ], "cu": [ "", "ã" ], "ce": [ "", "ã‘" ], "co": [ "", "ã“" ], ";": [ "", "ã‚ã‚“" ], "x": [ "", "ã„ã‚“" ], "k": [ "", "ã†ã‚“" ], "j": [ "", "ãˆã‚“" ], "q": [ "", "ãŠã‚“" ], "c;": [ "", "ã‹ã‚“" ], "cx": [ "", "ãã‚“" ], "ck": [ "", "ãã‚“" ], "cj": [ "", "ã‘ã‚“" ], "cq": [ "", "ã“ã‚“" ], "c'": [ "", "ã‹ã„" ], "cp": [ "", "ãã†" ], "c.": [ "", "ã‘ã„" ], "c,": [ "", "ã“ã†" ], "s;": [ "", "ã•ã‚“" ], "sx": [ "", "ã—ã‚“" ], "sk": [ "", "ã™ã‚“" ], "sj": [ "", "ã›ã‚“" ], "sq": [ "", "ãã‚“" ], "s'": [ "", "ã•ã„" ], "sp": [ "", "ã™ã†" ], "s.": [ "", "ã›ã„" ], "s,": [ "", "ãã†" ], "t;": [ "", "ãŸã‚“" ], "tx": [ "", "ã¡ã‚“" ], "tk": [ "", "ã¤ã‚“" ], "tj": [ "", "ã¦ã‚“" ], "tq": [ "", "ã¨ã‚“" ], "t'": [ "", "ãŸã„" ], "tp": [ "", "ã¤ã†" ], "t.": [ "", "ã¦ã„" ], "t,": [ "", "ã¨ã†" ], "n;": [ "", "ãªã‚“" ], "nx": [ "", "ã«ã‚“" ], "nk": [ "", "ã¬ã‚“" ], "nj": [ "", "ã­ã‚“" ], "nq": [ "", "ã®ã‚“" ], "n'": [ "", "ãªã„" ], "np": [ "", "ã¬ã†" ], "n.": [ "", "ã­ã„" ], "n,": [ "", "ã®ã†" ], "h;": [ "", "ã¯ã‚“" ], "hx": [ "", "ã²ã‚“" ], "hk": [ "", "ãµã‚“" ], "hj": [ "", "ã¸ã‚“" ], "hq": [ "", "ã»ã‚“" ], "h'": [ "", "ã¯ã„" ], "hp": [ "", "ãµã†" ], "h.": [ "", "ã¸ã„" ], "h,": [ "", "ã»ã†" ], "m;": [ "", "ã¾ã‚“" ], "mx": [ "", "ã¿ã‚“" ], "mk": [ "", "むん" ], "mj": [ "", "ã‚ã‚“" ], "mq": [ "", "ã‚‚ã‚“" ], "m'": [ "", "ã¾ã„" ], "mp": [ "", "ã‚€ã†" ], "m.": [ "", "ã‚ã„" ], "m,": [ "", "ã‚‚ã†" ], "y;": [ "", "ã‚„ã‚“" ], "yk": [ "", "ゆん" ], "yq": [ "", "よん" ], "y'": [ "", "ã‚„ã„" ], "yp": [ "", "ゆã†" ], "y.": [ "", "ã„ã†" ], "y,": [ "", "よã†" ], "r;": [ "", "らん" ], "rx": [ "", "りん" ], "rk": [ "", "ã‚‹ã‚“" ], "rj": [ "", "れん" ], "rq": [ "", "ã‚ã‚“" ], "r'": [ "", "らã„" ], "rp": [ "", "ã‚‹ã†" ], "r.": [ "", "れã„" ], "r,": [ "", "ã‚ã†" ], "w;": [ "", "ã‚ã‚“" ], "wx": [ "", "ã†ãƒã‚“" ], "wk": [ "", "ã†ã‚“" ], "wj": [ "", "ã†ã‡ã‚“" ], "wq": [ "", "ã†ã‰ã‚“" ], "w'": [ "", "ã‚ã„" ], "wp": [ "", "ã†ã…" ], "w.": [ "", "ã†ã‡ã„" ], "w,": [ "", "ã†ã‰ãƒ¼" ], "g;": [ "", "ãŒã‚“" ], "gx": [ "", "ãŽã‚“" ], "gk": [ "", "ãã‚“" ], "gj": [ "", "ã’ã‚“" ], "gq": [ "", "ã”ã‚“" ], "g'": [ "", "ãŒã„" ], "gp": [ "", "ãã†" ], "g.": [ "", "ã’ã„" ], "g,": [ "", "ã”ã†" ], "z;": [ "", "ã–ã‚“" ], "zx": [ "", "ã˜ã‚“" ], "zk": [ "", "ãšã‚“" ], "zj": [ "", "ãœã‚“" ], "zq": [ "", "ãžã‚“" ], "z'": [ "", "ã–ã„" ], "zp": [ "", "ãšã†" ], "z.": [ "", "ãœã„" ], "z,": [ "", "ãžã†" ], "d;": [ "", "ã ã‚“" ], "dx": [ "", "ã¢ã‚“" ], "dk": [ "", "ã¥ã‚“" ], "dj": [ "", "ã§ã‚“" ], "dq": [ "", "ã©ã‚“" ], "d'": [ "", "ã ã„" ], "dp": [ "", "ã¥ã†" ], "d.": [ "", "ã§ã„" ], "d,": [ "", "ã©ã†" ], "b;": [ "", "ã°ã‚“" ], "bx": [ "", "ã³ã‚“" ], "bk": [ "", "ã¶ã‚“" ], "bj": [ "", "ã¹ã‚“" ], "bq": [ "", "ã¼ã‚“" ], "b'": [ "", "ã°ã„" ], "bp": [ "", "ã¶ã†" ], "b.": [ "", "ã¹ã„" ], "b,": [ "", "ã¼ã†" ], "p;": [ "", "ã±ã‚“" ], "px": [ "", "ã´ã‚“" ], "pk": [ "", "ã·ã‚“" ], "pj": [ "", "ãºã‚“" ], "pq": [ "", "ã½ã‚“" ], "p'": [ "", "ã±ã„" ], "pp": [ "", "ã·ã†" ], "p.": [ "", "ãºã„" ], "p,": [ "", "ã½ã†" ], "cga": [ "", "ãゃ" ], "cgi": [ "", "ããƒ" ], "cgu": [ "", "ãã‚…" ], "cge": [ "", "ãã‡" ], "cgo": [ "", "ãょ" ], "cg;": [ "", "ãゃん" ], "cgx": [ "", "ããƒã‚“" ], "cgk": [ "", "ãã‚…ã‚“" ], "cgj": [ "", "ãã‡ã‚“" ], "cgq": [ "", "ãょん" ], "cg'": [ "", "ãゃã„" ], "cgp": [ "", "ãã‚…ã†" ], "cg.": [ "", "ãã‡ã„" ], "cg,": [ "", "ãょã†" ], "sha": [ "", "ã—ゃ" ], "shi": [ "", "ã—ãƒ" ], "shu": [ "", "ã—ã‚…" ], "she": [ "", "ã—ã‡" ], "sho": [ "", "ã—ょ" ], "sh;": [ "", "ã—ゃん" ], "shx": [ "", "ã—ãƒã‚“" ], "shk": [ "", "ã—ã‚…ã‚“" ], "shj": [ "", "ã—ã‡ã‚“" ], "shq": [ "", "ã—ょん" ], "sh'": [ "", "ã—ゃã„" ], "shp": [ "", "ã—ã‚…ã†" ], "sh.": [ "", "ã—ã‡ã„" ], "sh,": [ "", "ã—ょã†" ], "tha": [ "", "ã¡ã‚ƒ" ], "thi": [ "", "ã¡ãƒ" ], "thu": [ "", "ã¡ã‚…" ], "the": [ "", "ã¡ã‡" ], "tho": [ "", "ã¡ã‚‡" ], "th;": [ "", "ã¡ã‚ƒã‚“" ], "thx": [ "", "ã¡ãƒã‚“" ], "thk": [ "", "ã¡ã‚…ã‚“" ], "thj": [ "", "ã¡ã‡ã‚“" ], "thq": [ "", "ã¡ã‚‡ã‚“" ], "th'": [ "", "ã¡ã‚ƒã„" ], "thp": [ "", "ã¡ã‚…ã†" ], "th.": [ "", "ã¡ã‡ã„" ], "th,": [ "", "ã¡ã‚‡ã†" ], "nha": [ "", "ã«ã‚ƒ" ], "nhi": [ "", "ã«ãƒ" ], "nhu": [ "", "ã«ã‚…" ], "nhe": [ "", "ã«ã‡" ], "nho": [ "", "ã«ã‚‡" ], "nh;": [ "", "ã«ã‚ƒã‚“" ], "nhx": [ "", "ã«ãƒã‚“" ], "nhk": [ "", "ã«ã‚…ã‚“" ], "nhj": [ "", "ã«ã‡ã‚“" ], "nhq": [ "", "ã«ã‚‡ã‚“" ], "nh'": [ "", "ã«ã‚ƒã„" ], "nhp": [ "", "ã«ã‚…ã†" ], "nh.": [ "", "ã«ã‡ã„" ], "nh,": [ "", "ã«ã‚‡ã†" ], "hna": [ "", "ã²ã‚ƒ" ], "hni": [ "", "ã²ãƒ" ], "hnu": [ "", "ã²ã‚…" ], "hne": [ "", "ã²ã‡" ], "hno": [ "", "ã²ã‚‡" ], "hn;": [ "", "ã²ã‚ƒã‚“" ], "hnx": [ "", "ã²ãƒã‚“" ], "hnk": [ "", "ã²ã‚…ã‚“" ], "hnj": [ "", "ã²ã‡ã‚“" ], "hnq": [ "", "ã²ã‚‡ã‚“" ], "hn'": [ "", "ã²ã‚ƒã„" ], "hnp": [ "", "ã²ã‚…ã†" ], "hn.": [ "", "ã²ã‡ã„" ], "hn,": [ "", "ã²ã‚‡ã†" ], "mva": [ "", "ã¿ã‚ƒ" ], "mvi": [ "", "ã¿ãƒ" ], "mvu": [ "", "ã¿ã‚…" ], "mve": [ "", "ã¿ã‡" ], "mvo": [ "", "ã¿ã‚‡" ], "mv;": [ "", "ã¿ã‚ƒã‚“" ], "mvx": [ "", "ã¿ãƒã‚“" ], "mvk": [ "", "ã¿ã‚…ã‚“" ], "mvj": [ "", "ã¿ã‡ã‚“" ], "mvq": [ "", "ã¿ã‚‡ã‚“" ], "mv'": [ "", "ã¿ã‚ƒã„" ], "mvp": [ "", "ã¿ã‚…ã†" ], "mv.": [ "", "ã¿ã‡ã„" ], "mv,": [ "", "ã¿ã‚‡ã†" ], "rga": [ "", "りゃ" ], "rgi": [ "", "りãƒ" ], "rgu": [ "", "りゅ" ], "rge": [ "", "りã‡" ], "rgo": [ "", "りょ" ], "rg;": [ "", "りゃん" ], "rgx": [ "", "りãƒã‚“" ], "rgk": [ "", "りゅん" ], "rgj": [ "", "りã‡ã‚“" ], "rgq": [ "", "りょん" ], "rg'": [ "", "りゃã„" ], "rgp": [ "", "りゅã†" ], "rg.": [ "", "りã‡ã„" ], "rg,": [ "", "りょã†" ], "gra": [ "", "ãŽã‚ƒ" ], "gri": [ "", "ãŽãƒ" ], "gru": [ "", "ãŽã‚…" ], "gre": [ "", "ãŽã‡" ], "gro": [ "", "ãŽã‚‡" ], "gr;": [ "", "ãŽã‚ƒã‚“" ], "grx": [ "", "ãŽãƒã‚“" ], "grk": [ "", "ãŽã‚…ã‚“" ], "grj": [ "", "ãŽã‡ã‚“" ], "grq": [ "", "ãŽã‚‡ã‚“" ], "gr'": [ "", "ãŽã‚ƒã„" ], "grp": [ "", "ãŽã‚…ã†" ], "gr.": [ "", "ãŽã‡ã„" ], "gr,": [ "", "ãŽã‚‡ã†" ], "zma": [ "", "ã˜ã‚ƒ" ], "zmi": [ "", "ã˜ãƒ" ], "zmu": [ "", "ã˜ã‚…" ], "zme": [ "", "ã˜ã‡" ], "zmo": [ "", "ã˜ã‚‡" ], "zm;": [ "", "ã˜ã‚ƒã‚“" ], "zmx": [ "", "ã˜ãƒã‚“" ], "zmk": [ "", "ã˜ã‚…ã‚“" ], "zmj": [ "", "ã˜ã‡ã‚“" ], "zmq": [ "", "ã˜ã‚‡ã‚“" ], "zm'": [ "", "ã˜ã‚ƒã„" ], "zmp": [ "", "ã˜ã‚…ã†" ], "zm.": [ "", "ã˜ã‡ã„" ], "zm,": [ "", "ã˜ã‚‡ã†" ], "dna": [ "", "ã¢ã‚ƒ" ], "dni": [ "", "ã¢ãƒ" ], "dnu": [ "", "ã¢ã‚…" ], "dne": [ "", "ã¢ã‡" ], "dno": [ "", "ã¢ã‚‡" ], "dn;": [ "", "ã¢ã‚ƒã‚“" ], "dnx": [ "", "ã¢ãƒã‚“" ], "dnk": [ "", "ã¢ã‚…ã‚“" ], "dnj": [ "", "ã¢ã‡ã‚“" ], "dnq": [ "", "ã¢ã‚‡ã‚“" ], "dn'": [ "", "ã¢ã‚ƒã„" ], "dnp": [ "", "ã¢ã‚…ã†" ], "dn.": [ "", "ã¢ã‡ã„" ], "dn,": [ "", "ã¢ã‚‡ã†" ], "bva": [ "", "ã³ã‚ƒ" ], "bvi": [ "", "ã³ãƒ" ], "bvu": [ "", "ã³ã‚…" ], "bve": [ "", "ã³ã‡" ], "bvo": [ "", "ã³ã‚‡" ], "bv;": [ "", "ã³ã‚ƒã‚“" ], "bvx": [ "", "ã³ãƒã‚“" ], "bvk": [ "", "ã³ã‚…ã‚“" ], "bvj": [ "", "ã³ã‡ã‚“" ], "bvq": [ "", "ã³ã‚‡ã‚“" ], "bv'": [ "", "ã³ã‚ƒã„" ], "bvp": [ "", "ã³ã‚…ã†" ], "bv.": [ "", "ã³ã‡ã„" ], "bv,": [ "", "ã³ã‚‡ã†" ], "pna": [ "", "ã´ã‚ƒ" ], "pni": [ "", "ã´ãƒ" ], "pnu": [ "", "ã´ã‚…" ], "pne": [ "", "ã´ã‡" ], "pno": [ "", "ã´ã‚‡" ], "pn;": [ "", "ã´ã‚ƒã‚“" ], "pnx": [ "", "ã´ãƒã‚“" ], "pnk": [ "", "ã´ã‚…ã‚“" ], "pnj": [ "", "ã´ã‡ã‚“" ], "pnq": [ "", "ã´ã‚‡ã‚“" ], "pn'": [ "", "ã´ã‚ƒã„" ], "pnp": [ "", "ã´ã‚…ã†" ], "pn.": [ "", "ã´ã‡ã„" ], "pn,": [ "", "ã´ã‚‡ã†" ], "f;": [ "", "ãµãã‚“" ], "fx": [ "", "ãµãƒã‚“" ], "fk": [ "", "ãµã‚“" ], "fj": [ "", "ãµã‡ã‚“" ], "fq": [ "", "ãµã‰ã‚“" ], "f'": [ "", "ãµãã„" ], "fp": [ "", "ãµã†" ], "f.": [ "", "ãµã‡ã„" ], "f,": [ "", "ãµã‰ãƒ¼" ], "v;": [ "", "ã†ã‚›ãã‚“" ], "vx": [ "", "ã†ã‚›ãƒã‚“" ], "vk": [ "", "ã†ã‚›ã‚“" ], "vj": [ "", "ã†ã‚›ã‡ã‚“" ], "vq": [ "", "ã†ã‚›ã‰ã‚“" ], "v'": [ "", "ã†ã‚›ãã„" ], "vp": [ "", "ã†ã‚›ãƒ¼" ], "v.": [ "", "ã†ã‚›ã‡ã„" ], "v,": [ "", "ã†ã‚›ã‰ãƒ¼" ], "pc": [ "", "ã´ã‚…ã†" ], "pl": [ "", "ã´ã‚‡ã†" ], "fc": [ "", "ãµã‚…ー" ], "fl": [ "", "ãµã‰ãƒ¼" ], "gc": [ "", "ãŽã‚…ã†" ], "gl": [ "", "ãŽã‚‡ã†" ], "cc": [ "", "ãã‚…ã†" ], "cl": [ "", "ãょã†" ], "rc": [ "", "りゅã†" ], "rl": [ "", "りょã†" ], "ht": [ "", "ã²ã‚…ã†" ], "hs": [ "", "ã²ã‚‡ã†" ], "tt": [ "", "ã¡ã‚…ã†" ], "ts": [ "", "ã¡ã‚‡ã†" ], "nt": [ "", "ã«ã‚…ã†" ], "ns": [ "", "ã«ã‚‡ã†" ], "st": [ "", "ã—ã‚…ã†" ], "ss": [ "", "ã—ょã†" ], "bw": [ "", "ã³ã‚…ã†" ], "bz": [ "", "ã³ã‚‡ã†" ], "mw": [ "", "ã¿ã‚…ー" ], "mz": [ "", "ã¿ã‚‡ã†" ], "wz": [ "", "ã†ã‰ãƒ¼" ], "vw": [ "", "ã†ã‚›ã‚…ー" ], "vz": [ "", "ã†ã‚›ã‰ãƒ¼" ], "zw": [ "", "ã˜ã‚…ã†" ], "zz": [ "", "ã˜ã‚‡ã†" ], "grr": [ "", "ãŽã‚‡ã" ], "grl": [ "", "ãŽã‚ƒã" ], "cgr": [ "", "ãょã" ], "cgl": [ "", "ãゃã" ], "rgr": [ "", "りょã" ], "rgl": [ "", "りゃã" ], "hns": [ "", "ã²ã‚ƒã" ], "thn": [ "", "ã¡ã‚‡ã" ], "ths": [ "", "ã¡ã‚ƒã" ], "nhn": [ "", "ã«ã‚‡ã" ], "nhs": [ "", "ã«ã‚ƒã" ], "shn": [ "", "ã—ょã" ], "shs": [ "", "ã—ゃã" ], "sht": [ "", "ã—ã‚…ã¤" ], "pns": [ "", "ã´ã‚ƒã" ], "bvv": [ "", "ã³ã‚‡ã" ], "bvz": [ "", "ã³ã‚ƒã" ], "mvv": [ "", "ã¿ã‚‡ã" ], "mvz": [ "", "ã¿ã‚ƒã" ], "zmv": [ "", "ã˜ã‚‡ã" ], "zmz": [ "", "ã˜ã‚ƒã" ], "zmw": [ "", "ã˜ã‚…ã¤" ], "shh": [ "", "ã—ã‚…ã" ], "zmm": [ "", "ã˜ã‚…ã" ], "yh": [ "", "ゆ" ], "yg": [ "", "ゆã†" ], "yz": [ "", "ã‚„ã‚“" ], "ym": [ "", "ゆん" ], "yv": [ "", "よん" ], "ps": [ "", "ã±" ], "pd": [ "", "ã´" ], "ph": [ "", "ã·" ], "pt": [ "", "ãº" ], "pz": [ "", "ã±ã‚“" ], "pb": [ "", "ã´ã‚“" ], "pm": [ "", "ã·ã‚“" ], "pw": [ "", "ãºã‚“" ], "pv": [ "", "ã½ã‚“" ], "yy": [ "", "ã„ã†" ], "yf": [ "", "より" ], "yc": [ "", "ã„ã†" ], "yr": [ "", "よる" ], "yl": [ "", "ã‚„ã‚‹" ], "yd": [ "", "よã„" ], "yt": [ "", "よã£ã¦" ], "yn": [ "", "よã" ], "ys": [ "", "ã‚„ã" ], "yb": [ "", "ゆã³" ], "yw": [ "", "ã„ã‚れ" ], "ff": [ "", "ãµã‚Š" ], "fg": [ "", "ãµã‚‹" ], "fr": [ "", "ãµã‚‹" ], "fn": [ "", "ãµãã‚“" ], "fm": [ "", "ãµã‚€" ], "gt": [ "", "ã”ã¨" ], "gn": [ "", "ã”ã" ], "gs": [ "", "ãŒã" ], "cr": [ "", "ã‹ã‚‰" ], "cd": [ "", "ã‹ãŸ" ], "ct": [ "", "ã“ã¨" ], "cb": [ "", "ã‹ã‚“ãŒãˆ" ], "cn": [ "", "ã“ã" ], "cs": [ "", "ã‹ã" ], "rr": [ "", "られ" ], "rn": [ "", "らん" ], "dg": [ "", "ã ãŒ" ], "dc": [ "", "ã§ã" ], "dr": [ "", "ã§ã‚ã‚‹" ], "dl": [ "", "ã§ã—ょã†" ], "dd": [ "", "ã®ã§" ], "dt": [ "", "ã ã¡" ], "ds": [ "", "ã§ã™" ], "dm": [ "", "ã§ã‚‚" ], "hg": [ "", "ãµã‚‹" ], "hc": [ "", "ã²ã‚…ã†" ], "hr": [ "", "ã²ã¨ã‚Š" ], "hl": [ "", "ã²ã‚‡ã†" ], "hd": [ "", "ã»ã©" ], "hh": [ "", "ã²ã¨" ], "hz": [ "", "ã²ã˜ã‚‡ã†" ], "tf": [ "", "ã¨ã‚Š" ], "tg": [ "", "ã¨ã—ã¦" ], "tc": [ "", "ã¤ã„ã¦" ], "tr": [ "", "ã¨ã“ã‚" ], "tl": [ "", "ã¨ã" ], "td": [ "", "ã¨ã„ã†" ], "tn": [ "", "ã¨ã®" ], "tb": [ "", "ãŸã³" ], "tm": [ "", "ãŸã‚" ], "tv": [ "", "ã¨ã" ], "tz": [ "", "ã¦ã" ], "nf": [ "", "ãªã‚Š" ], "nc": [ "", "ã«ã¤ã„ã¦" ], "nr": [ "", "ãªã‚‹" ], "nl": [ "", "ãªã£ãŸ" ], "nd": [ "", "ãªã©" ], "nb": [ "", "ãªã‘れã°" ], "nm": [ "", "ãªãã¦ã‚‚" ], "nw": [ "", "ãªãã¦ã¯" ], "nz": [ "", "ãªã" ], "sf": [ "", "ã•り" ], "sg": [ "", "ã•れ" ], "sc": [ "", "ã—ãŸ" ], "sr": [ "", "ã™ã‚‹" ], "sd": [ "", "ã•れ" ], "sm": [ "", "ã—ã‚‚" ], "snb": [ "", "ã—ãªã‘れã°" ], "snm": [ "", "ã—ãªãã¦ã‚‚" ], "snt": [ "", "ã—ãªãã¦" ], "snw": [ "", "ã—ãªãã¦ã¯" ], "sz": [ "", "ãれãžã‚Œ" ], "bc": [ "", "ã³ã‚…ã†" ], "br": [ "", "ã°ã‚‰" ], "bl": [ "", "ã³ã‚‡ã†" ], "bh": [ "", "ã¶ã¤" ], "bt": [ "", "ã¹ã¤" ], "mc": [ "", "ã¿ã‚…ー" ], "mr": [ "", "ã¾ã‚‹" ], "ml": [ "", "ã¿ã‚‡ã†" ], "md": [ "", "ã¾ã§" ], "mt": [ "", "ã¾ãŸ" ], "mn": [ "", "ã‚‚ã®" ], "ms": [ "", "ã¾ã™" ], "mm": [ "", "ãŠã‚‚" ], "wr": [ "", "ã‚れ" ], "wt": [ "", "ã‚ãŸã—" ], "wn": [ "", "ã‚れã‚れ" ], "vm": [ "", "ã“ã¨ãª" ], "vv": [ "", "ãŠãªã˜" ], "zc": [ "", "ã˜ã‚…ã†" ], "zr": [ "", "ã–ã‚‹" ], "zt": [ "", "ãšã¤" ], "zn": [ "", "ãžã" ], "zs": [ "", "ã–ã" ], "pf": [ "", "ã·ã‚Š" ], "pg": [ "", "ã·ã‚‹" ], "pr": [ "", "ã·ã‚" ], "twa": [ "", "ã¦ã‚ƒ" ], "twi": [ "", "ã¦ãƒ" ], "twu": [ "", "ã¦ã‚…" ], "twe": [ "", "ã¦ã‡" ], "two": [ "", "ã¦ã‚‡" ], "tw;": [ "", "ã¦ã‚ƒã‚“" ], "twx": [ "", "ã¦ãƒã‚“" ], "twk": [ "", "ã¦ã‚…ã‚“" ], "twj": [ "", "ã¦ã‡ã‚“" ], "twq": [ "", "ã¦ã‚‡ã‚“" ], "tw'": [ "", "ã¦ã‚ƒã†" ], "twp": [ "", "ã¦ã‚…ã†" ], "tw.": [ "", "ã¦ã‡ã„" ], "tw,": [ "", "ã¦ã‚‡ã†" ], "dba": [ "", "ã§ã‚ƒ" ], "dbi": [ "", "ã§ãƒ" ], "dbu": [ "", "ã§ã‚…" ], "dbe": [ "", "ã§ã‡" ], "dbo": [ "", "ã§ã‚‡" ], "db;": [ "", "ã§ã‚ƒã‚“" ], "dbx": [ "", "ã§ãƒã‚“" ], "dbk": [ "", "ã§ã‚…ã‚“" ], "dbj": [ "", "ã§ã‡ã‚“" ], "dbq": [ "", "ã§ã‚‡ã‚“" ], "db'": [ "", "ã§ã‚ƒã†" ], "dbp": [ "", "ã§ã‚…ã†" ], "db.": [ "", "ã§ã‡ã„" ], "db,": [ "", "ã§ã‚‡ã†" ], "wma": [ "", "ã†ã" ], "wmi": [ "", "ã†ãƒ" ], "wmu": [ "", "ã†ã…" ], "wme": [ "", "ã†ã‡" ], "wmo": [ "", "ã†ã‰" ], "wm;": [ "", "ã†ãã‚“" ], "wmx": [ "", "ã†ãƒã‚“" ], "wmk": [ "", "ã†ã…ã‚“" ], "wmj": [ "", "ã†ã‡ã‚“" ], "wmq": [ "", "ã†ã‰ã‚“" ], "wm'": [ "", "ã†ãã†" ], "wmp": [ "", "ã†ã…ã†" ], "wm.": [ "", "ã†ã‡ã„" ], "wm,": [ "", "ã†ã‰ã†" ], "cy": [ "", "ãã„" ], "sy": [ "", "ã™ã„" ], "ty": [ "", "ã¤ã„" ], "ny": [ "", "ã¬ã„" ], "hy": [ "", "ãµã„" ], "my": [ "", "ã‚€ã„" ], "yy": [ "", "ゆã„" ], "ry": [ "", "ã‚‹ã„" ], "wy": [ "", "ã†ã„" ], "gy": [ "", "ãã„" ], "zy": [ "", "ãšã„" ], "dy": [ "", "ã¥ã„" ], "by": [ "", "ã¶ã„" ], "py": [ "", "ã·ã„" ], "cgy": [ "", "ãã‚…ã„" ], "shy": [ "", "ã—ã‚…ã„" ], "thy": [ "", "ã¡ã‚…ã„" ], "nhy": [ "", "ã«ã‚…ã„" ], "hny": [ "", "ã²ã‚…ã„" ], "mvy": [ "", "ã¿ã‚…ã„" ], "rgy": [ "", "りゅã„" ], "gry": [ "", "ãŽã‚…ã„" ], "zmy": [ "", "ã˜ã‚…ã„" ], "dny": [ "", "ã¢ã‚…ã„" ], "bvy": [ "", "ã³ã‚…ã„" ], "pny": [ "", "ã´ã‚…ã„" ], "fy": [ "", "ãµã„" ], "vy": [ "", "ã†ã‚›ã„" ], "twy": [ "", "ã¦ã‚…ã„" ], "dby": [ "", "ã§ã‚…ã„" ], "wmy": [ "", "ã†ã…ã„" ] }, "option": { "downcase": { "\"": "'", ":": ";" } } } } libskk-1.0.0/rules/act/metadata.json0000664000076400007640000000031711675742075014315 00000000000000{ "name": "ACT", "description": "Extended romaji input method based on AZIK for Dvorak keyboard layout, developed by Kiyoshi Kimura " } libskk-1.0.0/rules/act/keymap/0000775000076400007640000000000012016557043013174 500000000000000libskk-1.0.0/rules/act/keymap/latin.json0000664000076400007640000000005511675742075015131 00000000000000{ "include": [ "default" ] } libskk-1.0.0/rules/act/keymap/katakana.json0000664000076400007640000000021611734020427015556 00000000000000{ "include": [ "default" ], "define": { "keymap": { "\\": "set-input-mode-hiragana" } } } libskk-1.0.0/rules/act/keymap/hankaku-katakana.json0000664000076400007640000000021611734020416017174 00000000000000{ "include": [ "default" ], "define": { "keymap": { "\\": "set-input-mode-hiragana" } } } libskk-1.0.0/rules/act/keymap/wide-latin.json0000664000076400007640000000005511675742075016057 00000000000000{ "include": [ "default" ] } libskk-1.0.0/rules/act/keymap/hiragana.json0000664000076400007640000000021611734020444015554 00000000000000{ "include": [ "default" ], "define": { "keymap": { "\\": "set-input-mode-katakana" } } } libskk-1.0.0/rules/act/keymap/default.json0000664000076400007640000000005611734017361015434 00000000000000{ "include": [ "default/default" ] } libskk-1.0.0/rules/nicola/0000775000076400007640000000000012016557043012404 500000000000000libskk-1.0.0/rules/nicola/rom-kana/0000775000076400007640000000000012016557043014111 500000000000000libskk-1.0.0/rules/nicola/rom-kana/default.json0000664000076400007640000000007211675742075016362 00000000000000{ "define": { "rom-kana": { } } } libskk-1.0.0/rules/nicola/metadata.json0000664000076400007640000000033611675742075015014 00000000000000{ "name": "NICOLA", "description": "Input method using thumb shift keyboard developed by the NICOLA (NIhongo-nyuuryoku COnsortium LAyout) project ", "filter": "nicola" } libskk-1.0.0/rules/nicola/keymap/0000775000076400007640000000000012016557043013672 500000000000000libskk-1.0.0/rules/nicola/keymap/kana.json0000664000076400007640000001233411712171034015414 00000000000000{ "include": [ "default" ], "define": { "keymap": { "q": "insert-kana-。", "(lshift q)": "insert-kana-ã", "(rshift q)": null, "w": "insert-kana-ã‹", "(lshift w)": "insert-kana-ãˆ", "(rshift w)": "insert-kana-ãŒ", "e": "insert-kana-ãŸ", "(lshift e)": "insert-kana-り", "(rshift e)": "insert-kana-ã ", "r": "insert-kana-ã“", "(lshift r)": "insert-kana-ゃ", "(rshift r)": "insert-kana-ã”", "t": "insert-kana-ã•", "(lshift t)": "insert-kana-れ", "(rshift t)": "insert-kana-ã–", "y": "insert-kana-ら", "(lshift y)": "insert-kana-ã±", "(rshift y)": "insert-kana-よ", "u": "insert-kana-ã¡", "(lshift u)": "insert-kana-ã¢", "(rshift u)": "insert-kana-ã«", "i": "insert-kana-ã", "(lshift i)": "insert-kana-ã", "(rshift i)": "insert-kana-ã‚‹", "o": "insert-kana-ã¤", "(lshift o)": "insert-kana-ã¥", "(rshift o)": "insert-kana-ã¾", "p": "insert-kana-,", "(lshift p)": "insert-kana-ã´", "(rshift p)": "insert-kana-ã‡", "@": "insert-kana-ã€", "(lshift @)": null, "(rshift @)": null, "[": "insert-kana-ã‚›", "(lshift [)": null, "(rshift [)": "insert-kana-゜", "a": "insert-kana-ã†", "(lshift a)": "insert-kana-ã‚’", "(rshift a)": null, "s": "insert-kana-ã—", "(lshift s)": "insert-kana-ã‚", "(rshift s)": "insert-kana-ã˜", "d": "insert-kana-ã¦", "(lshift d)": "insert-kana-ãª", "(rshift d)": "insert-kana-ã§", "f": "insert-kana-ã‘", "(lshift f)": "insert-kana-ã‚…", "(rshift f)": "insert-kana-ã’", "g": "insert-kana-ã›", "(lshift g)": "insert-kana-ã‚‚", "(rshift g)": "insert-kana-ãœ", "h": "insert-kana-ã¯", "(lshift h)": "insert-kana-ã°", "(rshift h)": "insert-kana-ã¿", "j": "insert-kana-ã¨", "(lshift j)": "insert-kana-ã©", "(rshift j)": "insert-kana-ãŠ", "k": "insert-kana-ã", "(lshift k)": "insert-kana-ãŽ", "(rshift k)": "insert-kana-ã®", "l": "insert-kana-ã„", "(lshift l)": "insert-kana-ã½", "(rshift l)": "insert-kana-ょ", ";": "insert-kana-ã‚“", "(lshift ;)": null, "(rshift ;)": "insert-kana-ã£", "z": "insert-kana-.", "(lshift z)": "insert-kana-ã…", "(rshift z)": null, "x": "insert-kana-ã²", "(lshift x)": "insert-kana-ー", "(rshift x)": "insert-kana-ã³", "c": "insert-kana-ã™", "(lshift c)": "insert-kana-ã‚", "(rshift c)": "insert-kana-ãš", "v": "insert-kana-ãµ", "(lshift v)": "insert-kana-ã‚„", "(rshift v)": "insert-kana-ã¶", "b": "insert-kana-ã¸", "(lshift b)": "insert-kana-ãƒ", "(rshift b)": "insert-kana-ã¹", "n": "insert-kana-ã‚", "(lshift n)": "insert-kana-ã·", "(rshift n)": "insert-kana-ã¬", "m": "insert-kana-ã", "(lshift m)": "insert-kana-ãž", "(rshift m)": "insert-kana-ゆ", ",": "insert-kana-ã­", "(lshift ,)": "insert-kana-ãº", "(rshift ,)": "insert-kana-ã‚€", ".": "insert-kana-ã»", "(lshift .)": "insert-kana-ã¼", "(rshift .)": "insert-kana-ã‚", "/": "insert-kana-・", "(lshift /)": null, "(rshift /)": "insert-kana-ã‰", "1": "insert-kana-1", "(lshift 1)": "insert-kana-?", "(rshift 1)": null, "2": "insert-kana-2", "(lshift 2)": "insert-kana-ï¼", "(rshift 2)": null, "4": "insert-kana-4", "(lshift 4)": "insert-kana-「", "(rshift 4)": null, "5": "insert-kana-5", "(lshift 5)": "insert-kana-ã€", "(rshift 5)": null, "6": "insert-kana-6", "(lshift 6)": null, "(rshift 6)": "insert-kana-ï¼»", "7": "insert-kana-7", "(lshift 7)": null, "(rshift 7)": "insert-kana-ï¼½", "8": "insert-kana-8", "(lshift 8)": null, "(rshift 8)": "insert-kana-(", "9": "insert-kana-9", "(lshift 9)": null, "(rshift 9)": "insert-kana-)", "\\": "insert-kana-ï¿¥", "(lshift \\)": null, "(rshift \\)": null, "[fj]": "start-preedit-kana", "[gh]": "abbrev", "[LR]": "set-input-mode-latin", "A": "set-input-mode-latin", "Z": "set-input-mode-wide-latin", "L": "set-input-mode-wide-latin", "Q": "start-preedit" } } } libskk-1.0.0/rules/nicola/keymap/latin.json0000664000076400007640000000006511675742075015630 00000000000000{ "include": [ "default/default" ] } libskk-1.0.0/rules/nicola/keymap/katakana.json0000664000076400007640000000021511675742075016271 00000000000000{ "include": [ "kana" ], "define": { "keymap": { "[dk]": "set-input-mode-hiragana" } } } libskk-1.0.0/rules/nicola/keymap/hankaku-katakana.json0000664000076400007640000000005211675742075017710 00000000000000{ "include": [ "kana" ] } libskk-1.0.0/rules/nicola/keymap/wide-latin.json0000664000076400007640000000006511675742075016556 00000000000000{ "include": [ "default/default" ] } libskk-1.0.0/rules/nicola/keymap/hiragana.json0000664000076400007640000000021511675742075016270 00000000000000{ "include": [ "kana" ], "define": { "keymap": { "[dk]": "set-input-mode-katakana" } } } libskk-1.0.0/rules/nicola/keymap/default.json0000664000076400007640000000074111712171034016125 00000000000000{ "define": { "keymap": { "C-g": "abort", "\n": "commit-unhandled", "C-m": "commit-unhandled", "\b": "delete", "C-h": "delete", "[gh]": "abbrev", "C": "kuten", " ": "next-candidate", "\t": "complete", "C-i": "complete", ">": "special-midasi", "C-p": "previous-candidate", "X": "purge-candidate" } } } libskk-1.0.0/rules/tutcode-touch16x/0000775000076400007640000000000012016557043014265 500000000000000libskk-1.0.0/rules/tutcode-touch16x/rom-kana/0000775000076400007640000000000012016557043015772 500000000000000libskk-1.0.0/rules/tutcode-touch16x/rom-kana/default.json0000664000076400007640000000063511675742075020250 00000000000000{ "include": [ "tutcode/default" ], "define": { "rom-kana": { "tld": [ "", "ã±" ], "tle": [ "", "ã´" ], "tlr": [ "", "ã·" ], "tlg": [ "", "ãº" ], "tlf": [ "", "ã½" ], "dlr": [ "", "ã¥" ], "alu": [ "", "ヴ" ], "eld": [ "", "ヵ" ], "elg": [ "", "ヶ" ] } } } libskk-1.0.0/rules/tutcode-touch16x/metadata.json0000664000076400007640000000013511675742075016672 00000000000000{ "name": "TUT-Code (Touch16+)", "description": "TUT-Code with Touch16+ extension" } libskk-1.0.0/rules/tutcode-touch16x/keymap/0000775000076400007640000000000012016557043015553 500000000000000libskk-1.0.0/rules/tutcode-touch16x/keymap/latin.json0000664000076400007640000000006511675742075017511 00000000000000{ "include": [ "tutcode/default" ] } libskk-1.0.0/rules/tutcode-touch16x/keymap/katakana.json0000664000076400007640000000006511675742075020155 00000000000000{ "include": [ "tutcode/default" ] } libskk-1.0.0/rules/tutcode-touch16x/keymap/hankaku-katakana.json0000664000076400007640000000006511675742075021575 00000000000000{ "include": [ "tutcode/default" ] } libskk-1.0.0/rules/tutcode-touch16x/keymap/wide-latin.json0000664000076400007640000000006511675742075020437 00000000000000{ "include": [ "tutcode/default" ] } libskk-1.0.0/rules/tutcode-touch16x/keymap/hiragana.json0000664000076400007640000000006511675742075020154 00000000000000{ "include": [ "tutcode/default" ] } libskk-1.0.0/rules/Makefile.am0000664000076400007640000000676711734020630013124 00000000000000# Copyright (C) 2011-2012 Daiki Ueno # Copyright (C) 2011-2012 Red Hat, 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 3 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, see . rulesdir = $(pkgdatadir)/rules default_files = \ default/metadata.json \ default/keymap/default.json \ default/keymap/hankaku-katakana.json \ default/keymap/hiragana.json \ default/keymap/katakana.json \ default/keymap/latin.json \ default/keymap/wide-latin.json \ default/rom-kana/default.json \ $(NULL) act_files = \ act/metadata.json \ act/keymap/default.json \ act/keymap/hankaku-katakana.json \ act/keymap/hiragana.json \ act/keymap/katakana.json \ act/keymap/latin.json \ act/keymap/wide-latin.json \ act/rom-kana/default.json \ $(NULL) azik_files = \ azik/metadata.json \ azik/keymap/default.json \ azik/keymap/hankaku-katakana.json \ azik/keymap/hiragana.json \ azik/keymap/katakana.json \ azik/keymap/latin.json \ azik/keymap/wide-latin.json \ azik/rom-kana/default.json \ $(NULL) kzik_files = \ kzik/metadata.json \ kzik/keymap/default.json \ kzik/keymap/hankaku-katakana.json \ kzik/keymap/hiragana.json \ kzik/keymap/katakana.json \ kzik/keymap/latin.json \ kzik/keymap/wide-latin.json \ kzik/rom-kana/default.json \ $(NULL) tutcode_files = \ tutcode/metadata.json \ tutcode/keymap/hankaku-katakana.json \ tutcode/keymap/hiragana.json \ tutcode/keymap/katakana.json \ tutcode/keymap/latin.json \ tutcode/keymap/wide-latin.json \ tutcode/rom-kana/default.json \ $(NULL) tutcode_touch16x_files = \ tutcode-touch16x/metadata.json \ tutcode-touch16x/keymap/hankaku-katakana.json \ tutcode-touch16x/keymap/hiragana.json \ tutcode-touch16x/keymap/katakana.json \ tutcode-touch16x/keymap/latin.json \ tutcode-touch16x/keymap/wide-latin.json \ tutcode-touch16x/rom-kana/default.json \ $(NULL) nicola_files = \ nicola/metadata.json \ nicola/keymap/default.json \ nicola/keymap/kana.json \ nicola/keymap/latin.json \ nicola/keymap/katakana.json \ nicola/keymap/hankaku-katakana.json \ nicola/keymap/wide-latin.json \ nicola/keymap/hiragana.json \ nicola/rom-kana/default.json \ $(NULL) tcode_files = \ tcode/rom-kana/default.json \ tcode/metadata.json \ tcode/keymap/latin.json \ tcode/keymap/katakana.json \ tcode/keymap/hankaku-katakana.json \ tcode/keymap/wide-latin.json \ tcode/keymap/hiragana.json \ $(NULL) trycode_files = \ trycode/rom-kana/default.json \ trycode/metadata.json \ trycode/keymap/latin.json \ trycode/keymap/katakana.json \ trycode/keymap/hankaku-katakana.json \ trycode/keymap/wide-latin.json \ trycode/keymap/hiragana.json \ $(NULL) nobase_dist_rules_DATA = \ $(default_files) \ $(act_files) \ $(azik_files) \ $(kzik_files) \ $(tutcode_files) \ $(tutcode_touch16x_files) \ $(nicola_files) \ $(tcode_files) \ $(trycode_files) \ README.rules \ $(NULL) -include $(top_srcdir)/git.mk libskk-1.0.0/rules/kzik/0000775000076400007640000000000012016557043012107 500000000000000libskk-1.0.0/rules/kzik/rom-kana/0000775000076400007640000000000012016557043013614 500000000000000libskk-1.0.0/rules/kzik/rom-kana/default.json0000664000076400007640000004436711675742075016104 00000000000000{ "include": [ "default/default" ], "define": { "rom-kana": { ":": ["b", "ã£" ], ";": ["", "ã£" ], "bd": ["", "ã¹ã‚“" ], "bga": ["", "ã³ã‚ƒ" ], "bgd": ["", "ã³ã‡ã‚“" ], "bge": ["", "ã³ã‡" ], "bgh": ["", "ã³ã‚…ã†" ], "bgj": ["", "ã³ã‚…ã‚“" ], "bgl": ["", "ã³ã‚‡ã‚“" ], "bgn": ["", "ã³ã‚ƒã‚“" ], "bgo": ["", "ã³ã‚‡" ], "bgp": ["", "ã³ã‚‡ã†" ], "bgq": ["", "ã³ã‚ƒã„" ], "bgu": ["", "ã³ã‚…" ], "bgw": ["", "ã³ã‡ã„" ], "bgz": ["", "ã³ã‚ƒã‚“" ], "bh": ["", "ã¶ã†" ], "bj": ["", "ã¶ã‚“" ], "bk": ["", "ã³ã‚“" ], "bl": ["", "ã¼ã‚“" ], "bn": ["", "ã°ã‚“" ], "bp": ["", "ã¼ã†" ], "bq": ["", "ã°ã„" ], "bt": ["", "ã³ã¨" ], "bw": ["", "ã¹ã„" ], "byd": ["", "ã³ã‡ã‚“" ], "byh": ["", "ã³ã‚…ã†" ], "byj": ["", "ã³ã‚…ã‚“" ], "byl": ["", "ã³ã‚‡ã‚“" ], "byn": ["", "ã³ã‚ƒã‚“" ], "byp": ["", "ã³ã‚‡ã†" ], "byq": ["", "ã³ã‚ƒã„" ], "byw": ["", "ã³ã‡ã„" ], "byz": ["", "ã³ã‚ƒã‚“" ], "bz": ["", "ã°ã‚“" ], "ca": ["", "ã¡ã‚ƒ" ], "cd": ["", "ã¡ã‡ã‚“" ], "ce": ["", "ã¡ã‡" ], "ch": ["", "ã¡ã‚…ã†" ], "cj": ["", "ã¡ã‚…ã‚“" ], "cl": ["", "ã¡ã‚‡ã‚“" ], "cn": ["", "ã¡ã‚ƒã‚“" ], "co": ["", "ã¡ã‚‡" ], "cp": ["", "ã¡ã‚‡ã†" ], "cq": ["", "ã¡ã‚ƒã„" ], "cu": ["", "ã¡ã‚…" ], "cw": ["", "ã¡ã‡ã„" ], "cz": ["", "ã¡ã‚ƒã‚“" ], "db": ["", "書" ], "dci": ["", "ã§ãƒ" ], "dcu": ["", "ã©ã…" ], "dd": ["", "ã§ã‚“" ], "df": ["", "ã§" ], "dg": ["", "大" ], "dh": ["", "ã¥ã†" ], "dj": ["", "ã¥ã‚“" ], "dk": ["", "ã¢ã‚“" ], "dl": ["", "ã©ã‚“" ], "dm": ["", "ã§ã‚‚" ], "dn": ["", "ã ã‚“" ], "dp": ["", "ã©ã†" ], "dq": ["", "ã ã„" ], "dr": ["", "対" ], "ds": ["", "ã§ã™" ], "dt": ["", "ã ã¡" ], "dv": ["", "é…" ], "dw": ["", "ã§ã„" ], "dx": ["", "代" ], "dz": ["", "ã ã‚“" ], "fb": ["", "付" ], "fc": ["", "押" ], "fd": ["", "ãµã‡ã‚“" ], "fg": ["", "以" ], "fh": ["", "ãµã†" ], "fj": ["", "ãµã‚“" ], "fk": ["", "ãµãƒã‚“" ], "fl": ["", "ãµã‰ã‚“" ], "fn": ["", "ãµãã‚“" ], "fp": ["", "ãµã‰ãƒ¼" ], "fq": ["", "ãµãã„" ], "fr": ["", "ä»¶" ], "fs": ["", "会" ], "ft": ["", "仕" ], "fv": ["", "æ›" ], "fw": ["", "ãµã‡ã„" ], "fx": ["", "点" ], "fz": ["", "ãµãã‚“" ], "gb": ["", "様" ], "gc": ["", "è¦" ], "gd": ["", "ã’ã‚“" ], "gf": ["", "試" ], "gga": ["", "ãŽã‚ƒ" ], "ggd": ["", "ãŽã‡ã‚“" ], "gge": ["", "ãŽã‡" ], "ggh": ["", "ãŽã‚…ã†" ], "ggj": ["", "ãŽã‚…ã‚“" ], "ggl": ["", "ãŽã‚‡ã‚“" ], "ggn": ["", "ãŽã‚ƒã‚“" ], "ggo": ["", "ãŽã‚‡" ], "ggp": ["", "ãŽã‚‡ã†" ], "ggq": ["", "ãŽã‚ƒã„" ], "ggu": ["", "ãŽã‚…" ], "ggw": ["", "ãŽã‡ã„" ], "ggz": ["", "ãŽã‚ƒã‚“" ], "gh": ["", "ãã†" ], "gj": ["", "ãã‚“" ], "gk": ["", "ãŽã‚“" ], "gl": ["", "ã”ã‚“" ], "gn": ["", "ãŒã‚“" ], "gp": ["", "ã”ã†" ], "gq": ["", "ãŒã„" ], "gr": ["", "ãŒã‚‰" ], "gs": ["", "行" ], "gt": ["", "ã”ã¨" ], "gv": ["", "用" ], "gw": ["", "ã’ã„" ], "gx": ["", "欠" ], "gyd": ["", "ãŽã‡ã‚“" ], "gyh": ["", "ãŽã‚…ã†" ], "gyj": ["", "ãŽã‚…ã‚“" ], "gyl": ["", "ãŽã‚‡ã‚“" ], "gyn": ["", "ãŽã‚ƒã‚“" ], "gyp": ["", "ãŽã‚‡ã†" ], "gyq": ["", "ãŽã‚ƒã„" ], "gyw": ["", "ãŽã‡ã„" ], "gyz": ["", "ãŽã‚ƒã‚“" ], "gz": ["", "ãŒã‚“" ], "hb": ["", "è²·" ], "hc": ["", "ç§»" ], "hd": ["", "ã¸ã‚“" ], "hf": ["", "法" ], "hga": ["", "ã²ã‚ƒ" ], "hgd": ["", "ã²ã‡ã‚“" ], "hge": ["", "ã²ã‡" ], "hgh": ["", "ã²ã‚…ã†" ], "hgj": ["", "ã²ã‚…ã‚“" ], "hgl": ["", "ã²ã‚‡ã‚“" ], "hgn": ["", "ã²ã‚ƒã‚“" ], "hgo": ["", "ã²ã‚‡" ], "hgp": ["", "ã²ã‚‡ã†" ], "hgq": ["", "ã²ã‚ƒã„" ], "hgu": ["", "ã²ã‚…" ], "hgw": ["", "ã²ã‡ã„" ], "hgz": ["", "ã²ã‚ƒã‚“" ], "hh": ["", "ãµã†" ], "hj": ["", "ãµã‚“" ], "hk": ["", "ã²ã‚“" ], "hl": ["", "ã»ã‚“" ], "hn": ["", "ã¯ã‚“" ], "hp": ["", "ã»ã†" ], "hq": ["", "ã¯ã„" ], "hr": ["", "åˆ" ], "hs": ["", "æ–¹" ], "ht": ["", "ã²ã¨" ], "hv": ["", "ä¿¡" ], "hw": ["", "ã¸ã„" ], "hx": ["", "機" ], "hyd": ["", "ã²ã‡ã‚“" ], "hyh": ["", "ã²ã‚…ã†" ], "hyj": ["", "ã²ã‚…ã‚“" ], "hyl": ["", "ã²ã‚‡ã‚“" ], "hyn": ["", "ã²ã‚ƒã‚“" ], "hyp": ["", "ã²ã‚‡ã†" ], "hyq": ["", "ã²ã‚ƒã„" ], "hyw": ["", "ã²ã‡ã„" ], "hyz": ["", "ã²ã‚ƒã‚“" ], "hz": ["", "ã¯ã‚“" ], "jb": ["", "自" ], "jc": ["", "身" ], "jd": ["", "ã˜ã‡ã‚“" ], "jf": ["", "ã˜ã‚…" ], "jg": ["", "èž" ], "jh": ["", "ã˜ã‚…ã†" ], "jj": ["", "ã˜ã‚…ã‚“" ], "jk": ["", "ã˜ã‚“" ], "jl": ["", "ã˜ã‚‡ã‚“" ], "jn": ["", "ã˜ã‚ƒã‚“" ], "jp": ["", "ã˜ã‚‡ã†" ], "jq": ["", "ã˜ã‚ƒã„" ], "jr": ["", "é‡" ], "jt": ["", "使" ], "jv": ["", "地" ], "jw": ["", "ã˜ã‡ã„" ], "jx": ["", "生" ], "jz": ["", "ã˜ã‚ƒã‚“" ], "kb": ["", "効" ], "kc": ["", "é–‹" ], "kd": ["", "ã‘ã‚“" ], "kf": ["", "ã" ], "kga": ["", "ãゃ" ], "kgd": ["", "ãã‡ã‚“" ], "kge": ["", "ãã‡" ], "kgh": ["", "ãã‚…ã†" ], "kgj": ["", "ãã‚…ã‚“" ], "kgl": ["", "ãょん" ], "kgn": ["", "ãゃん" ], "kgo": ["", "ãょ" ], "kgp": ["", "ãょã†" ], "kgq": ["", "ãゃã„" ], "kgu": ["", "ãã‚…" ], "kgw": ["", "ãã‡ã„" ], "kgz": ["", "ãゃん" ], "kh": ["", "ãã†" ], "kj": ["", "ãã‚“" ], "kk": ["", "ãã‚“" ], "kl": ["", "ã“ã‚“" ], "km": ["", "ã‹ã‚‚" ], "kn": ["", "ã‹ã‚“" ], "kp": ["", "ã“ã†" ], "kq": ["", "ã‹ã„" ], "kr": ["", "ã‹ã‚‰" ], "kt": ["", "ã“ã¨" ], "kv": ["", "æ°—" ], "kw": ["", "ã‘ã„" ], "kx": ["", "変" ], "kyd": ["", "ãã‡ã‚“" ], "kyh": ["", "ãã‚…ã†" ], "kyj": ["", "ãã‚…ã‚“" ], "kyl": ["", "ãょん" ], "kyn": ["", "ãゃん" ], "kyp": ["", "ãょã†" ], "kyq": ["", "ãゃã„" ], "kyw": ["", "ãã‡ã„" ], "kyz": ["", "ãゃん" ], "kz": ["", "ã‹ã‚“" ], "md": ["", "ã‚ã‚“" ], "mf": ["", "ã‚€" ], "mga": ["", "ã¿ã‚ƒ" ], "mgd": ["", "ã¿ã‡ã‚“" ], "mge": ["", "ã¿ã‡" ], "mgh": ["", "ã¿ã‚…ã†" ], "mgj": ["", "ã¿ã‚…ã‚“" ], "mgl": ["", "ã¿ã‚‡ã‚“" ], "mgn": ["", "ã¿ã‚ƒã‚“" ], "mgo": ["", "ã¿ã‚‡" ], "mgp": ["", "ã¿ã‚‡ã†" ], "mgq": ["", "ã¿ã‚ƒã„" ], "mgu": ["", "ã¿ã‚…" ], "mgw": ["", "ã¿ã‡ã„" ], "mgz": ["", "ã¿ã‚ƒã‚“" ], "mh": ["", "ã‚€ã†" ], "mj": ["", "むん" ], "mk": ["", "ã¿ã‚“" ], "ml": ["", "ã‚‚ã‚“" ], "mn": ["", "ã‚‚ã®" ], "mp": ["", "ã‚‚ã†" ], "mq": ["", "ã¾ã„" ], "ms": ["", "ã¾ã™" ], "mt": ["", "ã¾ãŸ" ], "mw": ["", "ã‚ã„" ], "myd": ["", "ã¿ã‡ã‚“" ], "myh": ["", "ã¿ã‚…ã†" ], "myj": ["", "ã¿ã‚…ã‚“" ], "myl": ["", "ã¿ã‚‡ã‚“" ], "myn": ["", "ã¿ã‚ƒã‚“" ], "myp": ["", "ã¿ã‚‡ã†" ], "myq": ["", "ã¿ã‚ƒã„" ], "myw": ["", "ã¿ã‡ã„" ], "myz": ["", "ã¿ã‚ƒã‚“" ], "mz": ["", "ã¾ã‚“" ], "nb": ["", "ã­ã°" ], "nd": ["", "ã­ã‚“" ], "nf": ["", "ã¬" ], "nga": ["", "ã«ã‚ƒ" ], "ngd": ["", "ã«ã‡ã‚“" ], "nge": ["", "ã«ã‡" ], "ngh": ["", "ã«ã‚…ã†" ], "ngj": ["", "ã«ã‚…ã‚“" ], "ngl": ["", "ã«ã‚‡ã‚“" ], "ngn": ["", "ã«ã‚ƒã‚“" ], "ngo": ["", "ã«ã‚‡" ], "ngp": ["", "ã«ã‚‡ã†" ], "ngq": ["", "ã«ã‚ƒã„" ], "ngu": ["", "ã«ã‚…" ], "ngw": ["", "ã«ã‡ã„" ], "ngz": ["", "ã«ã‚ƒã‚“" ], "nh": ["", "ã¬ã†" ], "nj": ["", "ã¬ã‚“" ], "nk": ["", "ã«ã‚“" ], "nl": ["", "ã®ã‚“" ], "np": ["", "ã®ã†" ], "nq": ["", "ãªã„" ], "nr": ["", "ãªã‚‹" ], "nt": ["", "ã«ã¡" ], "nw": ["", "ã­ã„" ], "nyd": ["", "ã«ã‡ã‚“" ], "nyh": ["", "ã«ã‚…ã†" ], "nyj": ["", "ã«ã‚…ã‚“" ], "nyl": ["", "ã«ã‚‡ã‚“" ], "nyn": ["", "ã«ã‚ƒã‚“" ], "nyp": ["", "ã«ã‚‡ã†" ], "nyq": ["", "ã«ã‚ƒã„" ], "nyw": ["", "ã«ã‡ã„" ], "nyz": ["", "ã«ã‚ƒã‚“" ], "nz": ["", "ãªã‚“" ], "pd": ["", "ãºã‚“" ], "pga": ["", "ã´ã‚ƒ" ], "pgd": ["", "ã´ã‡ã‚“" ], "pge": ["", "ã´ã‡" ], "pgh": ["", "ã´ã‚…ã†" ], "pgj": ["", "ã´ã‚…ã‚“" ], "pgl": ["", "ã´ã‚‡ã‚“" ], "pgn": ["", "ã´ã‚ƒã‚“" ], "pgo": ["", "ã´ã‚‡" ], "pgp": ["", "ã´ã‚‡ã†" ], "pgq": ["", "ã´ã‚ƒã„" ], "pgu": ["", "ã´ã‚…" ], "pgw": ["", "ã´ã‡ã„" ], "pgz": ["", "ã´ã‚ƒã‚“" ], "ph": ["", "ã·ã†" ], "pj": ["", "ã·ã‚“" ], "pk": ["", "ã´ã‚“" ], "pl": ["", "ã½ã‚“" ], "pn": ["", "ã±ã‚“" ], "pp": ["", "ã½ã†" ], "pq": ["", "ã±ã„" ], "pw": ["", "ãºã„" ], "pyd": ["", "ã´ã‡ã‚“" ], "pyh": ["", "ã´ã‚…ã†" ], "pyj": ["", "ã´ã‚…ã‚“" ], "pyl": ["", "ã´ã‚‡ã‚“" ], "pyn": ["", "ã´ã‚ƒã‚“" ], "pyp": ["", "ã´ã‚‡ã†" ], "pyq": ["", "ã´ã‚ƒã„" ], "pyw": ["", "ã´ã‡ã„" ], "pyz": ["", "ã´ã‚ƒã‚“" ], "pz": ["", "ã±ã‚“" ], "rd": ["", "れん" ], "rga": ["", "りゃ" ], "rgd": ["", "りã‡ã‚“" ], "rge": ["", "りã‡" ], "rgh": ["", "りゅã†" ], "rgj": ["", "りゅん" ], "rgl": ["", "りょん" ], "rgn": ["", "りゃん" ], "rgo": ["", "りょ" ], "rgp": ["", "りょã†" ], "rgq": ["", "りゃã„" ], "rgu": ["", "りゅ" ], "rgw": ["", "りã‡ã„" ], "rgz": ["", "りゃん" ], "rh": ["", "ã‚‹ã†" ], "rj": ["", "ã‚‹ã‚“" ], "rk": ["", "りん" ], "rl": ["", "ã‚ã‚“" ], "rn": ["", "らん" ], "rp": ["", "ã‚ã†" ], "rq": ["", "らã„" ], "rr": ["", "られ" ], "rt": ["", "力" ], "rw": ["", "れã„" ], "ryd": ["", "りã‡ã‚“" ], "ryh": ["", "りゅã†" ], "ryj": ["", "りゅん" ], "ryl": ["", "りょん" ], "ryn": ["", "りゃん" ], "ryp": ["", "りょã†" ], "ryq": ["", "りゃã„" ], "ryw": ["", "りã‡ã„" ], "ryz": ["", "りゃん" ], "rz": ["", "らん" ], "sb": ["", "分" ], "sc": ["", "é€" ], "sd": ["", "ã›ã‚“" ], "sf": ["", "ã•ã„" ], "sg": ["", "æ€" ], "sh": ["", "ã™ã†" ], "sj": ["", "ã™ã‚“" ], "sk": ["", "ã—ã‚“" ], "sl": ["", "ãã‚“" ], "sm": ["", "見" ], "sn": ["", "ã•ã‚“" ], "sp": ["", "ãã†" ], "sq": ["", "ã•ã„" ], "sr": ["", "ã™ã‚‹" ], "ss": ["", "ã›ã„" ], "st": ["", "ã—ãŸ" ], "sv": ["", "空" ], "sw": ["", "ã›ã„" ], "sx": ["", "ç€" ], "syd": ["", "ã—ã‡ã‚“" ], "syh": ["", "ã—ã‚…ã†" ], "syj": ["", "ã—ã‚…ã‚“" ], "syl": ["", "ã—ょん" ], "syn": ["", "ã—ゃん" ], "syp": ["", "ã—ょã†" ], "syq": ["", "ã—ゃã„" ], "syw": ["", "ã—ã‡ã„" ], "syz": ["", "ã—ゃん" ], "sz": ["", "ã•ã‚“" ], "tb": ["", "ãŸã³" ], "td": ["", "ã¦ã‚“" ], "tf": ["", "å¼·" ], "tgi": ["", "ã¦ãƒ" ], "tgu": ["", "ã¨ã…" ], "th": ["", "ã¤ã†" ], "tj": ["", "ã¤ã‚“" ], "tk": ["", "ã¡ã‚“" ], "tl": ["", "ã¨ã‚“" ], "tm": ["", "ãŸã‚" ], "tn": ["", "ãŸã‚“" ], "tp": ["", "ã¨ã†" ], "tq": ["", "ãŸã„" ], "tr": ["", "ãŸã‚‰" ], "tsa": ["", "ã¤ã" ], "tse": ["", "ã¤ã‡" ], "tsi": ["", "ã¤ãƒ" ], "tso": ["", "ã¤ã‰" ], "tw": ["", "ã¦ã„" ], "tyd": ["", "ã¡ã‡ã‚“" ], "tyh": ["", "ã¡ã‚…ã†" ], "tyj": ["", "ã¡ã‚…ã‚“" ], "tyl": ["", "ã¡ã‚‡ã‚“" ], "tyn": ["", "ã¡ã‚ƒã‚“" ], "typ": ["", "ã¡ã‚‡ã†" ], "tyq": ["", "ã¡ã‚ƒã„" ], "tyw": ["", "ã¡ã‡ã„" ], "tyz": ["", "ã¡ã‚ƒã‚“" ], "tz": ["", "ãŸã‚“" ], "vf": ["", "è¿”" ], "vz": ["", "帰" ], "wd": ["", "ã†ã‡ã‚“" ], "wk": ["", "ã†ãƒã‚“" ], "wl": ["", "ã†ã‰ã‚“" ], "wn": ["", "ã‚ã‚“" ], "wp": ["", "ã†ã‰ãƒ¼" ], "wq": ["", "ã‚ã„" ], "wr": ["", "ã‚れ" ], "wso": ["", "ã†ã‰" ], "wt": ["", "ã‚ãŸ" ], "wz": ["", "ã‚ã‚“" ], "x,": ["", "," ], "x-": ["", "-" ], "x.": ["", "." ], "x:": ["", ":" ], "x;": ["", ";" ], "x[": ["", "[" ], "x]": ["", "]" ], "x_": ["", " " ], "xa": ["", "ã—ゃ" ], "xd": ["", "ã—ã‡ã‚“" ], "xe": ["", "ã—ã‡" ], "xh": ["", "ã—ã‚…ã†" ], "xj": ["", "ã—ã‚…ã‚“" ], "xl": ["", "ã—ょん" ], "xn": ["", "ã—ゃん" ], "xo": ["", "ã—ょ" ], "xp": ["", "ã—ょã†" ], "xq": ["", "ã—ゃã„" ], "xu": ["", "ã—ã‚…" ], "xw": ["", "ã—ã‡ã„" ], "xxa": ["", "ã" ], "xxe": ["", "ã‡" ], "xxh": ["", "â†" ], "xxi": ["", "ãƒ" ], "xxj": ["", "↓" ], "xxk": ["", "↑" ], "xxl": ["", "→" ], "xxo": ["", "ã‰" ], "xxu": ["", "ã…" ], "xxwa": ["", "ゎ" ], "xxwe": ["", "ã‚‘" ], "xxwi": ["", "ã‚" ], "xz": ["", "ã—ゃん" ], "x~": ["", "~" ], "yf": ["", "ゆ" ], "yh": ["", "ゆã†" ], "yj": ["", "ゆん" ], "yl": ["", "よん" ], "yn": ["", "ã‚„ã‚“" ], "yp": ["", "よã†" ], "yq": ["", "ã‚„ã„" ], "yr": ["", "よる" ], "yw": ["", "ã„ã‡ã„" ], "yz": ["", "ã‚„ã‚“" ], "zc": ["", "ã–" ], "zd": ["", "ãœã‚“" ], "zf": ["", "ãœ" ], "zga": ["", "ã˜ã‚ƒ" ], "zgd": ["", "ã˜ã‡ã‚“" ], "zge": ["", "ã˜ã‡" ], "zgh": ["", "ã˜ã‚…ã†" ], "zgj": ["", "ã˜ã‚…ã‚“" ], "zgl": ["", "ã˜ã‚‡ã‚“" ], "zgn": ["", "ã˜ã‚ƒã‚“" ], "zgo": ["", "ã˜ã‚‡" ], "zgp": ["", "ã˜ã‚‡ã†" ], "zgq": ["", "ã˜ã‚ƒã„" ], "zgu": ["", "ã˜ã‚…" ], "zgw": ["", "ã˜ã‡ã„" ], "zgz": ["", "ã˜ã‚ƒã‚“" ], "zh": ["", "ãšã†" ], "zj": ["", "ãšã‚“" ], "zk": ["", "ã˜ã‚“" ], "zl": ["", "ãžã‚“" ], "zn": ["", "ã–ã‚“" ], "zp": ["", "ãžã†" ], "zq": ["", "ã–ã„" ], "zr": ["", "ã–ã‚‹" ], "zv": ["", "ã–ã„" ], "zw": ["", "ãœã„" ], "zx": ["", "ãœã„" ], "zyd": ["", "ã˜ã‡ã‚“" ], "zyh": ["", "ã˜ã‚…ã†" ], "zyj": ["", "ã˜ã‚…ã‚“" ], "zyl": ["", "ã˜ã‚‡ã‚“" ], "zyn": ["", "ã˜ã‚ƒã‚“" ], "zyp": ["", "ã˜ã‚‡ã†" ], "zyq": ["", "ã˜ã‚ƒã„" ], "zyw": ["", "ã˜ã‡ã„" ], "zyz": ["", "ã˜ã‚ƒã‚“" ], "zz": ["", "ã–ã‚“" ] } } } libskk-1.0.0/rules/kzik/metadata.json0000664000076400007640000000023611675742075014516 00000000000000{ "name": "KZIK", "description": "Extended romaji input method based on AZIK, developed by OHASHI Hideya " } libskk-1.0.0/rules/kzik/keymap/0000775000076400007640000000000012016557043013375 500000000000000libskk-1.0.0/rules/kzik/keymap/latin.json0000664000076400007640000000006511675742075015333 00000000000000{ "include": [ "default/default" ] } libskk-1.0.0/rules/kzik/keymap/katakana.json0000664000076400007640000000021611734020742015757 00000000000000{ "include": [ "default" ], "define": { "keymap": { "\\": "set-input-mode-hiragana" } } } libskk-1.0.0/rules/kzik/keymap/hankaku-katakana.json0000664000076400007640000000021611734020774017404 00000000000000{ "include": [ "default" ], "define": { "keymap": { "\\": "set-input-mode-hiragana" } } } libskk-1.0.0/rules/kzik/keymap/wide-latin.json0000664000076400007640000000006511675742075016261 00000000000000{ "include": [ "default/default" ] } libskk-1.0.0/rules/kzik/keymap/hiragana.json0000664000076400007640000000021611734020707015757 00000000000000{ "include": [ "default" ], "define": { "keymap": { "\\": "set-input-mode-katakana" } } } libskk-1.0.0/rules/kzik/keymap/default.json0000664000076400007640000000020511734020660015625 00000000000000{ "include": [ "default/default" ], "define": { "keymap": { ":": "upper-;" } } } libskk-1.0.0/rules/README.rules0000664000076400007640000001003411733752674013102 00000000000000* Rules overview libskk supports various typing rules such as AZIK, ACT, TUT-Code, which define keyboard shortcuts and romaji-to-kana conversion table. Rules are normally read from ~/.config/libskk/rules and /usr/share/libskk/rules. * Rule directory structure A rule consists of the following directory structure: metadata.json keymap/ ... rom-kana/ ... * Rule metadata Each rule must have metadata.json in the top level directory, with the following content: { "name": , "description": , "filter": } * Format of map files Each file under keymaps/ and rom-kana/ directories is used to define some key-value mappings. They are in the following format: { "include": [ , ... ], "define": { : { : , ... }, ... } } The value associated with "include" is an array of parent map files, which will be included before evaluating the map file itself. The value associated with "define" is an object which binds some variables to values. ** Path name resolution Each element in "include" may be either a relative or absolute path. A relative path does not include "/" while absolute one does. If path is relative, the map file is located under the same directory of the current map file. Otherwise, libskk looks for the map file outside of the diretory where the current map file is located. Example: If the current map file is /foo/rom-kana/foo.json and it contains: "include": [ "default" ] it looks for /foo/rom-kana/default.json. If the current map file is /foo/rom-kana/bar.json and it contains: "include": [ "default/default" ] it looks for /default/rom-kana/default.json. ** Format of keymap rule files The map name "keymap" is used to associate a key event to a command name. Example: { "include": [ "default" ], "define": { "keymap": { "Q": null, "C-@": "start-preedit" } } } This map file includes "default" map file first, replace mapping of "start-preedit" from "Q" to "C-@" (control + "@"). The current available commands are: abbrev abort commit commit-unhandled complete delete insert-kana- kuten next-candidate previous-candidate set-input-mode- special-midasi start-preedit start-preedit-kana upper- ** Format of rom-kana map files The map name "rom-kana" is used to define romaji-to-kana conversion tables. The value is an object which maps a string to either an array or null. If the value is an array, a new mapping is defined. In that case each array can contain 2 to 4 elements. The first two elements are and . is a string which will be added to preedit after the transition (for example, when "bb" is typed, "b" is which will be added to the next preedit). is an output in hiragana. The rest of those elements are and , which are optional output strings in katakana and hankaku-katakana input mode (automatically derived from if they are omitted). If the value is null, existing mapping of the corresponding key is removed from the parent map file. Example: { "include": [ "default" ], "define": { "rom-kana": { "xka": [ "", "ã‹", "ヵ", "ï½¶" ], "b.": [ "", "ã¶" ], "dha": null } } } This map file includes "default" map file first, defines new mappings for "xka" and "b.", and removes a mapping "dha" from the current map file. Copyright (C) 2011-2012 Daiki Ueno Copyright (C) 2011-2012 Red Hat, Inc. This file is free software; as a special exception the author gives unlimited permission to copy and/or distribute it, with or without modifications, as long as this notice is preserved. This file 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. libskk-1.0.0/INSTALL0000644000076400007640000003633211742676302010770 00000000000000Installation 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. libskk-1.0.0/lcov.mk0000664000076400007640000000125511703506543011225 00000000000000# From http://cgit.freedesktop.org/telepathy/telepathy-glib/tree/tools/lcov.am lcov-reset: lcov --directory @top_srcdir@ --zerocounters lcov-report: lcov --directory @top_srcdir@ --capture \ --output-file @top_builddir@/lcov.info $(mkdir_p) @top_builddir@/lcov.html git_commit=`GIT_DIR=@top_srcdir@/.git git log -1 --pretty=format:%h 2>/dev/null`;\ genhtml --title "@PACKAGE_STRING@ $$git_commit" \ --output-directory @top_builddir@/lcov.html lcov.info @echo @echo 'lcov report can be found in:' @echo 'file://@abs_top_builddir@/lcov.html/index.html' @echo lcov-check: $(MAKE) lcov-reset $(MAKE) check $(LCOV_CHECK_ARGS) $(MAKE) lcov-report ## vim:set ft=automake: libskk-1.0.0/configure.ac0000664000076400007640000001211212016556354012214 00000000000000# Copyright (C) 2011-2012 Daiki Ueno # Copyright (C) 2011-2012 Red Hat, 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 3 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, see . AC_PREREQ(2.63) AC_CONFIG_MACRO_DIR([m4]) AC_INIT([libskk], [1.0.0], [ueno@unixuser.org]) SKK_API_VERSION=1.0 SKK_API_MAJOR_VERSION=1 SKK_API_MINOR_VERSION=0 SKK_API_PC_VERSION=1.0 SKK_LIBRARY_SUFFIX="-$SKK_API_VERSION" AC_SUBST([SKK_API_VERSION]) AC_SUBST([SKK_API_MAJOR_VERSION]) AC_SUBST([SKK_API_MINOR_VERSION]) AC_SUBST([SKK_API_PC_VERSION]) AC_SUBST([SKK_LIBRARY_SUFFIX]) AC_SUBST([SKK_LIBRARY_SUFFIX_U],[AS_TR_SH([$SKK_LIBRARY_SUFFIX])]) dnl Init automake AM_INIT_AUTOMAKE([color-tests]) AM_MAINTAINER_MODE([enable]) AC_GNU_SOURCE dnl Check for programs AC_PROG_CC AM_PROG_CC_C_O AC_PROG_CC_STDC AC_PROG_INSTALL IT_PROG_INTLTOOL # define PACKAGE_VERSION_* variables AM_DISABLE_STATIC AC_ISC_POSIX AC_HEADER_STDC LT_INIT # If library source has changed since last release, increment revision # If public symbols have been added, removed or changed since last release, # increment current and set revision to 0 # If public symbols have been added since last release, increment age # If public symbols have been removed since last release, set age to 0 m4_define([libskk_lt_current], [0]) m4_define([libskk_lt_revision], [0]) m4_define([libskk_lt_age], [0]) LT_CURRENT=libskk_lt_current LT_REVISION=libskk_lt_revision LT_AGE=libskk_lt_age AC_SUBST([LT_CURRENT]) AC_SUBST([LT_REVISION]) AC_SUBST([LT_AGE]) # check gio PKG_CHECK_MODULES([GIO], [gio-2.0], , [AC_MSG_ERROR([can't find gio-2.0])]) # check gee PKG_CHECK_MODULES([GEE], [gee-1.0], , [AC_MSG_ERROR([can't find gee-1.0])]) # check json-glib PKG_CHECK_MODULES([JSON_GLIB], [json-glib-1.0], , [AC_MSG_ERROR([can't find json-glib-1.0])]) LIBSKK_CFLAGS="$GIO_CFLAGS $GEE_CFLAGS $JSON_GLIB_CFLAGS" AC_SUBST(LIBSKK_CFLAGS) LIBSKK_LIBS="$GIO_LIBS $GEE_LIBS $JSON_GLIB_LIBS" AC_SUBST(LIBSKK_LIBS) GOBJECT_INTROSPECTION_CHECK([0.9.0]) AM_PROG_VALAC([0.14.0]) AC_SUBST(VALAC) AC_SUBST(VALAFLAGS) # define GETTEXT_* variables GETTEXT_PACKAGE=libskk AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Define to the read-only architecture-independent data directory.]) AC_ARG_ENABLE([fep], AS_HELP_STRING([--enable-fep], [compile with libfep]), [enable_fep=$enableval], [enable_fep=no]) if test x$enable_fep = xyes; then PKG_CHECK_MODULES([LIBFEP], [libfep-glib >= 0.0.7], , enable_fep=no) VALA_CHECK_PACKAGES([libfep-glib], , enable_fep=no) AC_PATH_PROG([FEP], [fep]) fi AM_CONDITIONAL([ENABLE_FEP], [test x$enable_fep = xyes]) AC_ARG_ENABLE([docs], AS_HELP_STRING([--enable-docs],[Enable documentation generation]), [enable_docs=$enableval], [enable_docs=no]) AM_CONDITIONAL([ENABLE_DOCS], [test x$enable_docs = xyes]) VALADOC_REQUIRED=0.3.1 have_valadoc=no if test x$enable_docs = xyes; then # make sure the library is new enough and the program exists PKG_CHECK_MODULES([VALADOC], [valadoc-1.0 >= $VALADOC_REQUIRED]) AC_PATH_PROG([VALADOC], [valadoc], [:]) AS_IF([test "$VALADOC" != :], have_valadoc=yes) fi AM_CONDITIONAL([HAVE_VALADOC], [test x$have_valadoc = xyes]) if test "x$enable_docs" = "xyes" -a "x$have_valadoc" != "xyes"; then AC_MSG_ERROR([Doc building requested but valadoc not installed.]) fi AC_ARG_ENABLE([code-coverage], AS_HELP_STRING([--enable-code-coverage], [compile with code coverage code]), [enable_code_coverage=$enableval], [enable_code_coverage=no]) # Only enable code coverage if this isn't a release. if test "x$enable_code_coverage" = "xyes"; then CODE_COVERAGE_CFLAGS="-fprofile-arcs -ftest-coverage -O0 -ggdb" CODE_COVERAGE_LDFLAGS="-lgcov" fi AC_SUBST([CODE_COVERAGE_CFLAGS]) AC_SUBST([CODE_COVERAGE_LDFLAGS]) AC_ARG_ENABLE([valgrind-tests], AS_HELP_STRING([--enable-valgrind-tests], [run self tests under valgrind]), [enable_valgrind_tests=$enableval], [enable_valgrind_tests=no]) # Run self-tests under valgrind? if test "x$enable_valgrind_tests" = "xyes"; then AC_CHECK_PROGS(VALGRIND, valgrind) fi if test -n "$VALGRIND"; then VALGRIND_OPTS="--leak-check=full --show-reachable=no --gen-suppressions=all --num-callers=20 --error-exitcode=0 --log-file=valgrind.log.%p" AC_SUBST(VALGRIND_OPTS) fi AC_CONFIG_HEADERS([config.h]) AC_CONFIG_FILES([Makefile libskk/Makefile libskk/libskk.pc rules/Makefile tools/Makefile tests/Makefile docs/Makefile po/Makefile.in]) AC_OUTPUT libskk-1.0.0/AUTHORS0000664000076400007640000000000011675742075010776 00000000000000libskk-1.0.0/COPYING0000664000076400007640000010451311675742075010777 00000000000000 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, 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 them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If 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 convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU 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 Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "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 PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM 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 PROGRAM (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 PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state 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 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 3 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, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program 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, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU 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. But first, please read . libskk-1.0.0/config.sub0000755000076400007640000010471611774201545011722 00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, # 2011, 2012 Free Software Foundation, Inc. timestamp='2012-01-01' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # 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. # Please send patches to . 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, 2009, 2010, 2011, 2012 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-android* | 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 \ | be32 | be64 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | epiphany \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | le32 | le64 \ | 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 \ | nds32 | nds32le | nds32be \ | nios | nios2 \ | ns16k | ns32k \ | open8 \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ | rl78 | 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 \ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | we32k \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; c54x) basic_machine=tic54x-unknown ;; c55x) basic_machine=tic55x-unknown ;; c6x) basic_machine=tic6x-unknown ;; m6811 | m68hc11 | m6812 | m68hc12 | picochip) basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; strongarm | thumb | xscale) basic_machine=arm-unknown ;; xscaleeb) basic_machine=armeb-unknown ;; xscaleel) basic_machine=armel-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-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | 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-* \ | hexagon-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | le32-* | le64-* \ | 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-* \ | nds32-* | nds32le-* | nds32be-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ | rl78-* | 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-* | sv1-* | sx?-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | 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 ;; c54x-*) basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c55x-*) basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c6x-*) basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; 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 | 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*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-/'` ;; msys) basic_machine=i386-pc os=-msys ;; mvs) basic_machine=i370-ibm os=-mvs ;; nacl) basic_machine=le32-unknown os=-nacl ;; 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 ;; neo-tandem) basic_machine=neo-tandem ;; nse-tandem) basic_machine=nse-tandem ;; 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 | ppcbe) basic_machine=powerpc-unknown ;; ppc-* | ppcbe-*) 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 ;; strongarm-* | thumb-*) basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` ;; 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 ;; tile*) basic_machine=$basic_machine-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 ;; xscale-* | xscalee[bl]-*) basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` ;; 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* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-android* \ | -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 ;; -nacl*) ;; -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 ;; tic54x-*) os=-coff ;; tic55x-*) os=-coff ;; tic6x-*) 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 ;; 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: libskk-1.0.0/po/0000775000076400007640000000000012016557043010423 500000000000000libskk-1.0.0/po/POTFILES.in0000664000076400007640000000010411712710513012106 00000000000000libskk/context.vala libskk/state.vala tools/skk.vala tools/fep.vala libskk-1.0.0/po/ja.po0000664000076400007640000000272011712712517011277 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: libskk 0.0.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-02-03 17:05+0900\n" "PO-Revision-Date: 2012-02-03 17:05+0900\n" "Last-Translator: Daiki Ueno \n" "Language-Team: Japanese\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../libskk/state.vala:627 msgid "Kuten([MM]KKTT) " msgstr "区点([MM]KKTT)" #: ../tools/skk.vala:30 ../tools/fep.vala:30 msgid "Path to a file dictionary" msgstr "ファイル辞書ã¸ã®ãƒ‘ス" #: ../tools/skk.vala:32 ../tools/fep.vala:32 msgid "Path to a user dictionary" msgstr "ユーザ辞書ã¸ã®ãƒ‘ス" #: ../tools/skk.vala:34 ../tools/fep.vala:34 msgid "Host and port running skkserv (HOST:PORT)" msgstr "skkserv ãŒå‹•ã„ã¦ã„るホストã¨ãƒãƒ¼ãƒˆ (HOST:PORT)" #: ../tools/skk.vala:36 ../tools/fep.vala:36 msgid "Typing rule (default: \"default\")" msgstr "ã‚¿ã‚¤ãƒ”ãƒ³ã‚°æ–¹å¼ (既定値: \"default\")" #: ../tools/skk.vala:38 ../tools/fep.vala:38 msgid "List typing rules" msgstr "タイピング方å¼ã‚’一覧表示" #: ../tools/skk.vala:49 ../tools/fep.vala:49 msgid "- emulate SKK input method on the command line" msgstr "コマンドライン上㧠SKK 入力メソッドをエミュレート" libskk-1.0.0/po/Makefile.in.in0000644000076400007640000001604612016556761013030 00000000000000# 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)" XGETTEXT="$(XGETTEXT)" srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist GENPOT = INTLTOOL_EXTRACT="$(INTLTOOL_EXTRACT)" XGETTEXT="$(XGETTEXT)" 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 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ INTLTOOL_V_MSGFMT = $(INTLTOOL__v_MSGFMT_$(V)) INTLTOOL__v_MSGFMT_= $(INTLTOOL__v_MSGFMT_$(AM_DEFAULT_VERBOSITY)) INTLTOOL__v_MSGFMT_0 = @echo " MSGFMT" $@; .po.pox: $(MAKE) $(GETTEXT_PACKAGE).pot $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox .po.mo: $(INTLTOOL_V_MSGFMT)$(MSGFMT) -o $@ $< .po.gmo: $(INTLTOOL_V_MSGFMT)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: libskk-1.0.0/po/POTFILES.skip0000664000076400007640000000007011712710534012453 00000000000000libskk/context.c libskk/state.c tools/skk.c tools/fep.c libskk-1.0.0/po/LINGUAS0000664000076400007640000000000311675742075011374 00000000000000ja libskk-1.0.0/libskk/0000775000076400007640000000000012016557043011264 500000000000000libskk-1.0.0/libskk/expr.c0000664000076400007640000006323112016556644012341 00000000000000/* expr.c generated by valac 0.16.0, the Vala compiler * generated from expr.vala, do not modify */ /* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ #include #include #include #include #include #include #define SKK_TYPE_EXPR_NODE_TYPE (skk_expr_node_type_get_type ()) #define SKK_TYPE_EXPR_NODE (skk_expr_node_get_type ()) typedef struct _SkkExprNode SkkExprNode; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) #define _g_free0(var) (var = (g_free (var), NULL)) #define SKK_TYPE_EXPR_READER (skk_expr_reader_get_type ()) #define SKK_EXPR_READER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_EXPR_READER, SkkExprReader)) #define SKK_EXPR_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_EXPR_READER, SkkExprReaderClass)) #define SKK_IS_EXPR_READER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_EXPR_READER)) #define SKK_IS_EXPR_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_EXPR_READER)) #define SKK_EXPR_READER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_EXPR_READER, SkkExprReaderClass)) typedef struct _SkkExprReader SkkExprReader; typedef struct _SkkExprReaderClass SkkExprReaderClass; typedef struct _SkkExprReaderPrivate SkkExprReaderPrivate; #define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL))) #define _skk_expr_node_free0(var) ((var == NULL) ? NULL : (var = (skk_expr_node_free (var), NULL))) #define SKK_TYPE_EXPR_EVALUATOR (skk_expr_evaluator_get_type ()) #define SKK_EXPR_EVALUATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_EXPR_EVALUATOR, SkkExprEvaluator)) #define SKK_EXPR_EVALUATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_EXPR_EVALUATOR, SkkExprEvaluatorClass)) #define SKK_IS_EXPR_EVALUATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_EXPR_EVALUATOR)) #define SKK_IS_EXPR_EVALUATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_EXPR_EVALUATOR)) #define SKK_EXPR_EVALUATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_EXPR_EVALUATOR, SkkExprEvaluatorClass)) typedef struct _SkkExprEvaluator SkkExprEvaluator; typedef struct _SkkExprEvaluatorClass SkkExprEvaluatorClass; typedef struct _SkkExprEvaluatorPrivate SkkExprEvaluatorPrivate; #define _g_date_time_unref0(var) ((var == NULL) ? NULL : (var = (g_date_time_unref (var), NULL))) typedef enum { SKK_EXPR_NODE_TYPE_ARRAY, SKK_EXPR_NODE_TYPE_SYMBOL, SKK_EXPR_NODE_TYPE_STRING } SkkExprNodeType; struct _SkkExprNode { SkkExprNodeType type; GeeLinkedList* nodes; gchar* data; }; struct _SkkExprReader { GObject parent_instance; SkkExprReaderPrivate * priv; }; struct _SkkExprReaderClass { GObjectClass parent_class; }; struct _SkkExprEvaluator { GObject parent_instance; SkkExprEvaluatorPrivate * priv; }; struct _SkkExprEvaluatorClass { GObjectClass parent_class; }; static gpointer skk_expr_reader_parent_class = NULL; static gpointer skk_expr_evaluator_parent_class = NULL; GType skk_expr_node_type_get_type (void) G_GNUC_CONST; GType skk_expr_node_get_type (void) G_GNUC_CONST; SkkExprNode* skk_expr_node_dup (const SkkExprNode* self); void skk_expr_node_free (SkkExprNode* self); void skk_expr_node_copy (const SkkExprNode* self, SkkExprNode* dest); void skk_expr_node_destroy (SkkExprNode* self); void skk_expr_node_init (SkkExprNode *self, SkkExprNodeType type); GType skk_expr_reader_get_type (void) G_GNUC_CONST; enum { SKK_EXPR_READER_DUMMY_PROPERTY }; void skk_expr_reader_read_symbol (SkkExprReader* self, const gchar* expr, gint* index, SkkExprNode* result); void skk_expr_reader_read_string (SkkExprReader* self, const gchar* expr, gint* index, SkkExprNode* result); SkkExprNode* skk_expr_reader_read_expr (SkkExprReader* self, const gchar* expr, gint* index); SkkExprReader* skk_expr_reader_new (void); SkkExprReader* skk_expr_reader_construct (GType object_type); GType skk_expr_evaluator_get_type (void) G_GNUC_CONST; enum { SKK_EXPR_EVALUATOR_DUMMY_PROPERTY }; gchar* skk_expr_evaluator_eval (SkkExprEvaluator* self, SkkExprNode* node); SkkExprEvaluator* skk_expr_evaluator_new (void); SkkExprEvaluator* skk_expr_evaluator_construct (GType object_type); GType skk_expr_node_type_get_type (void) { static volatile gsize skk_expr_node_type_type_id__volatile = 0; if (g_once_init_enter (&skk_expr_node_type_type_id__volatile)) { static const GEnumValue values[] = {{SKK_EXPR_NODE_TYPE_ARRAY, "SKK_EXPR_NODE_TYPE_ARRAY", "array"}, {SKK_EXPR_NODE_TYPE_SYMBOL, "SKK_EXPR_NODE_TYPE_SYMBOL", "symbol"}, {SKK_EXPR_NODE_TYPE_STRING, "SKK_EXPR_NODE_TYPE_STRING", "string"}, {0, NULL, NULL}}; GType skk_expr_node_type_type_id; skk_expr_node_type_type_id = g_enum_register_static ("SkkExprNodeType", values); g_once_init_leave (&skk_expr_node_type_type_id__volatile, skk_expr_node_type_type_id); } return skk_expr_node_type_type_id__volatile; } void skk_expr_node_init (SkkExprNode *self, SkkExprNodeType type) { SkkExprNodeType _tmp0_; memset (self, 0, sizeof (SkkExprNode)); _tmp0_ = type; (*self).type = _tmp0_; } static gpointer _g_object_ref0 (gpointer self) { return self ? g_object_ref (self) : NULL; } void skk_expr_node_copy (const SkkExprNode* self, SkkExprNode* dest) { SkkExprNodeType _tmp0_; GeeLinkedList* _tmp1_; GeeLinkedList* _tmp2_; const gchar* _tmp3_; gchar* _tmp4_; _tmp0_ = (*self).type; (*dest).type = _tmp0_; _tmp1_ = (*self).nodes; _tmp2_ = _g_object_ref0 (_tmp1_); _g_object_unref0 ((*dest).nodes); (*dest).nodes = _tmp2_; _tmp3_ = (*self).data; _tmp4_ = g_strdup (_tmp3_); _g_free0 ((*dest).data); (*dest).data = _tmp4_; } void skk_expr_node_destroy (SkkExprNode* self) { _g_object_unref0 ((*self).nodes); _g_free0 ((*self).data); } SkkExprNode* skk_expr_node_dup (const SkkExprNode* self) { SkkExprNode* dup; dup = g_new0 (SkkExprNode, 1); skk_expr_node_copy (self, dup); return dup; } void skk_expr_node_free (SkkExprNode* self) { skk_expr_node_destroy (self); g_free (self); } GType skk_expr_node_get_type (void) { static volatile gsize skk_expr_node_type_id__volatile = 0; if (g_once_init_enter (&skk_expr_node_type_id__volatile)) { GType skk_expr_node_type_id; skk_expr_node_type_id = g_boxed_type_register_static ("SkkExprNode", (GBoxedCopyFunc) skk_expr_node_dup, (GBoxedFreeFunc) skk_expr_node_free); g_once_init_leave (&skk_expr_node_type_id__volatile, skk_expr_node_type_id); } return skk_expr_node_type_id__volatile; } static gboolean string_get_next_char (const gchar* self, gint* index, gunichar* c) { gunichar _vala_c = 0U; gboolean result = FALSE; gint _tmp0_; gunichar _tmp1_ = 0U; gunichar _tmp2_; g_return_val_if_fail (self != NULL, FALSE); _tmp0_ = *index; _tmp1_ = g_utf8_get_char (((gchar*) self) + _tmp0_); _vala_c = _tmp1_; _tmp2_ = _vala_c; if (_tmp2_ != ((gunichar) 0)) { gint _tmp3_; gchar* _tmp4_ = NULL; _tmp3_ = *index; _tmp4_ = g_utf8_next_char (((gchar*) self) + _tmp3_); *index = (gint) (_tmp4_ - ((gchar*) self)); result = TRUE; if (c) { *c = _vala_c; } return result; } else { result = FALSE; if (c) { *c = _vala_c; } return result; } if (c) { *c = _vala_c; } } void skk_expr_reader_read_symbol (SkkExprReader* self, const gchar* expr, gint* index, SkkExprNode* result) { GString* _tmp0_; GString* builder; gboolean stop; gunichar uc; SkkExprNode node = {0}; GString* _tmp15_; const gchar* _tmp16_; gchar* _tmp17_; g_return_if_fail (self != NULL); g_return_if_fail (expr != NULL); _tmp0_ = g_string_new (""); builder = _tmp0_; stop = FALSE; uc = (gunichar) '\0'; while (TRUE) { gboolean _tmp1_ = FALSE; gboolean _tmp2_; gboolean _tmp6_; gunichar _tmp7_; _tmp2_ = stop; if (!_tmp2_) { const gchar* _tmp3_; gunichar _tmp4_ = 0U; gboolean _tmp5_ = FALSE; _tmp3_ = expr; _tmp5_ = string_get_next_char (_tmp3_, index, &_tmp4_); uc = _tmp4_; _tmp1_ = _tmp5_; } else { _tmp1_ = FALSE; } _tmp6_ = _tmp1_; if (!_tmp6_) { break; } _tmp7_ = uc; switch (_tmp7_) { case '\\': { const gchar* _tmp8_; gunichar _tmp9_ = 0U; gboolean _tmp10_ = FALSE; _tmp8_ = expr; _tmp10_ = string_get_next_char (_tmp8_, index, &_tmp9_); uc = _tmp9_; if (_tmp10_) { GString* _tmp11_; gunichar _tmp12_; _tmp11_ = builder; _tmp12_ = uc; g_string_append_unichar (_tmp11_, _tmp12_); } break; } case '(': case ')': case '"': case ' ': { stop = TRUE; break; } default: { GString* _tmp13_; gunichar _tmp14_; _tmp13_ = builder; _tmp14_ = uc; g_string_append_unichar (_tmp13_, _tmp14_); break; } } } skk_expr_node_init (&node, SKK_EXPR_NODE_TYPE_SYMBOL); _tmp15_ = builder; _tmp16_ = _tmp15_->str; _tmp17_ = g_strdup (_tmp16_); _g_free0 (node.data); node.data = _tmp17_; *result = node; _g_string_free0 (builder); return; } static gchar string_get (const gchar* self, glong index) { gchar result = '\0'; glong _tmp0_; gchar _tmp1_; g_return_val_if_fail (self != NULL, '\0'); _tmp0_ = index; _tmp1_ = ((gchar*) self)[_tmp0_]; result = _tmp1_; return result; } void skk_expr_reader_read_string (SkkExprReader* self, const gchar* expr, gint* index, SkkExprNode* result) { gboolean _tmp0_ = FALSE; gint _tmp1_; const gchar* _tmp2_; gint _tmp3_; gint _tmp4_; gboolean _tmp8_; GString* _tmp9_; GString* builder; gint _tmp10_; gboolean stop; gunichar uc; SkkExprNode node = {0}; GString* _tmp68_; const gchar* _tmp69_; gchar* _tmp70_; g_return_if_fail (self != NULL); g_return_if_fail (expr != NULL); _tmp1_ = *index; _tmp2_ = expr; _tmp3_ = strlen (_tmp2_); _tmp4_ = _tmp3_; if (_tmp1_ < _tmp4_) { const gchar* _tmp5_; gint _tmp6_; gchar _tmp7_ = '\0'; _tmp5_ = expr; _tmp6_ = *index; _tmp7_ = string_get (_tmp5_, (glong) _tmp6_); _tmp0_ = _tmp7_ == '"'; } else { _tmp0_ = FALSE; } _tmp8_ = _tmp0_; g_return_val_if_fail (_tmp8_, NULL); _tmp9_ = g_string_new (""); builder = _tmp9_; _tmp10_ = *index; *index = _tmp10_ + 1; stop = FALSE; uc = (gunichar) '\0'; while (TRUE) { gboolean _tmp11_ = FALSE; gboolean _tmp12_; gboolean _tmp16_; gunichar _tmp17_; _tmp12_ = stop; if (!_tmp12_) { const gchar* _tmp13_; gunichar _tmp14_ = 0U; gboolean _tmp15_ = FALSE; _tmp13_ = expr; _tmp15_ = string_get_next_char (_tmp13_, index, &_tmp14_); uc = _tmp14_; _tmp11_ = _tmp15_; } else { _tmp11_ = FALSE; } _tmp16_ = _tmp11_; if (!_tmp16_) { break; } _tmp17_ = uc; switch (_tmp17_) { case '\\': { const gchar* _tmp18_; gunichar _tmp19_ = 0U; gboolean _tmp20_ = FALSE; _tmp18_ = expr; _tmp20_ = string_get_next_char (_tmp18_, index, &_tmp19_); uc = _tmp19_; if (_tmp20_) { gunichar _tmp21_; GString* _tmp64_; gunichar _tmp65_; _tmp21_ = uc; switch (_tmp21_) { case '0': { gint num; gint _tmp32_; gint _tmp33_; num = 0; while (TRUE) { const gchar* _tmp22_; gunichar _tmp23_ = 0U; gboolean _tmp24_ = FALSE; gboolean _tmp25_ = FALSE; gunichar _tmp26_; gboolean _tmp28_; gint _tmp29_; gint _tmp30_; gunichar _tmp31_; _tmp22_ = expr; _tmp24_ = string_get_next_char (_tmp22_, index, &_tmp23_); uc = _tmp23_; if (!_tmp24_) { break; } _tmp26_ = uc; if (_tmp26_ < ((gunichar) '0')) { _tmp25_ = TRUE; } else { gunichar _tmp27_; _tmp27_ = uc; _tmp25_ = _tmp27_ > ((gunichar) '7'); } _tmp28_ = _tmp25_; if (_tmp28_) { break; } _tmp29_ = num; num = _tmp29_ << 3; _tmp30_ = num; _tmp31_ = uc; num = _tmp30_ + (((gint) _tmp31_) - '0'); } _tmp32_ = *index; *index = _tmp32_ - 1; _tmp33_ = num; uc = (gunichar) _tmp33_; break; } case 'x': { gint num; gint _tmp62_; gint _tmp63_; num = 0; while (TRUE) { const gchar* _tmp34_; gunichar _tmp35_ = 0U; gboolean _tmp36_ = FALSE; gunichar _tmp37_; gunichar _tmp38_ = 0U; gboolean _tmp39_ = FALSE; gboolean _tmp40_ = FALSE; gunichar _tmp41_; gboolean _tmp43_; gboolean _tmp48_; _tmp34_ = expr; _tmp36_ = string_get_next_char (_tmp34_, index, &_tmp35_); uc = _tmp35_; if (!_tmp36_) { break; } _tmp37_ = uc; _tmp38_ = g_unichar_tolower (_tmp37_); uc = _tmp38_; _tmp41_ = uc; if (((gunichar) '0') <= _tmp41_) { gunichar _tmp42_; _tmp42_ = uc; _tmp40_ = _tmp42_ <= ((gunichar) '9'); } else { _tmp40_ = FALSE; } _tmp43_ = _tmp40_; if (_tmp43_) { _tmp39_ = TRUE; } else { gboolean _tmp44_ = FALSE; gunichar _tmp45_; gboolean _tmp47_; _tmp45_ = uc; if (((gunichar) 'a') <= _tmp45_) { gunichar _tmp46_; _tmp46_ = uc; _tmp44_ = _tmp46_ <= ((gunichar) 'f'); } else { _tmp44_ = FALSE; } _tmp47_ = _tmp44_; _tmp39_ = _tmp47_; } _tmp48_ = _tmp39_; if (_tmp48_) { gint _tmp49_; gboolean _tmp50_ = FALSE; gunichar _tmp51_; gboolean _tmp53_; _tmp49_ = num; num = _tmp49_ << 4; _tmp51_ = uc; if (((gunichar) '0') <= _tmp51_) { gunichar _tmp52_; _tmp52_ = uc; _tmp50_ = _tmp52_ <= ((gunichar) '9'); } else { _tmp50_ = FALSE; } _tmp53_ = _tmp50_; if (_tmp53_) { gint _tmp54_; gunichar _tmp55_; _tmp54_ = num; _tmp55_ = uc; num = _tmp54_ + (((gint) _tmp55_) - '0'); } else { gboolean _tmp56_ = FALSE; gunichar _tmp57_; gboolean _tmp59_; _tmp57_ = uc; if (((gunichar) 'a') <= _tmp57_) { gunichar _tmp58_; _tmp58_ = uc; _tmp56_ = _tmp58_ <= ((gunichar) 'f'); } else { _tmp56_ = FALSE; } _tmp59_ = _tmp56_; if (_tmp59_) { gint _tmp60_; gunichar _tmp61_; _tmp60_ = num; _tmp61_ = uc; num = _tmp60_ + ((((gint) _tmp61_) - 'a') + 10); } } } else { break; } } _tmp62_ = *index; *index = _tmp62_ - 1; _tmp63_ = num; uc = (gunichar) _tmp63_; break; } default: { break; } } _tmp64_ = builder; _tmp65_ = uc; g_string_append_unichar (_tmp64_, _tmp65_); } break; } case '\"': { stop = TRUE; break; } default: { GString* _tmp66_; gunichar _tmp67_; _tmp66_ = builder; _tmp67_ = uc; g_string_append_unichar (_tmp66_, _tmp67_); break; } } } skk_expr_node_init (&node, SKK_EXPR_NODE_TYPE_STRING); _tmp68_ = builder; _tmp69_ = _tmp68_->str; _tmp70_ = g_strdup (_tmp69_); _g_free0 (node.data); node.data = _tmp70_; *result = node; _g_string_free0 (builder); return; } static gpointer _skk_expr_node_dup0 (gpointer self) { return self ? skk_expr_node_dup (self) : NULL; } SkkExprNode* skk_expr_reader_read_expr (SkkExprReader* self, const gchar* expr, gint* index) { SkkExprNode* result = NULL; gboolean _tmp0_ = FALSE; gint _tmp1_; const gchar* _tmp2_; gint _tmp3_; gint _tmp4_; gboolean _tmp8_; GeeLinkedList* _tmp9_; GeeLinkedList* nodes; gboolean stop; gint _tmp10_; gunichar uc; SkkExprNode node = {0}; GeeLinkedList* _tmp36_; GeeLinkedList* _tmp37_; SkkExprNode _tmp38_; SkkExprNode* _tmp39_; SkkExprNode* _tmp40_; g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (expr != NULL, NULL); _tmp1_ = *index; _tmp2_ = expr; _tmp3_ = strlen (_tmp2_); _tmp4_ = _tmp3_; if (_tmp1_ < _tmp4_) { const gchar* _tmp5_; gint _tmp6_; gchar _tmp7_ = '\0'; _tmp5_ = expr; _tmp6_ = *index; _tmp7_ = string_get (_tmp5_, (glong) _tmp6_); _tmp0_ = _tmp7_ == '('; } else { _tmp0_ = FALSE; } _tmp8_ = _tmp0_; g_return_val_if_fail (_tmp8_, NULL); _tmp9_ = gee_linked_list_new (SKK_TYPE_EXPR_NODE, (GBoxedCopyFunc) skk_expr_node_dup, skk_expr_node_free, NULL); nodes = _tmp9_; stop = FALSE; _tmp10_ = *index; *index = _tmp10_ + 1; uc = (gunichar) '\0'; while (TRUE) { gboolean _tmp11_ = FALSE; gboolean _tmp12_; gboolean _tmp16_; gunichar _tmp17_; _tmp12_ = stop; if (!_tmp12_) { const gchar* _tmp13_; gunichar _tmp14_ = 0U; gboolean _tmp15_ = FALSE; _tmp13_ = expr; _tmp15_ = string_get_next_char (_tmp13_, index, &_tmp14_); uc = _tmp14_; _tmp11_ = _tmp15_; } else { _tmp11_ = FALSE; } _tmp16_ = _tmp11_; if (!_tmp16_) { break; } _tmp17_ = uc; switch (_tmp17_) { case ' ': { break; } case ')': { gint _tmp18_; _tmp18_ = *index; *index = _tmp18_ + 1; stop = TRUE; break; } case '(': { gint _tmp19_; GeeLinkedList* _tmp20_; const gchar* _tmp21_; SkkExprNode* _tmp22_ = NULL; SkkExprNode* _tmp23_; _tmp19_ = *index; *index = _tmp19_ - 1; _tmp20_ = nodes; _tmp21_ = expr; _tmp22_ = skk_expr_reader_read_expr (self, _tmp21_, index); _tmp23_ = _tmp22_; gee_abstract_collection_add ((GeeAbstractCollection*) _tmp20_, _tmp23_); _skk_expr_node_free0 (_tmp23_); break; } case '"': { gint _tmp24_; GeeLinkedList* _tmp25_; const gchar* _tmp26_; SkkExprNode _tmp27_ = {0}; SkkExprNode _tmp28_; SkkExprNode _tmp29_; _tmp24_ = *index; *index = _tmp24_ - 1; _tmp25_ = nodes; _tmp26_ = expr; skk_expr_reader_read_string (self, _tmp26_, index, &_tmp27_); _tmp28_ = _tmp27_; _tmp29_ = _tmp28_; gee_abstract_collection_add ((GeeAbstractCollection*) _tmp25_, &_tmp29_); skk_expr_node_destroy (&_tmp28_); break; } default: { gint _tmp30_; GeeLinkedList* _tmp31_; const gchar* _tmp32_; SkkExprNode _tmp33_ = {0}; SkkExprNode _tmp34_; SkkExprNode _tmp35_; _tmp30_ = *index; *index = _tmp30_ - 1; _tmp31_ = nodes; _tmp32_ = expr; skk_expr_reader_read_symbol (self, _tmp32_, index, &_tmp33_); _tmp34_ = _tmp33_; _tmp35_ = _tmp34_; gee_abstract_collection_add ((GeeAbstractCollection*) _tmp31_, &_tmp35_); skk_expr_node_destroy (&_tmp34_); break; } } } skk_expr_node_init (&node, SKK_EXPR_NODE_TYPE_ARRAY); _tmp36_ = nodes; _tmp37_ = _g_object_ref0 (_tmp36_); _g_object_unref0 (node.nodes); node.nodes = _tmp37_; _tmp38_ = node; _tmp39_ = _skk_expr_node_dup0 (&_tmp38_); _tmp40_ = _tmp39_; skk_expr_node_destroy (&_tmp38_); result = _tmp40_; _g_object_unref0 (nodes); return result; } SkkExprReader* skk_expr_reader_construct (GType object_type) { SkkExprReader * self = NULL; self = (SkkExprReader*) g_object_new (object_type, NULL); return self; } SkkExprReader* skk_expr_reader_new (void) { return skk_expr_reader_construct (SKK_TYPE_EXPR_READER); } static void skk_expr_reader_class_init (SkkExprReaderClass * klass) { skk_expr_reader_parent_class = g_type_class_peek_parent (klass); } static void skk_expr_reader_instance_init (SkkExprReader * self) { } GType skk_expr_reader_get_type (void) { static volatile gsize skk_expr_reader_type_id__volatile = 0; if (g_once_init_enter (&skk_expr_reader_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkExprReaderClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_expr_reader_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkExprReader), 0, (GInstanceInitFunc) skk_expr_reader_instance_init, NULL }; GType skk_expr_reader_type_id; skk_expr_reader_type_id = g_type_register_static (G_TYPE_OBJECT, "SkkExprReader", &g_define_type_info, 0); g_once_init_leave (&skk_expr_reader_type_id__volatile, skk_expr_reader_type_id); } return skk_expr_reader_type_id__volatile; } gchar* skk_expr_evaluator_eval (SkkExprEvaluator* self, SkkExprNode* node) { gchar* result = NULL; SkkExprNode _tmp0_; SkkExprNodeType _tmp1_; g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (node != NULL, NULL); _tmp0_ = *node; _tmp1_ = _tmp0_.type; if (_tmp1_ == SKK_EXPR_NODE_TYPE_ARRAY) { SkkExprNode _tmp2_; GeeLinkedList* _tmp3_; GeeListIterator* _tmp4_ = NULL; GeeListIterator* iter; GeeListIterator* _tmp5_; gboolean _tmp6_ = FALSE; _tmp2_ = *node; _tmp3_ = _tmp2_.nodes; _tmp4_ = gee_abstract_list_list_iterator ((GeeAbstractList*) _tmp3_); iter = _tmp4_; _tmp5_ = iter; _tmp6_ = gee_iterator_first ((GeeIterator*) _tmp5_); if (_tmp6_) { GeeListIterator* _tmp7_; gpointer _tmp8_ = NULL; SkkExprNode* funcall; SkkExprNode* _tmp9_; SkkExprNodeType _tmp10_; _tmp7_ = iter; _tmp8_ = gee_iterator_get ((GeeIterator*) _tmp7_); funcall = (SkkExprNode*) _tmp8_; _tmp9_ = funcall; _tmp10_ = (*_tmp9_).type; if (_tmp10_ == SKK_EXPR_NODE_TYPE_SYMBOL) { SkkExprNode* _tmp11_; const gchar* _tmp12_; _tmp11_ = funcall; _tmp12_ = (*_tmp11_).data; if (g_strcmp0 (_tmp12_, "concat") == 0) { GString* _tmp13_; GString* builder; GString* _tmp23_; const gchar* _tmp24_; gchar* _tmp25_; _tmp13_ = g_string_new (""); builder = _tmp13_; while (TRUE) { GeeListIterator* _tmp14_; gboolean _tmp15_ = FALSE; GeeListIterator* _tmp16_; gpointer _tmp17_ = NULL; SkkExprNode* arg; SkkExprNode* _tmp18_; SkkExprNodeType _tmp19_; _tmp14_ = iter; _tmp15_ = gee_iterator_next ((GeeIterator*) _tmp14_); if (!_tmp15_) { break; } _tmp16_ = iter; _tmp17_ = gee_iterator_get ((GeeIterator*) _tmp16_); arg = (SkkExprNode*) _tmp17_; _tmp18_ = arg; _tmp19_ = (*_tmp18_).type; if (_tmp19_ == SKK_EXPR_NODE_TYPE_STRING) { GString* _tmp20_; SkkExprNode* _tmp21_; const gchar* _tmp22_; _tmp20_ = builder; _tmp21_ = arg; _tmp22_ = (*_tmp21_).data; g_string_append (_tmp20_, _tmp22_); } _skk_expr_node_free0 (arg); } _tmp23_ = builder; _tmp24_ = _tmp23_->str; _tmp25_ = g_strdup (_tmp24_); result = _tmp25_; _g_string_free0 (builder); _skk_expr_node_free0 (funcall); _g_object_unref0 (iter); return result; } else { SkkExprNode* _tmp26_; const gchar* _tmp27_; _tmp26_ = funcall; _tmp27_ = (*_tmp26_).data; if (g_strcmp0 (_tmp27_, "current-time-string") == 0) { GDateTime* _tmp28_; GDateTime* datetime; GDateTime* _tmp29_; gchar* _tmp30_ = NULL; _tmp28_ = g_date_time_new_now_local (); datetime = _tmp28_; _tmp29_ = datetime; _tmp30_ = g_date_time_format (_tmp29_, "%a, %d %b %Y %T %z"); result = _tmp30_; _g_date_time_unref0 (datetime); _skk_expr_node_free0 (funcall); _g_object_unref0 (iter); return result; } else { SkkExprNode* _tmp31_; const gchar* _tmp32_; _tmp31_ = funcall; _tmp32_ = (*_tmp31_).data; if (g_strcmp0 (_tmp32_, "pwd") == 0) { gchar* _tmp33_ = NULL; _tmp33_ = g_get_current_dir (); result = _tmp33_; _skk_expr_node_free0 (funcall); _g_object_unref0 (iter); return result; } else { SkkExprNode* _tmp34_; const gchar* _tmp35_; _tmp34_ = funcall; _tmp35_ = (*_tmp34_).data; if (g_strcmp0 (_tmp35_, "skk-version") == 0) { gchar* _tmp36_ = NULL; _tmp36_ = g_strdup_printf ("%s/%s", PACKAGE_NAME, PACKAGE_VERSION); result = _tmp36_; _skk_expr_node_free0 (funcall); _g_object_unref0 (iter); return result; } } } } } _skk_expr_node_free0 (funcall); } _g_object_unref0 (iter); } result = NULL; return result; } SkkExprEvaluator* skk_expr_evaluator_construct (GType object_type) { SkkExprEvaluator * self = NULL; self = (SkkExprEvaluator*) g_object_new (object_type, NULL); return self; } SkkExprEvaluator* skk_expr_evaluator_new (void) { return skk_expr_evaluator_construct (SKK_TYPE_EXPR_EVALUATOR); } static void skk_expr_evaluator_class_init (SkkExprEvaluatorClass * klass) { skk_expr_evaluator_parent_class = g_type_class_peek_parent (klass); } static void skk_expr_evaluator_instance_init (SkkExprEvaluator * self) { } GType skk_expr_evaluator_get_type (void) { static volatile gsize skk_expr_evaluator_type_id__volatile = 0; if (g_once_init_enter (&skk_expr_evaluator_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkExprEvaluatorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_expr_evaluator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkExprEvaluator), 0, (GInstanceInitFunc) skk_expr_evaluator_instance_init, NULL }; GType skk_expr_evaluator_type_id; skk_expr_evaluator_type_id = g_type_register_static (G_TYPE_OBJECT, "SkkExprEvaluator", &g_define_type_info, 0); g_once_init_leave (&skk_expr_evaluator_type_id__volatile, skk_expr_evaluator_type_id); } return skk_expr_evaluator_type_id__volatile; } libskk-1.0.0/libskk/user-dict.vala0000664000076400007640000003460112016556145013756 00000000000000/* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ using Gee; namespace Skk { /** * File based implementation of Dict with write access. */ public class UserDict : Dict { void load () throws SkkDictError, GLib.IOError { uint8[] contents; try { file.load_contents (null, out contents, out etag); } catch (GLib.Error e) { throw new SkkDictError.NOT_READABLE ("can't load contents"); } var memory = new MemoryInputStream.from_data (contents, g_free); var data = new DataInputStream (memory); string? line = null; size_t length; line = data.read_line (out length); if (line == null) { return; } var coding = EncodingConverter.extract_coding_system (line); if (coding != null) { try { var _converter = new EncodingConverter.from_coding_system ( coding); if (_converter != null) { converter = _converter; } } catch (Error e) { warning ("can't create converter from coding system %s: %s", coding, e.message); } // proceed to the next line line = data.read_line (out length); if (line == null) { return; } } Map>? entries = null; while (line != null) { if (line.has_prefix (";; okuri-ari entries.")) { entries = okuri_ari_entries; break; } line = data.read_line (out length); if (line == null) { break; } } if (entries == null) { throw new SkkDictError.MALFORMED_INPUT ( "no okuri-ari boundary"); } bool okuri = true; while (line != null) { line = data.read_line (out length); if (line == null) { break; } if (line.has_prefix (";; okuri-nasi entries.")) { entries = okuri_nasi_entries; okuri = false; continue; } try { line = converter.decode (line); } catch (GLib.Error e) { throw new SkkDictError.MALFORMED_INPUT ( "can't decode line %s: %s", line, e.message); } int index = line.index_of (" "); if (index < 1) { throw new SkkDictError.MALFORMED_INPUT ( "can't extract midasi from line %s", line); } string midasi = line[0:index]; string candidates_str = line[index + 1:line.length]; if (!candidates_str.has_prefix ("/") || !candidates_str.has_suffix ("/")) { throw new SkkDictError.MALFORMED_INPUT ( "can't parse candidates list %s", candidates_str); } var candidates = split_candidates (midasi, okuri, candidates_str); var list = new ArrayList (); foreach (var c in candidates) { list.add (c); } entries.set (midasi, list); } } /** * {@inheritDoc} */ public override void reload () throws GLib.Error { #if VALA_0_16 string attributes = FileAttribute.ETAG_VALUE; #else string attributes = FILE_ATTRIBUTE_ETAG_VALUE; #endif FileInfo info = file.query_info (attributes, FileQueryInfoFlags.NONE); if (info.get_etag () != etag) { this.okuri_ari_entries.clear (); this.okuri_nasi_entries.clear (); try { load (); } catch (SkkDictError e) { warning ("error parsing user dictionary %s: %s", file.get_path (), e.message); } catch (GLib.IOError e) { warning ("error reading user dictionary %s: %s", file.get_path (), e.message); } } } static int compare_entry_asc (Map.Entry> a, Map.Entry> b) { return strcmp (a.key, b.key); } static int compare_entry_dsc (Map.Entry> a, Map.Entry> b) { return strcmp (b.key, a.key); } void write_entries (StringBuilder builder, Gee.List>> entries) { var iter = entries.iterator (); if (iter.first ()) { do { var entry = iter.get (); var line = "%s %s\n".printf ( entry.key, join_candidates (entry.value.to_array ())); builder.append (line); } while (iter.next ()); } } /** * {@inheritDoc} */ public override void save () throws GLib.Error { var builder = new StringBuilder (); var coding = converter.get_coding_system (); if (coding != null) { builder.append (";;; -*- coding: %s -*-\n".printf (coding)); } builder.append (";; okuri-ari entries.\n"); var entries = new ArrayList>> (); entries.add_all (okuri_ari_entries.entries); entries.sort ((CompareFunc) compare_entry_dsc); write_entries (builder, entries); entries.clear (); builder.append (";; okuri-nasi entries.\n"); entries.add_all (okuri_nasi_entries.entries); entries.sort ((CompareFunc) compare_entry_asc); write_entries (builder, entries); entries.clear (); var contents = converter.encode (builder.str); DirUtils.create_with_parents (Path.get_dirname (file.get_path ()), 448); #if VALA_0_16 file.replace_contents (contents.data, etag, false, FileCreateFlags.PRIVATE, out etag); #else file.replace_contents (contents, contents.length, etag, false, FileCreateFlags.PRIVATE, out etag); #endif } Map> get_entries (bool okuri = false) { if (okuri) { return okuri_ari_entries; } else { return okuri_nasi_entries; } } /** * {@inheritDoc} */ public override Candidate[] lookup (string midasi, bool okuri = false) { var entries = get_entries (okuri); if (entries.has_key (midasi)) { return entries.get (midasi).to_array (); } else { return new Candidate[0]; } } /** * {@inheritDoc} */ public override string[] complete (string midasi) { Gee.List completion = new ArrayList (); Gee.List keys = new ArrayList (); keys.add_all (okuri_nasi_entries.keys); keys.sort (); var iter = keys.iterator (); if (iter.first ()) { // find the first matching entry do { var key = iter.get (); if (key.has_prefix (midasi)) { // don't add midasi word itself if (key != midasi) { completion.add (key); } break; } } while (iter.next ()); // loop until the last matching entry while (iter.next ()) { var key = iter.get (); if (!key.has_prefix (midasi)) { break; } // don't add midasi word itself if (key != midasi) { completion.add (key); } } } return completion.to_array (); } /** * {@inheritDoc} */ public override bool select_candidate (Candidate candidate) { int index; // update midasi history for (index = 0; index < midasi_history.length && midasi_history[index] != null; index++) { if (midasi_history[index] == candidate.midasi) { if (index > 0) { var first = midasi_history[0]; midasi_history[0] = midasi_history[index]; midasi_history[index] = first; break; } } } if (index == midasi_history.length || midasi_history[index] == null) { for (int j = 1; j < index - 1; j++) { midasi_history[j] = midasi_history[j - 1]; } } midasi_history[0] = candidate.midasi; // update candidates list associated with midasi var entries = get_entries (candidate.okuri); if (!entries.has_key (candidate.midasi)) { entries.set (candidate.midasi, new ArrayList ()); } index = 0; var candidates = entries.get (candidate.midasi); foreach (var c in candidates) { if (c.text == candidate.text) { if (index > 0) { var first = candidates[0]; candidates[0] = candidates[index]; candidates[index] = first; return true; } return false; } index++; } candidates.insert (0, candidate); return true; } /** * {@inheritDoc} */ public override bool purge_candidate (Candidate candidate) { bool modified = false; var entries = get_entries (candidate.okuri); if (entries.has_key (candidate.midasi)) { var candidates = entries.get (candidate.midasi); if (candidates.size > 0) { var iter = candidates.iterator (); iter.first (); do { var c = iter.get (); if (c.text == candidate.text) { iter.remove (); modified = true; } } while (iter.next ()); if (candidates.size == 0) { entries.unset (candidate.midasi); } } } return modified; } /** * {@inheritDoc} */ public override bool read_only { get { return false; } } File file; string etag; EncodingConverter converter; Map> okuri_ari_entries = new HashMap> (); Map> okuri_nasi_entries = new HashMap> (); string midasi_history[128]; /** * Create a new UserDict. * * @param path a path to the file * @param encoding encoding of the file (default UTF-8) * * @return a new UserDict * @throws GLib.Error if opening the file is failed */ public UserDict (string path, string encoding = "UTF-8") throws GLib.Error { this.file = File.new_for_path (path); this.etag = ""; this.converter = new EncodingConverter (encoding); // user dictionary may not exist for the first time if (FileUtils.test (path, FileTest.EXISTS)) { reload (); } } ~UserDict () { var okuri_ari_iter = okuri_ari_entries.map_iterator (); if (okuri_ari_iter.first ()) { do { okuri_ari_iter.get_value ().clear (); } while (okuri_ari_iter.next ()); } okuri_ari_entries.clear (); var okuri_nasi_iter = okuri_nasi_entries.map_iterator (); if (okuri_nasi_iter.first ()) { do { okuri_nasi_iter.get_value ().clear (); } while (okuri_nasi_iter.next ()); } okuri_nasi_entries.clear (); } } } libskk-1.0.0/libskk/libskk.symbols0000664000076400007640000001016412016556644014105 00000000000000skk_kana_mode_get_type skk_period_style_get_type skk_rom_kana_converter_get_type skk_rom_kana_converter_new skk_rom_kana_converter_construct skk_rom_kana_converter_is_valid skk_rom_kana_converter_output_nn_if_any skk_rom_kana_converter_append_text skk_rom_kana_converter_append skk_rom_kana_converter_can_consume skk_rom_kana_converter_reset skk_rom_kana_converter_delete skk_rom_kana_converter_get_kana_mode skk_rom_kana_converter_set_kana_mode skk_rom_kana_converter_get_period_style skk_rom_kana_converter_set_period_style skk_rom_kana_converter_get_output skk_rom_kana_converter_get_preedit skk_kana_kan_converter_get_type skk_kana_kan_dict_get_type skk_kana_kan_score_map_get_type skk_kana_kan_converter_new skk_kana_kan_converter_construct skk_kana_kan_converter_convert skk_kana_kan_dict_new skk_kana_kan_dict_construct skk_kana_kan_dict_add skk_kana_kan_score_map_new skk_kana_kan_score_map_construct skk_dict_get_type skk_candidate_get_type skk_dict_split_candidates skk_dict_join_candidates skk_dict_reload skk_dict_lookup skk_dict_complete skk_dict_select_candidate skk_dict_purge_candidate skk_dict_save skk_dict_construct skk_dict_get_read_only skk_empty_dict_get_type skk_empty_dict_new skk_empty_dict_construct skk_file_dict_get_type skk_file_dict_new skk_file_dict_construct skk_cdb_dict_get_type skk_cdb_dict_new skk_cdb_dict_construct skk_user_dict_get_type skk_user_dict_new skk_user_dict_construct skk_skk_serv_get_type skk_skk_serv_new skk_skk_serv_construct skk_key_event_format_error_quark skk_modifier_type_get_type skk_key_event_get_type skk_key_event_new skk_key_event_construct skk_key_event_copy skk_key_event_new_from_string skk_key_event_construct_from_string skk_key_event_to_string skk_key_event_new_from_x_keysym skk_key_event_construct_from_x_keysym skk_key_event_base_equal skk_key_event_get_name skk_key_event_get_code skk_key_event_get_modifiers skk_key_event_set_modifiers skk_key_event_filter_get_type skk_key_event_filter_filter_key_event skk_key_event_filter_reset skk_key_event_filter_construct skk_rule_parse_error_quark skk_rule_metadata_get_type skk_rule_metadata_dup skk_rule_metadata_free skk_rule_metadata_copy skk_rule_metadata_destroy skk_rule_metadata_locate_map_file skk_rule_get_type skk_map_file_get_type skk_keymap_map_file_get_type skk_rom_kana_map_file_get_type skk_rule_new skk_rule_construct skk_rule_find_rule skk_rule_list skk_rule_get_metadata skk_init skk_input_mode_get_type skk_context_get_type skk_context_add_dictionary skk_context_remove_dictionary skk_context_new skk_context_construct skk_context_process_key_events skk_context_process_key_event skk_context_reset skk_context_get_output skk_context_peek_output skk_context_poll_output skk_context_clear_output skk_context_get_preedit_underline skk_context_save_dictionaries skk_context_get_dictionaries skk_context_set_dictionaries skk_candidate_list_get_type skk_context_get_candidates skk_context_get_input_mode skk_context_set_input_mode skk_context_get_auto_start_henkan_keywords skk_context_set_auto_start_henkan_keywords skk_context_get_egg_like_newline skk_context_set_egg_like_newline skk_context_get_period_style skk_context_set_period_style skk_context_get_typing_rule skk_context_set_typing_rule skk_context_get_key_event_filter skk_context_get_preedit skk_candidate_to_string skk_candidate_new skk_candidate_construct skk_candidate_get_midasi skk_candidate_get_okuri skk_candidate_get_text skk_candidate_set_text skk_candidate_get_annotation skk_candidate_set_annotation skk_candidate_get_output skk_candidate_set_output skk_candidate_list_get skk_candidate_list_cursor_up skk_candidate_list_cursor_down skk_candidate_list_page_up skk_candidate_list_page_down skk_candidate_list_next skk_candidate_list_previous skk_candidate_list_get_page_start_cursor_pos skk_candidate_list_select_at skk_candidate_list_select skk_candidate_list_construct skk_candidate_list_get_cursor_pos skk_candidate_list_get_size skk_candidate_list_get_page_start skk_candidate_list_set_page_start skk_candidate_list_get_page_size skk_candidate_list_set_page_size skk_candidate_list_get_page_visible skk_nicola_key_event_filter_get_type skk_nicola_key_event_filter_new skk_nicola_key_event_filter_construct libskk-1.0.0/libskk/keymap.c0000664000076400007640000002463612016556644012657 00000000000000/* keymap.c generated by valac 0.16.0, the Vala compiler * generated from keymap.vala, do not modify */ /* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ #include #include #include #include #include #define SKK_TYPE_KEYMAP (skk_keymap_get_type ()) #define SKK_KEYMAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KEYMAP, SkkKeymap)) #define SKK_KEYMAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KEYMAP, SkkKeymapClass)) #define SKK_IS_KEYMAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KEYMAP)) #define SKK_IS_KEYMAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KEYMAP)) #define SKK_KEYMAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KEYMAP, SkkKeymapClass)) typedef struct _SkkKeymap SkkKeymap; typedef struct _SkkKeymapClass SkkKeymapClass; typedef struct _SkkKeymapPrivate SkkKeymapPrivate; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) #define SKK_TYPE_KEY_EVENT (skk_key_event_get_type ()) #define SKK_KEY_EVENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KEY_EVENT, SkkKeyEvent)) #define SKK_KEY_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KEY_EVENT, SkkKeyEventClass)) #define SKK_IS_KEY_EVENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KEY_EVENT)) #define SKK_IS_KEY_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KEY_EVENT)) #define SKK_KEY_EVENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KEY_EVENT, SkkKeyEventClass)) typedef struct _SkkKeyEvent SkkKeyEvent; typedef struct _SkkKeyEventClass SkkKeyEventClass; #define _g_free0(var) (var = (g_free (var), NULL)) #define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL))) struct _SkkKeymap { GObject parent_instance; SkkKeymapPrivate * priv; }; struct _SkkKeymapClass { GObjectClass parent_class; }; struct _SkkKeymapPrivate { GeeMap* entries; }; typedef enum { SKK_KEY_EVENT_FORMAT_ERROR_PARSE_FAILED, SKK_KEY_EVENT_FORMAT_ERROR_KEYSYM_NOT_FOUND } SkkKeyEventFormatError; #define SKK_KEY_EVENT_FORMAT_ERROR skk_key_event_format_error_quark () static gpointer skk_keymap_parent_class = NULL; GType skk_keymap_get_type (void) G_GNUC_CONST; #define SKK_KEYMAP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SKK_TYPE_KEYMAP, SkkKeymapPrivate)) enum { SKK_KEYMAP_DUMMY_PROPERTY }; void skk_keymap_set (SkkKeymap* self, const gchar* key, const gchar* command); GQuark skk_key_event_format_error_quark (void); SkkKeyEvent* skk_key_event_new_from_string (const gchar* key, GError** error); SkkKeyEvent* skk_key_event_construct_from_string (GType object_type, const gchar* key, GError** error); GType skk_key_event_get_type (void) G_GNUC_CONST; gchar* skk_key_event_to_string (SkkKeyEvent* self); gchar* skk_keymap_lookup_key (SkkKeymap* self, SkkKeyEvent* key); SkkKeyEvent* skk_keymap_where_is (SkkKeymap* self, const gchar* command); SkkKeymap* skk_keymap_new (void); SkkKeymap* skk_keymap_construct (GType object_type); static void skk_keymap_finalize (GObject* obj); void skk_keymap_set (SkkKeymap* self, const gchar* key, const gchar* command) { GError * _inner_error_ = NULL; g_return_if_fail (self != NULL); g_return_if_fail (key != NULL); g_return_if_fail (command != NULL); { const gchar* _tmp0_; SkkKeyEvent* _tmp1_; SkkKeyEvent* ev; GeeMap* _tmp2_; gchar* _tmp3_ = NULL; gchar* _tmp4_; const gchar* _tmp5_; _tmp0_ = key; _tmp1_ = skk_key_event_new_from_string (_tmp0_, &_inner_error_); ev = _tmp1_; if (_inner_error_ != NULL) { if (_inner_error_->domain == SKK_KEY_EVENT_FORMAT_ERROR) { goto __catch22_skk_key_event_format_error; } g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } _tmp2_ = self->priv->entries; _tmp3_ = skk_key_event_to_string (ev); _tmp4_ = _tmp3_; _tmp5_ = command; gee_map_set (_tmp2_, _tmp4_, _tmp5_); _g_free0 (_tmp4_); _g_object_unref0 (ev); } goto __finally22; __catch22_skk_key_event_format_error: { GError* e = NULL; const gchar* _tmp6_; GError* _tmp7_; const gchar* _tmp8_; e = _inner_error_; _inner_error_ = NULL; _tmp6_ = key; _tmp7_ = e; _tmp8_ = _tmp7_->message; g_warning ("keymap.vala:29: can't get key event from string %s: %s", _tmp6_, _tmp8_); _g_error_free0 (e); } __finally22: if (_inner_error_ != NULL) { g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } } gchar* skk_keymap_lookup_key (SkkKeymap* self, SkkKeyEvent* key) { gchar* result = NULL; GeeMap* _tmp0_; SkkKeyEvent* _tmp1_; gchar* _tmp2_ = NULL; gchar* _tmp3_; gpointer _tmp4_ = NULL; gchar* _tmp5_; g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (key != NULL, NULL); _tmp0_ = self->priv->entries; _tmp1_ = key; _tmp2_ = skk_key_event_to_string (_tmp1_); _tmp3_ = _tmp2_; _tmp4_ = gee_map_get (_tmp0_, _tmp3_); _tmp5_ = (gchar*) _tmp4_; _g_free0 (_tmp3_); result = _tmp5_; return result; } SkkKeyEvent* skk_keymap_where_is (SkkKeymap* self, const gchar* command) { SkkKeyEvent* result = NULL; GeeMap* _tmp0_; GeeMapIterator* _tmp1_ = NULL; GeeMapIterator* iter; GeeMapIterator* _tmp2_; gboolean _tmp3_ = FALSE; GError * _inner_error_ = NULL; g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (command != NULL, NULL); _tmp0_ = self->priv->entries; _tmp1_ = gee_map_map_iterator (_tmp0_); iter = _tmp1_; _tmp2_ = iter; _tmp3_ = gee_map_iterator_first (_tmp2_); if (_tmp3_) { { gboolean _tmp4_; _tmp4_ = TRUE; while (TRUE) { gboolean _tmp5_; GeeMapIterator* _tmp8_; gpointer _tmp9_ = NULL; gchar* _tmp10_; const gchar* _tmp11_; gboolean _tmp12_; _tmp5_ = _tmp4_; if (!_tmp5_) { GeeMapIterator* _tmp6_; gboolean _tmp7_ = FALSE; _tmp6_ = iter; _tmp7_ = gee_map_iterator_next (_tmp6_); if (!_tmp7_) { break; } } _tmp4_ = FALSE; _tmp8_ = iter; _tmp9_ = gee_map_iterator_get_value (_tmp8_); _tmp10_ = (gchar*) _tmp9_; _tmp11_ = command; _tmp12_ = g_strcmp0 (_tmp10_, _tmp11_) == 0; _g_free0 (_tmp10_); if (_tmp12_) { GeeMapIterator* _tmp13_; gpointer _tmp14_ = NULL; gchar* key; _tmp13_ = iter; _tmp14_ = gee_map_iterator_get_key (_tmp13_); key = (gchar*) _tmp14_; { const gchar* _tmp15_; SkkKeyEvent* _tmp16_; SkkKeyEvent* _tmp17_; _tmp15_ = key; _tmp16_ = skk_key_event_new_from_string (_tmp15_, &_inner_error_); _tmp17_ = _tmp16_; if (_inner_error_ != NULL) { if (_inner_error_->domain == SKK_KEY_EVENT_FORMAT_ERROR) { goto __catch23_skk_key_event_format_error; } _g_free0 (key); _g_object_unref0 (iter); g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } result = _tmp17_; _g_free0 (key); _g_object_unref0 (iter); return result; } goto __finally23; __catch23_skk_key_event_format_error: { GError* e = NULL; const gchar* _tmp18_; GError* _tmp19_; const gchar* _tmp20_; e = _inner_error_; _inner_error_ = NULL; _tmp18_ = key; _tmp19_ = e; _tmp20_ = _tmp19_->message; g_warning ("keymap.vala:47: can't get key event from string %s: %s", _tmp18_, _tmp20_); _g_error_free0 (e); } __finally23: if (_inner_error_ != NULL) { _g_free0 (key); _g_object_unref0 (iter); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } _g_free0 (key); } } } } result = NULL; _g_object_unref0 (iter); return result; } SkkKeymap* skk_keymap_construct (GType object_type) { SkkKeymap * self = NULL; self = (SkkKeymap*) g_object_new (object_type, NULL); return self; } SkkKeymap* skk_keymap_new (void) { return skk_keymap_construct (SKK_TYPE_KEYMAP); } static void skk_keymap_class_init (SkkKeymapClass * klass) { skk_keymap_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (SkkKeymapPrivate)); G_OBJECT_CLASS (klass)->finalize = skk_keymap_finalize; } static void skk_keymap_instance_init (SkkKeymap * self) { GeeHashMap* _tmp0_; self->priv = SKK_KEYMAP_GET_PRIVATE (self); _tmp0_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL); self->priv->entries = (GeeMap*) _tmp0_; } static void skk_keymap_finalize (GObject* obj) { SkkKeymap * self; self = SKK_KEYMAP (obj); _g_object_unref0 (self->priv->entries); G_OBJECT_CLASS (skk_keymap_parent_class)->finalize (obj); } GType skk_keymap_get_type (void) { static volatile gsize skk_keymap_type_id__volatile = 0; if (g_once_init_enter (&skk_keymap_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkKeymapClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_keymap_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkKeymap), 0, (GInstanceInitFunc) skk_keymap_instance_init, NULL }; GType skk_keymap_type_id; skk_keymap_type_id = g_type_register_static (G_TYPE_OBJECT, "SkkKeymap", &g_define_type_info, 0); g_once_init_leave (&skk_keymap_type_id__volatile, skk_keymap_type_id); } return skk_keymap_type_id__volatile; } libskk-1.0.0/libskk/keymap.vala0000664000076400007640000000401311733751476013350 00000000000000/* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ using Gee; namespace Skk { class Keymap : Object { Map entries = new HashMap (); public new void @set (string key, string command) { try { var ev = new KeyEvent.from_string (key); entries.set (ev.to_string (), command); } catch (KeyEventFormatError e) { warning ("can't get key event from string %s: %s", key, e.message); } } public string? lookup_key (KeyEvent key) { return entries.get (key.to_string ()); } public KeyEvent? where_is (string command) { var iter = entries.map_iterator (); if (iter.first ()) { do { if (iter.get_value () == command) { var key = iter.get_key (); try { return new KeyEvent.from_string (key); } catch (KeyEventFormatError e) { warning ("can't get key event from string %s: %s", key, e.message); } } } while (iter.next ()); } return null; } } } libskk-1.0.0/libskk/skk-1.0.vapi0000664000076400007640000054114212016556644013166 00000000000000/* skk-1.0.vapi generated by valac 0.16.0, do not modify. */ namespace Skk { namespace Keysyms { [CCode (cheader_filename = "libskk/libskk.h")] public const uint @0; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @1; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @2; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @3; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @3270_AltCursor; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @3270_Attn; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @3270_BackTab; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @3270_ChangeScreen; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @3270_Copy; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @3270_CursorBlink; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @3270_CursorSelect; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @3270_DeleteWord; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @3270_Duplicate; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @3270_Enter; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @3270_EraseEOF; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @3270_EraseInput; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @3270_ExSelect; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @3270_FieldMark; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @3270_Ident; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @3270_Jump; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @3270_KeyClick; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @3270_Left2; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @3270_PA1; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @3270_PA2; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @3270_PA3; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @3270_Play; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @3270_PrintScreen; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @3270_Quit; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @3270_Record; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @3270_Reset; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @3270_Right2; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @3270_Rule; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @3270_Setup; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @3270_Test; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @4; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @5; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @6; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @7; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @8; [CCode (cheader_filename = "libskk/libskk.h")] public const uint @9; [CCode (cheader_filename = "libskk/libskk.h")] public const uint A; [CCode (cheader_filename = "libskk/libskk.h")] public const uint AE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Aacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Abelowdot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Abreve; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Abreveacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Abrevebelowdot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Abrevegrave; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Abrevehook; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Abrevetilde; [CCode (cheader_filename = "libskk/libskk.h")] public const uint AccessX_Enable; [CCode (cheader_filename = "libskk/libskk.h")] public const uint AccessX_Feedback_Enable; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Acircumflex; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Acircumflexacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Acircumflexbelowdot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Acircumflexgrave; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Acircumflexhook; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Acircumflextilde; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Adiaeresis; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Agrave; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ahook; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Alt_L; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Alt_R; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Amacron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Aogonek; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_0; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_1; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_2; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_3; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_4; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_5; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_6; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_7; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_8; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_9; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_ain; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_alef; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_alefmaksura; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_beh; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_comma; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_dad; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_dal; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_damma; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_dammatan; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_ddal; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_farsi_yeh; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_fatha; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_fathatan; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_feh; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_fullstop; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_gaf; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_ghain; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_ha; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_hah; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_hamza; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_hamza_above; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_hamza_below; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_hamzaonalef; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_hamzaonwaw; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_hamzaonyeh; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_hamzaunderalef; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_heh; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_heh_doachashmee; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_heh_goal; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_jeem; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_jeh; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_kaf; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_kasra; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_kasratan; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_keheh; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_khah; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_lam; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_madda_above; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_maddaonalef; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_meem; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_noon; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_noon_ghunna; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_peh; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_percent; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_qaf; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_question_mark; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_ra; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_rreh; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_sad; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_seen; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_semicolon; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_shadda; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_sheen; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_sukun; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_superscript_alef; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_switch; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_tah; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_tatweel; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_tcheh; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_teh; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_tehmarbuta; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_thal; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_theh; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_tteh; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_veh; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_waw; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_yeh; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_yeh_baree; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_zah; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Arabic_zain; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Aring; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_AT; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_AYB; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_BEN; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_CHA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_DA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_DZA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_E; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_FE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_GHAT; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_GIM; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_HI; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_HO; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_INI; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_JE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_KE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_KEN; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_KHE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_LYUN; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_MEN; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_NU; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_O; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_PE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_PYUR; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_RA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_RE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_SE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_SHA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_TCHE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_TO; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_TSA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_TSO; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_TYUN; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_VEV; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_VO; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_VYUN; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_YECH; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_ZA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_ZHE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_accent; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_amanak; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_apostrophe; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_at; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_ayb; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_ben; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_but; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_cha; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_da; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_dza; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_e; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_exclam; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_fe; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_full_stop; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_ghat; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_gim; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_hi; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_ho; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_hyphen; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_ini; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_je; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_ke; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_ken; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_khe; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_ligature_ew; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_lyun; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_men; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_nu; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_o; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_paruyk; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_pe; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_pyur; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_question; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_ra; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_re; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_se; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_separation_mark; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_sha; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_shesht; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_tche; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_to; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_tsa; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_tso; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_tyun; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_verjaket; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_vev; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_vo; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_vyun; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_yech; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_yentamna; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_za; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Armenian_zhe; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Atilde; [CCode (cheader_filename = "libskk/libskk.h")] public const uint AudibleBell_Enable; [CCode (cheader_filename = "libskk/libskk.h")] public const uint B; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Babovedot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint BackSpace; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Begin; [CCode (cheader_filename = "libskk/libskk.h")] public const uint BounceKeys_Enable; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Break; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Byelorussian_SHORTU; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Byelorussian_shortu; [CCode (cheader_filename = "libskk/libskk.h")] public const uint C; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cabovedot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cancel; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Caps_Lock; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ccaron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ccedilla; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ccircumflex; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Clear; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Codeinput; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ColonSign; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Control_L; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Control_R; [CCode (cheader_filename = "libskk/libskk.h")] public const uint CruzeiroSign; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_A; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_BE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_CHE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_CHE_descender; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_CHE_vertstroke; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_DE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_DZHE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_E; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_EF; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_EL; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_EM; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_EN; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_EN_descender; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_ER; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_ES; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_GHE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_GHE_bar; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_HA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_HARDSIGN; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_HA_descender; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_I; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_IE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_IO; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_I_macron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_JE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_KA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_KA_descender; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_KA_vertstroke; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_LJE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_NJE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_O; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_O_bar; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_PE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_SCHWA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_SHA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_SHCHA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_SHHA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_SHORTI; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_SOFTSIGN; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_TE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_TSE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_U; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_U_macron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_U_straight; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_U_straight_bar; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_VE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_YA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_YERU; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_YU; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_ZE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_ZHE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_ZHE_descender; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_a; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_be; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_che; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_che_descender; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_che_vertstroke; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_de; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_dzhe; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_e; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_ef; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_el; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_em; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_en; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_en_descender; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_er; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_es; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_ghe; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_ghe_bar; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_ha; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_ha_descender; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_hardsign; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_i; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_i_macron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_ie; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_io; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_je; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_ka; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_ka_descender; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_ka_vertstroke; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_lje; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_nje; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_o; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_o_bar; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_pe; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_schwa; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_sha; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_shcha; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_shha; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_shorti; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_softsign; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_te; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_tse; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_u; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_u_macron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_u_straight; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_u_straight_bar; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_ve; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_ya; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_yeru; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_yu; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_ze; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_zhe; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Cyrillic_zhe_descender; [CCode (cheader_filename = "libskk/libskk.h")] public const uint D; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Dabovedot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Dcaron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Delete; [CCode (cheader_filename = "libskk/libskk.h")] public const uint DongSign; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Down; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Dstroke; [CCode (cheader_filename = "libskk/libskk.h")] public const uint E; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ENG; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ETH; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Eabovedot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Eacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ebelowdot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ecaron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ecircumflex; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ecircumflexacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ecircumflexbelowdot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ecircumflexgrave; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ecircumflexhook; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ecircumflextilde; [CCode (cheader_filename = "libskk/libskk.h")] public const uint EcuSign; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ediaeresis; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Egrave; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ehook; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Eisu_Shift; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Eisu_toggle; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Emacron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint End; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Eogonek; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Escape; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Eth; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Etilde; [CCode (cheader_filename = "libskk/libskk.h")] public const uint EuroSign; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Execute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint F; [CCode (cheader_filename = "libskk/libskk.h")] public const uint F1; [CCode (cheader_filename = "libskk/libskk.h")] public const uint F10; [CCode (cheader_filename = "libskk/libskk.h")] public const uint F11; [CCode (cheader_filename = "libskk/libskk.h")] public const uint F12; [CCode (cheader_filename = "libskk/libskk.h")] public const uint F13; [CCode (cheader_filename = "libskk/libskk.h")] public const uint F14; [CCode (cheader_filename = "libskk/libskk.h")] public const uint F15; [CCode (cheader_filename = "libskk/libskk.h")] public const uint F16; [CCode (cheader_filename = "libskk/libskk.h")] public const uint F17; [CCode (cheader_filename = "libskk/libskk.h")] public const uint F18; [CCode (cheader_filename = "libskk/libskk.h")] public const uint F19; [CCode (cheader_filename = "libskk/libskk.h")] public const uint F2; [CCode (cheader_filename = "libskk/libskk.h")] public const uint F20; [CCode (cheader_filename = "libskk/libskk.h")] public const uint F21; [CCode (cheader_filename = "libskk/libskk.h")] public const uint F22; [CCode (cheader_filename = "libskk/libskk.h")] public const uint F23; [CCode (cheader_filename = "libskk/libskk.h")] public const uint F24; [CCode (cheader_filename = "libskk/libskk.h")] public const uint F25; [CCode (cheader_filename = "libskk/libskk.h")] public const uint F26; [CCode (cheader_filename = "libskk/libskk.h")] public const uint F27; [CCode (cheader_filename = "libskk/libskk.h")] public const uint F28; [CCode (cheader_filename = "libskk/libskk.h")] public const uint F29; [CCode (cheader_filename = "libskk/libskk.h")] public const uint F3; [CCode (cheader_filename = "libskk/libskk.h")] public const uint F30; [CCode (cheader_filename = "libskk/libskk.h")] public const uint F31; [CCode (cheader_filename = "libskk/libskk.h")] public const uint F32; [CCode (cheader_filename = "libskk/libskk.h")] public const uint F33; [CCode (cheader_filename = "libskk/libskk.h")] public const uint F34; [CCode (cheader_filename = "libskk/libskk.h")] public const uint F35; [CCode (cheader_filename = "libskk/libskk.h")] public const uint F4; [CCode (cheader_filename = "libskk/libskk.h")] public const uint F5; [CCode (cheader_filename = "libskk/libskk.h")] public const uint F6; [CCode (cheader_filename = "libskk/libskk.h")] public const uint F7; [CCode (cheader_filename = "libskk/libskk.h")] public const uint F8; [CCode (cheader_filename = "libskk/libskk.h")] public const uint F9; [CCode (cheader_filename = "libskk/libskk.h")] public const uint FFrancSign; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Fabovedot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Farsi_0; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Farsi_1; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Farsi_2; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Farsi_3; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Farsi_4; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Farsi_5; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Farsi_6; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Farsi_7; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Farsi_8; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Farsi_9; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Farsi_yeh; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Find; [CCode (cheader_filename = "libskk/libskk.h")] public const uint First_Virtual_Screen; [CCode (cheader_filename = "libskk/libskk.h")] public const uint G; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Gabovedot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Gbreve; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Gcaron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Gcedilla; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Gcircumflex; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_an; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_ban; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_can; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_char; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_chin; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_cil; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_don; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_en; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_fi; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_gan; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_ghan; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_hae; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_har; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_he; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_hie; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_hoe; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_in; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_jhan; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_jil; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_kan; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_khar; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_las; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_man; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_nar; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_on; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_par; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_phar; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_qar; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_rae; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_san; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_shin; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_tan; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_tar; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_un; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_vin; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_we; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_xan; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_zen; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Georgian_zhar; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_ALPHA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_ALPHAaccent; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_BETA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_CHI; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_DELTA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_EPSILON; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_EPSILONaccent; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_ETA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_ETAaccent; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_GAMMA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_IOTA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_IOTAaccent; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_IOTAdiaeresis; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_IOTAdieresis; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_KAPPA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_LAMBDA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_LAMDA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_MU; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_NU; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_OMEGA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_OMEGAaccent; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_OMICRON; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_OMICRONaccent; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_PHI; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_PI; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_PSI; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_RHO; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_SIGMA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_TAU; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_THETA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_UPSILON; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_UPSILONaccent; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_UPSILONdieresis; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_XI; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_ZETA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_accentdieresis; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_alpha; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_alphaaccent; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_beta; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_chi; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_delta; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_epsilon; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_epsilonaccent; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_eta; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_etaaccent; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_finalsmallsigma; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_gamma; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_horizbar; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_iota; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_iotaaccent; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_iotaaccentdieresis; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_iotadieresis; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_kappa; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_lambda; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_lamda; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_mu; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_nu; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_omega; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_omegaaccent; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_omicron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_omicronaccent; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_phi; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_pi; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_psi; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_rho; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_sigma; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_switch; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_tau; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_theta; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_upsilon; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_upsilonaccent; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_upsilonaccentdieresis; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_upsilondieresis; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_xi; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Greek_zeta; [CCode (cheader_filename = "libskk/libskk.h")] public const uint H; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_A; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_AE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_AraeA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_AraeAE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_Banja; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_Cieuc; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_Codeinput; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_Dikeud; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_E; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_EO; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_EU; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_End; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_Hanja; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_Hieuh; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_I; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_Ieung; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_J_Cieuc; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_J_Dikeud; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_J_Hieuh; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_J_Ieung; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_J_Jieuj; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_J_Khieuq; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_J_Kiyeog; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_J_KiyeogSios; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_J_KkogjiDalrinIeung; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_J_Mieum; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_J_Nieun; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_J_NieunHieuh; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_J_NieunJieuj; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_J_PanSios; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_J_Phieuf; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_J_Pieub; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_J_PieubSios; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_J_Rieul; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_J_RieulHieuh; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_J_RieulKiyeog; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_J_RieulMieum; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_J_RieulPhieuf; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_J_RieulPieub; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_J_RieulSios; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_J_RieulTieut; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_J_Sios; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_J_SsangKiyeog; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_J_SsangSios; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_J_Tieut; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_J_YeorinHieuh; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_Jamo; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_Jeonja; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_Jieuj; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_Khieuq; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_Kiyeog; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_KiyeogSios; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_KkogjiDalrinIeung; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_Mieum; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_MultipleCandidate; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_Nieun; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_NieunHieuh; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_NieunJieuj; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_O; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_OE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_PanSios; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_Phieuf; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_Pieub; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_PieubSios; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_PostHanja; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_PreHanja; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_PreviousCandidate; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_Rieul; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_RieulHieuh; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_RieulKiyeog; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_RieulMieum; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_RieulPhieuf; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_RieulPieub; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_RieulSios; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_RieulTieut; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_RieulYeorinHieuh; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_Romaja; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_SingleCandidate; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_Sios; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_Special; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_SsangDikeud; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_SsangJieuj; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_SsangKiyeog; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_SsangPieub; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_SsangSios; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_Start; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_SunkyeongeumMieum; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_SunkyeongeumPhieuf; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_SunkyeongeumPieub; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_Tieut; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_U; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_WA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_WAE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_WE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_WEO; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_WI; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_YA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_YAE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_YE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_YEO; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_YI; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_YO; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_YU; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_YeorinHieuh; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hangul_switch; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hankaku; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hcircumflex; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hebrew_switch; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Help; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Henkan; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Henkan_Mode; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hiragana; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hiragana_Katakana; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Home; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hstroke; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hyper_L; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Hyper_R; [CCode (cheader_filename = "libskk/libskk.h")] public const uint I; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_Center_Object; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_Continuous_Underline; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_Discontinuous_Underline; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_Emphasize; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_Enter; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_Fast_Cursor_Down; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_Fast_Cursor_Left; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_Fast_Cursor_Right; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_Fast_Cursor_Up; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_First_Group; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_First_Group_Lock; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_Group_Latch; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_Group_Lock; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_Group_Shift; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_Last_Group; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_Last_Group_Lock; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_Left_Tab; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_Level2_Latch; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_Level3_Latch; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_Level3_Lock; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_Level3_Shift; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_Level5_Latch; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_Level5_Lock; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_Level5_Shift; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_Lock; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_Move_Line_Down; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_Move_Line_Up; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_Next_Group; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_Next_Group_Lock; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_Partial_Line_Down; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_Partial_Line_Up; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_Partial_Space_Left; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_Partial_Space_Right; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_Prev_Group; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_Prev_Group_Lock; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_Release_Both_Margins; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_Release_Margin_Left; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_Release_Margin_Right; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_Set_Margin_Left; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ISO_Set_Margin_Right; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Iabovedot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Iacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ibelowdot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ibreve; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Icircumflex; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Idiaeresis; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Igrave; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ihook; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Imacron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Insert; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Iogonek; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Itilde; [CCode (cheader_filename = "libskk/libskk.h")] public const uint J; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Jcircumflex; [CCode (cheader_filename = "libskk/libskk.h")] public const uint K; [CCode (cheader_filename = "libskk/libskk.h")] public const uint KP_0; [CCode (cheader_filename = "libskk/libskk.h")] public const uint KP_1; [CCode (cheader_filename = "libskk/libskk.h")] public const uint KP_2; [CCode (cheader_filename = "libskk/libskk.h")] public const uint KP_3; [CCode (cheader_filename = "libskk/libskk.h")] public const uint KP_4; [CCode (cheader_filename = "libskk/libskk.h")] public const uint KP_5; [CCode (cheader_filename = "libskk/libskk.h")] public const uint KP_6; [CCode (cheader_filename = "libskk/libskk.h")] public const uint KP_7; [CCode (cheader_filename = "libskk/libskk.h")] public const uint KP_8; [CCode (cheader_filename = "libskk/libskk.h")] public const uint KP_9; [CCode (cheader_filename = "libskk/libskk.h")] public const uint KP_Add; [CCode (cheader_filename = "libskk/libskk.h")] public const uint KP_Begin; [CCode (cheader_filename = "libskk/libskk.h")] public const uint KP_Decimal; [CCode (cheader_filename = "libskk/libskk.h")] public const uint KP_Delete; [CCode (cheader_filename = "libskk/libskk.h")] public const uint KP_Divide; [CCode (cheader_filename = "libskk/libskk.h")] public const uint KP_Down; [CCode (cheader_filename = "libskk/libskk.h")] public const uint KP_End; [CCode (cheader_filename = "libskk/libskk.h")] public const uint KP_Enter; [CCode (cheader_filename = "libskk/libskk.h")] public const uint KP_Equal; [CCode (cheader_filename = "libskk/libskk.h")] public const uint KP_F1; [CCode (cheader_filename = "libskk/libskk.h")] public const uint KP_F2; [CCode (cheader_filename = "libskk/libskk.h")] public const uint KP_F3; [CCode (cheader_filename = "libskk/libskk.h")] public const uint KP_F4; [CCode (cheader_filename = "libskk/libskk.h")] public const uint KP_Home; [CCode (cheader_filename = "libskk/libskk.h")] public const uint KP_Insert; [CCode (cheader_filename = "libskk/libskk.h")] public const uint KP_Left; [CCode (cheader_filename = "libskk/libskk.h")] public const uint KP_Multiply; [CCode (cheader_filename = "libskk/libskk.h")] public const uint KP_Next; [CCode (cheader_filename = "libskk/libskk.h")] public const uint KP_Page_Down; [CCode (cheader_filename = "libskk/libskk.h")] public const uint KP_Page_Up; [CCode (cheader_filename = "libskk/libskk.h")] public const uint KP_Prior; [CCode (cheader_filename = "libskk/libskk.h")] public const uint KP_Right; [CCode (cheader_filename = "libskk/libskk.h")] public const uint KP_Separator; [CCode (cheader_filename = "libskk/libskk.h")] public const uint KP_Space; [CCode (cheader_filename = "libskk/libskk.h")] public const uint KP_Subtract; [CCode (cheader_filename = "libskk/libskk.h")] public const uint KP_Tab; [CCode (cheader_filename = "libskk/libskk.h")] public const uint KP_Up; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Kana_Lock; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Kana_Shift; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Kanji; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Kanji_Bangou; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Katakana; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Kcedilla; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Korean_Won; [CCode (cheader_filename = "libskk/libskk.h")] public const uint L; [CCode (cheader_filename = "libskk/libskk.h")] public const uint L1; [CCode (cheader_filename = "libskk/libskk.h")] public const uint L10; [CCode (cheader_filename = "libskk/libskk.h")] public const uint L2; [CCode (cheader_filename = "libskk/libskk.h")] public const uint L3; [CCode (cheader_filename = "libskk/libskk.h")] public const uint L4; [CCode (cheader_filename = "libskk/libskk.h")] public const uint L5; [CCode (cheader_filename = "libskk/libskk.h")] public const uint L6; [CCode (cheader_filename = "libskk/libskk.h")] public const uint L7; [CCode (cheader_filename = "libskk/libskk.h")] public const uint L8; [CCode (cheader_filename = "libskk/libskk.h")] public const uint L9; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Lacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Last_Virtual_Screen; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Lbelowdot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Lcaron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Lcedilla; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Left; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Linefeed; [CCode (cheader_filename = "libskk/libskk.h")] public const uint LiraSign; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Lstroke; [CCode (cheader_filename = "libskk/libskk.h")] public const uint M; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Mabovedot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Macedonia_DSE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Macedonia_GJE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Macedonia_KJE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Macedonia_dse; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Macedonia_gje; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Macedonia_kje; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Mae_Koho; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Massyo; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Menu; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Meta_L; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Meta_R; [CCode (cheader_filename = "libskk/libskk.h")] public const uint MillSign; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Mode_switch; [CCode (cheader_filename = "libskk/libskk.h")] public const uint MouseKeys_Accel_Enable; [CCode (cheader_filename = "libskk/libskk.h")] public const uint MouseKeys_Enable; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Muhenkan; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Multi_key; [CCode (cheader_filename = "libskk/libskk.h")] public const uint MultipleCandidate; [CCode (cheader_filename = "libskk/libskk.h")] public const uint N; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Nacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint NairaSign; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ncaron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ncedilla; [CCode (cheader_filename = "libskk/libskk.h")] public const uint NewSheqelSign; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Next; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Next_Virtual_Screen; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ntilde; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Num_Lock; [CCode (cheader_filename = "libskk/libskk.h")] public const uint O; [CCode (cheader_filename = "libskk/libskk.h")] public const uint OE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Oacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Obarred; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Obelowdot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ocaron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ocircumflex; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ocircumflexacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ocircumflexbelowdot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ocircumflexgrave; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ocircumflexhook; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ocircumflextilde; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Odiaeresis; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Odoubleacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ograve; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ohook; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ohorn; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ohornacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ohornbelowdot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ohorngrave; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ohornhook; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ohorntilde; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Omacron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ooblique; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Oslash; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Otilde; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Overlay1_Enable; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Overlay2_Enable; [CCode (cheader_filename = "libskk/libskk.h")] public const uint P; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Pabovedot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Page_Down; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Page_Up; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Pause; [CCode (cheader_filename = "libskk/libskk.h")] public const uint PesetaSign; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Pointer_Accelerate; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Pointer_Button1; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Pointer_Button2; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Pointer_Button3; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Pointer_Button4; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Pointer_Button5; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Pointer_Button_Dflt; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Pointer_DblClick1; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Pointer_DblClick2; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Pointer_DblClick3; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Pointer_DblClick4; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Pointer_DblClick5; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Pointer_DblClick_Dflt; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Pointer_DfltBtnNext; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Pointer_DfltBtnPrev; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Pointer_Down; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Pointer_DownLeft; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Pointer_DownRight; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Pointer_Drag1; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Pointer_Drag2; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Pointer_Drag3; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Pointer_Drag4; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Pointer_Drag5; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Pointer_Drag_Dflt; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Pointer_EnableKeys; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Pointer_Left; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Pointer_Right; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Pointer_Up; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Pointer_UpLeft; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Pointer_UpRight; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Prev_Virtual_Screen; [CCode (cheader_filename = "libskk/libskk.h")] public const uint PreviousCandidate; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Print; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Prior; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Q; [CCode (cheader_filename = "libskk/libskk.h")] public const uint R; [CCode (cheader_filename = "libskk/libskk.h")] public const uint R1; [CCode (cheader_filename = "libskk/libskk.h")] public const uint R10; [CCode (cheader_filename = "libskk/libskk.h")] public const uint R11; [CCode (cheader_filename = "libskk/libskk.h")] public const uint R12; [CCode (cheader_filename = "libskk/libskk.h")] public const uint R13; [CCode (cheader_filename = "libskk/libskk.h")] public const uint R14; [CCode (cheader_filename = "libskk/libskk.h")] public const uint R15; [CCode (cheader_filename = "libskk/libskk.h")] public const uint R2; [CCode (cheader_filename = "libskk/libskk.h")] public const uint R3; [CCode (cheader_filename = "libskk/libskk.h")] public const uint R4; [CCode (cheader_filename = "libskk/libskk.h")] public const uint R5; [CCode (cheader_filename = "libskk/libskk.h")] public const uint R6; [CCode (cheader_filename = "libskk/libskk.h")] public const uint R7; [CCode (cheader_filename = "libskk/libskk.h")] public const uint R8; [CCode (cheader_filename = "libskk/libskk.h")] public const uint R9; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Racute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Rcaron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Rcedilla; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Redo; [CCode (cheader_filename = "libskk/libskk.h")] public const uint RepeatKeys_Enable; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Return; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Right; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Romaji; [CCode (cheader_filename = "libskk/libskk.h")] public const uint RupeeSign; [CCode (cheader_filename = "libskk/libskk.h")] public const uint S; [CCode (cheader_filename = "libskk/libskk.h")] public const uint SCHWA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sabovedot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Scaron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Scedilla; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Scircumflex; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Scroll_Lock; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Select; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Serbian_DJE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Serbian_DZE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Serbian_JE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Serbian_LJE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Serbian_NJE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Serbian_TSHE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Serbian_dje; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Serbian_dze; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Serbian_je; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Serbian_lje; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Serbian_nje; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Serbian_tshe; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Shift_L; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Shift_Lock; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Shift_R; [CCode (cheader_filename = "libskk/libskk.h")] public const uint SingleCandidate; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_a; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_aa; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_aa2; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_ae; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_ae2; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_aee; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_aee2; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_ai; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_ai2; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_al; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_au; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_au2; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_ba; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_bha; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_ca; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_cha; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_dda; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_ddha; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_dha; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_dhha; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_e; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_e2; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_ee; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_ee2; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_fa; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_ga; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_gha; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_h2; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_ha; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_i; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_i2; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_ii; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_ii2; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_ja; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_jha; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_jnya; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_ka; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_kha; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_kunddaliya; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_la; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_lla; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_lu; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_lu2; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_luu; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_luu2; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_ma; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_mba; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_na; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_ndda; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_ndha; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_ng; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_ng2; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_nga; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_nja; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_nna; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_nya; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_o; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_o2; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_oo; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_oo2; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_pa; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_pha; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_ra; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_ri; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_rii; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_ru2; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_ruu2; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_sa; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_sha; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_ssha; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_tha; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_thha; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_tta; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_ttha; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_u; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_u2; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_uu; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_uu2; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_va; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sinh_ya; [CCode (cheader_filename = "libskk/libskk.h")] public const uint SlowKeys_Enable; [CCode (cheader_filename = "libskk/libskk.h")] public const uint StickyKeys_Enable; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Super_L; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Super_R; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Sys_Req; [CCode (cheader_filename = "libskk/libskk.h")] public const uint T; [CCode (cheader_filename = "libskk/libskk.h")] public const uint THORN; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Tab; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Tabovedot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Tcaron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Tcedilla; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Terminate_Server; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_baht; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_bobaimai; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_chochan; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_chochang; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_choching; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_chochoe; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_dochada; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_dodek; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_fofa; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_fofan; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_hohip; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_honokhuk; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_khokhai; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_khokhon; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_khokhuat; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_khokhwai; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_khorakhang; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_kokai; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_lakkhangyao; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_lekchet; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_lekha; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_lekhok; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_lekkao; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_leknung; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_lekpaet; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_leksam; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_leksi; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_leksong; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_leksun; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_lochula; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_loling; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_lu; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_maichattawa; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_maiek; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_maihanakat; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_maihanakat_maitho; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_maitaikhu; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_maitho; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_maitri; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_maiyamok; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_moma; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_ngongu; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_nikhahit; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_nonen; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_nonu; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_oang; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_paiyannoi; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_phinthu; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_phophan; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_phophung; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_phosamphao; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_popla; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_rorua; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_ru; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_saraa; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_saraaa; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_saraae; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_saraaimaimalai; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_saraaimaimuan; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_saraam; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_sarae; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_sarai; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_saraii; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_sarao; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_sarau; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_saraue; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_sarauee; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_sarauu; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_sorusi; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_sosala; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_soso; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_sosua; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_thanthakhat; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_thonangmontho; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_thophuthao; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_thothahan; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_thothan; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_thothong; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_thothung; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_topatak; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_totao; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_wowaen; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_yoyak; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thai_yoying; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Thorn; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Touroku; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Tslash; [CCode (cheader_filename = "libskk/libskk.h")] public const uint U; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Uacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ubelowdot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ubreve; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ucircumflex; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Udiaeresis; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Udoubleacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ugrave; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Uhook; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Uhorn; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Uhornacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Uhornbelowdot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Uhorngrave; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Uhornhook; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Uhorntilde; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ukrainian_GHE_WITH_UPTURN; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ukrainian_I; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ukrainian_IE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ukrainian_YI; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ukrainian_ghe_with_upturn; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ukrainian_i; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ukrainian_ie; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ukrainian_yi; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ukranian_I; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ukranian_JE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ukranian_YI; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ukranian_i; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ukranian_je; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ukranian_yi; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Umacron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Undo; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Uogonek; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Up; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Uring; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Utilde; [CCode (cheader_filename = "libskk/libskk.h")] public const uint V; [CCode (cheader_filename = "libskk/libskk.h")] public const uint VoidSymbol; [CCode (cheader_filename = "libskk/libskk.h")] public const uint W; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Wacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Wcircumflex; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Wdiaeresis; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Wgrave; [CCode (cheader_filename = "libskk/libskk.h")] public const uint WonSign; [CCode (cheader_filename = "libskk/libskk.h")] public const uint X; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Xabovedot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Y; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Yacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ybelowdot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ycircumflex; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ydiaeresis; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ygrave; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Yhook; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Ytilde; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Z; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Zabovedot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Zacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Zcaron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Zen_Koho; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Zenkaku; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Zenkaku_Hankaku; [CCode (cheader_filename = "libskk/libskk.h")] public const uint Zstroke; [CCode (cheader_filename = "libskk/libskk.h")] public const uint a; [CCode (cheader_filename = "libskk/libskk.h")] public const uint aacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint abelowdot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint abovedot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint abreve; [CCode (cheader_filename = "libskk/libskk.h")] public const uint abreveacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint abrevebelowdot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint abrevegrave; [CCode (cheader_filename = "libskk/libskk.h")] public const uint abrevehook; [CCode (cheader_filename = "libskk/libskk.h")] public const uint abrevetilde; [CCode (cheader_filename = "libskk/libskk.h")] public const uint acircumflex; [CCode (cheader_filename = "libskk/libskk.h")] public const uint acircumflexacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint acircumflexbelowdot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint acircumflexgrave; [CCode (cheader_filename = "libskk/libskk.h")] public const uint acircumflexhook; [CCode (cheader_filename = "libskk/libskk.h")] public const uint acircumflextilde; [CCode (cheader_filename = "libskk/libskk.h")] public const uint acute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint adiaeresis; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ae; [CCode (cheader_filename = "libskk/libskk.h")] public const uint agrave; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ahook; [CCode (cheader_filename = "libskk/libskk.h")] public const uint amacron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ampersand; [CCode (cheader_filename = "libskk/libskk.h")] public const uint aogonek; [CCode (cheader_filename = "libskk/libskk.h")] public const uint apostrophe; [CCode (cheader_filename = "libskk/libskk.h")] public const uint approxeq; [CCode (cheader_filename = "libskk/libskk.h")] public const uint approximate; [CCode (cheader_filename = "libskk/libskk.h")] public const uint aring; [CCode (cheader_filename = "libskk/libskk.h")] public const uint asciicircum; [CCode (cheader_filename = "libskk/libskk.h")] public const uint asciitilde; [CCode (cheader_filename = "libskk/libskk.h")] public const uint asterisk; [CCode (cheader_filename = "libskk/libskk.h")] public const uint at; [CCode (cheader_filename = "libskk/libskk.h")] public const uint atilde; [CCode (cheader_filename = "libskk/libskk.h")] public const uint b; [CCode (cheader_filename = "libskk/libskk.h")] public const uint babovedot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint backslash; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ballotcross; [CCode (cheader_filename = "libskk/libskk.h")] public const uint bar; [CCode (cheader_filename = "libskk/libskk.h")] public const uint because; [CCode (cheader_filename = "libskk/libskk.h")] public const uint blank; [CCode (cheader_filename = "libskk/libskk.h")] public const uint botintegral; [CCode (cheader_filename = "libskk/libskk.h")] public const uint botleftparens; [CCode (cheader_filename = "libskk/libskk.h")] public const uint botleftsqbracket; [CCode (cheader_filename = "libskk/libskk.h")] public const uint botleftsummation; [CCode (cheader_filename = "libskk/libskk.h")] public const uint botrightparens; [CCode (cheader_filename = "libskk/libskk.h")] public const uint botrightsqbracket; [CCode (cheader_filename = "libskk/libskk.h")] public const uint botrightsummation; [CCode (cheader_filename = "libskk/libskk.h")] public const uint bott; [CCode (cheader_filename = "libskk/libskk.h")] public const uint botvertsummationconnector; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braceleft; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braceright; [CCode (cheader_filename = "libskk/libskk.h")] public const uint bracketleft; [CCode (cheader_filename = "libskk/libskk.h")] public const uint bracketright; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_blank; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dot_1; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dot_10; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dot_2; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dot_3; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dot_4; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dot_5; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dot_6; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dot_7; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dot_8; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dot_9; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_12; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_123; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1234; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_12345; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_123456; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1234567; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_12345678; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1234568; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_123457; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1234578; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_123458; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_12346; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_123467; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1234678; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_123468; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_12347; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_123478; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_12348; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1235; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_12356; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_123567; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1235678; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_123568; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_12357; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_123578; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_12358; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1236; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_12367; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_123678; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_12368; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1237; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_12378; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1238; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_124; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1245; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_12456; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_124567; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1245678; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_124568; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_12457; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_124578; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_12458; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1246; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_12467; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_124678; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_12468; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1247; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_12478; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1248; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_125; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1256; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_12567; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_125678; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_12568; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1257; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_12578; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1258; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_126; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1267; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_12678; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1268; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_127; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1278; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_128; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_13; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_134; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1345; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_13456; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_134567; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1345678; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_134568; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_13457; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_134578; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_13458; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1346; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_13467; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_134678; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_13468; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1347; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_13478; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1348; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_135; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1356; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_13567; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_135678; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_13568; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1357; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_13578; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1358; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_136; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1367; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_13678; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1368; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_137; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1378; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_138; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_14; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_145; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1456; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_14567; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_145678; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_14568; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1457; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_14578; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1458; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_146; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1467; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_14678; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1468; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_147; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1478; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_148; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_15; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_156; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1567; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_15678; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1568; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_157; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1578; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_158; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_16; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_167; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_1678; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_168; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_17; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_178; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_18; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_2; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_23; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_234; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_2345; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_23456; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_234567; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_2345678; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_234568; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_23457; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_234578; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_23458; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_2346; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_23467; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_234678; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_23468; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_2347; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_23478; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_2348; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_235; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_2356; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_23567; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_235678; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_23568; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_2357; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_23578; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_2358; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_236; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_2367; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_23678; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_2368; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_237; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_2378; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_238; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_24; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_245; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_2456; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_24567; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_245678; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_24568; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_2457; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_24578; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_2458; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_246; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_2467; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_24678; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_2468; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_247; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_2478; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_248; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_25; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_256; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_2567; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_25678; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_2568; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_257; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_2578; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_258; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_26; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_267; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_2678; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_268; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_27; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_278; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_28; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_3; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_34; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_345; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_3456; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_34567; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_345678; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_34568; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_3457; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_34578; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_3458; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_346; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_3467; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_34678; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_3468; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_347; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_3478; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_348; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_35; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_356; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_3567; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_35678; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_3568; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_357; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_3578; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_358; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_36; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_367; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_3678; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_368; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_37; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_378; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_38; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_4; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_45; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_456; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_4567; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_45678; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_4568; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_457; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_4578; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_458; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_46; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_467; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_4678; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_468; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_47; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_478; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_48; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_5; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_56; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_567; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_5678; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_568; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_57; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_578; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_58; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_6; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_67; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_678; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_68; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_7; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_78; [CCode (cheader_filename = "libskk/libskk.h")] public const uint braille_dots_8; [CCode (cheader_filename = "libskk/libskk.h")] public const uint breve; [CCode (cheader_filename = "libskk/libskk.h")] public const uint brokenbar; [CCode (cheader_filename = "libskk/libskk.h")] public const uint c; [CCode (cheader_filename = "libskk/libskk.h")] public const uint cabovedot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint cacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint careof; [CCode (cheader_filename = "libskk/libskk.h")] public const uint caret; [CCode (cheader_filename = "libskk/libskk.h")] public const uint caron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ccaron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ccedilla; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ccircumflex; [CCode (cheader_filename = "libskk/libskk.h")] public const uint cedilla; [CCode (cheader_filename = "libskk/libskk.h")] public const uint cent; [CCode (cheader_filename = "libskk/libskk.h")] public const uint checkerboard; [CCode (cheader_filename = "libskk/libskk.h")] public const uint checkmark; [CCode (cheader_filename = "libskk/libskk.h")] public const uint circle; [CCode (cheader_filename = "libskk/libskk.h")] public const uint club; [CCode (cheader_filename = "libskk/libskk.h")] public const uint colon; [CCode (cheader_filename = "libskk/libskk.h")] public const uint comma; [CCode (cheader_filename = "libskk/libskk.h")] public const uint containsas; [CCode (cheader_filename = "libskk/libskk.h")] public const uint copyright; [CCode (cheader_filename = "libskk/libskk.h")] public const uint cr; [CCode (cheader_filename = "libskk/libskk.h")] public const uint crossinglines; [CCode (cheader_filename = "libskk/libskk.h")] public const uint cuberoot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint currency; [CCode (cheader_filename = "libskk/libskk.h")] public const uint cursor; [CCode (cheader_filename = "libskk/libskk.h")] public const uint d; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dabovedot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dagger; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dcaron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_A; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_E; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_I; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_O; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_U; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_a; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_abovecomma; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_abovedot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_abovereversedcomma; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_abovering; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_acute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_belowbreve; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_belowcircumflex; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_belowcomma; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_belowdiaeresis; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_belowdot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_belowmacron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_belowring; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_belowtilde; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_breve; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_capital_schwa; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_caron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_cedilla; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_circumflex; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_currency; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_dasia; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_diaeresis; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_doubleacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_doublegrave; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_e; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_grave; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_hook; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_horn; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_i; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_invertedbreve; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_iota; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_macron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_o; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_ogonek; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_perispomeni; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_psili; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_semivoiced_sound; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_small_schwa; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_stroke; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_tilde; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_u; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dead_voiced_sound; [CCode (cheader_filename = "libskk/libskk.h")] public const uint decimalpoint; [CCode (cheader_filename = "libskk/libskk.h")] public const uint degree; [CCode (cheader_filename = "libskk/libskk.h")] public const uint diaeresis; [CCode (cheader_filename = "libskk/libskk.h")] public const uint diamond; [CCode (cheader_filename = "libskk/libskk.h")] public const uint digitspace; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dintegral; [CCode (cheader_filename = "libskk/libskk.h")] public const uint division; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dollar; [CCode (cheader_filename = "libskk/libskk.h")] public const uint doubbaselinedot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint doubleacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint doubledagger; [CCode (cheader_filename = "libskk/libskk.h")] public const uint doublelowquotemark; [CCode (cheader_filename = "libskk/libskk.h")] public const uint downarrow; [CCode (cheader_filename = "libskk/libskk.h")] public const uint downcaret; [CCode (cheader_filename = "libskk/libskk.h")] public const uint downshoe; [CCode (cheader_filename = "libskk/libskk.h")] public const uint downstile; [CCode (cheader_filename = "libskk/libskk.h")] public const uint downtack; [CCode (cheader_filename = "libskk/libskk.h")] public const uint dstroke; [CCode (cheader_filename = "libskk/libskk.h")] public const uint e; [CCode (cheader_filename = "libskk/libskk.h")] public const uint eabovedot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint eacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ebelowdot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ecaron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ecircumflex; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ecircumflexacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ecircumflexbelowdot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ecircumflexgrave; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ecircumflexhook; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ecircumflextilde; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ediaeresis; [CCode (cheader_filename = "libskk/libskk.h")] public const uint egrave; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ehook; [CCode (cheader_filename = "libskk/libskk.h")] public const uint eightsubscript; [CCode (cheader_filename = "libskk/libskk.h")] public const uint eightsuperior; [CCode (cheader_filename = "libskk/libskk.h")] public const uint elementof; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ellipsis; [CCode (cheader_filename = "libskk/libskk.h")] public const uint em3space; [CCode (cheader_filename = "libskk/libskk.h")] public const uint em4space; [CCode (cheader_filename = "libskk/libskk.h")] public const uint emacron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint emdash; [CCode (cheader_filename = "libskk/libskk.h")] public const uint emfilledcircle; [CCode (cheader_filename = "libskk/libskk.h")] public const uint emfilledrect; [CCode (cheader_filename = "libskk/libskk.h")] public const uint emopencircle; [CCode (cheader_filename = "libskk/libskk.h")] public const uint emopenrectangle; [CCode (cheader_filename = "libskk/libskk.h")] public const uint emptyset; [CCode (cheader_filename = "libskk/libskk.h")] public const uint emspace; [CCode (cheader_filename = "libskk/libskk.h")] public const uint endash; [CCode (cheader_filename = "libskk/libskk.h")] public const uint enfilledcircbullet; [CCode (cheader_filename = "libskk/libskk.h")] public const uint enfilledsqbullet; [CCode (cheader_filename = "libskk/libskk.h")] public const uint eng; [CCode (cheader_filename = "libskk/libskk.h")] public const uint enopencircbullet; [CCode (cheader_filename = "libskk/libskk.h")] public const uint enopensquarebullet; [CCode (cheader_filename = "libskk/libskk.h")] public const uint enspace; [CCode (cheader_filename = "libskk/libskk.h")] public const uint eogonek; [CCode (cheader_filename = "libskk/libskk.h")] public const uint equal; [CCode (cheader_filename = "libskk/libskk.h")] public const uint eth; [CCode (cheader_filename = "libskk/libskk.h")] public const uint etilde; [CCode (cheader_filename = "libskk/libskk.h")] public const uint exclam; [CCode (cheader_filename = "libskk/libskk.h")] public const uint exclamdown; [CCode (cheader_filename = "libskk/libskk.h")] public const uint f; [CCode (cheader_filename = "libskk/libskk.h")] public const uint fabovedot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint femalesymbol; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ff; [CCode (cheader_filename = "libskk/libskk.h")] public const uint figdash; [CCode (cheader_filename = "libskk/libskk.h")] public const uint filledlefttribullet; [CCode (cheader_filename = "libskk/libskk.h")] public const uint filledrectbullet; [CCode (cheader_filename = "libskk/libskk.h")] public const uint filledrighttribullet; [CCode (cheader_filename = "libskk/libskk.h")] public const uint filledtribulletdown; [CCode (cheader_filename = "libskk/libskk.h")] public const uint filledtribulletup; [CCode (cheader_filename = "libskk/libskk.h")] public const uint fiveeighths; [CCode (cheader_filename = "libskk/libskk.h")] public const uint fivesixths; [CCode (cheader_filename = "libskk/libskk.h")] public const uint fivesubscript; [CCode (cheader_filename = "libskk/libskk.h")] public const uint fivesuperior; [CCode (cheader_filename = "libskk/libskk.h")] public const uint fourfifths; [CCode (cheader_filename = "libskk/libskk.h")] public const uint foursubscript; [CCode (cheader_filename = "libskk/libskk.h")] public const uint foursuperior; [CCode (cheader_filename = "libskk/libskk.h")] public const uint fourthroot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint function; [CCode (cheader_filename = "libskk/libskk.h")] public const uint g; [CCode (cheader_filename = "libskk/libskk.h")] public const uint gabovedot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint gbreve; [CCode (cheader_filename = "libskk/libskk.h")] public const uint gcaron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint gcedilla; [CCode (cheader_filename = "libskk/libskk.h")] public const uint gcircumflex; [CCode (cheader_filename = "libskk/libskk.h")] public const uint grave; [CCode (cheader_filename = "libskk/libskk.h")] public const uint greater; [CCode (cheader_filename = "libskk/libskk.h")] public const uint greaterthanequal; [CCode (cheader_filename = "libskk/libskk.h")] public const uint guillemotleft; [CCode (cheader_filename = "libskk/libskk.h")] public const uint guillemotright; [CCode (cheader_filename = "libskk/libskk.h")] public const uint h; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hairspace; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hcircumflex; [CCode (cheader_filename = "libskk/libskk.h")] public const uint heart; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_aleph; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_ayin; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_bet; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_beth; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_chet; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_dalet; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_daleth; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_doublelowline; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_finalkaph; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_finalmem; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_finalnun; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_finalpe; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_finalzade; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_finalzadi; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_gimel; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_gimmel; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_he; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_het; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_kaph; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_kuf; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_lamed; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_mem; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_nun; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_pe; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_qoph; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_resh; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_samech; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_samekh; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_shin; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_taf; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_taw; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_tet; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_teth; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_waw; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_yod; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_zade; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_zadi; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_zain; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hebrew_zayin; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hexagram; [CCode (cheader_filename = "libskk/libskk.h")] public const uint horizconnector; [CCode (cheader_filename = "libskk/libskk.h")] public const uint horizlinescan1; [CCode (cheader_filename = "libskk/libskk.h")] public const uint horizlinescan3; [CCode (cheader_filename = "libskk/libskk.h")] public const uint horizlinescan5; [CCode (cheader_filename = "libskk/libskk.h")] public const uint horizlinescan7; [CCode (cheader_filename = "libskk/libskk.h")] public const uint horizlinescan9; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hstroke; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ht; [CCode (cheader_filename = "libskk/libskk.h")] public const uint hyphen; [CCode (cheader_filename = "libskk/libskk.h")] public const uint i; [CCode (cheader_filename = "libskk/libskk.h")] public const uint iacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ibelowdot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ibreve; [CCode (cheader_filename = "libskk/libskk.h")] public const uint icircumflex; [CCode (cheader_filename = "libskk/libskk.h")] public const uint identical; [CCode (cheader_filename = "libskk/libskk.h")] public const uint idiaeresis; [CCode (cheader_filename = "libskk/libskk.h")] public const uint idotless; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ifonlyif; [CCode (cheader_filename = "libskk/libskk.h")] public const uint igrave; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ihook; [CCode (cheader_filename = "libskk/libskk.h")] public const uint imacron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint implies; [CCode (cheader_filename = "libskk/libskk.h")] public const uint includedin; [CCode (cheader_filename = "libskk/libskk.h")] public const uint includes; [CCode (cheader_filename = "libskk/libskk.h")] public const uint infinity; [CCode (cheader_filename = "libskk/libskk.h")] public const uint integral; [CCode (cheader_filename = "libskk/libskk.h")] public const uint intersection; [CCode (cheader_filename = "libskk/libskk.h")] public const uint iogonek; [CCode (cheader_filename = "libskk/libskk.h")] public const uint itilde; [CCode (cheader_filename = "libskk/libskk.h")] public const uint j; [CCode (cheader_filename = "libskk/libskk.h")] public const uint jcircumflex; [CCode (cheader_filename = "libskk/libskk.h")] public const uint jot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint k; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_A; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_CHI; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_E; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_FU; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_HA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_HE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_HI; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_HO; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_HU; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_I; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_KA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_KE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_KI; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_KO; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_KU; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_MA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_ME; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_MI; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_MO; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_MU; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_N; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_NA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_NE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_NI; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_NO; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_NU; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_O; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_RA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_RE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_RI; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_RO; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_RU; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_SA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_SE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_SHI; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_SO; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_SU; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_TA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_TE; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_TI; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_TO; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_TSU; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_TU; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_U; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_WA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_WO; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_YA; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_YO; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_YU; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_a; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_closingbracket; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_comma; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_conjunctive; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_e; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_fullstop; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_i; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_middledot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_o; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_openingbracket; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_switch; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_tsu; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_tu; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_u; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_ya; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_yo; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kana_yu; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kappa; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kcedilla; [CCode (cheader_filename = "libskk/libskk.h")] public const uint kra; [CCode (cheader_filename = "libskk/libskk.h")] public const uint l; [CCode (cheader_filename = "libskk/libskk.h")] public const uint lacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint latincross; [CCode (cheader_filename = "libskk/libskk.h")] public const uint lbelowdot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint lcaron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint lcedilla; [CCode (cheader_filename = "libskk/libskk.h")] public const uint leftanglebracket; [CCode (cheader_filename = "libskk/libskk.h")] public const uint leftarrow; [CCode (cheader_filename = "libskk/libskk.h")] public const uint leftcaret; [CCode (cheader_filename = "libskk/libskk.h")] public const uint leftdoublequotemark; [CCode (cheader_filename = "libskk/libskk.h")] public const uint leftmiddlecurlybrace; [CCode (cheader_filename = "libskk/libskk.h")] public const uint leftopentriangle; [CCode (cheader_filename = "libskk/libskk.h")] public const uint leftpointer; [CCode (cheader_filename = "libskk/libskk.h")] public const uint leftradical; [CCode (cheader_filename = "libskk/libskk.h")] public const uint leftshoe; [CCode (cheader_filename = "libskk/libskk.h")] public const uint leftsinglequotemark; [CCode (cheader_filename = "libskk/libskk.h")] public const uint leftt; [CCode (cheader_filename = "libskk/libskk.h")] public const uint lefttack; [CCode (cheader_filename = "libskk/libskk.h")] public const uint less; [CCode (cheader_filename = "libskk/libskk.h")] public const uint lessthanequal; [CCode (cheader_filename = "libskk/libskk.h")] public const uint lf; [CCode (cheader_filename = "libskk/libskk.h")] public const uint logicaland; [CCode (cheader_filename = "libskk/libskk.h")] public const uint logicalor; [CCode (cheader_filename = "libskk/libskk.h")] public const uint lowleftcorner; [CCode (cheader_filename = "libskk/libskk.h")] public const uint lowrightcorner; [CCode (cheader_filename = "libskk/libskk.h")] public const uint lstroke; [CCode (cheader_filename = "libskk/libskk.h")] public const uint m; [CCode (cheader_filename = "libskk/libskk.h")] public const uint mabovedot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint macron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint malesymbol; [CCode (cheader_filename = "libskk/libskk.h")] public const uint maltesecross; [CCode (cheader_filename = "libskk/libskk.h")] public const uint marker; [CCode (cheader_filename = "libskk/libskk.h")] public const uint masculine; [CCode (cheader_filename = "libskk/libskk.h")] public const uint minus; [CCode (cheader_filename = "libskk/libskk.h")] public const uint minutes; [CCode (cheader_filename = "libskk/libskk.h")] public const uint mu; [CCode (cheader_filename = "libskk/libskk.h")] public const uint multiply; [CCode (cheader_filename = "libskk/libskk.h")] public const uint musicalflat; [CCode (cheader_filename = "libskk/libskk.h")] public const uint musicalsharp; [CCode (cheader_filename = "libskk/libskk.h")] public const uint n; [CCode (cheader_filename = "libskk/libskk.h")] public const uint nabla; [CCode (cheader_filename = "libskk/libskk.h")] public const uint nacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ncaron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ncedilla; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ninesubscript; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ninesuperior; [CCode (cheader_filename = "libskk/libskk.h")] public const uint nl; [CCode (cheader_filename = "libskk/libskk.h")] public const uint nobreakspace; [CCode (cheader_filename = "libskk/libskk.h")] public const uint notapproxeq; [CCode (cheader_filename = "libskk/libskk.h")] public const uint notelementof; [CCode (cheader_filename = "libskk/libskk.h")] public const uint notequal; [CCode (cheader_filename = "libskk/libskk.h")] public const uint notidentical; [CCode (cheader_filename = "libskk/libskk.h")] public const uint notsign; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ntilde; [CCode (cheader_filename = "libskk/libskk.h")] public const uint numbersign; [CCode (cheader_filename = "libskk/libskk.h")] public const uint numerosign; [CCode (cheader_filename = "libskk/libskk.h")] public const uint o; [CCode (cheader_filename = "libskk/libskk.h")] public const uint oacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint obarred; [CCode (cheader_filename = "libskk/libskk.h")] public const uint obelowdot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ocaron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ocircumflex; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ocircumflexacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ocircumflexbelowdot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ocircumflexgrave; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ocircumflexhook; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ocircumflextilde; [CCode (cheader_filename = "libskk/libskk.h")] public const uint odiaeresis; [CCode (cheader_filename = "libskk/libskk.h")] public const uint odoubleacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint oe; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ogonek; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ograve; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ohook; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ohorn; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ohornacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ohornbelowdot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ohorngrave; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ohornhook; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ohorntilde; [CCode (cheader_filename = "libskk/libskk.h")] public const uint omacron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint oneeighth; [CCode (cheader_filename = "libskk/libskk.h")] public const uint onefifth; [CCode (cheader_filename = "libskk/libskk.h")] public const uint onehalf; [CCode (cheader_filename = "libskk/libskk.h")] public const uint onequarter; [CCode (cheader_filename = "libskk/libskk.h")] public const uint onesixth; [CCode (cheader_filename = "libskk/libskk.h")] public const uint onesubscript; [CCode (cheader_filename = "libskk/libskk.h")] public const uint onesuperior; [CCode (cheader_filename = "libskk/libskk.h")] public const uint onethird; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ooblique; [CCode (cheader_filename = "libskk/libskk.h")] public const uint openrectbullet; [CCode (cheader_filename = "libskk/libskk.h")] public const uint openstar; [CCode (cheader_filename = "libskk/libskk.h")] public const uint opentribulletdown; [CCode (cheader_filename = "libskk/libskk.h")] public const uint opentribulletup; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ordfeminine; [CCode (cheader_filename = "libskk/libskk.h")] public const uint oslash; [CCode (cheader_filename = "libskk/libskk.h")] public const uint otilde; [CCode (cheader_filename = "libskk/libskk.h")] public const uint overbar; [CCode (cheader_filename = "libskk/libskk.h")] public const uint overline; [CCode (cheader_filename = "libskk/libskk.h")] public const uint p; [CCode (cheader_filename = "libskk/libskk.h")] public const uint pabovedot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint paragraph; [CCode (cheader_filename = "libskk/libskk.h")] public const uint parenleft; [CCode (cheader_filename = "libskk/libskk.h")] public const uint parenright; [CCode (cheader_filename = "libskk/libskk.h")] public const uint partdifferential; [CCode (cheader_filename = "libskk/libskk.h")] public const uint partialderivative; [CCode (cheader_filename = "libskk/libskk.h")] public const uint percent; [CCode (cheader_filename = "libskk/libskk.h")] public const uint period; [CCode (cheader_filename = "libskk/libskk.h")] public const uint periodcentered; [CCode (cheader_filename = "libskk/libskk.h")] public const uint phonographcopyright; [CCode (cheader_filename = "libskk/libskk.h")] public const uint plus; [CCode (cheader_filename = "libskk/libskk.h")] public const uint plusminus; [CCode (cheader_filename = "libskk/libskk.h")] public const uint prescription; [CCode (cheader_filename = "libskk/libskk.h")] public const uint prolongedsound; [CCode (cheader_filename = "libskk/libskk.h")] public const uint punctspace; [CCode (cheader_filename = "libskk/libskk.h")] public const uint q; [CCode (cheader_filename = "libskk/libskk.h")] public const uint quad; [CCode (cheader_filename = "libskk/libskk.h")] public const uint question; [CCode (cheader_filename = "libskk/libskk.h")] public const uint questiondown; [CCode (cheader_filename = "libskk/libskk.h")] public const uint quotedbl; [CCode (cheader_filename = "libskk/libskk.h")] public const uint quoteleft; [CCode (cheader_filename = "libskk/libskk.h")] public const uint quoteright; [CCode (cheader_filename = "libskk/libskk.h")] public const uint r; [CCode (cheader_filename = "libskk/libskk.h")] public const uint racute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint radical; [CCode (cheader_filename = "libskk/libskk.h")] public const uint rcaron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint rcedilla; [CCode (cheader_filename = "libskk/libskk.h")] public const uint registered; [CCode (cheader_filename = "libskk/libskk.h")] public const uint rightanglebracket; [CCode (cheader_filename = "libskk/libskk.h")] public const uint rightarrow; [CCode (cheader_filename = "libskk/libskk.h")] public const uint rightcaret; [CCode (cheader_filename = "libskk/libskk.h")] public const uint rightdoublequotemark; [CCode (cheader_filename = "libskk/libskk.h")] public const uint rightmiddlecurlybrace; [CCode (cheader_filename = "libskk/libskk.h")] public const uint rightmiddlesummation; [CCode (cheader_filename = "libskk/libskk.h")] public const uint rightopentriangle; [CCode (cheader_filename = "libskk/libskk.h")] public const uint rightpointer; [CCode (cheader_filename = "libskk/libskk.h")] public const uint rightshoe; [CCode (cheader_filename = "libskk/libskk.h")] public const uint rightsinglequotemark; [CCode (cheader_filename = "libskk/libskk.h")] public const uint rightt; [CCode (cheader_filename = "libskk/libskk.h")] public const uint righttack; [CCode (cheader_filename = "libskk/libskk.h")] public const uint s; [CCode (cheader_filename = "libskk/libskk.h")] public const uint sabovedot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint sacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint scaron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint scedilla; [CCode (cheader_filename = "libskk/libskk.h")] public const uint schwa; [CCode (cheader_filename = "libskk/libskk.h")] public const uint scircumflex; [CCode (cheader_filename = "libskk/libskk.h")] public const uint script_switch; [CCode (cheader_filename = "libskk/libskk.h")] public const uint seconds; [CCode (cheader_filename = "libskk/libskk.h")] public const uint section; [CCode (cheader_filename = "libskk/libskk.h")] public const uint semicolon; [CCode (cheader_filename = "libskk/libskk.h")] public const uint semivoicedsound; [CCode (cheader_filename = "libskk/libskk.h")] public const uint seveneighths; [CCode (cheader_filename = "libskk/libskk.h")] public const uint sevensubscript; [CCode (cheader_filename = "libskk/libskk.h")] public const uint sevensuperior; [CCode (cheader_filename = "libskk/libskk.h")] public const uint signaturemark; [CCode (cheader_filename = "libskk/libskk.h")] public const uint signifblank; [CCode (cheader_filename = "libskk/libskk.h")] public const uint similarequal; [CCode (cheader_filename = "libskk/libskk.h")] public const uint singlelowquotemark; [CCode (cheader_filename = "libskk/libskk.h")] public const uint sixsubscript; [CCode (cheader_filename = "libskk/libskk.h")] public const uint sixsuperior; [CCode (cheader_filename = "libskk/libskk.h")] public const uint slash; [CCode (cheader_filename = "libskk/libskk.h")] public const uint soliddiamond; [CCode (cheader_filename = "libskk/libskk.h")] public const uint space; [CCode (cheader_filename = "libskk/libskk.h")] public const uint squareroot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ssharp; [CCode (cheader_filename = "libskk/libskk.h")] public const uint sterling; [CCode (cheader_filename = "libskk/libskk.h")] public const uint stricteq; [CCode (cheader_filename = "libskk/libskk.h")] public const uint t; [CCode (cheader_filename = "libskk/libskk.h")] public const uint tabovedot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint tcaron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint tcedilla; [CCode (cheader_filename = "libskk/libskk.h")] public const uint telephone; [CCode (cheader_filename = "libskk/libskk.h")] public const uint telephonerecorder; [CCode (cheader_filename = "libskk/libskk.h")] public const uint therefore; [CCode (cheader_filename = "libskk/libskk.h")] public const uint thinspace; [CCode (cheader_filename = "libskk/libskk.h")] public const uint thorn; [CCode (cheader_filename = "libskk/libskk.h")] public const uint threeeighths; [CCode (cheader_filename = "libskk/libskk.h")] public const uint threefifths; [CCode (cheader_filename = "libskk/libskk.h")] public const uint threequarters; [CCode (cheader_filename = "libskk/libskk.h")] public const uint threesubscript; [CCode (cheader_filename = "libskk/libskk.h")] public const uint threesuperior; [CCode (cheader_filename = "libskk/libskk.h")] public const uint tintegral; [CCode (cheader_filename = "libskk/libskk.h")] public const uint topintegral; [CCode (cheader_filename = "libskk/libskk.h")] public const uint topleftparens; [CCode (cheader_filename = "libskk/libskk.h")] public const uint topleftradical; [CCode (cheader_filename = "libskk/libskk.h")] public const uint topleftsqbracket; [CCode (cheader_filename = "libskk/libskk.h")] public const uint topleftsummation; [CCode (cheader_filename = "libskk/libskk.h")] public const uint toprightparens; [CCode (cheader_filename = "libskk/libskk.h")] public const uint toprightsqbracket; [CCode (cheader_filename = "libskk/libskk.h")] public const uint toprightsummation; [CCode (cheader_filename = "libskk/libskk.h")] public const uint topt; [CCode (cheader_filename = "libskk/libskk.h")] public const uint topvertsummationconnector; [CCode (cheader_filename = "libskk/libskk.h")] public const uint trademark; [CCode (cheader_filename = "libskk/libskk.h")] public const uint trademarkincircle; [CCode (cheader_filename = "libskk/libskk.h")] public const uint tslash; [CCode (cheader_filename = "libskk/libskk.h")] public const uint twofifths; [CCode (cheader_filename = "libskk/libskk.h")] public const uint twosubscript; [CCode (cheader_filename = "libskk/libskk.h")] public const uint twosuperior; [CCode (cheader_filename = "libskk/libskk.h")] public const uint twothirds; [CCode (cheader_filename = "libskk/libskk.h")] public const uint u; [CCode (cheader_filename = "libskk/libskk.h")] public const uint uacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ubelowdot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ubreve; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ucircumflex; [CCode (cheader_filename = "libskk/libskk.h")] public const uint udiaeresis; [CCode (cheader_filename = "libskk/libskk.h")] public const uint udoubleacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ugrave; [CCode (cheader_filename = "libskk/libskk.h")] public const uint uhook; [CCode (cheader_filename = "libskk/libskk.h")] public const uint uhorn; [CCode (cheader_filename = "libskk/libskk.h")] public const uint uhornacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint uhornbelowdot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint uhorngrave; [CCode (cheader_filename = "libskk/libskk.h")] public const uint uhornhook; [CCode (cheader_filename = "libskk/libskk.h")] public const uint uhorntilde; [CCode (cheader_filename = "libskk/libskk.h")] public const uint umacron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint underbar; [CCode (cheader_filename = "libskk/libskk.h")] public const uint underscore; [CCode (cheader_filename = "libskk/libskk.h")] public const uint union; [CCode (cheader_filename = "libskk/libskk.h")] public const uint uogonek; [CCode (cheader_filename = "libskk/libskk.h")] public const uint uparrow; [CCode (cheader_filename = "libskk/libskk.h")] public const uint upcaret; [CCode (cheader_filename = "libskk/libskk.h")] public const uint upleftcorner; [CCode (cheader_filename = "libskk/libskk.h")] public const uint uprightcorner; [CCode (cheader_filename = "libskk/libskk.h")] public const uint upshoe; [CCode (cheader_filename = "libskk/libskk.h")] public const uint upstile; [CCode (cheader_filename = "libskk/libskk.h")] public const uint uptack; [CCode (cheader_filename = "libskk/libskk.h")] public const uint uring; [CCode (cheader_filename = "libskk/libskk.h")] public const uint utilde; [CCode (cheader_filename = "libskk/libskk.h")] public const uint v; [CCode (cheader_filename = "libskk/libskk.h")] public const uint variation; [CCode (cheader_filename = "libskk/libskk.h")] public const uint vertbar; [CCode (cheader_filename = "libskk/libskk.h")] public const uint vertconnector; [CCode (cheader_filename = "libskk/libskk.h")] public const uint voicedsound; [CCode (cheader_filename = "libskk/libskk.h")] public const uint vt; [CCode (cheader_filename = "libskk/libskk.h")] public const uint w; [CCode (cheader_filename = "libskk/libskk.h")] public const uint wacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint wcircumflex; [CCode (cheader_filename = "libskk/libskk.h")] public const uint wdiaeresis; [CCode (cheader_filename = "libskk/libskk.h")] public const uint wgrave; [CCode (cheader_filename = "libskk/libskk.h")] public const uint x; [CCode (cheader_filename = "libskk/libskk.h")] public const uint xabovedot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint y; [CCode (cheader_filename = "libskk/libskk.h")] public const uint yacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ybelowdot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ycircumflex; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ydiaeresis; [CCode (cheader_filename = "libskk/libskk.h")] public const uint yen; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ygrave; [CCode (cheader_filename = "libskk/libskk.h")] public const uint yhook; [CCode (cheader_filename = "libskk/libskk.h")] public const uint ytilde; [CCode (cheader_filename = "libskk/libskk.h")] public const uint z; [CCode (cheader_filename = "libskk/libskk.h")] public const uint zabovedot; [CCode (cheader_filename = "libskk/libskk.h")] public const uint zacute; [CCode (cheader_filename = "libskk/libskk.h")] public const uint zcaron; [CCode (cheader_filename = "libskk/libskk.h")] public const uint zerosubscript; [CCode (cheader_filename = "libskk/libskk.h")] public const uint zerosuperior; [CCode (cheader_filename = "libskk/libskk.h")] public const uint zstroke; } [CCode (cheader_filename = "libskk/libskk.h")] public class Candidate : GLib.Object { public Candidate (string midasi, bool okuri, string text, string? annotation = null, string? output = null); public string to_string (); public string? annotation { get; set; } public string midasi { get; private set; } public bool okuri { get; private set; } public string output { get; set; } public string text { get; set; } } [CCode (cheader_filename = "libskk/libskk.h")] public abstract class CandidateList : GLib.Object { public CandidateList (); public abstract bool cursor_down (); public abstract bool cursor_up (); public abstract new Skk.Candidate @get (int index = -1); protected uint get_page_start_cursor_pos (); public virtual bool next (); public abstract bool page_down (); public abstract bool page_up (); public virtual bool previous (); public abstract void select (); public abstract bool select_at (uint index_in_page); public abstract int cursor_pos { get; } public abstract uint page_size { get; set; } public abstract uint page_start { get; set; } public abstract bool page_visible { get; } public abstract int size { get; } public signal void populated (); public signal void selected (Skk.Candidate candidate); } [CCode (cheader_filename = "libskk/libskk.h")] public class CdbDict : Skk.Dict { public CdbDict (string path, string encoding = "EUC-JP") throws GLib.Error; public override string[] complete (string midasi); public override Skk.Candidate[] lookup (string midasi, bool okuri = false); public override void reload () throws GLib.Error; public override bool read_only { get; } } [CCode (cheader_filename = "libskk/libskk.h")] public class Context : GLib.Object { public Context (Skk.Dict[] dictionaries); public void add_dictionary (Skk.Dict dict); public void clear_output (); public string get_output (); public void get_preedit_underline (out uint offset, out uint nchars); public string peek_output (); public string poll_output (); public bool process_key_event (Skk.KeyEvent key); public bool process_key_events (string keyseq); public void remove_dictionary (Skk.Dict dict); public void reset (); public void save_dictionaries () throws GLib.Error; public string[] auto_start_henkan_keywords { get; set; } public Skk.CandidateList candidates { get; } public Skk.Dict[] dictionaries { owned get; set; } public bool egg_like_newline { get; set; } public Skk.InputMode input_mode { get; set; } public Skk.KeyEventFilter key_event_filter { owned get; } public Skk.PeriodStyle period_style { get; set; } [CCode (notify = false)] public string preedit { get; private set; } public Skk.Rule typing_rule { get; set; } public signal bool delete_surrounding_text (int offset, uint nchars); public signal bool retrieve_surrounding_text (out string text, out uint cursor_pos); } [CCode (cheader_filename = "libskk/libskk.h")] public abstract class Dict : GLib.Object { public Dict (); public abstract string[] complete (string midasi); protected string join_candidates (Skk.Candidate[] candidates); public abstract Skk.Candidate[] lookup (string midasi, bool okuri = false); public virtual bool purge_candidate (Skk.Candidate candidate); public abstract void reload () throws GLib.Error; public virtual void save () throws GLib.Error; public virtual bool select_candidate (Skk.Candidate candidate); protected Skk.Candidate[] split_candidates (string midasi, bool okuri, string line); public abstract bool read_only { get; } } [CCode (cheader_filename = "libskk/libskk.h")] public class EmptyDict : Skk.Dict { public EmptyDict (); public override string[] complete (string midasi); public override Skk.Candidate[] lookup (string midasi, bool okuri = false); public override void reload () throws GLib.Error; public override bool read_only { get; } } [CCode (cheader_filename = "libskk/libskk.h")] public class FileDict : Skk.Dict { public FileDict (string path, string encoding = "EUC-JP") throws GLib.Error; public override string[] complete (string midasi); public override Skk.Candidate[] lookup (string midasi, bool okuri = false); public override void reload () throws GLib.Error; public override bool read_only { get; } } [CCode (cheader_filename = "libskk/libskk.h")] public class KanaKanConverter : GLib.Object { public KanaKanConverter (Skk.KanaKanDict dict, Skk.KanaKanScoreMap map); public string convert (string kana); } [CCode (cheader_filename = "libskk/libskk.h")] public class KanaKanDict : GLib.Object { public KanaKanDict (string path) throws GLib.Error, GLib.IOError; public void add (string pron, string word); } [CCode (cheader_filename = "libskk/libskk.h")] public class KanaKanScoreMap : GLib.Object { public KanaKanScoreMap (string path, Skk.KanaKanDict dict) throws GLib.Error, GLib.IOError; } [CCode (cheader_filename = "libskk/libskk.h")] public class KeyEvent : GLib.Object { public KeyEvent (string? name, unichar code, Skk.ModifierType modifiers); public bool base_equal (Skk.KeyEvent key); public Skk.KeyEvent copy (); public KeyEvent.from_string (string key) throws Skk.KeyEventFormatError; public KeyEvent.from_x_keysym (uint keyval, Skk.ModifierType modifiers) throws Skk.KeyEventFormatError; public string to_string (); public unichar code { get; private set; } public Skk.ModifierType modifiers { get; set; } public string? name { get; private set; } } [CCode (cheader_filename = "libskk/libskk.h")] public abstract class KeyEventFilter : GLib.Object { public KeyEventFilter (); public abstract Skk.KeyEvent? filter_key_event (Skk.KeyEvent key); public virtual void reset (); public signal void forwarded (Skk.KeyEvent key); } [CCode (cheader_filename = "libskk/libskk.h")] public class NicolaKeyEventFilter : Skk.KeyEventFilter { public Skk.GetTime get_time_func; public int64 maxwait; public int64 overlap; public string[] special_doubles; public int64 timeout; public NicolaKeyEventFilter (); public override Skk.KeyEvent? filter_key_event (Skk.KeyEvent key); public override void reset (); } [CCode (cheader_filename = "libskk/libskk.h")] public class RomKanaConverter : GLib.Object { public RomKanaConverter (); public bool append (unichar uc); public void append_text (string text); public bool can_consume (unichar uc, bool preedit_only = false, bool no_carryover = true); public bool @delete (); public bool is_valid (unichar uc); public bool output_nn_if_any (); public void reset (); public Skk.KanaMode kana_mode { get; set; } public string output { get; internal set; } public Skk.PeriodStyle period_style { get; set; } public string preedit { get; } } [CCode (cheader_filename = "libskk/libskk.h")] public class Rule : GLib.Object { public Rule (string name) throws Skk.RuleParseError; public static Skk.RuleMetadata? find_rule (string name); public static Skk.RuleMetadata[] list (); public Skk.RuleMetadata metadata { get; private set; } } [CCode (cheader_filename = "libskk/libskk.h")] public class SkkServ : Skk.Dict { public SkkServ (string host, uint16 port = 1178, string encoding = "EUC-JP") throws GLib.Error; public override string[] complete (string midasi); public override Skk.Candidate[] lookup (string midasi, bool okuri = false); public override void reload (); public override bool read_only { get; } } [CCode (cheader_filename = "libskk/libskk.h")] public class UserDict : Skk.Dict { public UserDict (string path, string encoding = "UTF-8") throws GLib.Error; public override string[] complete (string midasi); public override Skk.Candidate[] lookup (string midasi, bool okuri = false); public override bool purge_candidate (Skk.Candidate candidate); public override void reload () throws GLib.Error; public override void save () throws GLib.Error; public override bool select_candidate (Skk.Candidate candidate); public override bool read_only { get; } } [CCode (cheader_filename = "libskk/libskk.h")] public struct RuleMetadata { public string base_dir; public string name; public string label; public string description; public string filter; public string? locate_map_file (string type, string name); } [CCode (cheader_filename = "libskk/libskk.h")] public enum InputMode { HIRAGANA, KATAKANA, HANKAKU_KATAKANA, LATIN, WIDE_LATIN, LAST, DEFAULT } [CCode (cheader_filename = "libskk/libskk.h")] public enum KanaMode { HIRAGANA, KATAKANA, HANKAKU_KATAKANA } [CCode (cheader_filename = "libskk/libskk.h")] public enum ModifierType { NONE, SHIFT_MASK, LOCK_MASK, CONTROL_MASK, MOD1_MASK, MOD2_MASK, MOD3_MASK, MOD4_MASK, MOD5_MASK, LSHIFT_MASK, RSHIFT_MASK, USLEEP_MASK, SUPER_MASK, HYPER_MASK, META_MASK, RELEASE_MASK } [CCode (cheader_filename = "libskk/libskk.h")] public enum PeriodStyle { JA_JA, EN_EN, JA_EN, EN_JA } [CCode (cheader_filename = "libskk/libskk.h")] public errordomain KeyEventFormatError { PARSE_FAILED, KEYSYM_NOT_FOUND } [CCode (cheader_filename = "libskk/libskk.h")] public errordomain RuleParseError { FAILED } [CCode (cheader_filename = "libskk/libskk.h")] public delegate int64 GetTime (); [CCode (cheader_filename = "libskk/libskk.h")] public static void init (); } libskk-1.0.0/libskk/key-event.vala0000664000076400007640000002277311716411554013775 00000000000000/* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ using Gee; namespace Skk { public errordomain KeyEventFormatError { PARSE_FAILED, KEYSYM_NOT_FOUND } /** * A set of bit-flags to indicate the state of modifier keys. */ public enum ModifierType { NONE = 0, SHIFT_MASK = 1 << 0, LOCK_MASK = 1 << 1, CONTROL_MASK = 1 << 2, MOD1_MASK = 1 << 3, MOD2_MASK = 1 << 4, MOD3_MASK = 1 << 5, MOD4_MASK = 1 << 6, MOD5_MASK = 1 << 7, // dummy modifiers for NICOLA LSHIFT_MASK = 1 << 22, RSHIFT_MASK = 1 << 23, USLEEP_MASK = 1 << 24, SUPER_MASK = 1 << 26, HYPER_MASK = 1 << 27, META_MASK = 1 << 28, RELEASE_MASK = 1 << 30 } /** * Object representing a key event. */ public class KeyEvent : Object { /** * The base name of the KeyEvent. * * This is exclusive to {@link code}. */ public string? name { get; private set; } /** * The base code of the KeyEvent. * * This is exclusive to {@link name}. */ public unichar code { get; private set; } /** * Modifier mask. */ public ModifierType modifiers { get; set; } /** * Create a key event. * * @param name a key name * @param code a character code * @param modifiers state of modifier keys * * @return a new KeyEvent */ public KeyEvent (string? name, unichar code, ModifierType modifiers) { this.name = name; this.code = code; this.modifiers = modifiers; } /** * Create a copy of the key event. * * @return a new KeyEvent */ public KeyEvent copy () { return new KeyEvent (name, code, modifiers); } /** * Create a key event from string. * * @param key a string representation of a key event * * @return a new KeyEvent */ public KeyEvent.from_string (string key) throws KeyEventFormatError { if (key.has_prefix ("(") && key.has_suffix (")")) { var strv = key[1:-1].split (" "); int index = 0; for (; index < strv.length - 1; index++) { if (strv[index] == "control") { modifiers |= ModifierType.CONTROL_MASK; } else if (strv[index] == "meta") { modifiers |= ModifierType.META_MASK; } else if (strv[index] == "hyper") { modifiers |= ModifierType.HYPER_MASK; } else if (strv[index] == "super") { modifiers |= ModifierType.SUPER_MASK; } else if (strv[index] == "alt") { modifiers |= ModifierType.MOD1_MASK; } else if (strv[index] == "lshift") { modifiers |= ModifierType.LSHIFT_MASK; } else if (strv[index] == "rshift") { modifiers |= ModifierType.RSHIFT_MASK; } else if (strv[index] == "usleep") { modifiers |= ModifierType.USLEEP_MASK; } else if (strv[index] == "release") { modifiers |= ModifierType.RELEASE_MASK; } else { throw new KeyEventFormatError.PARSE_FAILED ( "unknown modifier %s", strv[index]); } } name = strv[index]; code = name.char_count () == 1 ? name.get_char () : '\0'; } else { int index = key.last_index_of ("-"); if (index > 0) { // support only limited modifiers in this form string[] mods = key.substring (0, index).split ("-"); foreach (var mod in mods) { if (mod == "C") { modifiers |= ModifierType.CONTROL_MASK; } else if (mod == "A") { modifiers |= ModifierType.MOD1_MASK; } else if (mod == "M") { modifiers |= ModifierType.META_MASK; } else if (mod == "G") { modifiers |= ModifierType.MOD5_MASK; } } name = key.substring (index + 1); code = name.char_count () == 1 ? name.get_char () : '\0'; } else { modifiers = ModifierType.NONE; name = key; code = name.char_count () == 1 ? name.get_char () : '\0'; } } } /** * Convert the KeyEvent to string. * * @return a string representing the KeyEvent */ public string to_string () { string _base = name != null ? name : code.to_string (); if (modifiers != 0) { ArrayList elements = new ArrayList (); if ((modifiers & ModifierType.CONTROL_MASK) != 0) { elements.add ("control"); } if ((modifiers & ModifierType.META_MASK) != 0) { elements.add ("meta"); } if ((modifiers & ModifierType.HYPER_MASK) != 0) { elements.add ("hyper"); } if ((modifiers & ModifierType.SUPER_MASK) != 0) { elements.add ("super"); } if ((modifiers & ModifierType.MOD1_MASK) != 0) { elements.add ("alt"); } if ((modifiers & ModifierType.LSHIFT_MASK) != 0) { elements.add ("lshift"); } if ((modifiers & ModifierType.RSHIFT_MASK) != 0) { elements.add ("rshift"); } if ((modifiers & ModifierType.USLEEP_MASK) != 0) { elements.add ("usleep"); } if ((modifiers & ModifierType.RELEASE_MASK) != 0) { elements.add ("release"); } elements.add (_base); elements.add (null); // make sure that strv ends with null return "(" + string.joinv (" ", elements.to_array ()) + ")"; } else { return _base; } } static const Entry[] CODE_KEYVALS = { { Keysyms.Tab, '\t' }, { Keysyms.Return, '\n' }, { Keysyms.BackSpace, '\b' } }; static const Entry[] NAME_KEYVALS = { { Keysyms.Up, "Up" }, { Keysyms.Down, "Down" }, { Keysyms.Left, "Left" }, { Keysyms.Right, "Right" }, { Keysyms.Page_Up, "Page_Up" }, { Keysyms.KP_Page_Up, "Page_Up" }, { Keysyms.Page_Down, "Page_Down" }, { Keysyms.KP_Page_Down, "Page_Down" }, { Keysyms.Muhenkan, "lshift" }, { Keysyms.Henkan, "rshift" } }; /** * Create a key event from an X keysym and modifiers. * * @param keyval an X keysym * @param modifiers modifier mask * * @return a new KeyEvent */ public KeyEvent.from_x_keysym (uint keyval, ModifierType modifiers) throws KeyEventFormatError { foreach (var entry in NAME_KEYVALS) { if (entry.key == keyval) { name = entry.value; break; } } foreach (var entry in CODE_KEYVALS) { if (entry.key == keyval) { code = entry.value; break; } } assert (name == null || code == '\0'); if (name == null && code == '\0') { if (0x20 <= keyval && keyval < 0x7F) { code = (unichar) keyval; } else { throw new KeyEventFormatError.KEYSYM_NOT_FOUND ( "unknown keysym %u", keyval); } } this.modifiers = modifiers; } /** * Compare two key events ignoring modifiers. * * @param key a KeyEvent * * @return `true` if those base components are equal, `false` otherwise */ public bool base_equal (KeyEvent key) { return code == key.code && name == key.name; } } } libskk-1.0.0/libskk/kana-kan.vala0000664000076400007640000001631711761274616013552 00000000000000// A naive kana-kanji converter based on: // http://gihyo.jp/magazine/wdpress/archive/2011/vol64 (Japanese) // dictionary and score map generation scripts can be found at: // http://gihyo.jp/assets/files/magazine/wdpress/2011/64/WDB64-toku3-kanakan.zip // See tests/kana-kan.c for example. using Gee; namespace Skk { /** * Experimental kana-to-kanji converter using Viterbi algorithm. */ public class KanaKanConverter : Object { KanaKanDict dict; KanaKanScoreMap map; public KanaKanConverter (KanaKanDict dict, KanaKanScoreMap map) { this.dict = dict; this.map = map; } public string convert (string kana) { var graph = new KanaKanGraph (dict, kana); StringBuilder builder = new StringBuilder (); string[] words = viterbi (graph, map); foreach (var word in words) { builder.append (word); } return builder.str; } static string[] viterbi (KanaKanGraph graph, KanaKanScoreMap map) { foreach (var nodes in graph.nodes) { foreach (var node in nodes) { if (node.is_bos ()) continue; node.score = -1000000.0; var node_score = map.get_node_score (node); var prev_nodes = graph.get_prev_nodes (node); foreach (var prev_node in prev_nodes) { var score = prev_node.score + map.get_edge_score (prev_node, node) + node_score; if (score >= node.score) { node.score = score; node.prev = prev_node; } } } } ArrayList result = new ArrayList (); var node = graph.eos.prev; while (!node.is_bos ()) { result.insert (0, node.word); node = node.prev; } return result.to_array (); } } public class KanaKanDict : Object { HashMap> dict = new HashMap> (); public KanaKanDict (string path) throws GLib.Error, GLib.IOError { File file = File.new_for_path (path); DataInputStream input = new DataInputStream (file.read ()); while (true) { size_t length; string? line = input.read_line (out length); if (line == null) break; string[] a = line.chomp ().split ("\t"); add (a[0], a[1]); } } public void add (string pron, string word) { if (!dict.has_key (pron)) { dict.set (pron, new HashSet ()); } dict.get (pron).add (word); } internal Set lookup (string pron) { if (!dict.has_key (pron)) { return new HashSet (); } return dict.get (pron); } } public class KanaKanScoreMap : Object { Map map = new HashMap (); public KanaKanScoreMap (string path, KanaKanDict dict) throws GLib.Error, GLib.IOError { File file = File.new_for_path (path); DataInputStream input = new DataInputStream (file.read ()); while (true) { size_t length; string? line = input.read_line (out length); if (line == null) break; string[] a = line.chomp ().split ("\t\t"); map.set (a[0], double.parse (a[1])); string[] b = a[0].split ("\t"); if (b.length == 2 && b[0].has_prefix ("S") && b[1].has_prefix ("R")) { var word = b[0].substring (1); var pron = b[1].substring (1); dict.add (pron, word); } } } double get_score (string feature) { if (map.has_key (feature)) return map.get (feature); return 0.0; } internal double get_node_score (KanaKanNode node) { double score = 0.0; string feature; feature = "S%s\tR%s".printf (node.word, node.pron); score += get_score (feature); feature = "S%s".printf (node.word); score += get_score (feature); return score; } internal double get_edge_score (KanaKanNode prev_node, KanaKanNode node) { var feature = "S%s\tS%s".printf (prev_node.word, node.word); return get_score (feature); } } class KanaKanNode : Object { internal string word; internal string pron; internal int endpos; internal double score = 0.0; internal KanaKanNode? prev = null; internal KanaKanNode (string word, string pron, int endpos) { this.word = word; this.pron = pron; this.endpos = endpos; } internal int length { get { return pron.char_count (); } } internal bool is_bos () { return endpos == 0; } internal bool is_eos () { return length == 0 && endpos != 0; } } class KanaKanGraph : Object { KanaKanDict dict; internal ArrayList[] nodes; internal KanaKanNode bos; internal KanaKanNode eos; internal KanaKanGraph (KanaKanDict dict, string str) { this.dict = dict; UnicodeString ustr = new UnicodeString (str); nodes = new ArrayList[ustr.length + 2]; for (int i = 0; i < ustr.length + 2; i++) { nodes[i] = new ArrayList (); } bos = new KanaKanNode ("", "", 0); nodes[0].add (bos); eos = new KanaKanNode ("", "", ustr.length + 1); nodes[ustr.length + 1].add (eos); for (int i = 0; i < ustr.length; i++) { for (int j = i + 1; j <= int.min (ustr.length, i + 16); j++) { var pron = ustr.substring (i, j - i); var words = dict.lookup (pron); foreach (var word in words) { var node = new KanaKanNode (word, pron, j); nodes[j].add (node); } } if (i < ustr.length) { var pron = ustr.substring (i, 1); var node = new KanaKanNode (pron, pron, i + 1); nodes[i + 1].add (node); } } } internal ArrayList get_prev_nodes (KanaKanNode node) { if (node.is_eos ()) { int startpos = node.endpos - 1; return nodes[startpos]; } else if (node.is_bos ()) { return new ArrayList (); } else { int startpos = node.endpos - node.length; return nodes[startpos]; } } } } libskk-1.0.0/libskk/libskk.h0000664000076400007640000041507612016556644012657 00000000000000/* libskk.h generated by valac 0.16.0, the Vala compiler, do not modify */ #ifndef __LIBSKK_H__ #define __LIBSKK_H__ #include #include #include #include #include G_BEGIN_DECLS #define SKK_TYPE_KANA_MODE (skk_kana_mode_get_type ()) #define SKK_TYPE_PERIOD_STYLE (skk_period_style_get_type ()) #define SKK_TYPE_ROM_KANA_CONVERTER (skk_rom_kana_converter_get_type ()) #define SKK_ROM_KANA_CONVERTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_ROM_KANA_CONVERTER, SkkRomKanaConverter)) #define SKK_ROM_KANA_CONVERTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_ROM_KANA_CONVERTER, SkkRomKanaConverterClass)) #define SKK_IS_ROM_KANA_CONVERTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_ROM_KANA_CONVERTER)) #define SKK_IS_ROM_KANA_CONVERTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_ROM_KANA_CONVERTER)) #define SKK_ROM_KANA_CONVERTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_ROM_KANA_CONVERTER, SkkRomKanaConverterClass)) typedef struct _SkkRomKanaConverter SkkRomKanaConverter; typedef struct _SkkRomKanaConverterClass SkkRomKanaConverterClass; typedef struct _SkkRomKanaConverterPrivate SkkRomKanaConverterPrivate; #define SKK_TYPE_KANA_KAN_CONVERTER (skk_kana_kan_converter_get_type ()) #define SKK_KANA_KAN_CONVERTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KANA_KAN_CONVERTER, SkkKanaKanConverter)) #define SKK_KANA_KAN_CONVERTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KANA_KAN_CONVERTER, SkkKanaKanConverterClass)) #define SKK_IS_KANA_KAN_CONVERTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KANA_KAN_CONVERTER)) #define SKK_IS_KANA_KAN_CONVERTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KANA_KAN_CONVERTER)) #define SKK_KANA_KAN_CONVERTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KANA_KAN_CONVERTER, SkkKanaKanConverterClass)) typedef struct _SkkKanaKanConverter SkkKanaKanConverter; typedef struct _SkkKanaKanConverterClass SkkKanaKanConverterClass; typedef struct _SkkKanaKanConverterPrivate SkkKanaKanConverterPrivate; #define SKK_TYPE_KANA_KAN_DICT (skk_kana_kan_dict_get_type ()) #define SKK_KANA_KAN_DICT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KANA_KAN_DICT, SkkKanaKanDict)) #define SKK_KANA_KAN_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KANA_KAN_DICT, SkkKanaKanDictClass)) #define SKK_IS_KANA_KAN_DICT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KANA_KAN_DICT)) #define SKK_IS_KANA_KAN_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KANA_KAN_DICT)) #define SKK_KANA_KAN_DICT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KANA_KAN_DICT, SkkKanaKanDictClass)) typedef struct _SkkKanaKanDict SkkKanaKanDict; typedef struct _SkkKanaKanDictClass SkkKanaKanDictClass; #define SKK_TYPE_KANA_KAN_SCORE_MAP (skk_kana_kan_score_map_get_type ()) #define SKK_KANA_KAN_SCORE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KANA_KAN_SCORE_MAP, SkkKanaKanScoreMap)) #define SKK_KANA_KAN_SCORE_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KANA_KAN_SCORE_MAP, SkkKanaKanScoreMapClass)) #define SKK_IS_KANA_KAN_SCORE_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KANA_KAN_SCORE_MAP)) #define SKK_IS_KANA_KAN_SCORE_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KANA_KAN_SCORE_MAP)) #define SKK_KANA_KAN_SCORE_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KANA_KAN_SCORE_MAP, SkkKanaKanScoreMapClass)) typedef struct _SkkKanaKanScoreMap SkkKanaKanScoreMap; typedef struct _SkkKanaKanScoreMapClass SkkKanaKanScoreMapClass; typedef struct _SkkKanaKanDictPrivate SkkKanaKanDictPrivate; typedef struct _SkkKanaKanScoreMapPrivate SkkKanaKanScoreMapPrivate; #define SKK_TYPE_DICT (skk_dict_get_type ()) #define SKK_DICT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_DICT, SkkDict)) #define SKK_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_DICT, SkkDictClass)) #define SKK_IS_DICT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_DICT)) #define SKK_IS_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_DICT)) #define SKK_DICT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_DICT, SkkDictClass)) typedef struct _SkkDict SkkDict; typedef struct _SkkDictClass SkkDictClass; typedef struct _SkkDictPrivate SkkDictPrivate; #define SKK_TYPE_CANDIDATE (skk_candidate_get_type ()) #define SKK_CANDIDATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_CANDIDATE, SkkCandidate)) #define SKK_CANDIDATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_CANDIDATE, SkkCandidateClass)) #define SKK_IS_CANDIDATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_CANDIDATE)) #define SKK_IS_CANDIDATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_CANDIDATE)) #define SKK_CANDIDATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_CANDIDATE, SkkCandidateClass)) typedef struct _SkkCandidate SkkCandidate; typedef struct _SkkCandidateClass SkkCandidateClass; #define SKK_TYPE_EMPTY_DICT (skk_empty_dict_get_type ()) #define SKK_EMPTY_DICT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_EMPTY_DICT, SkkEmptyDict)) #define SKK_EMPTY_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_EMPTY_DICT, SkkEmptyDictClass)) #define SKK_IS_EMPTY_DICT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_EMPTY_DICT)) #define SKK_IS_EMPTY_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_EMPTY_DICT)) #define SKK_EMPTY_DICT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_EMPTY_DICT, SkkEmptyDictClass)) typedef struct _SkkEmptyDict SkkEmptyDict; typedef struct _SkkEmptyDictClass SkkEmptyDictClass; typedef struct _SkkEmptyDictPrivate SkkEmptyDictPrivate; #define SKK_TYPE_FILE_DICT (skk_file_dict_get_type ()) #define SKK_FILE_DICT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_FILE_DICT, SkkFileDict)) #define SKK_FILE_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_FILE_DICT, SkkFileDictClass)) #define SKK_IS_FILE_DICT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_FILE_DICT)) #define SKK_IS_FILE_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_FILE_DICT)) #define SKK_FILE_DICT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_FILE_DICT, SkkFileDictClass)) typedef struct _SkkFileDict SkkFileDict; typedef struct _SkkFileDictClass SkkFileDictClass; typedef struct _SkkFileDictPrivate SkkFileDictPrivate; #define SKK_TYPE_CDB_DICT (skk_cdb_dict_get_type ()) #define SKK_CDB_DICT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_CDB_DICT, SkkCdbDict)) #define SKK_CDB_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_CDB_DICT, SkkCdbDictClass)) #define SKK_IS_CDB_DICT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_CDB_DICT)) #define SKK_IS_CDB_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_CDB_DICT)) #define SKK_CDB_DICT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_CDB_DICT, SkkCdbDictClass)) typedef struct _SkkCdbDict SkkCdbDict; typedef struct _SkkCdbDictClass SkkCdbDictClass; typedef struct _SkkCdbDictPrivate SkkCdbDictPrivate; #define SKK_TYPE_USER_DICT (skk_user_dict_get_type ()) #define SKK_USER_DICT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_USER_DICT, SkkUserDict)) #define SKK_USER_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_USER_DICT, SkkUserDictClass)) #define SKK_IS_USER_DICT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_USER_DICT)) #define SKK_IS_USER_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_USER_DICT)) #define SKK_USER_DICT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_USER_DICT, SkkUserDictClass)) typedef struct _SkkUserDict SkkUserDict; typedef struct _SkkUserDictClass SkkUserDictClass; typedef struct _SkkUserDictPrivate SkkUserDictPrivate; #define SKK_TYPE_SKK_SERV (skk_skk_serv_get_type ()) #define SKK_SKK_SERV(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_SKK_SERV, SkkSkkServ)) #define SKK_SKK_SERV_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_SKK_SERV, SkkSkkServClass)) #define SKK_IS_SKK_SERV(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_SKK_SERV)) #define SKK_IS_SKK_SERV_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_SKK_SERV)) #define SKK_SKK_SERV_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_SKK_SERV, SkkSkkServClass)) typedef struct _SkkSkkServ SkkSkkServ; typedef struct _SkkSkkServClass SkkSkkServClass; typedef struct _SkkSkkServPrivate SkkSkkServPrivate; #define SKK_TYPE_MODIFIER_TYPE (skk_modifier_type_get_type ()) #define SKK_TYPE_KEY_EVENT (skk_key_event_get_type ()) #define SKK_KEY_EVENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KEY_EVENT, SkkKeyEvent)) #define SKK_KEY_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KEY_EVENT, SkkKeyEventClass)) #define SKK_IS_KEY_EVENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KEY_EVENT)) #define SKK_IS_KEY_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KEY_EVENT)) #define SKK_KEY_EVENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KEY_EVENT, SkkKeyEventClass)) typedef struct _SkkKeyEvent SkkKeyEvent; typedef struct _SkkKeyEventClass SkkKeyEventClass; typedef struct _SkkKeyEventPrivate SkkKeyEventPrivate; #define SKK_TYPE_KEY_EVENT_FILTER (skk_key_event_filter_get_type ()) #define SKK_KEY_EVENT_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KEY_EVENT_FILTER, SkkKeyEventFilter)) #define SKK_KEY_EVENT_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KEY_EVENT_FILTER, SkkKeyEventFilterClass)) #define SKK_IS_KEY_EVENT_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KEY_EVENT_FILTER)) #define SKK_IS_KEY_EVENT_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KEY_EVENT_FILTER)) #define SKK_KEY_EVENT_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KEY_EVENT_FILTER, SkkKeyEventFilterClass)) typedef struct _SkkKeyEventFilter SkkKeyEventFilter; typedef struct _SkkKeyEventFilterClass SkkKeyEventFilterClass; typedef struct _SkkKeyEventFilterPrivate SkkKeyEventFilterPrivate; #define SKK_TYPE_RULE_METADATA (skk_rule_metadata_get_type ()) typedef struct _SkkRuleMetadata SkkRuleMetadata; #define SKK_TYPE_RULE (skk_rule_get_type ()) #define SKK_RULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_RULE, SkkRule)) #define SKK_RULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_RULE, SkkRuleClass)) #define SKK_IS_RULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_RULE)) #define SKK_IS_RULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_RULE)) #define SKK_RULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_RULE, SkkRuleClass)) typedef struct _SkkRule SkkRule; typedef struct _SkkRuleClass SkkRuleClass; typedef struct _SkkRulePrivate SkkRulePrivate; #define SKK_TYPE_MAP_FILE (skk_map_file_get_type ()) #define SKK_MAP_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_MAP_FILE, SkkMapFile)) #define SKK_MAP_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_MAP_FILE, SkkMapFileClass)) #define SKK_IS_MAP_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_MAP_FILE)) #define SKK_IS_MAP_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_MAP_FILE)) #define SKK_MAP_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_MAP_FILE, SkkMapFileClass)) typedef struct _SkkMapFile SkkMapFile; typedef struct _SkkMapFileClass SkkMapFileClass; #define SKK_TYPE_KEYMAP_MAP_FILE (skk_keymap_map_file_get_type ()) #define SKK_KEYMAP_MAP_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KEYMAP_MAP_FILE, SkkKeymapMapFile)) #define SKK_KEYMAP_MAP_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KEYMAP_MAP_FILE, SkkKeymapMapFileClass)) #define SKK_IS_KEYMAP_MAP_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KEYMAP_MAP_FILE)) #define SKK_IS_KEYMAP_MAP_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KEYMAP_MAP_FILE)) #define SKK_KEYMAP_MAP_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KEYMAP_MAP_FILE, SkkKeymapMapFileClass)) typedef struct _SkkKeymapMapFile SkkKeymapMapFile; typedef struct _SkkKeymapMapFileClass SkkKeymapMapFileClass; #define SKK_TYPE_ROM_KANA_MAP_FILE (skk_rom_kana_map_file_get_type ()) #define SKK_ROM_KANA_MAP_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_ROM_KANA_MAP_FILE, SkkRomKanaMapFile)) #define SKK_ROM_KANA_MAP_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_ROM_KANA_MAP_FILE, SkkRomKanaMapFileClass)) #define SKK_IS_ROM_KANA_MAP_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_ROM_KANA_MAP_FILE)) #define SKK_IS_ROM_KANA_MAP_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_ROM_KANA_MAP_FILE)) #define SKK_ROM_KANA_MAP_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_ROM_KANA_MAP_FILE, SkkRomKanaMapFileClass)) typedef struct _SkkRomKanaMapFile SkkRomKanaMapFile; typedef struct _SkkRomKanaMapFileClass SkkRomKanaMapFileClass; #define SKK_TYPE_INPUT_MODE (skk_input_mode_get_type ()) #define SKK_TYPE_CONTEXT (skk_context_get_type ()) #define SKK_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_CONTEXT, SkkContext)) #define SKK_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_CONTEXT, SkkContextClass)) #define SKK_IS_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_CONTEXT)) #define SKK_IS_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_CONTEXT)) #define SKK_CONTEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_CONTEXT, SkkContextClass)) typedef struct _SkkContext SkkContext; typedef struct _SkkContextClass SkkContextClass; typedef struct _SkkContextPrivate SkkContextPrivate; #define SKK_TYPE_CANDIDATE_LIST (skk_candidate_list_get_type ()) #define SKK_CANDIDATE_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_CANDIDATE_LIST, SkkCandidateList)) #define SKK_CANDIDATE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_CANDIDATE_LIST, SkkCandidateListClass)) #define SKK_IS_CANDIDATE_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_CANDIDATE_LIST)) #define SKK_IS_CANDIDATE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_CANDIDATE_LIST)) #define SKK_CANDIDATE_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_CANDIDATE_LIST, SkkCandidateListClass)) typedef struct _SkkCandidateList SkkCandidateList; typedef struct _SkkCandidateListClass SkkCandidateListClass; typedef struct _SkkCandidatePrivate SkkCandidatePrivate; typedef struct _SkkCandidateListPrivate SkkCandidateListPrivate; #define SKK_TYPE_NICOLA_KEY_EVENT_FILTER (skk_nicola_key_event_filter_get_type ()) #define SKK_NICOLA_KEY_EVENT_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_NICOLA_KEY_EVENT_FILTER, SkkNicolaKeyEventFilter)) #define SKK_NICOLA_KEY_EVENT_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_NICOLA_KEY_EVENT_FILTER, SkkNicolaKeyEventFilterClass)) #define SKK_IS_NICOLA_KEY_EVENT_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_NICOLA_KEY_EVENT_FILTER)) #define SKK_IS_NICOLA_KEY_EVENT_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_NICOLA_KEY_EVENT_FILTER)) #define SKK_NICOLA_KEY_EVENT_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_NICOLA_KEY_EVENT_FILTER, SkkNicolaKeyEventFilterClass)) typedef struct _SkkNicolaKeyEventFilter SkkNicolaKeyEventFilter; typedef struct _SkkNicolaKeyEventFilterClass SkkNicolaKeyEventFilterClass; typedef struct _SkkNicolaKeyEventFilterPrivate SkkNicolaKeyEventFilterPrivate; typedef enum { SKK_KANA_MODE_HIRAGANA, SKK_KANA_MODE_KATAKANA, SKK_KANA_MODE_HANKAKU_KATAKANA } SkkKanaMode; typedef enum { SKK_PERIOD_STYLE_JA_JA, SKK_PERIOD_STYLE_EN_EN, SKK_PERIOD_STYLE_JA_EN, SKK_PERIOD_STYLE_EN_JA } SkkPeriodStyle; struct _SkkRomKanaConverter { GObject parent_instance; SkkRomKanaConverterPrivate * priv; }; struct _SkkRomKanaConverterClass { GObjectClass parent_class; }; struct _SkkKanaKanConverter { GObject parent_instance; SkkKanaKanConverterPrivate * priv; }; struct _SkkKanaKanConverterClass { GObjectClass parent_class; }; struct _SkkKanaKanDict { GObject parent_instance; SkkKanaKanDictPrivate * priv; }; struct _SkkKanaKanDictClass { GObjectClass parent_class; }; struct _SkkKanaKanScoreMap { GObject parent_instance; SkkKanaKanScoreMapPrivate * priv; }; struct _SkkKanaKanScoreMapClass { GObjectClass parent_class; }; struct _SkkDict { GObject parent_instance; SkkDictPrivate * priv; }; struct _SkkDictClass { GObjectClass parent_class; void (*reload) (SkkDict* self, GError** error); SkkCandidate** (*lookup) (SkkDict* self, const gchar* midasi, gboolean okuri, int* result_length1); gchar** (*complete) (SkkDict* self, const gchar* midasi, int* result_length1); gboolean (*select_candidate) (SkkDict* self, SkkCandidate* candidate); gboolean (*purge_candidate) (SkkDict* self, SkkCandidate* candidate); void (*save) (SkkDict* self, GError** error); gboolean (*get_read_only) (SkkDict* self); }; struct _SkkEmptyDict { SkkDict parent_instance; SkkEmptyDictPrivate * priv; }; struct _SkkEmptyDictClass { SkkDictClass parent_class; }; struct _SkkFileDict { SkkDict parent_instance; SkkFileDictPrivate * priv; }; struct _SkkFileDictClass { SkkDictClass parent_class; }; struct _SkkCdbDict { SkkDict parent_instance; SkkCdbDictPrivate * priv; }; struct _SkkCdbDictClass { SkkDictClass parent_class; }; struct _SkkUserDict { SkkDict parent_instance; SkkUserDictPrivate * priv; }; struct _SkkUserDictClass { SkkDictClass parent_class; }; struct _SkkSkkServ { SkkDict parent_instance; SkkSkkServPrivate * priv; }; struct _SkkSkkServClass { SkkDictClass parent_class; }; typedef enum { SKK_KEY_EVENT_FORMAT_ERROR_PARSE_FAILED, SKK_KEY_EVENT_FORMAT_ERROR_KEYSYM_NOT_FOUND } SkkKeyEventFormatError; #define SKK_KEY_EVENT_FORMAT_ERROR skk_key_event_format_error_quark () typedef enum { SKK_MODIFIER_TYPE_NONE = 0, SKK_MODIFIER_TYPE_SHIFT_MASK = 1 << 0, SKK_MODIFIER_TYPE_LOCK_MASK = 1 << 1, SKK_MODIFIER_TYPE_CONTROL_MASK = 1 << 2, SKK_MODIFIER_TYPE_MOD1_MASK = 1 << 3, SKK_MODIFIER_TYPE_MOD2_MASK = 1 << 4, SKK_MODIFIER_TYPE_MOD3_MASK = 1 << 5, SKK_MODIFIER_TYPE_MOD4_MASK = 1 << 6, SKK_MODIFIER_TYPE_MOD5_MASK = 1 << 7, SKK_MODIFIER_TYPE_LSHIFT_MASK = 1 << 22, SKK_MODIFIER_TYPE_RSHIFT_MASK = 1 << 23, SKK_MODIFIER_TYPE_USLEEP_MASK = 1 << 24, SKK_MODIFIER_TYPE_SUPER_MASK = 1 << 26, SKK_MODIFIER_TYPE_HYPER_MASK = 1 << 27, SKK_MODIFIER_TYPE_META_MASK = 1 << 28, SKK_MODIFIER_TYPE_RELEASE_MASK = 1 << 30 } SkkModifierType; struct _SkkKeyEvent { GObject parent_instance; SkkKeyEventPrivate * priv; }; struct _SkkKeyEventClass { GObjectClass parent_class; }; struct _SkkKeyEventFilter { GObject parent_instance; SkkKeyEventFilterPrivate * priv; }; struct _SkkKeyEventFilterClass { GObjectClass parent_class; SkkKeyEvent* (*filter_key_event) (SkkKeyEventFilter* self, SkkKeyEvent* key); void (*reset) (SkkKeyEventFilter* self); }; typedef enum { SKK_RULE_PARSE_ERROR_FAILED } SkkRuleParseError; #define SKK_RULE_PARSE_ERROR skk_rule_parse_error_quark () struct _SkkRuleMetadata { gchar* base_dir; gchar* name; gchar* label; gchar* description; gchar* filter; }; struct _SkkRule { GObject parent_instance; SkkRulePrivate * priv; SkkKeymapMapFile** keymaps; gint keymaps_length1; gint _keymaps_size_; SkkRomKanaMapFile* rom_kana; }; struct _SkkRuleClass { GObjectClass parent_class; }; typedef enum { SKK_INPUT_MODE_HIRAGANA = SKK_KANA_MODE_HIRAGANA, SKK_INPUT_MODE_KATAKANA = SKK_KANA_MODE_KATAKANA, SKK_INPUT_MODE_HANKAKU_KATAKANA = SKK_KANA_MODE_HANKAKU_KATAKANA, SKK_INPUT_MODE_LATIN, SKK_INPUT_MODE_WIDE_LATIN, SKK_INPUT_MODE_LAST, SKK_INPUT_MODE_DEFAULT = SKK_INPUT_MODE_HIRAGANA } SkkInputMode; struct _SkkContext { GObject parent_instance; SkkContextPrivate * priv; }; struct _SkkContextClass { GObjectClass parent_class; }; struct _SkkCandidate { GObject parent_instance; SkkCandidatePrivate * priv; }; struct _SkkCandidateClass { GObjectClass parent_class; }; struct _SkkCandidateList { GObject parent_instance; SkkCandidateListPrivate * priv; }; struct _SkkCandidateListClass { GObjectClass parent_class; SkkCandidate* (*get) (SkkCandidateList* self, gint index); void (*clear) (SkkCandidateList* self); void (*add_candidates) (SkkCandidateList* self, SkkCandidate** array, int array_length1); void (*add_candidates_end) (SkkCandidateList* self); gboolean (*cursor_up) (SkkCandidateList* self); gboolean (*cursor_down) (SkkCandidateList* self); gboolean (*page_up) (SkkCandidateList* self); gboolean (*page_down) (SkkCandidateList* self); gboolean (*next) (SkkCandidateList* self); gboolean (*previous) (SkkCandidateList* self); gboolean (*select_at) (SkkCandidateList* self, guint index_in_page); void (*select) (SkkCandidateList* self); gint (*get_cursor_pos) (SkkCandidateList* self); gint (*get_size) (SkkCandidateList* self); guint (*get_page_start) (SkkCandidateList* self); void (*set_page_start) (SkkCandidateList* self, guint value); guint (*get_page_size) (SkkCandidateList* self); void (*set_page_size) (SkkCandidateList* self, guint value); gboolean (*get_page_visible) (SkkCandidateList* self); }; typedef gint64 (*SkkGetTime) (void* user_data); struct _SkkNicolaKeyEventFilter { SkkKeyEventFilter parent_instance; SkkNicolaKeyEventFilterPrivate * priv; SkkGetTime get_time_func; gpointer get_time_func_target; GDestroyNotify get_time_func_target_destroy_notify; gint64 timeout; gint64 overlap; gint64 maxwait; gchar** special_doubles; gint special_doubles_length1; }; struct _SkkNicolaKeyEventFilterClass { SkkKeyEventFilterClass parent_class; }; GType skk_kana_mode_get_type (void) G_GNUC_CONST; GType skk_period_style_get_type (void) G_GNUC_CONST; GType skk_rom_kana_converter_get_type (void) G_GNUC_CONST; SkkRomKanaConverter* skk_rom_kana_converter_new (void); SkkRomKanaConverter* skk_rom_kana_converter_construct (GType object_type); gboolean skk_rom_kana_converter_is_valid (SkkRomKanaConverter* self, gunichar uc); gboolean skk_rom_kana_converter_output_nn_if_any (SkkRomKanaConverter* self); void skk_rom_kana_converter_append_text (SkkRomKanaConverter* self, const gchar* text); gboolean skk_rom_kana_converter_append (SkkRomKanaConverter* self, gunichar uc); gboolean skk_rom_kana_converter_can_consume (SkkRomKanaConverter* self, gunichar uc, gboolean preedit_only, gboolean no_carryover); void skk_rom_kana_converter_reset (SkkRomKanaConverter* self); gboolean skk_rom_kana_converter_delete (SkkRomKanaConverter* self); SkkKanaMode skk_rom_kana_converter_get_kana_mode (SkkRomKanaConverter* self); void skk_rom_kana_converter_set_kana_mode (SkkRomKanaConverter* self, SkkKanaMode value); SkkPeriodStyle skk_rom_kana_converter_get_period_style (SkkRomKanaConverter* self); void skk_rom_kana_converter_set_period_style (SkkRomKanaConverter* self, SkkPeriodStyle value); const gchar* skk_rom_kana_converter_get_output (SkkRomKanaConverter* self); const gchar* skk_rom_kana_converter_get_preedit (SkkRomKanaConverter* self); GType skk_kana_kan_converter_get_type (void) G_GNUC_CONST; GType skk_kana_kan_dict_get_type (void) G_GNUC_CONST; GType skk_kana_kan_score_map_get_type (void) G_GNUC_CONST; SkkKanaKanConverter* skk_kana_kan_converter_new (SkkKanaKanDict* dict, SkkKanaKanScoreMap* map); SkkKanaKanConverter* skk_kana_kan_converter_construct (GType object_type, SkkKanaKanDict* dict, SkkKanaKanScoreMap* map); gchar* skk_kana_kan_converter_convert (SkkKanaKanConverter* self, const gchar* kana); SkkKanaKanDict* skk_kana_kan_dict_new (const gchar* path, GError** error); SkkKanaKanDict* skk_kana_kan_dict_construct (GType object_type, const gchar* path, GError** error); void skk_kana_kan_dict_add (SkkKanaKanDict* self, const gchar* pron, const gchar* word); SkkKanaKanScoreMap* skk_kana_kan_score_map_new (const gchar* path, SkkKanaKanDict* dict, GError** error); SkkKanaKanScoreMap* skk_kana_kan_score_map_construct (GType object_type, const gchar* path, SkkKanaKanDict* dict, GError** error); GType skk_dict_get_type (void) G_GNUC_CONST; GType skk_candidate_get_type (void) G_GNUC_CONST; SkkCandidate** skk_dict_split_candidates (SkkDict* self, const gchar* midasi, gboolean okuri, const gchar* line, int* result_length1); gchar* skk_dict_join_candidates (SkkDict* self, SkkCandidate** candidates, int candidates_length1); void skk_dict_reload (SkkDict* self, GError** error); SkkCandidate** skk_dict_lookup (SkkDict* self, const gchar* midasi, gboolean okuri, int* result_length1); gchar** skk_dict_complete (SkkDict* self, const gchar* midasi, int* result_length1); gboolean skk_dict_select_candidate (SkkDict* self, SkkCandidate* candidate); gboolean skk_dict_purge_candidate (SkkDict* self, SkkCandidate* candidate); void skk_dict_save (SkkDict* self, GError** error); SkkDict* skk_dict_construct (GType object_type); gboolean skk_dict_get_read_only (SkkDict* self); GType skk_empty_dict_get_type (void) G_GNUC_CONST; SkkEmptyDict* skk_empty_dict_new (void); SkkEmptyDict* skk_empty_dict_construct (GType object_type); GType skk_file_dict_get_type (void) G_GNUC_CONST; SkkFileDict* skk_file_dict_new (const gchar* path, const gchar* encoding, GError** error); SkkFileDict* skk_file_dict_construct (GType object_type, const gchar* path, const gchar* encoding, GError** error); GType skk_cdb_dict_get_type (void) G_GNUC_CONST; SkkCdbDict* skk_cdb_dict_new (const gchar* path, const gchar* encoding, GError** error); SkkCdbDict* skk_cdb_dict_construct (GType object_type, const gchar* path, const gchar* encoding, GError** error); GType skk_user_dict_get_type (void) G_GNUC_CONST; SkkUserDict* skk_user_dict_new (const gchar* path, const gchar* encoding, GError** error); SkkUserDict* skk_user_dict_construct (GType object_type, const gchar* path, const gchar* encoding, GError** error); GType skk_skk_serv_get_type (void) G_GNUC_CONST; SkkSkkServ* skk_skk_serv_new (const gchar* host, guint16 port, const gchar* encoding, GError** error); SkkSkkServ* skk_skk_serv_construct (GType object_type, const gchar* host, guint16 port, const gchar* encoding, GError** error); GQuark skk_key_event_format_error_quark (void); GType skk_modifier_type_get_type (void) G_GNUC_CONST; GType skk_key_event_get_type (void) G_GNUC_CONST; SkkKeyEvent* skk_key_event_new (const gchar* name, gunichar code, SkkModifierType modifiers); SkkKeyEvent* skk_key_event_construct (GType object_type, const gchar* name, gunichar code, SkkModifierType modifiers); SkkKeyEvent* skk_key_event_copy (SkkKeyEvent* self); SkkKeyEvent* skk_key_event_new_from_string (const gchar* key, GError** error); SkkKeyEvent* skk_key_event_construct_from_string (GType object_type, const gchar* key, GError** error); gchar* skk_key_event_to_string (SkkKeyEvent* self); SkkKeyEvent* skk_key_event_new_from_x_keysym (guint keyval, SkkModifierType modifiers, GError** error); SkkKeyEvent* skk_key_event_construct_from_x_keysym (GType object_type, guint keyval, SkkModifierType modifiers, GError** error); gboolean skk_key_event_base_equal (SkkKeyEvent* self, SkkKeyEvent* key); const gchar* skk_key_event_get_name (SkkKeyEvent* self); gunichar skk_key_event_get_code (SkkKeyEvent* self); SkkModifierType skk_key_event_get_modifiers (SkkKeyEvent* self); void skk_key_event_set_modifiers (SkkKeyEvent* self, SkkModifierType value); GType skk_key_event_filter_get_type (void) G_GNUC_CONST; SkkKeyEvent* skk_key_event_filter_filter_key_event (SkkKeyEventFilter* self, SkkKeyEvent* key); void skk_key_event_filter_reset (SkkKeyEventFilter* self); SkkKeyEventFilter* skk_key_event_filter_construct (GType object_type); GQuark skk_rule_parse_error_quark (void); GType skk_rule_metadata_get_type (void) G_GNUC_CONST; SkkRuleMetadata* skk_rule_metadata_dup (const SkkRuleMetadata* self); void skk_rule_metadata_free (SkkRuleMetadata* self); void skk_rule_metadata_copy (const SkkRuleMetadata* self, SkkRuleMetadata* dest); void skk_rule_metadata_destroy (SkkRuleMetadata* self); gchar* skk_rule_metadata_locate_map_file (SkkRuleMetadata *self, const gchar* type, const gchar* name); GType skk_rule_get_type (void) G_GNUC_CONST; GType skk_map_file_get_type (void) G_GNUC_CONST; GType skk_keymap_map_file_get_type (void) G_GNUC_CONST; GType skk_rom_kana_map_file_get_type (void) G_GNUC_CONST; SkkRule* skk_rule_new (const gchar* name, GError** error); SkkRule* skk_rule_construct (GType object_type, const gchar* name, GError** error); SkkRuleMetadata* skk_rule_find_rule (const gchar* name); SkkRuleMetadata* skk_rule_list (int* result_length1); void skk_rule_get_metadata (SkkRule* self, SkkRuleMetadata* result); void skk_init (void); GType skk_input_mode_get_type (void) G_GNUC_CONST; GType skk_context_get_type (void) G_GNUC_CONST; void skk_context_add_dictionary (SkkContext* self, SkkDict* dict); void skk_context_remove_dictionary (SkkContext* self, SkkDict* dict); SkkContext* skk_context_new (SkkDict** dictionaries, int dictionaries_length1); SkkContext* skk_context_construct (GType object_type, SkkDict** dictionaries, int dictionaries_length1); gboolean skk_context_process_key_events (SkkContext* self, const gchar* keyseq); gboolean skk_context_process_key_event (SkkContext* self, SkkKeyEvent* key); void skk_context_reset (SkkContext* self); gchar* skk_context_get_output (SkkContext* self); gchar* skk_context_peek_output (SkkContext* self); gchar* skk_context_poll_output (SkkContext* self); void skk_context_clear_output (SkkContext* self); void skk_context_get_preedit_underline (SkkContext* self, guint* offset, guint* nchars); void skk_context_save_dictionaries (SkkContext* self, GError** error); SkkDict** skk_context_get_dictionaries (SkkContext* self, int* result_length1); void skk_context_set_dictionaries (SkkContext* self, SkkDict** value, int value_length1); GType skk_candidate_list_get_type (void) G_GNUC_CONST; SkkCandidateList* skk_context_get_candidates (SkkContext* self); SkkInputMode skk_context_get_input_mode (SkkContext* self); void skk_context_set_input_mode (SkkContext* self, SkkInputMode value); gchar** skk_context_get_auto_start_henkan_keywords (SkkContext* self, int* result_length1); void skk_context_set_auto_start_henkan_keywords (SkkContext* self, gchar** value, int value_length1); gboolean skk_context_get_egg_like_newline (SkkContext* self); void skk_context_set_egg_like_newline (SkkContext* self, gboolean value); SkkPeriodStyle skk_context_get_period_style (SkkContext* self); void skk_context_set_period_style (SkkContext* self, SkkPeriodStyle value); SkkRule* skk_context_get_typing_rule (SkkContext* self); void skk_context_set_typing_rule (SkkContext* self, SkkRule* value); SkkKeyEventFilter* skk_context_get_key_event_filter (SkkContext* self); const gchar* skk_context_get_preedit (SkkContext* self); gchar* skk_candidate_to_string (SkkCandidate* self); SkkCandidate* skk_candidate_new (const gchar* midasi, gboolean okuri, const gchar* text, const gchar* annotation, const gchar* output); SkkCandidate* skk_candidate_construct (GType object_type, const gchar* midasi, gboolean okuri, const gchar* text, const gchar* annotation, const gchar* output); const gchar* skk_candidate_get_midasi (SkkCandidate* self); gboolean skk_candidate_get_okuri (SkkCandidate* self); const gchar* skk_candidate_get_text (SkkCandidate* self); void skk_candidate_set_text (SkkCandidate* self, const gchar* value); const gchar* skk_candidate_get_annotation (SkkCandidate* self); void skk_candidate_set_annotation (SkkCandidate* self, const gchar* value); const gchar* skk_candidate_get_output (SkkCandidate* self); void skk_candidate_set_output (SkkCandidate* self, const gchar* value); SkkCandidate* skk_candidate_list_get (SkkCandidateList* self, gint index); gboolean skk_candidate_list_cursor_up (SkkCandidateList* self); gboolean skk_candidate_list_cursor_down (SkkCandidateList* self); gboolean skk_candidate_list_page_up (SkkCandidateList* self); gboolean skk_candidate_list_page_down (SkkCandidateList* self); gboolean skk_candidate_list_next (SkkCandidateList* self); gboolean skk_candidate_list_previous (SkkCandidateList* self); guint skk_candidate_list_get_page_start_cursor_pos (SkkCandidateList* self); gboolean skk_candidate_list_select_at (SkkCandidateList* self, guint index_in_page); void skk_candidate_list_select (SkkCandidateList* self); SkkCandidateList* skk_candidate_list_construct (GType object_type); gint skk_candidate_list_get_cursor_pos (SkkCandidateList* self); gint skk_candidate_list_get_size (SkkCandidateList* self); guint skk_candidate_list_get_page_start (SkkCandidateList* self); void skk_candidate_list_set_page_start (SkkCandidateList* self, guint value); guint skk_candidate_list_get_page_size (SkkCandidateList* self); void skk_candidate_list_set_page_size (SkkCandidateList* self, guint value); gboolean skk_candidate_list_get_page_visible (SkkCandidateList* self); GType skk_nicola_key_event_filter_get_type (void) G_GNUC_CONST; SkkNicolaKeyEventFilter* skk_nicola_key_event_filter_new (void); SkkNicolaKeyEventFilter* skk_nicola_key_event_filter_construct (GType object_type); #define SKK_KEYSYMS_VoidSymbol ((guint) 0xffffff) #define SKK_KEYSYMS_BackSpace ((guint) 0xff08) #define SKK_KEYSYMS_Tab ((guint) 0xff09) #define SKK_KEYSYMS_Linefeed ((guint) 0xff0a) #define SKK_KEYSYMS_Clear ((guint) 0xff0b) #define SKK_KEYSYMS_Return ((guint) 0xff0d) #define SKK_KEYSYMS_Pause ((guint) 0xff13) #define SKK_KEYSYMS_Scroll_Lock ((guint) 0xff14) #define SKK_KEYSYMS_Sys_Req ((guint) 0xff15) #define SKK_KEYSYMS_Escape ((guint) 0xff1b) #define SKK_KEYSYMS_Delete ((guint) 0xffff) #define SKK_KEYSYMS_Multi_key ((guint) 0xff20) #define SKK_KEYSYMS_Codeinput ((guint) 0xff37) #define SKK_KEYSYMS_SingleCandidate ((guint) 0xff3c) #define SKK_KEYSYMS_MultipleCandidate ((guint) 0xff3d) #define SKK_KEYSYMS_PreviousCandidate ((guint) 0xff3e) #define SKK_KEYSYMS_Kanji ((guint) 0xff21) #define SKK_KEYSYMS_Muhenkan ((guint) 0xff22) #define SKK_KEYSYMS_Henkan_Mode ((guint) 0xff23) #define SKK_KEYSYMS_Henkan ((guint) 0xff23) #define SKK_KEYSYMS_Romaji ((guint) 0xff24) #define SKK_KEYSYMS_Hiragana ((guint) 0xff25) #define SKK_KEYSYMS_Katakana ((guint) 0xff26) #define SKK_KEYSYMS_Hiragana_Katakana ((guint) 0xff27) #define SKK_KEYSYMS_Zenkaku ((guint) 0xff28) #define SKK_KEYSYMS_Hankaku ((guint) 0xff29) #define SKK_KEYSYMS_Zenkaku_Hankaku ((guint) 0xff2a) #define SKK_KEYSYMS_Touroku ((guint) 0xff2b) #define SKK_KEYSYMS_Massyo ((guint) 0xff2c) #define SKK_KEYSYMS_Kana_Lock ((guint) 0xff2d) #define SKK_KEYSYMS_Kana_Shift ((guint) 0xff2e) #define SKK_KEYSYMS_Eisu_Shift ((guint) 0xff2f) #define SKK_KEYSYMS_Eisu_toggle ((guint) 0xff30) #define SKK_KEYSYMS_Kanji_Bangou ((guint) 0xff37) #define SKK_KEYSYMS_Zen_Koho ((guint) 0xff3d) #define SKK_KEYSYMS_Mae_Koho ((guint) 0xff3e) #define SKK_KEYSYMS_Home ((guint) 0xff50) #define SKK_KEYSYMS_Left ((guint) 0xff51) #define SKK_KEYSYMS_Up ((guint) 0xff52) #define SKK_KEYSYMS_Right ((guint) 0xff53) #define SKK_KEYSYMS_Down ((guint) 0xff54) #define SKK_KEYSYMS_Prior ((guint) 0xff55) #define SKK_KEYSYMS_Page_Up ((guint) 0xff55) #define SKK_KEYSYMS_Next ((guint) 0xff56) #define SKK_KEYSYMS_Page_Down ((guint) 0xff56) #define SKK_KEYSYMS_End ((guint) 0xff57) #define SKK_KEYSYMS_Begin ((guint) 0xff58) #define SKK_KEYSYMS_Select ((guint) 0xff60) #define SKK_KEYSYMS_Print ((guint) 0xff61) #define SKK_KEYSYMS_Execute ((guint) 0xff62) #define SKK_KEYSYMS_Insert ((guint) 0xff63) #define SKK_KEYSYMS_Undo ((guint) 0xff65) #define SKK_KEYSYMS_Redo ((guint) 0xff66) #define SKK_KEYSYMS_Menu ((guint) 0xff67) #define SKK_KEYSYMS_Find ((guint) 0xff68) #define SKK_KEYSYMS_Cancel ((guint) 0xff69) #define SKK_KEYSYMS_Help ((guint) 0xff6a) #define SKK_KEYSYMS_Break ((guint) 0xff6b) #define SKK_KEYSYMS_Mode_switch ((guint) 0xff7e) #define SKK_KEYSYMS_script_switch ((guint) 0xff7e) #define SKK_KEYSYMS_Num_Lock ((guint) 0xff7f) #define SKK_KEYSYMS_KP_Space ((guint) 0xff80) #define SKK_KEYSYMS_KP_Tab ((guint) 0xff89) #define SKK_KEYSYMS_KP_Enter ((guint) 0xff8d) #define SKK_KEYSYMS_KP_F1 ((guint) 0xff91) #define SKK_KEYSYMS_KP_F2 ((guint) 0xff92) #define SKK_KEYSYMS_KP_F3 ((guint) 0xff93) #define SKK_KEYSYMS_KP_F4 ((guint) 0xff94) #define SKK_KEYSYMS_KP_Home ((guint) 0xff95) #define SKK_KEYSYMS_KP_Left ((guint) 0xff96) #define SKK_KEYSYMS_KP_Up ((guint) 0xff97) #define SKK_KEYSYMS_KP_Right ((guint) 0xff98) #define SKK_KEYSYMS_KP_Down ((guint) 0xff99) #define SKK_KEYSYMS_KP_Prior ((guint) 0xff9a) #define SKK_KEYSYMS_KP_Page_Up ((guint) 0xff9a) #define SKK_KEYSYMS_KP_Next ((guint) 0xff9b) #define SKK_KEYSYMS_KP_Page_Down ((guint) 0xff9b) #define SKK_KEYSYMS_KP_End ((guint) 0xff9c) #define SKK_KEYSYMS_KP_Begin ((guint) 0xff9d) #define SKK_KEYSYMS_KP_Insert ((guint) 0xff9e) #define SKK_KEYSYMS_KP_Delete ((guint) 0xff9f) #define SKK_KEYSYMS_KP_Equal ((guint) 0xffbd) #define SKK_KEYSYMS_KP_Multiply ((guint) 0xffaa) #define SKK_KEYSYMS_KP_Add ((guint) 0xffab) #define SKK_KEYSYMS_KP_Separator ((guint) 0xffac) #define SKK_KEYSYMS_KP_Subtract ((guint) 0xffad) #define SKK_KEYSYMS_KP_Decimal ((guint) 0xffae) #define SKK_KEYSYMS_KP_Divide ((guint) 0xffaf) #define SKK_KEYSYMS_KP_0 ((guint) 0xffb0) #define SKK_KEYSYMS_KP_1 ((guint) 0xffb1) #define SKK_KEYSYMS_KP_2 ((guint) 0xffb2) #define SKK_KEYSYMS_KP_3 ((guint) 0xffb3) #define SKK_KEYSYMS_KP_4 ((guint) 0xffb4) #define SKK_KEYSYMS_KP_5 ((guint) 0xffb5) #define SKK_KEYSYMS_KP_6 ((guint) 0xffb6) #define SKK_KEYSYMS_KP_7 ((guint) 0xffb7) #define SKK_KEYSYMS_KP_8 ((guint) 0xffb8) #define SKK_KEYSYMS_KP_9 ((guint) 0xffb9) #define SKK_KEYSYMS_F1 ((guint) 0xffbe) #define SKK_KEYSYMS_F2 ((guint) 0xffbf) #define SKK_KEYSYMS_F3 ((guint) 0xffc0) #define SKK_KEYSYMS_F4 ((guint) 0xffc1) #define SKK_KEYSYMS_F5 ((guint) 0xffc2) #define SKK_KEYSYMS_F6 ((guint) 0xffc3) #define SKK_KEYSYMS_F7 ((guint) 0xffc4) #define SKK_KEYSYMS_F8 ((guint) 0xffc5) #define SKK_KEYSYMS_F9 ((guint) 0xffc6) #define SKK_KEYSYMS_F10 ((guint) 0xffc7) #define SKK_KEYSYMS_F11 ((guint) 0xffc8) #define SKK_KEYSYMS_L1 ((guint) 0xffc8) #define SKK_KEYSYMS_F12 ((guint) 0xffc9) #define SKK_KEYSYMS_L2 ((guint) 0xffc9) #define SKK_KEYSYMS_F13 ((guint) 0xffca) #define SKK_KEYSYMS_L3 ((guint) 0xffca) #define SKK_KEYSYMS_F14 ((guint) 0xffcb) #define SKK_KEYSYMS_L4 ((guint) 0xffcb) #define SKK_KEYSYMS_F15 ((guint) 0xffcc) #define SKK_KEYSYMS_L5 ((guint) 0xffcc) #define SKK_KEYSYMS_F16 ((guint) 0xffcd) #define SKK_KEYSYMS_L6 ((guint) 0xffcd) #define SKK_KEYSYMS_F17 ((guint) 0xffce) #define SKK_KEYSYMS_L7 ((guint) 0xffce) #define SKK_KEYSYMS_F18 ((guint) 0xffcf) #define SKK_KEYSYMS_L8 ((guint) 0xffcf) #define SKK_KEYSYMS_F19 ((guint) 0xffd0) #define SKK_KEYSYMS_L9 ((guint) 0xffd0) #define SKK_KEYSYMS_F20 ((guint) 0xffd1) #define SKK_KEYSYMS_L10 ((guint) 0xffd1) #define SKK_KEYSYMS_F21 ((guint) 0xffd2) #define SKK_KEYSYMS_R1 ((guint) 0xffd2) #define SKK_KEYSYMS_F22 ((guint) 0xffd3) #define SKK_KEYSYMS_R2 ((guint) 0xffd3) #define SKK_KEYSYMS_F23 ((guint) 0xffd4) #define SKK_KEYSYMS_R3 ((guint) 0xffd4) #define SKK_KEYSYMS_F24 ((guint) 0xffd5) #define SKK_KEYSYMS_R4 ((guint) 0xffd5) #define SKK_KEYSYMS_F25 ((guint) 0xffd6) #define SKK_KEYSYMS_R5 ((guint) 0xffd6) #define SKK_KEYSYMS_F26 ((guint) 0xffd7) #define SKK_KEYSYMS_R6 ((guint) 0xffd7) #define SKK_KEYSYMS_F27 ((guint) 0xffd8) #define SKK_KEYSYMS_R7 ((guint) 0xffd8) #define SKK_KEYSYMS_F28 ((guint) 0xffd9) #define SKK_KEYSYMS_R8 ((guint) 0xffd9) #define SKK_KEYSYMS_F29 ((guint) 0xffda) #define SKK_KEYSYMS_R9 ((guint) 0xffda) #define SKK_KEYSYMS_F30 ((guint) 0xffdb) #define SKK_KEYSYMS_R10 ((guint) 0xffdb) #define SKK_KEYSYMS_F31 ((guint) 0xffdc) #define SKK_KEYSYMS_R11 ((guint) 0xffdc) #define SKK_KEYSYMS_F32 ((guint) 0xffdd) #define SKK_KEYSYMS_R12 ((guint) 0xffdd) #define SKK_KEYSYMS_F33 ((guint) 0xffde) #define SKK_KEYSYMS_R13 ((guint) 0xffde) #define SKK_KEYSYMS_F34 ((guint) 0xffdf) #define SKK_KEYSYMS_R14 ((guint) 0xffdf) #define SKK_KEYSYMS_F35 ((guint) 0xffe0) #define SKK_KEYSYMS_R15 ((guint) 0xffe0) #define SKK_KEYSYMS_Shift_L ((guint) 0xffe1) #define SKK_KEYSYMS_Shift_R ((guint) 0xffe2) #define SKK_KEYSYMS_Control_L ((guint) 0xffe3) #define SKK_KEYSYMS_Control_R ((guint) 0xffe4) #define SKK_KEYSYMS_Caps_Lock ((guint) 0xffe5) #define SKK_KEYSYMS_Shift_Lock ((guint) 0xffe6) #define SKK_KEYSYMS_Meta_L ((guint) 0xffe7) #define SKK_KEYSYMS_Meta_R ((guint) 0xffe8) #define SKK_KEYSYMS_Alt_L ((guint) 0xffe9) #define SKK_KEYSYMS_Alt_R ((guint) 0xffea) #define SKK_KEYSYMS_Super_L ((guint) 0xffeb) #define SKK_KEYSYMS_Super_R ((guint) 0xffec) #define SKK_KEYSYMS_Hyper_L ((guint) 0xffed) #define SKK_KEYSYMS_Hyper_R ((guint) 0xffee) #define SKK_KEYSYMS_ISO_Lock ((guint) 0xfe01) #define SKK_KEYSYMS_ISO_Level2_Latch ((guint) 0xfe02) #define SKK_KEYSYMS_ISO_Level3_Shift ((guint) 0xfe03) #define SKK_KEYSYMS_ISO_Level3_Latch ((guint) 0xfe04) #define SKK_KEYSYMS_ISO_Level3_Lock ((guint) 0xfe05) #define SKK_KEYSYMS_ISO_Level5_Shift ((guint) 0xfe11) #define SKK_KEYSYMS_ISO_Level5_Latch ((guint) 0xfe12) #define SKK_KEYSYMS_ISO_Level5_Lock ((guint) 0xfe13) #define SKK_KEYSYMS_ISO_Group_Shift ((guint) 0xff7e) #define SKK_KEYSYMS_ISO_Group_Latch ((guint) 0xfe06) #define SKK_KEYSYMS_ISO_Group_Lock ((guint) 0xfe07) #define SKK_KEYSYMS_ISO_Next_Group ((guint) 0xfe08) #define SKK_KEYSYMS_ISO_Next_Group_Lock ((guint) 0xfe09) #define SKK_KEYSYMS_ISO_Prev_Group ((guint) 0xfe0a) #define SKK_KEYSYMS_ISO_Prev_Group_Lock ((guint) 0xfe0b) #define SKK_KEYSYMS_ISO_First_Group ((guint) 0xfe0c) #define SKK_KEYSYMS_ISO_First_Group_Lock ((guint) 0xfe0d) #define SKK_KEYSYMS_ISO_Last_Group ((guint) 0xfe0e) #define SKK_KEYSYMS_ISO_Last_Group_Lock ((guint) 0xfe0f) #define SKK_KEYSYMS_ISO_Left_Tab ((guint) 0xfe20) #define SKK_KEYSYMS_ISO_Move_Line_Up ((guint) 0xfe21) #define SKK_KEYSYMS_ISO_Move_Line_Down ((guint) 0xfe22) #define SKK_KEYSYMS_ISO_Partial_Line_Up ((guint) 0xfe23) #define SKK_KEYSYMS_ISO_Partial_Line_Down ((guint) 0xfe24) #define SKK_KEYSYMS_ISO_Partial_Space_Left ((guint) 0xfe25) #define SKK_KEYSYMS_ISO_Partial_Space_Right ((guint) 0xfe26) #define SKK_KEYSYMS_ISO_Set_Margin_Left ((guint) 0xfe27) #define SKK_KEYSYMS_ISO_Set_Margin_Right ((guint) 0xfe28) #define SKK_KEYSYMS_ISO_Release_Margin_Left ((guint) 0xfe29) #define SKK_KEYSYMS_ISO_Release_Margin_Right ((guint) 0xfe2a) #define SKK_KEYSYMS_ISO_Release_Both_Margins ((guint) 0xfe2b) #define SKK_KEYSYMS_ISO_Fast_Cursor_Left ((guint) 0xfe2c) #define SKK_KEYSYMS_ISO_Fast_Cursor_Right ((guint) 0xfe2d) #define SKK_KEYSYMS_ISO_Fast_Cursor_Up ((guint) 0xfe2e) #define SKK_KEYSYMS_ISO_Fast_Cursor_Down ((guint) 0xfe2f) #define SKK_KEYSYMS_ISO_Continuous_Underline ((guint) 0xfe30) #define SKK_KEYSYMS_ISO_Discontinuous_Underline ((guint) 0xfe31) #define SKK_KEYSYMS_ISO_Emphasize ((guint) 0xfe32) #define SKK_KEYSYMS_ISO_Center_Object ((guint) 0xfe33) #define SKK_KEYSYMS_ISO_Enter ((guint) 0xfe34) #define SKK_KEYSYMS_dead_grave ((guint) 0xfe50) #define SKK_KEYSYMS_dead_acute ((guint) 0xfe51) #define SKK_KEYSYMS_dead_circumflex ((guint) 0xfe52) #define SKK_KEYSYMS_dead_tilde ((guint) 0xfe53) #define SKK_KEYSYMS_dead_perispomeni ((guint) 0xfe53) #define SKK_KEYSYMS_dead_macron ((guint) 0xfe54) #define SKK_KEYSYMS_dead_breve ((guint) 0xfe55) #define SKK_KEYSYMS_dead_abovedot ((guint) 0xfe56) #define SKK_KEYSYMS_dead_diaeresis ((guint) 0xfe57) #define SKK_KEYSYMS_dead_abovering ((guint) 0xfe58) #define SKK_KEYSYMS_dead_doubleacute ((guint) 0xfe59) #define SKK_KEYSYMS_dead_caron ((guint) 0xfe5a) #define SKK_KEYSYMS_dead_cedilla ((guint) 0xfe5b) #define SKK_KEYSYMS_dead_ogonek ((guint) 0xfe5c) #define SKK_KEYSYMS_dead_iota ((guint) 0xfe5d) #define SKK_KEYSYMS_dead_voiced_sound ((guint) 0xfe5e) #define SKK_KEYSYMS_dead_semivoiced_sound ((guint) 0xfe5f) #define SKK_KEYSYMS_dead_belowdot ((guint) 0xfe60) #define SKK_KEYSYMS_dead_hook ((guint) 0xfe61) #define SKK_KEYSYMS_dead_horn ((guint) 0xfe62) #define SKK_KEYSYMS_dead_stroke ((guint) 0xfe63) #define SKK_KEYSYMS_dead_abovecomma ((guint) 0xfe64) #define SKK_KEYSYMS_dead_psili ((guint) 0xfe64) #define SKK_KEYSYMS_dead_abovereversedcomma ((guint) 0xfe65) #define SKK_KEYSYMS_dead_dasia ((guint) 0xfe65) #define SKK_KEYSYMS_dead_doublegrave ((guint) 0xfe66) #define SKK_KEYSYMS_dead_belowring ((guint) 0xfe67) #define SKK_KEYSYMS_dead_belowmacron ((guint) 0xfe68) #define SKK_KEYSYMS_dead_belowcircumflex ((guint) 0xfe69) #define SKK_KEYSYMS_dead_belowtilde ((guint) 0xfe6a) #define SKK_KEYSYMS_dead_belowbreve ((guint) 0xfe6b) #define SKK_KEYSYMS_dead_belowdiaeresis ((guint) 0xfe6c) #define SKK_KEYSYMS_dead_invertedbreve ((guint) 0xfe6d) #define SKK_KEYSYMS_dead_belowcomma ((guint) 0xfe6e) #define SKK_KEYSYMS_dead_currency ((guint) 0xfe6f) #define SKK_KEYSYMS_dead_a ((guint) 0xfe80) #define SKK_KEYSYMS_dead_A ((guint) 0xfe81) #define SKK_KEYSYMS_dead_e ((guint) 0xfe82) #define SKK_KEYSYMS_dead_E ((guint) 0xfe83) #define SKK_KEYSYMS_dead_i ((guint) 0xfe84) #define SKK_KEYSYMS_dead_I ((guint) 0xfe85) #define SKK_KEYSYMS_dead_o ((guint) 0xfe86) #define SKK_KEYSYMS_dead_O ((guint) 0xfe87) #define SKK_KEYSYMS_dead_u ((guint) 0xfe88) #define SKK_KEYSYMS_dead_U ((guint) 0xfe89) #define SKK_KEYSYMS_dead_small_schwa ((guint) 0xfe8a) #define SKK_KEYSYMS_dead_capital_schwa ((guint) 0xfe8b) #define SKK_KEYSYMS_First_Virtual_Screen ((guint) 0xfed0) #define SKK_KEYSYMS_Prev_Virtual_Screen ((guint) 0xfed1) #define SKK_KEYSYMS_Next_Virtual_Screen ((guint) 0xfed2) #define SKK_KEYSYMS_Last_Virtual_Screen ((guint) 0xfed4) #define SKK_KEYSYMS_Terminate_Server ((guint) 0xfed5) #define SKK_KEYSYMS_AccessX_Enable ((guint) 0xfe70) #define SKK_KEYSYMS_AccessX_Feedback_Enable ((guint) 0xfe71) #define SKK_KEYSYMS_RepeatKeys_Enable ((guint) 0xfe72) #define SKK_KEYSYMS_SlowKeys_Enable ((guint) 0xfe73) #define SKK_KEYSYMS_BounceKeys_Enable ((guint) 0xfe74) #define SKK_KEYSYMS_StickyKeys_Enable ((guint) 0xfe75) #define SKK_KEYSYMS_MouseKeys_Enable ((guint) 0xfe76) #define SKK_KEYSYMS_MouseKeys_Accel_Enable ((guint) 0xfe77) #define SKK_KEYSYMS_Overlay1_Enable ((guint) 0xfe78) #define SKK_KEYSYMS_Overlay2_Enable ((guint) 0xfe79) #define SKK_KEYSYMS_AudibleBell_Enable ((guint) 0xfe7a) #define SKK_KEYSYMS_Pointer_Left ((guint) 0xfee0) #define SKK_KEYSYMS_Pointer_Right ((guint) 0xfee1) #define SKK_KEYSYMS_Pointer_Up ((guint) 0xfee2) #define SKK_KEYSYMS_Pointer_Down ((guint) 0xfee3) #define SKK_KEYSYMS_Pointer_UpLeft ((guint) 0xfee4) #define SKK_KEYSYMS_Pointer_UpRight ((guint) 0xfee5) #define SKK_KEYSYMS_Pointer_DownLeft ((guint) 0xfee6) #define SKK_KEYSYMS_Pointer_DownRight ((guint) 0xfee7) #define SKK_KEYSYMS_Pointer_Button_Dflt ((guint) 0xfee8) #define SKK_KEYSYMS_Pointer_Button1 ((guint) 0xfee9) #define SKK_KEYSYMS_Pointer_Button2 ((guint) 0xfeea) #define SKK_KEYSYMS_Pointer_Button3 ((guint) 0xfeeb) #define SKK_KEYSYMS_Pointer_Button4 ((guint) 0xfeec) #define SKK_KEYSYMS_Pointer_Button5 ((guint) 0xfeed) #define SKK_KEYSYMS_Pointer_DblClick_Dflt ((guint) 0xfeee) #define SKK_KEYSYMS_Pointer_DblClick1 ((guint) 0xfeef) #define SKK_KEYSYMS_Pointer_DblClick2 ((guint) 0xfef0) #define SKK_KEYSYMS_Pointer_DblClick3 ((guint) 0xfef1) #define SKK_KEYSYMS_Pointer_DblClick4 ((guint) 0xfef2) #define SKK_KEYSYMS_Pointer_DblClick5 ((guint) 0xfef3) #define SKK_KEYSYMS_Pointer_Drag_Dflt ((guint) 0xfef4) #define SKK_KEYSYMS_Pointer_Drag1 ((guint) 0xfef5) #define SKK_KEYSYMS_Pointer_Drag2 ((guint) 0xfef6) #define SKK_KEYSYMS_Pointer_Drag3 ((guint) 0xfef7) #define SKK_KEYSYMS_Pointer_Drag4 ((guint) 0xfef8) #define SKK_KEYSYMS_Pointer_Drag5 ((guint) 0xfefd) #define SKK_KEYSYMS_Pointer_EnableKeys ((guint) 0xfef9) #define SKK_KEYSYMS_Pointer_Accelerate ((guint) 0xfefa) #define SKK_KEYSYMS_Pointer_DfltBtnNext ((guint) 0xfefb) #define SKK_KEYSYMS_Pointer_DfltBtnPrev ((guint) 0xfefc) #define SKK_KEYSYMS_3270_Duplicate ((guint) 0xfd01) #define SKK_KEYSYMS_3270_FieldMark ((guint) 0xfd02) #define SKK_KEYSYMS_3270_Right2 ((guint) 0xfd03) #define SKK_KEYSYMS_3270_Left2 ((guint) 0xfd04) #define SKK_KEYSYMS_3270_BackTab ((guint) 0xfd05) #define SKK_KEYSYMS_3270_EraseEOF ((guint) 0xfd06) #define SKK_KEYSYMS_3270_EraseInput ((guint) 0xfd07) #define SKK_KEYSYMS_3270_Reset ((guint) 0xfd08) #define SKK_KEYSYMS_3270_Quit ((guint) 0xfd09) #define SKK_KEYSYMS_3270_PA1 ((guint) 0xfd0a) #define SKK_KEYSYMS_3270_PA2 ((guint) 0xfd0b) #define SKK_KEYSYMS_3270_PA3 ((guint) 0xfd0c) #define SKK_KEYSYMS_3270_Test ((guint) 0xfd0d) #define SKK_KEYSYMS_3270_Attn ((guint) 0xfd0e) #define SKK_KEYSYMS_3270_CursorBlink ((guint) 0xfd0f) #define SKK_KEYSYMS_3270_AltCursor ((guint) 0xfd10) #define SKK_KEYSYMS_3270_KeyClick ((guint) 0xfd11) #define SKK_KEYSYMS_3270_Jump ((guint) 0xfd12) #define SKK_KEYSYMS_3270_Ident ((guint) 0xfd13) #define SKK_KEYSYMS_3270_Rule ((guint) 0xfd14) #define SKK_KEYSYMS_3270_Copy ((guint) 0xfd15) #define SKK_KEYSYMS_3270_Play ((guint) 0xfd16) #define SKK_KEYSYMS_3270_Setup ((guint) 0xfd17) #define SKK_KEYSYMS_3270_Record ((guint) 0xfd18) #define SKK_KEYSYMS_3270_ChangeScreen ((guint) 0xfd19) #define SKK_KEYSYMS_3270_DeleteWord ((guint) 0xfd1a) #define SKK_KEYSYMS_3270_ExSelect ((guint) 0xfd1b) #define SKK_KEYSYMS_3270_CursorSelect ((guint) 0xfd1c) #define SKK_KEYSYMS_3270_PrintScreen ((guint) 0xfd1d) #define SKK_KEYSYMS_3270_Enter ((guint) 0xfd1e) #define SKK_KEYSYMS_space ((guint) 0x0020) #define SKK_KEYSYMS_exclam ((guint) 0x0021) #define SKK_KEYSYMS_quotedbl ((guint) 0x0022) #define SKK_KEYSYMS_numbersign ((guint) 0x0023) #define SKK_KEYSYMS_dollar ((guint) 0x0024) #define SKK_KEYSYMS_percent ((guint) 0x0025) #define SKK_KEYSYMS_ampersand ((guint) 0x0026) #define SKK_KEYSYMS_apostrophe ((guint) 0x0027) #define SKK_KEYSYMS_quoteright ((guint) 0x0027) #define SKK_KEYSYMS_parenleft ((guint) 0x0028) #define SKK_KEYSYMS_parenright ((guint) 0x0029) #define SKK_KEYSYMS_asterisk ((guint) 0x002a) #define SKK_KEYSYMS_plus ((guint) 0x002b) #define SKK_KEYSYMS_comma ((guint) 0x002c) #define SKK_KEYSYMS_minus ((guint) 0x002d) #define SKK_KEYSYMS_period ((guint) 0x002e) #define SKK_KEYSYMS_slash ((guint) 0x002f) #define SKK_KEYSYMS_0 ((guint) 0x0030) #define SKK_KEYSYMS_1 ((guint) 0x0031) #define SKK_KEYSYMS_2 ((guint) 0x0032) #define SKK_KEYSYMS_3 ((guint) 0x0033) #define SKK_KEYSYMS_4 ((guint) 0x0034) #define SKK_KEYSYMS_5 ((guint) 0x0035) #define SKK_KEYSYMS_6 ((guint) 0x0036) #define SKK_KEYSYMS_7 ((guint) 0x0037) #define SKK_KEYSYMS_8 ((guint) 0x0038) #define SKK_KEYSYMS_9 ((guint) 0x0039) #define SKK_KEYSYMS_colon ((guint) 0x003a) #define SKK_KEYSYMS_semicolon ((guint) 0x003b) #define SKK_KEYSYMS_less ((guint) 0x003c) #define SKK_KEYSYMS_equal ((guint) 0x003d) #define SKK_KEYSYMS_greater ((guint) 0x003e) #define SKK_KEYSYMS_question ((guint) 0x003f) #define SKK_KEYSYMS_at ((guint) 0x0040) #define SKK_KEYSYMS_A ((guint) 0x0041) #define SKK_KEYSYMS_B ((guint) 0x0042) #define SKK_KEYSYMS_C ((guint) 0x0043) #define SKK_KEYSYMS_D ((guint) 0x0044) #define SKK_KEYSYMS_E ((guint) 0x0045) #define SKK_KEYSYMS_F ((guint) 0x0046) #define SKK_KEYSYMS_G ((guint) 0x0047) #define SKK_KEYSYMS_H ((guint) 0x0048) #define SKK_KEYSYMS_I ((guint) 0x0049) #define SKK_KEYSYMS_J ((guint) 0x004a) #define SKK_KEYSYMS_K ((guint) 0x004b) #define SKK_KEYSYMS_L ((guint) 0x004c) #define SKK_KEYSYMS_M ((guint) 0x004d) #define SKK_KEYSYMS_N ((guint) 0x004e) #define SKK_KEYSYMS_O ((guint) 0x004f) #define SKK_KEYSYMS_P ((guint) 0x0050) #define SKK_KEYSYMS_Q ((guint) 0x0051) #define SKK_KEYSYMS_R ((guint) 0x0052) #define SKK_KEYSYMS_S ((guint) 0x0053) #define SKK_KEYSYMS_T ((guint) 0x0054) #define SKK_KEYSYMS_U ((guint) 0x0055) #define SKK_KEYSYMS_V ((guint) 0x0056) #define SKK_KEYSYMS_W ((guint) 0x0057) #define SKK_KEYSYMS_X ((guint) 0x0058) #define SKK_KEYSYMS_Y ((guint) 0x0059) #define SKK_KEYSYMS_Z ((guint) 0x005a) #define SKK_KEYSYMS_bracketleft ((guint) 0x005b) #define SKK_KEYSYMS_backslash ((guint) 0x005c) #define SKK_KEYSYMS_bracketright ((guint) 0x005d) #define SKK_KEYSYMS_asciicircum ((guint) 0x005e) #define SKK_KEYSYMS_underscore ((guint) 0x005f) #define SKK_KEYSYMS_grave ((guint) 0x0060) #define SKK_KEYSYMS_quoteleft ((guint) 0x0060) #define SKK_KEYSYMS_a ((guint) 0x0061) #define SKK_KEYSYMS_b ((guint) 0x0062) #define SKK_KEYSYMS_c ((guint) 0x0063) #define SKK_KEYSYMS_d ((guint) 0x0064) #define SKK_KEYSYMS_e ((guint) 0x0065) #define SKK_KEYSYMS_f ((guint) 0x0066) #define SKK_KEYSYMS_g ((guint) 0x0067) #define SKK_KEYSYMS_h ((guint) 0x0068) #define SKK_KEYSYMS_i ((guint) 0x0069) #define SKK_KEYSYMS_j ((guint) 0x006a) #define SKK_KEYSYMS_k ((guint) 0x006b) #define SKK_KEYSYMS_l ((guint) 0x006c) #define SKK_KEYSYMS_m ((guint) 0x006d) #define SKK_KEYSYMS_n ((guint) 0x006e) #define SKK_KEYSYMS_o ((guint) 0x006f) #define SKK_KEYSYMS_p ((guint) 0x0070) #define SKK_KEYSYMS_q ((guint) 0x0071) #define SKK_KEYSYMS_r ((guint) 0x0072) #define SKK_KEYSYMS_s ((guint) 0x0073) #define SKK_KEYSYMS_t ((guint) 0x0074) #define SKK_KEYSYMS_u ((guint) 0x0075) #define SKK_KEYSYMS_v ((guint) 0x0076) #define SKK_KEYSYMS_w ((guint) 0x0077) #define SKK_KEYSYMS_x ((guint) 0x0078) #define SKK_KEYSYMS_y ((guint) 0x0079) #define SKK_KEYSYMS_z ((guint) 0x007a) #define SKK_KEYSYMS_braceleft ((guint) 0x007b) #define SKK_KEYSYMS_bar ((guint) 0x007c) #define SKK_KEYSYMS_braceright ((guint) 0x007d) #define SKK_KEYSYMS_asciitilde ((guint) 0x007e) #define SKK_KEYSYMS_nobreakspace ((guint) 0x00a0) #define SKK_KEYSYMS_exclamdown ((guint) 0x00a1) #define SKK_KEYSYMS_cent ((guint) 0x00a2) #define SKK_KEYSYMS_sterling ((guint) 0x00a3) #define SKK_KEYSYMS_currency ((guint) 0x00a4) #define SKK_KEYSYMS_yen ((guint) 0x00a5) #define SKK_KEYSYMS_brokenbar ((guint) 0x00a6) #define SKK_KEYSYMS_section ((guint) 0x00a7) #define SKK_KEYSYMS_diaeresis ((guint) 0x00a8) #define SKK_KEYSYMS_copyright ((guint) 0x00a9) #define SKK_KEYSYMS_ordfeminine ((guint) 0x00aa) #define SKK_KEYSYMS_guillemotleft ((guint) 0x00ab) #define SKK_KEYSYMS_notsign ((guint) 0x00ac) #define SKK_KEYSYMS_hyphen ((guint) 0x00ad) #define SKK_KEYSYMS_registered ((guint) 0x00ae) #define SKK_KEYSYMS_macron ((guint) 0x00af) #define SKK_KEYSYMS_degree ((guint) 0x00b0) #define SKK_KEYSYMS_plusminus ((guint) 0x00b1) #define SKK_KEYSYMS_twosuperior ((guint) 0x00b2) #define SKK_KEYSYMS_threesuperior ((guint) 0x00b3) #define SKK_KEYSYMS_acute ((guint) 0x00b4) #define SKK_KEYSYMS_mu ((guint) 0x00b5) #define SKK_KEYSYMS_paragraph ((guint) 0x00b6) #define SKK_KEYSYMS_periodcentered ((guint) 0x00b7) #define SKK_KEYSYMS_cedilla ((guint) 0x00b8) #define SKK_KEYSYMS_onesuperior ((guint) 0x00b9) #define SKK_KEYSYMS_masculine ((guint) 0x00ba) #define SKK_KEYSYMS_guillemotright ((guint) 0x00bb) #define SKK_KEYSYMS_onequarter ((guint) 0x00bc) #define SKK_KEYSYMS_onehalf ((guint) 0x00bd) #define SKK_KEYSYMS_threequarters ((guint) 0x00be) #define SKK_KEYSYMS_questiondown ((guint) 0x00bf) #define SKK_KEYSYMS_Agrave ((guint) 0x00c0) #define SKK_KEYSYMS_Aacute ((guint) 0x00c1) #define SKK_KEYSYMS_Acircumflex ((guint) 0x00c2) #define SKK_KEYSYMS_Atilde ((guint) 0x00c3) #define SKK_KEYSYMS_Adiaeresis ((guint) 0x00c4) #define SKK_KEYSYMS_Aring ((guint) 0x00c5) #define SKK_KEYSYMS_AE ((guint) 0x00c6) #define SKK_KEYSYMS_Ccedilla ((guint) 0x00c7) #define SKK_KEYSYMS_Egrave ((guint) 0x00c8) #define SKK_KEYSYMS_Eacute ((guint) 0x00c9) #define SKK_KEYSYMS_Ecircumflex ((guint) 0x00ca) #define SKK_KEYSYMS_Ediaeresis ((guint) 0x00cb) #define SKK_KEYSYMS_Igrave ((guint) 0x00cc) #define SKK_KEYSYMS_Iacute ((guint) 0x00cd) #define SKK_KEYSYMS_Icircumflex ((guint) 0x00ce) #define SKK_KEYSYMS_Idiaeresis ((guint) 0x00cf) #define SKK_KEYSYMS_ETH ((guint) 0x00d0) #define SKK_KEYSYMS_Eth ((guint) 0x00d0) #define SKK_KEYSYMS_Ntilde ((guint) 0x00d1) #define SKK_KEYSYMS_Ograve ((guint) 0x00d2) #define SKK_KEYSYMS_Oacute ((guint) 0x00d3) #define SKK_KEYSYMS_Ocircumflex ((guint) 0x00d4) #define SKK_KEYSYMS_Otilde ((guint) 0x00d5) #define SKK_KEYSYMS_Odiaeresis ((guint) 0x00d6) #define SKK_KEYSYMS_multiply ((guint) 0x00d7) #define SKK_KEYSYMS_Oslash ((guint) 0x00d8) #define SKK_KEYSYMS_Ooblique ((guint) 0x00d8) #define SKK_KEYSYMS_Ugrave ((guint) 0x00d9) #define SKK_KEYSYMS_Uacute ((guint) 0x00da) #define SKK_KEYSYMS_Ucircumflex ((guint) 0x00db) #define SKK_KEYSYMS_Udiaeresis ((guint) 0x00dc) #define SKK_KEYSYMS_Yacute ((guint) 0x00dd) #define SKK_KEYSYMS_THORN ((guint) 0x00de) #define SKK_KEYSYMS_Thorn ((guint) 0x00de) #define SKK_KEYSYMS_ssharp ((guint) 0x00df) #define SKK_KEYSYMS_agrave ((guint) 0x00e0) #define SKK_KEYSYMS_aacute ((guint) 0x00e1) #define SKK_KEYSYMS_acircumflex ((guint) 0x00e2) #define SKK_KEYSYMS_atilde ((guint) 0x00e3) #define SKK_KEYSYMS_adiaeresis ((guint) 0x00e4) #define SKK_KEYSYMS_aring ((guint) 0x00e5) #define SKK_KEYSYMS_ae ((guint) 0x00e6) #define SKK_KEYSYMS_ccedilla ((guint) 0x00e7) #define SKK_KEYSYMS_egrave ((guint) 0x00e8) #define SKK_KEYSYMS_eacute ((guint) 0x00e9) #define SKK_KEYSYMS_ecircumflex ((guint) 0x00ea) #define SKK_KEYSYMS_ediaeresis ((guint) 0x00eb) #define SKK_KEYSYMS_igrave ((guint) 0x00ec) #define SKK_KEYSYMS_iacute ((guint) 0x00ed) #define SKK_KEYSYMS_icircumflex ((guint) 0x00ee) #define SKK_KEYSYMS_idiaeresis ((guint) 0x00ef) #define SKK_KEYSYMS_eth ((guint) 0x00f0) #define SKK_KEYSYMS_ntilde ((guint) 0x00f1) #define SKK_KEYSYMS_ograve ((guint) 0x00f2) #define SKK_KEYSYMS_oacute ((guint) 0x00f3) #define SKK_KEYSYMS_ocircumflex ((guint) 0x00f4) #define SKK_KEYSYMS_otilde ((guint) 0x00f5) #define SKK_KEYSYMS_odiaeresis ((guint) 0x00f6) #define SKK_KEYSYMS_division ((guint) 0x00f7) #define SKK_KEYSYMS_oslash ((guint) 0x00f8) #define SKK_KEYSYMS_ooblique ((guint) 0x00f8) #define SKK_KEYSYMS_ugrave ((guint) 0x00f9) #define SKK_KEYSYMS_uacute ((guint) 0x00fa) #define SKK_KEYSYMS_ucircumflex ((guint) 0x00fb) #define SKK_KEYSYMS_udiaeresis ((guint) 0x00fc) #define SKK_KEYSYMS_yacute ((guint) 0x00fd) #define SKK_KEYSYMS_thorn ((guint) 0x00fe) #define SKK_KEYSYMS_ydiaeresis ((guint) 0x00ff) #define SKK_KEYSYMS_Aogonek ((guint) 0x01a1) #define SKK_KEYSYMS_breve ((guint) 0x01a2) #define SKK_KEYSYMS_Lstroke ((guint) 0x01a3) #define SKK_KEYSYMS_Lcaron ((guint) 0x01a5) #define SKK_KEYSYMS_Sacute ((guint) 0x01a6) #define SKK_KEYSYMS_Scaron ((guint) 0x01a9) #define SKK_KEYSYMS_Scedilla ((guint) 0x01aa) #define SKK_KEYSYMS_Tcaron ((guint) 0x01ab) #define SKK_KEYSYMS_Zacute ((guint) 0x01ac) #define SKK_KEYSYMS_Zcaron ((guint) 0x01ae) #define SKK_KEYSYMS_Zabovedot ((guint) 0x01af) #define SKK_KEYSYMS_aogonek ((guint) 0x01b1) #define SKK_KEYSYMS_ogonek ((guint) 0x01b2) #define SKK_KEYSYMS_lstroke ((guint) 0x01b3) #define SKK_KEYSYMS_lcaron ((guint) 0x01b5) #define SKK_KEYSYMS_sacute ((guint) 0x01b6) #define SKK_KEYSYMS_caron ((guint) 0x01b7) #define SKK_KEYSYMS_scaron ((guint) 0x01b9) #define SKK_KEYSYMS_scedilla ((guint) 0x01ba) #define SKK_KEYSYMS_tcaron ((guint) 0x01bb) #define SKK_KEYSYMS_zacute ((guint) 0x01bc) #define SKK_KEYSYMS_doubleacute ((guint) 0x01bd) #define SKK_KEYSYMS_zcaron ((guint) 0x01be) #define SKK_KEYSYMS_zabovedot ((guint) 0x01bf) #define SKK_KEYSYMS_Racute ((guint) 0x01c0) #define SKK_KEYSYMS_Abreve ((guint) 0x01c3) #define SKK_KEYSYMS_Lacute ((guint) 0x01c5) #define SKK_KEYSYMS_Cacute ((guint) 0x01c6) #define SKK_KEYSYMS_Ccaron ((guint) 0x01c8) #define SKK_KEYSYMS_Eogonek ((guint) 0x01ca) #define SKK_KEYSYMS_Ecaron ((guint) 0x01cc) #define SKK_KEYSYMS_Dcaron ((guint) 0x01cf) #define SKK_KEYSYMS_Dstroke ((guint) 0x01d0) #define SKK_KEYSYMS_Nacute ((guint) 0x01d1) #define SKK_KEYSYMS_Ncaron ((guint) 0x01d2) #define SKK_KEYSYMS_Odoubleacute ((guint) 0x01d5) #define SKK_KEYSYMS_Rcaron ((guint) 0x01d8) #define SKK_KEYSYMS_Uring ((guint) 0x01d9) #define SKK_KEYSYMS_Udoubleacute ((guint) 0x01db) #define SKK_KEYSYMS_Tcedilla ((guint) 0x01de) #define SKK_KEYSYMS_racute ((guint) 0x01e0) #define SKK_KEYSYMS_abreve ((guint) 0x01e3) #define SKK_KEYSYMS_lacute ((guint) 0x01e5) #define SKK_KEYSYMS_cacute ((guint) 0x01e6) #define SKK_KEYSYMS_ccaron ((guint) 0x01e8) #define SKK_KEYSYMS_eogonek ((guint) 0x01ea) #define SKK_KEYSYMS_ecaron ((guint) 0x01ec) #define SKK_KEYSYMS_dcaron ((guint) 0x01ef) #define SKK_KEYSYMS_dstroke ((guint) 0x01f0) #define SKK_KEYSYMS_nacute ((guint) 0x01f1) #define SKK_KEYSYMS_ncaron ((guint) 0x01f2) #define SKK_KEYSYMS_odoubleacute ((guint) 0x01f5) #define SKK_KEYSYMS_rcaron ((guint) 0x01f8) #define SKK_KEYSYMS_uring ((guint) 0x01f9) #define SKK_KEYSYMS_udoubleacute ((guint) 0x01fb) #define SKK_KEYSYMS_tcedilla ((guint) 0x01fe) #define SKK_KEYSYMS_abovedot ((guint) 0x01ff) #define SKK_KEYSYMS_Hstroke ((guint) 0x02a1) #define SKK_KEYSYMS_Hcircumflex ((guint) 0x02a6) #define SKK_KEYSYMS_Iabovedot ((guint) 0x02a9) #define SKK_KEYSYMS_Gbreve ((guint) 0x02ab) #define SKK_KEYSYMS_Jcircumflex ((guint) 0x02ac) #define SKK_KEYSYMS_hstroke ((guint) 0x02b1) #define SKK_KEYSYMS_hcircumflex ((guint) 0x02b6) #define SKK_KEYSYMS_idotless ((guint) 0x02b9) #define SKK_KEYSYMS_gbreve ((guint) 0x02bb) #define SKK_KEYSYMS_jcircumflex ((guint) 0x02bc) #define SKK_KEYSYMS_Cabovedot ((guint) 0x02c5) #define SKK_KEYSYMS_Ccircumflex ((guint) 0x02c6) #define SKK_KEYSYMS_Gabovedot ((guint) 0x02d5) #define SKK_KEYSYMS_Gcircumflex ((guint) 0x02d8) #define SKK_KEYSYMS_Ubreve ((guint) 0x02dd) #define SKK_KEYSYMS_Scircumflex ((guint) 0x02de) #define SKK_KEYSYMS_cabovedot ((guint) 0x02e5) #define SKK_KEYSYMS_ccircumflex ((guint) 0x02e6) #define SKK_KEYSYMS_gabovedot ((guint) 0x02f5) #define SKK_KEYSYMS_gcircumflex ((guint) 0x02f8) #define SKK_KEYSYMS_ubreve ((guint) 0x02fd) #define SKK_KEYSYMS_scircumflex ((guint) 0x02fe) #define SKK_KEYSYMS_kra ((guint) 0x03a2) #define SKK_KEYSYMS_kappa ((guint) 0x03a2) #define SKK_KEYSYMS_Rcedilla ((guint) 0x03a3) #define SKK_KEYSYMS_Itilde ((guint) 0x03a5) #define SKK_KEYSYMS_Lcedilla ((guint) 0x03a6) #define SKK_KEYSYMS_Emacron ((guint) 0x03aa) #define SKK_KEYSYMS_Gcedilla ((guint) 0x03ab) #define SKK_KEYSYMS_Tslash ((guint) 0x03ac) #define SKK_KEYSYMS_rcedilla ((guint) 0x03b3) #define SKK_KEYSYMS_itilde ((guint) 0x03b5) #define SKK_KEYSYMS_lcedilla ((guint) 0x03b6) #define SKK_KEYSYMS_emacron ((guint) 0x03ba) #define SKK_KEYSYMS_gcedilla ((guint) 0x03bb) #define SKK_KEYSYMS_tslash ((guint) 0x03bc) #define SKK_KEYSYMS_ENG ((guint) 0x03bd) #define SKK_KEYSYMS_eng ((guint) 0x03bf) #define SKK_KEYSYMS_Amacron ((guint) 0x03c0) #define SKK_KEYSYMS_Iogonek ((guint) 0x03c7) #define SKK_KEYSYMS_Eabovedot ((guint) 0x03cc) #define SKK_KEYSYMS_Imacron ((guint) 0x03cf) #define SKK_KEYSYMS_Ncedilla ((guint) 0x03d1) #define SKK_KEYSYMS_Omacron ((guint) 0x03d2) #define SKK_KEYSYMS_Kcedilla ((guint) 0x03d3) #define SKK_KEYSYMS_Uogonek ((guint) 0x03d9) #define SKK_KEYSYMS_Utilde ((guint) 0x03dd) #define SKK_KEYSYMS_Umacron ((guint) 0x03de) #define SKK_KEYSYMS_amacron ((guint) 0x03e0) #define SKK_KEYSYMS_iogonek ((guint) 0x03e7) #define SKK_KEYSYMS_eabovedot ((guint) 0x03ec) #define SKK_KEYSYMS_imacron ((guint) 0x03ef) #define SKK_KEYSYMS_ncedilla ((guint) 0x03f1) #define SKK_KEYSYMS_omacron ((guint) 0x03f2) #define SKK_KEYSYMS_kcedilla ((guint) 0x03f3) #define SKK_KEYSYMS_uogonek ((guint) 0x03f9) #define SKK_KEYSYMS_utilde ((guint) 0x03fd) #define SKK_KEYSYMS_umacron ((guint) 0x03fe) #define SKK_KEYSYMS_Wcircumflex ((guint) 0x1000174) #define SKK_KEYSYMS_wcircumflex ((guint) 0x1000175) #define SKK_KEYSYMS_Ycircumflex ((guint) 0x1000176) #define SKK_KEYSYMS_ycircumflex ((guint) 0x1000177) #define SKK_KEYSYMS_Babovedot ((guint) 0x1001e02) #define SKK_KEYSYMS_babovedot ((guint) 0x1001e03) #define SKK_KEYSYMS_Dabovedot ((guint) 0x1001e0a) #define SKK_KEYSYMS_dabovedot ((guint) 0x1001e0b) #define SKK_KEYSYMS_Fabovedot ((guint) 0x1001e1e) #define SKK_KEYSYMS_fabovedot ((guint) 0x1001e1f) #define SKK_KEYSYMS_Mabovedot ((guint) 0x1001e40) #define SKK_KEYSYMS_mabovedot ((guint) 0x1001e41) #define SKK_KEYSYMS_Pabovedot ((guint) 0x1001e56) #define SKK_KEYSYMS_pabovedot ((guint) 0x1001e57) #define SKK_KEYSYMS_Sabovedot ((guint) 0x1001e60) #define SKK_KEYSYMS_sabovedot ((guint) 0x1001e61) #define SKK_KEYSYMS_Tabovedot ((guint) 0x1001e6a) #define SKK_KEYSYMS_tabovedot ((guint) 0x1001e6b) #define SKK_KEYSYMS_Wgrave ((guint) 0x1001e80) #define SKK_KEYSYMS_wgrave ((guint) 0x1001e81) #define SKK_KEYSYMS_Wacute ((guint) 0x1001e82) #define SKK_KEYSYMS_wacute ((guint) 0x1001e83) #define SKK_KEYSYMS_Wdiaeresis ((guint) 0x1001e84) #define SKK_KEYSYMS_wdiaeresis ((guint) 0x1001e85) #define SKK_KEYSYMS_Ygrave ((guint) 0x1001ef2) #define SKK_KEYSYMS_ygrave ((guint) 0x1001ef3) #define SKK_KEYSYMS_OE ((guint) 0x13bc) #define SKK_KEYSYMS_oe ((guint) 0x13bd) #define SKK_KEYSYMS_Ydiaeresis ((guint) 0x13be) #define SKK_KEYSYMS_overline ((guint) 0x047e) #define SKK_KEYSYMS_kana_fullstop ((guint) 0x04a1) #define SKK_KEYSYMS_kana_openingbracket ((guint) 0x04a2) #define SKK_KEYSYMS_kana_closingbracket ((guint) 0x04a3) #define SKK_KEYSYMS_kana_comma ((guint) 0x04a4) #define SKK_KEYSYMS_kana_conjunctive ((guint) 0x04a5) #define SKK_KEYSYMS_kana_middledot ((guint) 0x04a5) #define SKK_KEYSYMS_kana_WO ((guint) 0x04a6) #define SKK_KEYSYMS_kana_a ((guint) 0x04a7) #define SKK_KEYSYMS_kana_i ((guint) 0x04a8) #define SKK_KEYSYMS_kana_u ((guint) 0x04a9) #define SKK_KEYSYMS_kana_e ((guint) 0x04aa) #define SKK_KEYSYMS_kana_o ((guint) 0x04ab) #define SKK_KEYSYMS_kana_ya ((guint) 0x04ac) #define SKK_KEYSYMS_kana_yu ((guint) 0x04ad) #define SKK_KEYSYMS_kana_yo ((guint) 0x04ae) #define SKK_KEYSYMS_kana_tsu ((guint) 0x04af) #define SKK_KEYSYMS_kana_tu ((guint) 0x04af) #define SKK_KEYSYMS_prolongedsound ((guint) 0x04b0) #define SKK_KEYSYMS_kana_A ((guint) 0x04b1) #define SKK_KEYSYMS_kana_I ((guint) 0x04b2) #define SKK_KEYSYMS_kana_U ((guint) 0x04b3) #define SKK_KEYSYMS_kana_E ((guint) 0x04b4) #define SKK_KEYSYMS_kana_O ((guint) 0x04b5) #define SKK_KEYSYMS_kana_KA ((guint) 0x04b6) #define SKK_KEYSYMS_kana_KI ((guint) 0x04b7) #define SKK_KEYSYMS_kana_KU ((guint) 0x04b8) #define SKK_KEYSYMS_kana_KE ((guint) 0x04b9) #define SKK_KEYSYMS_kana_KO ((guint) 0x04ba) #define SKK_KEYSYMS_kana_SA ((guint) 0x04bb) #define SKK_KEYSYMS_kana_SHI ((guint) 0x04bc) #define SKK_KEYSYMS_kana_SU ((guint) 0x04bd) #define SKK_KEYSYMS_kana_SE ((guint) 0x04be) #define SKK_KEYSYMS_kana_SO ((guint) 0x04bf) #define SKK_KEYSYMS_kana_TA ((guint) 0x04c0) #define SKK_KEYSYMS_kana_CHI ((guint) 0x04c1) #define SKK_KEYSYMS_kana_TI ((guint) 0x04c1) #define SKK_KEYSYMS_kana_TSU ((guint) 0x04c2) #define SKK_KEYSYMS_kana_TU ((guint) 0x04c2) #define SKK_KEYSYMS_kana_TE ((guint) 0x04c3) #define SKK_KEYSYMS_kana_TO ((guint) 0x04c4) #define SKK_KEYSYMS_kana_NA ((guint) 0x04c5) #define SKK_KEYSYMS_kana_NI ((guint) 0x04c6) #define SKK_KEYSYMS_kana_NU ((guint) 0x04c7) #define SKK_KEYSYMS_kana_NE ((guint) 0x04c8) #define SKK_KEYSYMS_kana_NO ((guint) 0x04c9) #define SKK_KEYSYMS_kana_HA ((guint) 0x04ca) #define SKK_KEYSYMS_kana_HI ((guint) 0x04cb) #define SKK_KEYSYMS_kana_FU ((guint) 0x04cc) #define SKK_KEYSYMS_kana_HU ((guint) 0x04cc) #define SKK_KEYSYMS_kana_HE ((guint) 0x04cd) #define SKK_KEYSYMS_kana_HO ((guint) 0x04ce) #define SKK_KEYSYMS_kana_MA ((guint) 0x04cf) #define SKK_KEYSYMS_kana_MI ((guint) 0x04d0) #define SKK_KEYSYMS_kana_MU ((guint) 0x04d1) #define SKK_KEYSYMS_kana_ME ((guint) 0x04d2) #define SKK_KEYSYMS_kana_MO ((guint) 0x04d3) #define SKK_KEYSYMS_kana_YA ((guint) 0x04d4) #define SKK_KEYSYMS_kana_YU ((guint) 0x04d5) #define SKK_KEYSYMS_kana_YO ((guint) 0x04d6) #define SKK_KEYSYMS_kana_RA ((guint) 0x04d7) #define SKK_KEYSYMS_kana_RI ((guint) 0x04d8) #define SKK_KEYSYMS_kana_RU ((guint) 0x04d9) #define SKK_KEYSYMS_kana_RE ((guint) 0x04da) #define SKK_KEYSYMS_kana_RO ((guint) 0x04db) #define SKK_KEYSYMS_kana_WA ((guint) 0x04dc) #define SKK_KEYSYMS_kana_N ((guint) 0x04dd) #define SKK_KEYSYMS_voicedsound ((guint) 0x04de) #define SKK_KEYSYMS_semivoicedsound ((guint) 0x04df) #define SKK_KEYSYMS_kana_switch ((guint) 0xff7e) #define SKK_KEYSYMS_Farsi_0 ((guint) 0x10006f0) #define SKK_KEYSYMS_Farsi_1 ((guint) 0x10006f1) #define SKK_KEYSYMS_Farsi_2 ((guint) 0x10006f2) #define SKK_KEYSYMS_Farsi_3 ((guint) 0x10006f3) #define SKK_KEYSYMS_Farsi_4 ((guint) 0x10006f4) #define SKK_KEYSYMS_Farsi_5 ((guint) 0x10006f5) #define SKK_KEYSYMS_Farsi_6 ((guint) 0x10006f6) #define SKK_KEYSYMS_Farsi_7 ((guint) 0x10006f7) #define SKK_KEYSYMS_Farsi_8 ((guint) 0x10006f8) #define SKK_KEYSYMS_Farsi_9 ((guint) 0x10006f9) #define SKK_KEYSYMS_Arabic_percent ((guint) 0x100066a) #define SKK_KEYSYMS_Arabic_superscript_alef ((guint) 0x1000670) #define SKK_KEYSYMS_Arabic_tteh ((guint) 0x1000679) #define SKK_KEYSYMS_Arabic_peh ((guint) 0x100067e) #define SKK_KEYSYMS_Arabic_tcheh ((guint) 0x1000686) #define SKK_KEYSYMS_Arabic_ddal ((guint) 0x1000688) #define SKK_KEYSYMS_Arabic_rreh ((guint) 0x1000691) #define SKK_KEYSYMS_Arabic_comma ((guint) 0x05ac) #define SKK_KEYSYMS_Arabic_fullstop ((guint) 0x10006d4) #define SKK_KEYSYMS_Arabic_0 ((guint) 0x1000660) #define SKK_KEYSYMS_Arabic_1 ((guint) 0x1000661) #define SKK_KEYSYMS_Arabic_2 ((guint) 0x1000662) #define SKK_KEYSYMS_Arabic_3 ((guint) 0x1000663) #define SKK_KEYSYMS_Arabic_4 ((guint) 0x1000664) #define SKK_KEYSYMS_Arabic_5 ((guint) 0x1000665) #define SKK_KEYSYMS_Arabic_6 ((guint) 0x1000666) #define SKK_KEYSYMS_Arabic_7 ((guint) 0x1000667) #define SKK_KEYSYMS_Arabic_8 ((guint) 0x1000668) #define SKK_KEYSYMS_Arabic_9 ((guint) 0x1000669) #define SKK_KEYSYMS_Arabic_semicolon ((guint) 0x05bb) #define SKK_KEYSYMS_Arabic_question_mark ((guint) 0x05bf) #define SKK_KEYSYMS_Arabic_hamza ((guint) 0x05c1) #define SKK_KEYSYMS_Arabic_maddaonalef ((guint) 0x05c2) #define SKK_KEYSYMS_Arabic_hamzaonalef ((guint) 0x05c3) #define SKK_KEYSYMS_Arabic_hamzaonwaw ((guint) 0x05c4) #define SKK_KEYSYMS_Arabic_hamzaunderalef ((guint) 0x05c5) #define SKK_KEYSYMS_Arabic_hamzaonyeh ((guint) 0x05c6) #define SKK_KEYSYMS_Arabic_alef ((guint) 0x05c7) #define SKK_KEYSYMS_Arabic_beh ((guint) 0x05c8) #define SKK_KEYSYMS_Arabic_tehmarbuta ((guint) 0x05c9) #define SKK_KEYSYMS_Arabic_teh ((guint) 0x05ca) #define SKK_KEYSYMS_Arabic_theh ((guint) 0x05cb) #define SKK_KEYSYMS_Arabic_jeem ((guint) 0x05cc) #define SKK_KEYSYMS_Arabic_hah ((guint) 0x05cd) #define SKK_KEYSYMS_Arabic_khah ((guint) 0x05ce) #define SKK_KEYSYMS_Arabic_dal ((guint) 0x05cf) #define SKK_KEYSYMS_Arabic_thal ((guint) 0x05d0) #define SKK_KEYSYMS_Arabic_ra ((guint) 0x05d1) #define SKK_KEYSYMS_Arabic_zain ((guint) 0x05d2) #define SKK_KEYSYMS_Arabic_seen ((guint) 0x05d3) #define SKK_KEYSYMS_Arabic_sheen ((guint) 0x05d4) #define SKK_KEYSYMS_Arabic_sad ((guint) 0x05d5) #define SKK_KEYSYMS_Arabic_dad ((guint) 0x05d6) #define SKK_KEYSYMS_Arabic_tah ((guint) 0x05d7) #define SKK_KEYSYMS_Arabic_zah ((guint) 0x05d8) #define SKK_KEYSYMS_Arabic_ain ((guint) 0x05d9) #define SKK_KEYSYMS_Arabic_ghain ((guint) 0x05da) #define SKK_KEYSYMS_Arabic_tatweel ((guint) 0x05e0) #define SKK_KEYSYMS_Arabic_feh ((guint) 0x05e1) #define SKK_KEYSYMS_Arabic_qaf ((guint) 0x05e2) #define SKK_KEYSYMS_Arabic_kaf ((guint) 0x05e3) #define SKK_KEYSYMS_Arabic_lam ((guint) 0x05e4) #define SKK_KEYSYMS_Arabic_meem ((guint) 0x05e5) #define SKK_KEYSYMS_Arabic_noon ((guint) 0x05e6) #define SKK_KEYSYMS_Arabic_ha ((guint) 0x05e7) #define SKK_KEYSYMS_Arabic_heh ((guint) 0x05e7) #define SKK_KEYSYMS_Arabic_waw ((guint) 0x05e8) #define SKK_KEYSYMS_Arabic_alefmaksura ((guint) 0x05e9) #define SKK_KEYSYMS_Arabic_yeh ((guint) 0x05ea) #define SKK_KEYSYMS_Arabic_fathatan ((guint) 0x05eb) #define SKK_KEYSYMS_Arabic_dammatan ((guint) 0x05ec) #define SKK_KEYSYMS_Arabic_kasratan ((guint) 0x05ed) #define SKK_KEYSYMS_Arabic_fatha ((guint) 0x05ee) #define SKK_KEYSYMS_Arabic_damma ((guint) 0x05ef) #define SKK_KEYSYMS_Arabic_kasra ((guint) 0x05f0) #define SKK_KEYSYMS_Arabic_shadda ((guint) 0x05f1) #define SKK_KEYSYMS_Arabic_sukun ((guint) 0x05f2) #define SKK_KEYSYMS_Arabic_madda_above ((guint) 0x1000653) #define SKK_KEYSYMS_Arabic_hamza_above ((guint) 0x1000654) #define SKK_KEYSYMS_Arabic_hamza_below ((guint) 0x1000655) #define SKK_KEYSYMS_Arabic_jeh ((guint) 0x1000698) #define SKK_KEYSYMS_Arabic_veh ((guint) 0x10006a4) #define SKK_KEYSYMS_Arabic_keheh ((guint) 0x10006a9) #define SKK_KEYSYMS_Arabic_gaf ((guint) 0x10006af) #define SKK_KEYSYMS_Arabic_noon_ghunna ((guint) 0x10006ba) #define SKK_KEYSYMS_Arabic_heh_doachashmee ((guint) 0x10006be) #define SKK_KEYSYMS_Farsi_yeh ((guint) 0x10006cc) #define SKK_KEYSYMS_Arabic_farsi_yeh ((guint) 0x10006cc) #define SKK_KEYSYMS_Arabic_yeh_baree ((guint) 0x10006d2) #define SKK_KEYSYMS_Arabic_heh_goal ((guint) 0x10006c1) #define SKK_KEYSYMS_Arabic_switch ((guint) 0xff7e) #define SKK_KEYSYMS_Cyrillic_GHE_bar ((guint) 0x1000492) #define SKK_KEYSYMS_Cyrillic_ghe_bar ((guint) 0x1000493) #define SKK_KEYSYMS_Cyrillic_ZHE_descender ((guint) 0x1000496) #define SKK_KEYSYMS_Cyrillic_zhe_descender ((guint) 0x1000497) #define SKK_KEYSYMS_Cyrillic_KA_descender ((guint) 0x100049a) #define SKK_KEYSYMS_Cyrillic_ka_descender ((guint) 0x100049b) #define SKK_KEYSYMS_Cyrillic_KA_vertstroke ((guint) 0x100049c) #define SKK_KEYSYMS_Cyrillic_ka_vertstroke ((guint) 0x100049d) #define SKK_KEYSYMS_Cyrillic_EN_descender ((guint) 0x10004a2) #define SKK_KEYSYMS_Cyrillic_en_descender ((guint) 0x10004a3) #define SKK_KEYSYMS_Cyrillic_U_straight ((guint) 0x10004ae) #define SKK_KEYSYMS_Cyrillic_u_straight ((guint) 0x10004af) #define SKK_KEYSYMS_Cyrillic_U_straight_bar ((guint) 0x10004b0) #define SKK_KEYSYMS_Cyrillic_u_straight_bar ((guint) 0x10004b1) #define SKK_KEYSYMS_Cyrillic_HA_descender ((guint) 0x10004b2) #define SKK_KEYSYMS_Cyrillic_ha_descender ((guint) 0x10004b3) #define SKK_KEYSYMS_Cyrillic_CHE_descender ((guint) 0x10004b6) #define SKK_KEYSYMS_Cyrillic_che_descender ((guint) 0x10004b7) #define SKK_KEYSYMS_Cyrillic_CHE_vertstroke ((guint) 0x10004b8) #define SKK_KEYSYMS_Cyrillic_che_vertstroke ((guint) 0x10004b9) #define SKK_KEYSYMS_Cyrillic_SHHA ((guint) 0x10004ba) #define SKK_KEYSYMS_Cyrillic_shha ((guint) 0x10004bb) #define SKK_KEYSYMS_Cyrillic_SCHWA ((guint) 0x10004d8) #define SKK_KEYSYMS_Cyrillic_schwa ((guint) 0x10004d9) #define SKK_KEYSYMS_Cyrillic_I_macron ((guint) 0x10004e2) #define SKK_KEYSYMS_Cyrillic_i_macron ((guint) 0x10004e3) #define SKK_KEYSYMS_Cyrillic_O_bar ((guint) 0x10004e8) #define SKK_KEYSYMS_Cyrillic_o_bar ((guint) 0x10004e9) #define SKK_KEYSYMS_Cyrillic_U_macron ((guint) 0x10004ee) #define SKK_KEYSYMS_Cyrillic_u_macron ((guint) 0x10004ef) #define SKK_KEYSYMS_Serbian_dje ((guint) 0x06a1) #define SKK_KEYSYMS_Macedonia_gje ((guint) 0x06a2) #define SKK_KEYSYMS_Cyrillic_io ((guint) 0x06a3) #define SKK_KEYSYMS_Ukrainian_ie ((guint) 0x06a4) #define SKK_KEYSYMS_Ukranian_je ((guint) 0x06a4) #define SKK_KEYSYMS_Macedonia_dse ((guint) 0x06a5) #define SKK_KEYSYMS_Ukrainian_i ((guint) 0x06a6) #define SKK_KEYSYMS_Ukranian_i ((guint) 0x06a6) #define SKK_KEYSYMS_Ukrainian_yi ((guint) 0x06a7) #define SKK_KEYSYMS_Ukranian_yi ((guint) 0x06a7) #define SKK_KEYSYMS_Cyrillic_je ((guint) 0x06a8) #define SKK_KEYSYMS_Serbian_je ((guint) 0x06a8) #define SKK_KEYSYMS_Cyrillic_lje ((guint) 0x06a9) #define SKK_KEYSYMS_Serbian_lje ((guint) 0x06a9) #define SKK_KEYSYMS_Cyrillic_nje ((guint) 0x06aa) #define SKK_KEYSYMS_Serbian_nje ((guint) 0x06aa) #define SKK_KEYSYMS_Serbian_tshe ((guint) 0x06ab) #define SKK_KEYSYMS_Macedonia_kje ((guint) 0x06ac) #define SKK_KEYSYMS_Ukrainian_ghe_with_upturn ((guint) 0x06ad) #define SKK_KEYSYMS_Byelorussian_shortu ((guint) 0x06ae) #define SKK_KEYSYMS_Cyrillic_dzhe ((guint) 0x06af) #define SKK_KEYSYMS_Serbian_dze ((guint) 0x06af) #define SKK_KEYSYMS_numerosign ((guint) 0x06b0) #define SKK_KEYSYMS_Serbian_DJE ((guint) 0x06b1) #define SKK_KEYSYMS_Macedonia_GJE ((guint) 0x06b2) #define SKK_KEYSYMS_Cyrillic_IO ((guint) 0x06b3) #define SKK_KEYSYMS_Ukrainian_IE ((guint) 0x06b4) #define SKK_KEYSYMS_Ukranian_JE ((guint) 0x06b4) #define SKK_KEYSYMS_Macedonia_DSE ((guint) 0x06b5) #define SKK_KEYSYMS_Ukrainian_I ((guint) 0x06b6) #define SKK_KEYSYMS_Ukranian_I ((guint) 0x06b6) #define SKK_KEYSYMS_Ukrainian_YI ((guint) 0x06b7) #define SKK_KEYSYMS_Ukranian_YI ((guint) 0x06b7) #define SKK_KEYSYMS_Cyrillic_JE ((guint) 0x06b8) #define SKK_KEYSYMS_Serbian_JE ((guint) 0x06b8) #define SKK_KEYSYMS_Cyrillic_LJE ((guint) 0x06b9) #define SKK_KEYSYMS_Serbian_LJE ((guint) 0x06b9) #define SKK_KEYSYMS_Cyrillic_NJE ((guint) 0x06ba) #define SKK_KEYSYMS_Serbian_NJE ((guint) 0x06ba) #define SKK_KEYSYMS_Serbian_TSHE ((guint) 0x06bb) #define SKK_KEYSYMS_Macedonia_KJE ((guint) 0x06bc) #define SKK_KEYSYMS_Ukrainian_GHE_WITH_UPTURN ((guint) 0x06bd) #define SKK_KEYSYMS_Byelorussian_SHORTU ((guint) 0x06be) #define SKK_KEYSYMS_Cyrillic_DZHE ((guint) 0x06bf) #define SKK_KEYSYMS_Serbian_DZE ((guint) 0x06bf) #define SKK_KEYSYMS_Cyrillic_yu ((guint) 0x06c0) #define SKK_KEYSYMS_Cyrillic_a ((guint) 0x06c1) #define SKK_KEYSYMS_Cyrillic_be ((guint) 0x06c2) #define SKK_KEYSYMS_Cyrillic_tse ((guint) 0x06c3) #define SKK_KEYSYMS_Cyrillic_de ((guint) 0x06c4) #define SKK_KEYSYMS_Cyrillic_ie ((guint) 0x06c5) #define SKK_KEYSYMS_Cyrillic_ef ((guint) 0x06c6) #define SKK_KEYSYMS_Cyrillic_ghe ((guint) 0x06c7) #define SKK_KEYSYMS_Cyrillic_ha ((guint) 0x06c8) #define SKK_KEYSYMS_Cyrillic_i ((guint) 0x06c9) #define SKK_KEYSYMS_Cyrillic_shorti ((guint) 0x06ca) #define SKK_KEYSYMS_Cyrillic_ka ((guint) 0x06cb) #define SKK_KEYSYMS_Cyrillic_el ((guint) 0x06cc) #define SKK_KEYSYMS_Cyrillic_em ((guint) 0x06cd) #define SKK_KEYSYMS_Cyrillic_en ((guint) 0x06ce) #define SKK_KEYSYMS_Cyrillic_o ((guint) 0x06cf) #define SKK_KEYSYMS_Cyrillic_pe ((guint) 0x06d0) #define SKK_KEYSYMS_Cyrillic_ya ((guint) 0x06d1) #define SKK_KEYSYMS_Cyrillic_er ((guint) 0x06d2) #define SKK_KEYSYMS_Cyrillic_es ((guint) 0x06d3) #define SKK_KEYSYMS_Cyrillic_te ((guint) 0x06d4) #define SKK_KEYSYMS_Cyrillic_u ((guint) 0x06d5) #define SKK_KEYSYMS_Cyrillic_zhe ((guint) 0x06d6) #define SKK_KEYSYMS_Cyrillic_ve ((guint) 0x06d7) #define SKK_KEYSYMS_Cyrillic_softsign ((guint) 0x06d8) #define SKK_KEYSYMS_Cyrillic_yeru ((guint) 0x06d9) #define SKK_KEYSYMS_Cyrillic_ze ((guint) 0x06da) #define SKK_KEYSYMS_Cyrillic_sha ((guint) 0x06db) #define SKK_KEYSYMS_Cyrillic_e ((guint) 0x06dc) #define SKK_KEYSYMS_Cyrillic_shcha ((guint) 0x06dd) #define SKK_KEYSYMS_Cyrillic_che ((guint) 0x06de) #define SKK_KEYSYMS_Cyrillic_hardsign ((guint) 0x06df) #define SKK_KEYSYMS_Cyrillic_YU ((guint) 0x06e0) #define SKK_KEYSYMS_Cyrillic_A ((guint) 0x06e1) #define SKK_KEYSYMS_Cyrillic_BE ((guint) 0x06e2) #define SKK_KEYSYMS_Cyrillic_TSE ((guint) 0x06e3) #define SKK_KEYSYMS_Cyrillic_DE ((guint) 0x06e4) #define SKK_KEYSYMS_Cyrillic_IE ((guint) 0x06e5) #define SKK_KEYSYMS_Cyrillic_EF ((guint) 0x06e6) #define SKK_KEYSYMS_Cyrillic_GHE ((guint) 0x06e7) #define SKK_KEYSYMS_Cyrillic_HA ((guint) 0x06e8) #define SKK_KEYSYMS_Cyrillic_I ((guint) 0x06e9) #define SKK_KEYSYMS_Cyrillic_SHORTI ((guint) 0x06ea) #define SKK_KEYSYMS_Cyrillic_KA ((guint) 0x06eb) #define SKK_KEYSYMS_Cyrillic_EL ((guint) 0x06ec) #define SKK_KEYSYMS_Cyrillic_EM ((guint) 0x06ed) #define SKK_KEYSYMS_Cyrillic_EN ((guint) 0x06ee) #define SKK_KEYSYMS_Cyrillic_O ((guint) 0x06ef) #define SKK_KEYSYMS_Cyrillic_PE ((guint) 0x06f0) #define SKK_KEYSYMS_Cyrillic_YA ((guint) 0x06f1) #define SKK_KEYSYMS_Cyrillic_ER ((guint) 0x06f2) #define SKK_KEYSYMS_Cyrillic_ES ((guint) 0x06f3) #define SKK_KEYSYMS_Cyrillic_TE ((guint) 0x06f4) #define SKK_KEYSYMS_Cyrillic_U ((guint) 0x06f5) #define SKK_KEYSYMS_Cyrillic_ZHE ((guint) 0x06f6) #define SKK_KEYSYMS_Cyrillic_VE ((guint) 0x06f7) #define SKK_KEYSYMS_Cyrillic_SOFTSIGN ((guint) 0x06f8) #define SKK_KEYSYMS_Cyrillic_YERU ((guint) 0x06f9) #define SKK_KEYSYMS_Cyrillic_ZE ((guint) 0x06fa) #define SKK_KEYSYMS_Cyrillic_SHA ((guint) 0x06fb) #define SKK_KEYSYMS_Cyrillic_E ((guint) 0x06fc) #define SKK_KEYSYMS_Cyrillic_SHCHA ((guint) 0x06fd) #define SKK_KEYSYMS_Cyrillic_CHE ((guint) 0x06fe) #define SKK_KEYSYMS_Cyrillic_HARDSIGN ((guint) 0x06ff) #define SKK_KEYSYMS_Greek_ALPHAaccent ((guint) 0x07a1) #define SKK_KEYSYMS_Greek_EPSILONaccent ((guint) 0x07a2) #define SKK_KEYSYMS_Greek_ETAaccent ((guint) 0x07a3) #define SKK_KEYSYMS_Greek_IOTAaccent ((guint) 0x07a4) #define SKK_KEYSYMS_Greek_IOTAdieresis ((guint) 0x07a5) #define SKK_KEYSYMS_Greek_IOTAdiaeresis ((guint) 0x07a5) #define SKK_KEYSYMS_Greek_OMICRONaccent ((guint) 0x07a7) #define SKK_KEYSYMS_Greek_UPSILONaccent ((guint) 0x07a8) #define SKK_KEYSYMS_Greek_UPSILONdieresis ((guint) 0x07a9) #define SKK_KEYSYMS_Greek_OMEGAaccent ((guint) 0x07ab) #define SKK_KEYSYMS_Greek_accentdieresis ((guint) 0x07ae) #define SKK_KEYSYMS_Greek_horizbar ((guint) 0x07af) #define SKK_KEYSYMS_Greek_alphaaccent ((guint) 0x07b1) #define SKK_KEYSYMS_Greek_epsilonaccent ((guint) 0x07b2) #define SKK_KEYSYMS_Greek_etaaccent ((guint) 0x07b3) #define SKK_KEYSYMS_Greek_iotaaccent ((guint) 0x07b4) #define SKK_KEYSYMS_Greek_iotadieresis ((guint) 0x07b5) #define SKK_KEYSYMS_Greek_iotaaccentdieresis ((guint) 0x07b6) #define SKK_KEYSYMS_Greek_omicronaccent ((guint) 0x07b7) #define SKK_KEYSYMS_Greek_upsilonaccent ((guint) 0x07b8) #define SKK_KEYSYMS_Greek_upsilondieresis ((guint) 0x07b9) #define SKK_KEYSYMS_Greek_upsilonaccentdieresis ((guint) 0x07ba) #define SKK_KEYSYMS_Greek_omegaaccent ((guint) 0x07bb) #define SKK_KEYSYMS_Greek_ALPHA ((guint) 0x07c1) #define SKK_KEYSYMS_Greek_BETA ((guint) 0x07c2) #define SKK_KEYSYMS_Greek_GAMMA ((guint) 0x07c3) #define SKK_KEYSYMS_Greek_DELTA ((guint) 0x07c4) #define SKK_KEYSYMS_Greek_EPSILON ((guint) 0x07c5) #define SKK_KEYSYMS_Greek_ZETA ((guint) 0x07c6) #define SKK_KEYSYMS_Greek_ETA ((guint) 0x07c7) #define SKK_KEYSYMS_Greek_THETA ((guint) 0x07c8) #define SKK_KEYSYMS_Greek_IOTA ((guint) 0x07c9) #define SKK_KEYSYMS_Greek_KAPPA ((guint) 0x07ca) #define SKK_KEYSYMS_Greek_LAMDA ((guint) 0x07cb) #define SKK_KEYSYMS_Greek_LAMBDA ((guint) 0x07cb) #define SKK_KEYSYMS_Greek_MU ((guint) 0x07cc) #define SKK_KEYSYMS_Greek_NU ((guint) 0x07cd) #define SKK_KEYSYMS_Greek_XI ((guint) 0x07ce) #define SKK_KEYSYMS_Greek_OMICRON ((guint) 0x07cf) #define SKK_KEYSYMS_Greek_PI ((guint) 0x07d0) #define SKK_KEYSYMS_Greek_RHO ((guint) 0x07d1) #define SKK_KEYSYMS_Greek_SIGMA ((guint) 0x07d2) #define SKK_KEYSYMS_Greek_TAU ((guint) 0x07d4) #define SKK_KEYSYMS_Greek_UPSILON ((guint) 0x07d5) #define SKK_KEYSYMS_Greek_PHI ((guint) 0x07d6) #define SKK_KEYSYMS_Greek_CHI ((guint) 0x07d7) #define SKK_KEYSYMS_Greek_PSI ((guint) 0x07d8) #define SKK_KEYSYMS_Greek_OMEGA ((guint) 0x07d9) #define SKK_KEYSYMS_Greek_alpha ((guint) 0x07e1) #define SKK_KEYSYMS_Greek_beta ((guint) 0x07e2) #define SKK_KEYSYMS_Greek_gamma ((guint) 0x07e3) #define SKK_KEYSYMS_Greek_delta ((guint) 0x07e4) #define SKK_KEYSYMS_Greek_epsilon ((guint) 0x07e5) #define SKK_KEYSYMS_Greek_zeta ((guint) 0x07e6) #define SKK_KEYSYMS_Greek_eta ((guint) 0x07e7) #define SKK_KEYSYMS_Greek_theta ((guint) 0x07e8) #define SKK_KEYSYMS_Greek_iota ((guint) 0x07e9) #define SKK_KEYSYMS_Greek_kappa ((guint) 0x07ea) #define SKK_KEYSYMS_Greek_lamda ((guint) 0x07eb) #define SKK_KEYSYMS_Greek_lambda ((guint) 0x07eb) #define SKK_KEYSYMS_Greek_mu ((guint) 0x07ec) #define SKK_KEYSYMS_Greek_nu ((guint) 0x07ed) #define SKK_KEYSYMS_Greek_xi ((guint) 0x07ee) #define SKK_KEYSYMS_Greek_omicron ((guint) 0x07ef) #define SKK_KEYSYMS_Greek_pi ((guint) 0x07f0) #define SKK_KEYSYMS_Greek_rho ((guint) 0x07f1) #define SKK_KEYSYMS_Greek_sigma ((guint) 0x07f2) #define SKK_KEYSYMS_Greek_finalsmallsigma ((guint) 0x07f3) #define SKK_KEYSYMS_Greek_tau ((guint) 0x07f4) #define SKK_KEYSYMS_Greek_upsilon ((guint) 0x07f5) #define SKK_KEYSYMS_Greek_phi ((guint) 0x07f6) #define SKK_KEYSYMS_Greek_chi ((guint) 0x07f7) #define SKK_KEYSYMS_Greek_psi ((guint) 0x07f8) #define SKK_KEYSYMS_Greek_omega ((guint) 0x07f9) #define SKK_KEYSYMS_Greek_switch ((guint) 0xff7e) #define SKK_KEYSYMS_leftradical ((guint) 0x08a1) #define SKK_KEYSYMS_topleftradical ((guint) 0x08a2) #define SKK_KEYSYMS_horizconnector ((guint) 0x08a3) #define SKK_KEYSYMS_topintegral ((guint) 0x08a4) #define SKK_KEYSYMS_botintegral ((guint) 0x08a5) #define SKK_KEYSYMS_vertconnector ((guint) 0x08a6) #define SKK_KEYSYMS_topleftsqbracket ((guint) 0x08a7) #define SKK_KEYSYMS_botleftsqbracket ((guint) 0x08a8) #define SKK_KEYSYMS_toprightsqbracket ((guint) 0x08a9) #define SKK_KEYSYMS_botrightsqbracket ((guint) 0x08aa) #define SKK_KEYSYMS_topleftparens ((guint) 0x08ab) #define SKK_KEYSYMS_botleftparens ((guint) 0x08ac) #define SKK_KEYSYMS_toprightparens ((guint) 0x08ad) #define SKK_KEYSYMS_botrightparens ((guint) 0x08ae) #define SKK_KEYSYMS_leftmiddlecurlybrace ((guint) 0x08af) #define SKK_KEYSYMS_rightmiddlecurlybrace ((guint) 0x08b0) #define SKK_KEYSYMS_topleftsummation ((guint) 0x08b1) #define SKK_KEYSYMS_botleftsummation ((guint) 0x08b2) #define SKK_KEYSYMS_topvertsummationconnector ((guint) 0x08b3) #define SKK_KEYSYMS_botvertsummationconnector ((guint) 0x08b4) #define SKK_KEYSYMS_toprightsummation ((guint) 0x08b5) #define SKK_KEYSYMS_botrightsummation ((guint) 0x08b6) #define SKK_KEYSYMS_rightmiddlesummation ((guint) 0x08b7) #define SKK_KEYSYMS_lessthanequal ((guint) 0x08bc) #define SKK_KEYSYMS_notequal ((guint) 0x08bd) #define SKK_KEYSYMS_greaterthanequal ((guint) 0x08be) #define SKK_KEYSYMS_integral ((guint) 0x08bf) #define SKK_KEYSYMS_therefore ((guint) 0x08c0) #define SKK_KEYSYMS_variation ((guint) 0x08c1) #define SKK_KEYSYMS_infinity ((guint) 0x08c2) #define SKK_KEYSYMS_nabla ((guint) 0x08c5) #define SKK_KEYSYMS_approximate ((guint) 0x08c8) #define SKK_KEYSYMS_similarequal ((guint) 0x08c9) #define SKK_KEYSYMS_ifonlyif ((guint) 0x08cd) #define SKK_KEYSYMS_implies ((guint) 0x08ce) #define SKK_KEYSYMS_identical ((guint) 0x08cf) #define SKK_KEYSYMS_radical ((guint) 0x08d6) #define SKK_KEYSYMS_includedin ((guint) 0x08da) #define SKK_KEYSYMS_includes ((guint) 0x08db) #define SKK_KEYSYMS_intersection ((guint) 0x08dc) #define SKK_KEYSYMS_union ((guint) 0x08dd) #define SKK_KEYSYMS_logicaland ((guint) 0x08de) #define SKK_KEYSYMS_logicalor ((guint) 0x08df) #define SKK_KEYSYMS_partialderivative ((guint) 0x08ef) #define SKK_KEYSYMS_function ((guint) 0x08f6) #define SKK_KEYSYMS_leftarrow ((guint) 0x08fb) #define SKK_KEYSYMS_uparrow ((guint) 0x08fc) #define SKK_KEYSYMS_rightarrow ((guint) 0x08fd) #define SKK_KEYSYMS_downarrow ((guint) 0x08fe) #define SKK_KEYSYMS_blank ((guint) 0x09df) #define SKK_KEYSYMS_soliddiamond ((guint) 0x09e0) #define SKK_KEYSYMS_checkerboard ((guint) 0x09e1) #define SKK_KEYSYMS_ht ((guint) 0x09e2) #define SKK_KEYSYMS_ff ((guint) 0x09e3) #define SKK_KEYSYMS_cr ((guint) 0x09e4) #define SKK_KEYSYMS_lf ((guint) 0x09e5) #define SKK_KEYSYMS_nl ((guint) 0x09e8) #define SKK_KEYSYMS_vt ((guint) 0x09e9) #define SKK_KEYSYMS_lowrightcorner ((guint) 0x09ea) #define SKK_KEYSYMS_uprightcorner ((guint) 0x09eb) #define SKK_KEYSYMS_upleftcorner ((guint) 0x09ec) #define SKK_KEYSYMS_lowleftcorner ((guint) 0x09ed) #define SKK_KEYSYMS_crossinglines ((guint) 0x09ee) #define SKK_KEYSYMS_horizlinescan1 ((guint) 0x09ef) #define SKK_KEYSYMS_horizlinescan3 ((guint) 0x09f0) #define SKK_KEYSYMS_horizlinescan5 ((guint) 0x09f1) #define SKK_KEYSYMS_horizlinescan7 ((guint) 0x09f2) #define SKK_KEYSYMS_horizlinescan9 ((guint) 0x09f3) #define SKK_KEYSYMS_leftt ((guint) 0x09f4) #define SKK_KEYSYMS_rightt ((guint) 0x09f5) #define SKK_KEYSYMS_bott ((guint) 0x09f6) #define SKK_KEYSYMS_topt ((guint) 0x09f7) #define SKK_KEYSYMS_vertbar ((guint) 0x09f8) #define SKK_KEYSYMS_emspace ((guint) 0x0aa1) #define SKK_KEYSYMS_enspace ((guint) 0x0aa2) #define SKK_KEYSYMS_em3space ((guint) 0x0aa3) #define SKK_KEYSYMS_em4space ((guint) 0x0aa4) #define SKK_KEYSYMS_digitspace ((guint) 0x0aa5) #define SKK_KEYSYMS_punctspace ((guint) 0x0aa6) #define SKK_KEYSYMS_thinspace ((guint) 0x0aa7) #define SKK_KEYSYMS_hairspace ((guint) 0x0aa8) #define SKK_KEYSYMS_emdash ((guint) 0x0aa9) #define SKK_KEYSYMS_endash ((guint) 0x0aaa) #define SKK_KEYSYMS_signifblank ((guint) 0x0aac) #define SKK_KEYSYMS_ellipsis ((guint) 0x0aae) #define SKK_KEYSYMS_doubbaselinedot ((guint) 0x0aaf) #define SKK_KEYSYMS_onethird ((guint) 0x0ab0) #define SKK_KEYSYMS_twothirds ((guint) 0x0ab1) #define SKK_KEYSYMS_onefifth ((guint) 0x0ab2) #define SKK_KEYSYMS_twofifths ((guint) 0x0ab3) #define SKK_KEYSYMS_threefifths ((guint) 0x0ab4) #define SKK_KEYSYMS_fourfifths ((guint) 0x0ab5) #define SKK_KEYSYMS_onesixth ((guint) 0x0ab6) #define SKK_KEYSYMS_fivesixths ((guint) 0x0ab7) #define SKK_KEYSYMS_careof ((guint) 0x0ab8) #define SKK_KEYSYMS_figdash ((guint) 0x0abb) #define SKK_KEYSYMS_leftanglebracket ((guint) 0x0abc) #define SKK_KEYSYMS_decimalpoint ((guint) 0x0abd) #define SKK_KEYSYMS_rightanglebracket ((guint) 0x0abe) #define SKK_KEYSYMS_marker ((guint) 0x0abf) #define SKK_KEYSYMS_oneeighth ((guint) 0x0ac3) #define SKK_KEYSYMS_threeeighths ((guint) 0x0ac4) #define SKK_KEYSYMS_fiveeighths ((guint) 0x0ac5) #define SKK_KEYSYMS_seveneighths ((guint) 0x0ac6) #define SKK_KEYSYMS_trademark ((guint) 0x0ac9) #define SKK_KEYSYMS_signaturemark ((guint) 0x0aca) #define SKK_KEYSYMS_trademarkincircle ((guint) 0x0acb) #define SKK_KEYSYMS_leftopentriangle ((guint) 0x0acc) #define SKK_KEYSYMS_rightopentriangle ((guint) 0x0acd) #define SKK_KEYSYMS_emopencircle ((guint) 0x0ace) #define SKK_KEYSYMS_emopenrectangle ((guint) 0x0acf) #define SKK_KEYSYMS_leftsinglequotemark ((guint) 0x0ad0) #define SKK_KEYSYMS_rightsinglequotemark ((guint) 0x0ad1) #define SKK_KEYSYMS_leftdoublequotemark ((guint) 0x0ad2) #define SKK_KEYSYMS_rightdoublequotemark ((guint) 0x0ad3) #define SKK_KEYSYMS_prescription ((guint) 0x0ad4) #define SKK_KEYSYMS_minutes ((guint) 0x0ad6) #define SKK_KEYSYMS_seconds ((guint) 0x0ad7) #define SKK_KEYSYMS_latincross ((guint) 0x0ad9) #define SKK_KEYSYMS_hexagram ((guint) 0x0ada) #define SKK_KEYSYMS_filledrectbullet ((guint) 0x0adb) #define SKK_KEYSYMS_filledlefttribullet ((guint) 0x0adc) #define SKK_KEYSYMS_filledrighttribullet ((guint) 0x0add) #define SKK_KEYSYMS_emfilledcircle ((guint) 0x0ade) #define SKK_KEYSYMS_emfilledrect ((guint) 0x0adf) #define SKK_KEYSYMS_enopencircbullet ((guint) 0x0ae0) #define SKK_KEYSYMS_enopensquarebullet ((guint) 0x0ae1) #define SKK_KEYSYMS_openrectbullet ((guint) 0x0ae2) #define SKK_KEYSYMS_opentribulletup ((guint) 0x0ae3) #define SKK_KEYSYMS_opentribulletdown ((guint) 0x0ae4) #define SKK_KEYSYMS_openstar ((guint) 0x0ae5) #define SKK_KEYSYMS_enfilledcircbullet ((guint) 0x0ae6) #define SKK_KEYSYMS_enfilledsqbullet ((guint) 0x0ae7) #define SKK_KEYSYMS_filledtribulletup ((guint) 0x0ae8) #define SKK_KEYSYMS_filledtribulletdown ((guint) 0x0ae9) #define SKK_KEYSYMS_leftpointer ((guint) 0x0aea) #define SKK_KEYSYMS_rightpointer ((guint) 0x0aeb) #define SKK_KEYSYMS_club ((guint) 0x0aec) #define SKK_KEYSYMS_diamond ((guint) 0x0aed) #define SKK_KEYSYMS_heart ((guint) 0x0aee) #define SKK_KEYSYMS_maltesecross ((guint) 0x0af0) #define SKK_KEYSYMS_dagger ((guint) 0x0af1) #define SKK_KEYSYMS_doubledagger ((guint) 0x0af2) #define SKK_KEYSYMS_checkmark ((guint) 0x0af3) #define SKK_KEYSYMS_ballotcross ((guint) 0x0af4) #define SKK_KEYSYMS_musicalsharp ((guint) 0x0af5) #define SKK_KEYSYMS_musicalflat ((guint) 0x0af6) #define SKK_KEYSYMS_malesymbol ((guint) 0x0af7) #define SKK_KEYSYMS_femalesymbol ((guint) 0x0af8) #define SKK_KEYSYMS_telephone ((guint) 0x0af9) #define SKK_KEYSYMS_telephonerecorder ((guint) 0x0afa) #define SKK_KEYSYMS_phonographcopyright ((guint) 0x0afb) #define SKK_KEYSYMS_caret ((guint) 0x0afc) #define SKK_KEYSYMS_singlelowquotemark ((guint) 0x0afd) #define SKK_KEYSYMS_doublelowquotemark ((guint) 0x0afe) #define SKK_KEYSYMS_cursor ((guint) 0x0aff) #define SKK_KEYSYMS_leftcaret ((guint) 0x0ba3) #define SKK_KEYSYMS_rightcaret ((guint) 0x0ba6) #define SKK_KEYSYMS_downcaret ((guint) 0x0ba8) #define SKK_KEYSYMS_upcaret ((guint) 0x0ba9) #define SKK_KEYSYMS_overbar ((guint) 0x0bc0) #define SKK_KEYSYMS_downtack ((guint) 0x0bc2) #define SKK_KEYSYMS_upshoe ((guint) 0x0bc3) #define SKK_KEYSYMS_downstile ((guint) 0x0bc4) #define SKK_KEYSYMS_underbar ((guint) 0x0bc6) #define SKK_KEYSYMS_jot ((guint) 0x0bca) #define SKK_KEYSYMS_quad ((guint) 0x0bcc) #define SKK_KEYSYMS_uptack ((guint) 0x0bce) #define SKK_KEYSYMS_circle ((guint) 0x0bcf) #define SKK_KEYSYMS_upstile ((guint) 0x0bd3) #define SKK_KEYSYMS_downshoe ((guint) 0x0bd6) #define SKK_KEYSYMS_rightshoe ((guint) 0x0bd8) #define SKK_KEYSYMS_leftshoe ((guint) 0x0bda) #define SKK_KEYSYMS_lefttack ((guint) 0x0bdc) #define SKK_KEYSYMS_righttack ((guint) 0x0bfc) #define SKK_KEYSYMS_hebrew_doublelowline ((guint) 0x0cdf) #define SKK_KEYSYMS_hebrew_aleph ((guint) 0x0ce0) #define SKK_KEYSYMS_hebrew_bet ((guint) 0x0ce1) #define SKK_KEYSYMS_hebrew_beth ((guint) 0x0ce1) #define SKK_KEYSYMS_hebrew_gimel ((guint) 0x0ce2) #define SKK_KEYSYMS_hebrew_gimmel ((guint) 0x0ce2) #define SKK_KEYSYMS_hebrew_dalet ((guint) 0x0ce3) #define SKK_KEYSYMS_hebrew_daleth ((guint) 0x0ce3) #define SKK_KEYSYMS_hebrew_he ((guint) 0x0ce4) #define SKK_KEYSYMS_hebrew_waw ((guint) 0x0ce5) #define SKK_KEYSYMS_hebrew_zain ((guint) 0x0ce6) #define SKK_KEYSYMS_hebrew_zayin ((guint) 0x0ce6) #define SKK_KEYSYMS_hebrew_chet ((guint) 0x0ce7) #define SKK_KEYSYMS_hebrew_het ((guint) 0x0ce7) #define SKK_KEYSYMS_hebrew_tet ((guint) 0x0ce8) #define SKK_KEYSYMS_hebrew_teth ((guint) 0x0ce8) #define SKK_KEYSYMS_hebrew_yod ((guint) 0x0ce9) #define SKK_KEYSYMS_hebrew_finalkaph ((guint) 0x0cea) #define SKK_KEYSYMS_hebrew_kaph ((guint) 0x0ceb) #define SKK_KEYSYMS_hebrew_lamed ((guint) 0x0cec) #define SKK_KEYSYMS_hebrew_finalmem ((guint) 0x0ced) #define SKK_KEYSYMS_hebrew_mem ((guint) 0x0cee) #define SKK_KEYSYMS_hebrew_finalnun ((guint) 0x0cef) #define SKK_KEYSYMS_hebrew_nun ((guint) 0x0cf0) #define SKK_KEYSYMS_hebrew_samech ((guint) 0x0cf1) #define SKK_KEYSYMS_hebrew_samekh ((guint) 0x0cf1) #define SKK_KEYSYMS_hebrew_ayin ((guint) 0x0cf2) #define SKK_KEYSYMS_hebrew_finalpe ((guint) 0x0cf3) #define SKK_KEYSYMS_hebrew_pe ((guint) 0x0cf4) #define SKK_KEYSYMS_hebrew_finalzade ((guint) 0x0cf5) #define SKK_KEYSYMS_hebrew_finalzadi ((guint) 0x0cf5) #define SKK_KEYSYMS_hebrew_zade ((guint) 0x0cf6) #define SKK_KEYSYMS_hebrew_zadi ((guint) 0x0cf6) #define SKK_KEYSYMS_hebrew_qoph ((guint) 0x0cf7) #define SKK_KEYSYMS_hebrew_kuf ((guint) 0x0cf7) #define SKK_KEYSYMS_hebrew_resh ((guint) 0x0cf8) #define SKK_KEYSYMS_hebrew_shin ((guint) 0x0cf9) #define SKK_KEYSYMS_hebrew_taw ((guint) 0x0cfa) #define SKK_KEYSYMS_hebrew_taf ((guint) 0x0cfa) #define SKK_KEYSYMS_Hebrew_switch ((guint) 0xff7e) #define SKK_KEYSYMS_Thai_kokai ((guint) 0x0da1) #define SKK_KEYSYMS_Thai_khokhai ((guint) 0x0da2) #define SKK_KEYSYMS_Thai_khokhuat ((guint) 0x0da3) #define SKK_KEYSYMS_Thai_khokhwai ((guint) 0x0da4) #define SKK_KEYSYMS_Thai_khokhon ((guint) 0x0da5) #define SKK_KEYSYMS_Thai_khorakhang ((guint) 0x0da6) #define SKK_KEYSYMS_Thai_ngongu ((guint) 0x0da7) #define SKK_KEYSYMS_Thai_chochan ((guint) 0x0da8) #define SKK_KEYSYMS_Thai_choching ((guint) 0x0da9) #define SKK_KEYSYMS_Thai_chochang ((guint) 0x0daa) #define SKK_KEYSYMS_Thai_soso ((guint) 0x0dab) #define SKK_KEYSYMS_Thai_chochoe ((guint) 0x0dac) #define SKK_KEYSYMS_Thai_yoying ((guint) 0x0dad) #define SKK_KEYSYMS_Thai_dochada ((guint) 0x0dae) #define SKK_KEYSYMS_Thai_topatak ((guint) 0x0daf) #define SKK_KEYSYMS_Thai_thothan ((guint) 0x0db0) #define SKK_KEYSYMS_Thai_thonangmontho ((guint) 0x0db1) #define SKK_KEYSYMS_Thai_thophuthao ((guint) 0x0db2) #define SKK_KEYSYMS_Thai_nonen ((guint) 0x0db3) #define SKK_KEYSYMS_Thai_dodek ((guint) 0x0db4) #define SKK_KEYSYMS_Thai_totao ((guint) 0x0db5) #define SKK_KEYSYMS_Thai_thothung ((guint) 0x0db6) #define SKK_KEYSYMS_Thai_thothahan ((guint) 0x0db7) #define SKK_KEYSYMS_Thai_thothong ((guint) 0x0db8) #define SKK_KEYSYMS_Thai_nonu ((guint) 0x0db9) #define SKK_KEYSYMS_Thai_bobaimai ((guint) 0x0dba) #define SKK_KEYSYMS_Thai_popla ((guint) 0x0dbb) #define SKK_KEYSYMS_Thai_phophung ((guint) 0x0dbc) #define SKK_KEYSYMS_Thai_fofa ((guint) 0x0dbd) #define SKK_KEYSYMS_Thai_phophan ((guint) 0x0dbe) #define SKK_KEYSYMS_Thai_fofan ((guint) 0x0dbf) #define SKK_KEYSYMS_Thai_phosamphao ((guint) 0x0dc0) #define SKK_KEYSYMS_Thai_moma ((guint) 0x0dc1) #define SKK_KEYSYMS_Thai_yoyak ((guint) 0x0dc2) #define SKK_KEYSYMS_Thai_rorua ((guint) 0x0dc3) #define SKK_KEYSYMS_Thai_ru ((guint) 0x0dc4) #define SKK_KEYSYMS_Thai_loling ((guint) 0x0dc5) #define SKK_KEYSYMS_Thai_lu ((guint) 0x0dc6) #define SKK_KEYSYMS_Thai_wowaen ((guint) 0x0dc7) #define SKK_KEYSYMS_Thai_sosala ((guint) 0x0dc8) #define SKK_KEYSYMS_Thai_sorusi ((guint) 0x0dc9) #define SKK_KEYSYMS_Thai_sosua ((guint) 0x0dca) #define SKK_KEYSYMS_Thai_hohip ((guint) 0x0dcb) #define SKK_KEYSYMS_Thai_lochula ((guint) 0x0dcc) #define SKK_KEYSYMS_Thai_oang ((guint) 0x0dcd) #define SKK_KEYSYMS_Thai_honokhuk ((guint) 0x0dce) #define SKK_KEYSYMS_Thai_paiyannoi ((guint) 0x0dcf) #define SKK_KEYSYMS_Thai_saraa ((guint) 0x0dd0) #define SKK_KEYSYMS_Thai_maihanakat ((guint) 0x0dd1) #define SKK_KEYSYMS_Thai_saraaa ((guint) 0x0dd2) #define SKK_KEYSYMS_Thai_saraam ((guint) 0x0dd3) #define SKK_KEYSYMS_Thai_sarai ((guint) 0x0dd4) #define SKK_KEYSYMS_Thai_saraii ((guint) 0x0dd5) #define SKK_KEYSYMS_Thai_saraue ((guint) 0x0dd6) #define SKK_KEYSYMS_Thai_sarauee ((guint) 0x0dd7) #define SKK_KEYSYMS_Thai_sarau ((guint) 0x0dd8) #define SKK_KEYSYMS_Thai_sarauu ((guint) 0x0dd9) #define SKK_KEYSYMS_Thai_phinthu ((guint) 0x0dda) #define SKK_KEYSYMS_Thai_maihanakat_maitho ((guint) 0x0dde) #define SKK_KEYSYMS_Thai_baht ((guint) 0x0ddf) #define SKK_KEYSYMS_Thai_sarae ((guint) 0x0de0) #define SKK_KEYSYMS_Thai_saraae ((guint) 0x0de1) #define SKK_KEYSYMS_Thai_sarao ((guint) 0x0de2) #define SKK_KEYSYMS_Thai_saraaimaimuan ((guint) 0x0de3) #define SKK_KEYSYMS_Thai_saraaimaimalai ((guint) 0x0de4) #define SKK_KEYSYMS_Thai_lakkhangyao ((guint) 0x0de5) #define SKK_KEYSYMS_Thai_maiyamok ((guint) 0x0de6) #define SKK_KEYSYMS_Thai_maitaikhu ((guint) 0x0de7) #define SKK_KEYSYMS_Thai_maiek ((guint) 0x0de8) #define SKK_KEYSYMS_Thai_maitho ((guint) 0x0de9) #define SKK_KEYSYMS_Thai_maitri ((guint) 0x0dea) #define SKK_KEYSYMS_Thai_maichattawa ((guint) 0x0deb) #define SKK_KEYSYMS_Thai_thanthakhat ((guint) 0x0dec) #define SKK_KEYSYMS_Thai_nikhahit ((guint) 0x0ded) #define SKK_KEYSYMS_Thai_leksun ((guint) 0x0df0) #define SKK_KEYSYMS_Thai_leknung ((guint) 0x0df1) #define SKK_KEYSYMS_Thai_leksong ((guint) 0x0df2) #define SKK_KEYSYMS_Thai_leksam ((guint) 0x0df3) #define SKK_KEYSYMS_Thai_leksi ((guint) 0x0df4) #define SKK_KEYSYMS_Thai_lekha ((guint) 0x0df5) #define SKK_KEYSYMS_Thai_lekhok ((guint) 0x0df6) #define SKK_KEYSYMS_Thai_lekchet ((guint) 0x0df7) #define SKK_KEYSYMS_Thai_lekpaet ((guint) 0x0df8) #define SKK_KEYSYMS_Thai_lekkao ((guint) 0x0df9) #define SKK_KEYSYMS_Hangul ((guint) 0xff31) #define SKK_KEYSYMS_Hangul_Start ((guint) 0xff32) #define SKK_KEYSYMS_Hangul_End ((guint) 0xff33) #define SKK_KEYSYMS_Hangul_Hanja ((guint) 0xff34) #define SKK_KEYSYMS_Hangul_Jamo ((guint) 0xff35) #define SKK_KEYSYMS_Hangul_Romaja ((guint) 0xff36) #define SKK_KEYSYMS_Hangul_Codeinput ((guint) 0xff37) #define SKK_KEYSYMS_Hangul_Jeonja ((guint) 0xff38) #define SKK_KEYSYMS_Hangul_Banja ((guint) 0xff39) #define SKK_KEYSYMS_Hangul_PreHanja ((guint) 0xff3a) #define SKK_KEYSYMS_Hangul_PostHanja ((guint) 0xff3b) #define SKK_KEYSYMS_Hangul_SingleCandidate ((guint) 0xff3c) #define SKK_KEYSYMS_Hangul_MultipleCandidate ((guint) 0xff3d) #define SKK_KEYSYMS_Hangul_PreviousCandidate ((guint) 0xff3e) #define SKK_KEYSYMS_Hangul_Special ((guint) 0xff3f) #define SKK_KEYSYMS_Hangul_switch ((guint) 0xff7e) #define SKK_KEYSYMS_Hangul_Kiyeog ((guint) 0x0ea1) #define SKK_KEYSYMS_Hangul_SsangKiyeog ((guint) 0x0ea2) #define SKK_KEYSYMS_Hangul_KiyeogSios ((guint) 0x0ea3) #define SKK_KEYSYMS_Hangul_Nieun ((guint) 0x0ea4) #define SKK_KEYSYMS_Hangul_NieunJieuj ((guint) 0x0ea5) #define SKK_KEYSYMS_Hangul_NieunHieuh ((guint) 0x0ea6) #define SKK_KEYSYMS_Hangul_Dikeud ((guint) 0x0ea7) #define SKK_KEYSYMS_Hangul_SsangDikeud ((guint) 0x0ea8) #define SKK_KEYSYMS_Hangul_Rieul ((guint) 0x0ea9) #define SKK_KEYSYMS_Hangul_RieulKiyeog ((guint) 0x0eaa) #define SKK_KEYSYMS_Hangul_RieulMieum ((guint) 0x0eab) #define SKK_KEYSYMS_Hangul_RieulPieub ((guint) 0x0eac) #define SKK_KEYSYMS_Hangul_RieulSios ((guint) 0x0ead) #define SKK_KEYSYMS_Hangul_RieulTieut ((guint) 0x0eae) #define SKK_KEYSYMS_Hangul_RieulPhieuf ((guint) 0x0eaf) #define SKK_KEYSYMS_Hangul_RieulHieuh ((guint) 0x0eb0) #define SKK_KEYSYMS_Hangul_Mieum ((guint) 0x0eb1) #define SKK_KEYSYMS_Hangul_Pieub ((guint) 0x0eb2) #define SKK_KEYSYMS_Hangul_SsangPieub ((guint) 0x0eb3) #define SKK_KEYSYMS_Hangul_PieubSios ((guint) 0x0eb4) #define SKK_KEYSYMS_Hangul_Sios ((guint) 0x0eb5) #define SKK_KEYSYMS_Hangul_SsangSios ((guint) 0x0eb6) #define SKK_KEYSYMS_Hangul_Ieung ((guint) 0x0eb7) #define SKK_KEYSYMS_Hangul_Jieuj ((guint) 0x0eb8) #define SKK_KEYSYMS_Hangul_SsangJieuj ((guint) 0x0eb9) #define SKK_KEYSYMS_Hangul_Cieuc ((guint) 0x0eba) #define SKK_KEYSYMS_Hangul_Khieuq ((guint) 0x0ebb) #define SKK_KEYSYMS_Hangul_Tieut ((guint) 0x0ebc) #define SKK_KEYSYMS_Hangul_Phieuf ((guint) 0x0ebd) #define SKK_KEYSYMS_Hangul_Hieuh ((guint) 0x0ebe) #define SKK_KEYSYMS_Hangul_A ((guint) 0x0ebf) #define SKK_KEYSYMS_Hangul_AE ((guint) 0x0ec0) #define SKK_KEYSYMS_Hangul_YA ((guint) 0x0ec1) #define SKK_KEYSYMS_Hangul_YAE ((guint) 0x0ec2) #define SKK_KEYSYMS_Hangul_EO ((guint) 0x0ec3) #define SKK_KEYSYMS_Hangul_E ((guint) 0x0ec4) #define SKK_KEYSYMS_Hangul_YEO ((guint) 0x0ec5) #define SKK_KEYSYMS_Hangul_YE ((guint) 0x0ec6) #define SKK_KEYSYMS_Hangul_O ((guint) 0x0ec7) #define SKK_KEYSYMS_Hangul_WA ((guint) 0x0ec8) #define SKK_KEYSYMS_Hangul_WAE ((guint) 0x0ec9) #define SKK_KEYSYMS_Hangul_OE ((guint) 0x0eca) #define SKK_KEYSYMS_Hangul_YO ((guint) 0x0ecb) #define SKK_KEYSYMS_Hangul_U ((guint) 0x0ecc) #define SKK_KEYSYMS_Hangul_WEO ((guint) 0x0ecd) #define SKK_KEYSYMS_Hangul_WE ((guint) 0x0ece) #define SKK_KEYSYMS_Hangul_WI ((guint) 0x0ecf) #define SKK_KEYSYMS_Hangul_YU ((guint) 0x0ed0) #define SKK_KEYSYMS_Hangul_EU ((guint) 0x0ed1) #define SKK_KEYSYMS_Hangul_YI ((guint) 0x0ed2) #define SKK_KEYSYMS_Hangul_I ((guint) 0x0ed3) #define SKK_KEYSYMS_Hangul_J_Kiyeog ((guint) 0x0ed4) #define SKK_KEYSYMS_Hangul_J_SsangKiyeog ((guint) 0x0ed5) #define SKK_KEYSYMS_Hangul_J_KiyeogSios ((guint) 0x0ed6) #define SKK_KEYSYMS_Hangul_J_Nieun ((guint) 0x0ed7) #define SKK_KEYSYMS_Hangul_J_NieunJieuj ((guint) 0x0ed8) #define SKK_KEYSYMS_Hangul_J_NieunHieuh ((guint) 0x0ed9) #define SKK_KEYSYMS_Hangul_J_Dikeud ((guint) 0x0eda) #define SKK_KEYSYMS_Hangul_J_Rieul ((guint) 0x0edb) #define SKK_KEYSYMS_Hangul_J_RieulKiyeog ((guint) 0x0edc) #define SKK_KEYSYMS_Hangul_J_RieulMieum ((guint) 0x0edd) #define SKK_KEYSYMS_Hangul_J_RieulPieub ((guint) 0x0ede) #define SKK_KEYSYMS_Hangul_J_RieulSios ((guint) 0x0edf) #define SKK_KEYSYMS_Hangul_J_RieulTieut ((guint) 0x0ee0) #define SKK_KEYSYMS_Hangul_J_RieulPhieuf ((guint) 0x0ee1) #define SKK_KEYSYMS_Hangul_J_RieulHieuh ((guint) 0x0ee2) #define SKK_KEYSYMS_Hangul_J_Mieum ((guint) 0x0ee3) #define SKK_KEYSYMS_Hangul_J_Pieub ((guint) 0x0ee4) #define SKK_KEYSYMS_Hangul_J_PieubSios ((guint) 0x0ee5) #define SKK_KEYSYMS_Hangul_J_Sios ((guint) 0x0ee6) #define SKK_KEYSYMS_Hangul_J_SsangSios ((guint) 0x0ee7) #define SKK_KEYSYMS_Hangul_J_Ieung ((guint) 0x0ee8) #define SKK_KEYSYMS_Hangul_J_Jieuj ((guint) 0x0ee9) #define SKK_KEYSYMS_Hangul_J_Cieuc ((guint) 0x0eea) #define SKK_KEYSYMS_Hangul_J_Khieuq ((guint) 0x0eeb) #define SKK_KEYSYMS_Hangul_J_Tieut ((guint) 0x0eec) #define SKK_KEYSYMS_Hangul_J_Phieuf ((guint) 0x0eed) #define SKK_KEYSYMS_Hangul_J_Hieuh ((guint) 0x0eee) #define SKK_KEYSYMS_Hangul_RieulYeorinHieuh ((guint) 0x0eef) #define SKK_KEYSYMS_Hangul_SunkyeongeumMieum ((guint) 0x0ef0) #define SKK_KEYSYMS_Hangul_SunkyeongeumPieub ((guint) 0x0ef1) #define SKK_KEYSYMS_Hangul_PanSios ((guint) 0x0ef2) #define SKK_KEYSYMS_Hangul_KkogjiDalrinIeung ((guint) 0x0ef3) #define SKK_KEYSYMS_Hangul_SunkyeongeumPhieuf ((guint) 0x0ef4) #define SKK_KEYSYMS_Hangul_YeorinHieuh ((guint) 0x0ef5) #define SKK_KEYSYMS_Hangul_AraeA ((guint) 0x0ef6) #define SKK_KEYSYMS_Hangul_AraeAE ((guint) 0x0ef7) #define SKK_KEYSYMS_Hangul_J_PanSios ((guint) 0x0ef8) #define SKK_KEYSYMS_Hangul_J_KkogjiDalrinIeung ((guint) 0x0ef9) #define SKK_KEYSYMS_Hangul_J_YeorinHieuh ((guint) 0x0efa) #define SKK_KEYSYMS_Korean_Won ((guint) 0x0eff) #define SKK_KEYSYMS_Armenian_ligature_ew ((guint) 0x1000587) #define SKK_KEYSYMS_Armenian_full_stop ((guint) 0x1000589) #define SKK_KEYSYMS_Armenian_verjaket ((guint) 0x1000589) #define SKK_KEYSYMS_Armenian_separation_mark ((guint) 0x100055d) #define SKK_KEYSYMS_Armenian_but ((guint) 0x100055d) #define SKK_KEYSYMS_Armenian_hyphen ((guint) 0x100058a) #define SKK_KEYSYMS_Armenian_yentamna ((guint) 0x100058a) #define SKK_KEYSYMS_Armenian_exclam ((guint) 0x100055c) #define SKK_KEYSYMS_Armenian_amanak ((guint) 0x100055c) #define SKK_KEYSYMS_Armenian_accent ((guint) 0x100055b) #define SKK_KEYSYMS_Armenian_shesht ((guint) 0x100055b) #define SKK_KEYSYMS_Armenian_question ((guint) 0x100055e) #define SKK_KEYSYMS_Armenian_paruyk ((guint) 0x100055e) #define SKK_KEYSYMS_Armenian_AYB ((guint) 0x1000531) #define SKK_KEYSYMS_Armenian_ayb ((guint) 0x1000561) #define SKK_KEYSYMS_Armenian_BEN ((guint) 0x1000532) #define SKK_KEYSYMS_Armenian_ben ((guint) 0x1000562) #define SKK_KEYSYMS_Armenian_GIM ((guint) 0x1000533) #define SKK_KEYSYMS_Armenian_gim ((guint) 0x1000563) #define SKK_KEYSYMS_Armenian_DA ((guint) 0x1000534) #define SKK_KEYSYMS_Armenian_da ((guint) 0x1000564) #define SKK_KEYSYMS_Armenian_YECH ((guint) 0x1000535) #define SKK_KEYSYMS_Armenian_yech ((guint) 0x1000565) #define SKK_KEYSYMS_Armenian_ZA ((guint) 0x1000536) #define SKK_KEYSYMS_Armenian_za ((guint) 0x1000566) #define SKK_KEYSYMS_Armenian_E ((guint) 0x1000537) #define SKK_KEYSYMS_Armenian_e ((guint) 0x1000567) #define SKK_KEYSYMS_Armenian_AT ((guint) 0x1000538) #define SKK_KEYSYMS_Armenian_at ((guint) 0x1000568) #define SKK_KEYSYMS_Armenian_TO ((guint) 0x1000539) #define SKK_KEYSYMS_Armenian_to ((guint) 0x1000569) #define SKK_KEYSYMS_Armenian_ZHE ((guint) 0x100053a) #define SKK_KEYSYMS_Armenian_zhe ((guint) 0x100056a) #define SKK_KEYSYMS_Armenian_INI ((guint) 0x100053b) #define SKK_KEYSYMS_Armenian_ini ((guint) 0x100056b) #define SKK_KEYSYMS_Armenian_LYUN ((guint) 0x100053c) #define SKK_KEYSYMS_Armenian_lyun ((guint) 0x100056c) #define SKK_KEYSYMS_Armenian_KHE ((guint) 0x100053d) #define SKK_KEYSYMS_Armenian_khe ((guint) 0x100056d) #define SKK_KEYSYMS_Armenian_TSA ((guint) 0x100053e) #define SKK_KEYSYMS_Armenian_tsa ((guint) 0x100056e) #define SKK_KEYSYMS_Armenian_KEN ((guint) 0x100053f) #define SKK_KEYSYMS_Armenian_ken ((guint) 0x100056f) #define SKK_KEYSYMS_Armenian_HO ((guint) 0x1000540) #define SKK_KEYSYMS_Armenian_ho ((guint) 0x1000570) #define SKK_KEYSYMS_Armenian_DZA ((guint) 0x1000541) #define SKK_KEYSYMS_Armenian_dza ((guint) 0x1000571) #define SKK_KEYSYMS_Armenian_GHAT ((guint) 0x1000542) #define SKK_KEYSYMS_Armenian_ghat ((guint) 0x1000572) #define SKK_KEYSYMS_Armenian_TCHE ((guint) 0x1000543) #define SKK_KEYSYMS_Armenian_tche ((guint) 0x1000573) #define SKK_KEYSYMS_Armenian_MEN ((guint) 0x1000544) #define SKK_KEYSYMS_Armenian_men ((guint) 0x1000574) #define SKK_KEYSYMS_Armenian_HI ((guint) 0x1000545) #define SKK_KEYSYMS_Armenian_hi ((guint) 0x1000575) #define SKK_KEYSYMS_Armenian_NU ((guint) 0x1000546) #define SKK_KEYSYMS_Armenian_nu ((guint) 0x1000576) #define SKK_KEYSYMS_Armenian_SHA ((guint) 0x1000547) #define SKK_KEYSYMS_Armenian_sha ((guint) 0x1000577) #define SKK_KEYSYMS_Armenian_VO ((guint) 0x1000548) #define SKK_KEYSYMS_Armenian_vo ((guint) 0x1000578) #define SKK_KEYSYMS_Armenian_CHA ((guint) 0x1000549) #define SKK_KEYSYMS_Armenian_cha ((guint) 0x1000579) #define SKK_KEYSYMS_Armenian_PE ((guint) 0x100054a) #define SKK_KEYSYMS_Armenian_pe ((guint) 0x100057a) #define SKK_KEYSYMS_Armenian_JE ((guint) 0x100054b) #define SKK_KEYSYMS_Armenian_je ((guint) 0x100057b) #define SKK_KEYSYMS_Armenian_RA ((guint) 0x100054c) #define SKK_KEYSYMS_Armenian_ra ((guint) 0x100057c) #define SKK_KEYSYMS_Armenian_SE ((guint) 0x100054d) #define SKK_KEYSYMS_Armenian_se ((guint) 0x100057d) #define SKK_KEYSYMS_Armenian_VEV ((guint) 0x100054e) #define SKK_KEYSYMS_Armenian_vev ((guint) 0x100057e) #define SKK_KEYSYMS_Armenian_TYUN ((guint) 0x100054f) #define SKK_KEYSYMS_Armenian_tyun ((guint) 0x100057f) #define SKK_KEYSYMS_Armenian_RE ((guint) 0x1000550) #define SKK_KEYSYMS_Armenian_re ((guint) 0x1000580) #define SKK_KEYSYMS_Armenian_TSO ((guint) 0x1000551) #define SKK_KEYSYMS_Armenian_tso ((guint) 0x1000581) #define SKK_KEYSYMS_Armenian_VYUN ((guint) 0x1000552) #define SKK_KEYSYMS_Armenian_vyun ((guint) 0x1000582) #define SKK_KEYSYMS_Armenian_PYUR ((guint) 0x1000553) #define SKK_KEYSYMS_Armenian_pyur ((guint) 0x1000583) #define SKK_KEYSYMS_Armenian_KE ((guint) 0x1000554) #define SKK_KEYSYMS_Armenian_ke ((guint) 0x1000584) #define SKK_KEYSYMS_Armenian_O ((guint) 0x1000555) #define SKK_KEYSYMS_Armenian_o ((guint) 0x1000585) #define SKK_KEYSYMS_Armenian_FE ((guint) 0x1000556) #define SKK_KEYSYMS_Armenian_fe ((guint) 0x1000586) #define SKK_KEYSYMS_Armenian_apostrophe ((guint) 0x100055a) #define SKK_KEYSYMS_Georgian_an ((guint) 0x10010d0) #define SKK_KEYSYMS_Georgian_ban ((guint) 0x10010d1) #define SKK_KEYSYMS_Georgian_gan ((guint) 0x10010d2) #define SKK_KEYSYMS_Georgian_don ((guint) 0x10010d3) #define SKK_KEYSYMS_Georgian_en ((guint) 0x10010d4) #define SKK_KEYSYMS_Georgian_vin ((guint) 0x10010d5) #define SKK_KEYSYMS_Georgian_zen ((guint) 0x10010d6) #define SKK_KEYSYMS_Georgian_tan ((guint) 0x10010d7) #define SKK_KEYSYMS_Georgian_in ((guint) 0x10010d8) #define SKK_KEYSYMS_Georgian_kan ((guint) 0x10010d9) #define SKK_KEYSYMS_Georgian_las ((guint) 0x10010da) #define SKK_KEYSYMS_Georgian_man ((guint) 0x10010db) #define SKK_KEYSYMS_Georgian_nar ((guint) 0x10010dc) #define SKK_KEYSYMS_Georgian_on ((guint) 0x10010dd) #define SKK_KEYSYMS_Georgian_par ((guint) 0x10010de) #define SKK_KEYSYMS_Georgian_zhar ((guint) 0x10010df) #define SKK_KEYSYMS_Georgian_rae ((guint) 0x10010e0) #define SKK_KEYSYMS_Georgian_san ((guint) 0x10010e1) #define SKK_KEYSYMS_Georgian_tar ((guint) 0x10010e2) #define SKK_KEYSYMS_Georgian_un ((guint) 0x10010e3) #define SKK_KEYSYMS_Georgian_phar ((guint) 0x10010e4) #define SKK_KEYSYMS_Georgian_khar ((guint) 0x10010e5) #define SKK_KEYSYMS_Georgian_ghan ((guint) 0x10010e6) #define SKK_KEYSYMS_Georgian_qar ((guint) 0x10010e7) #define SKK_KEYSYMS_Georgian_shin ((guint) 0x10010e8) #define SKK_KEYSYMS_Georgian_chin ((guint) 0x10010e9) #define SKK_KEYSYMS_Georgian_can ((guint) 0x10010ea) #define SKK_KEYSYMS_Georgian_jil ((guint) 0x10010eb) #define SKK_KEYSYMS_Georgian_cil ((guint) 0x10010ec) #define SKK_KEYSYMS_Georgian_char ((guint) 0x10010ed) #define SKK_KEYSYMS_Georgian_xan ((guint) 0x10010ee) #define SKK_KEYSYMS_Georgian_jhan ((guint) 0x10010ef) #define SKK_KEYSYMS_Georgian_hae ((guint) 0x10010f0) #define SKK_KEYSYMS_Georgian_he ((guint) 0x10010f1) #define SKK_KEYSYMS_Georgian_hie ((guint) 0x10010f2) #define SKK_KEYSYMS_Georgian_we ((guint) 0x10010f3) #define SKK_KEYSYMS_Georgian_har ((guint) 0x10010f4) #define SKK_KEYSYMS_Georgian_hoe ((guint) 0x10010f5) #define SKK_KEYSYMS_Georgian_fi ((guint) 0x10010f6) #define SKK_KEYSYMS_Xabovedot ((guint) 0x1001e8a) #define SKK_KEYSYMS_Ibreve ((guint) 0x100012c) #define SKK_KEYSYMS_Zstroke ((guint) 0x10001b5) #define SKK_KEYSYMS_Gcaron ((guint) 0x10001e6) #define SKK_KEYSYMS_Ocaron ((guint) 0x10001d1) #define SKK_KEYSYMS_Obarred ((guint) 0x100019f) #define SKK_KEYSYMS_xabovedot ((guint) 0x1001e8b) #define SKK_KEYSYMS_ibreve ((guint) 0x100012d) #define SKK_KEYSYMS_zstroke ((guint) 0x10001b6) #define SKK_KEYSYMS_gcaron ((guint) 0x10001e7) #define SKK_KEYSYMS_ocaron ((guint) 0x10001d2) #define SKK_KEYSYMS_obarred ((guint) 0x1000275) #define SKK_KEYSYMS_SCHWA ((guint) 0x100018f) #define SKK_KEYSYMS_schwa ((guint) 0x1000259) #define SKK_KEYSYMS_Lbelowdot ((guint) 0x1001e36) #define SKK_KEYSYMS_lbelowdot ((guint) 0x1001e37) #define SKK_KEYSYMS_Abelowdot ((guint) 0x1001ea0) #define SKK_KEYSYMS_abelowdot ((guint) 0x1001ea1) #define SKK_KEYSYMS_Ahook ((guint) 0x1001ea2) #define SKK_KEYSYMS_ahook ((guint) 0x1001ea3) #define SKK_KEYSYMS_Acircumflexacute ((guint) 0x1001ea4) #define SKK_KEYSYMS_acircumflexacute ((guint) 0x1001ea5) #define SKK_KEYSYMS_Acircumflexgrave ((guint) 0x1001ea6) #define SKK_KEYSYMS_acircumflexgrave ((guint) 0x1001ea7) #define SKK_KEYSYMS_Acircumflexhook ((guint) 0x1001ea8) #define SKK_KEYSYMS_acircumflexhook ((guint) 0x1001ea9) #define SKK_KEYSYMS_Acircumflextilde ((guint) 0x1001eaa) #define SKK_KEYSYMS_acircumflextilde ((guint) 0x1001eab) #define SKK_KEYSYMS_Acircumflexbelowdot ((guint) 0x1001eac) #define SKK_KEYSYMS_acircumflexbelowdot ((guint) 0x1001ead) #define SKK_KEYSYMS_Abreveacute ((guint) 0x1001eae) #define SKK_KEYSYMS_abreveacute ((guint) 0x1001eaf) #define SKK_KEYSYMS_Abrevegrave ((guint) 0x1001eb0) #define SKK_KEYSYMS_abrevegrave ((guint) 0x1001eb1) #define SKK_KEYSYMS_Abrevehook ((guint) 0x1001eb2) #define SKK_KEYSYMS_abrevehook ((guint) 0x1001eb3) #define SKK_KEYSYMS_Abrevetilde ((guint) 0x1001eb4) #define SKK_KEYSYMS_abrevetilde ((guint) 0x1001eb5) #define SKK_KEYSYMS_Abrevebelowdot ((guint) 0x1001eb6) #define SKK_KEYSYMS_abrevebelowdot ((guint) 0x1001eb7) #define SKK_KEYSYMS_Ebelowdot ((guint) 0x1001eb8) #define SKK_KEYSYMS_ebelowdot ((guint) 0x1001eb9) #define SKK_KEYSYMS_Ehook ((guint) 0x1001eba) #define SKK_KEYSYMS_ehook ((guint) 0x1001ebb) #define SKK_KEYSYMS_Etilde ((guint) 0x1001ebc) #define SKK_KEYSYMS_etilde ((guint) 0x1001ebd) #define SKK_KEYSYMS_Ecircumflexacute ((guint) 0x1001ebe) #define SKK_KEYSYMS_ecircumflexacute ((guint) 0x1001ebf) #define SKK_KEYSYMS_Ecircumflexgrave ((guint) 0x1001ec0) #define SKK_KEYSYMS_ecircumflexgrave ((guint) 0x1001ec1) #define SKK_KEYSYMS_Ecircumflexhook ((guint) 0x1001ec2) #define SKK_KEYSYMS_ecircumflexhook ((guint) 0x1001ec3) #define SKK_KEYSYMS_Ecircumflextilde ((guint) 0x1001ec4) #define SKK_KEYSYMS_ecircumflextilde ((guint) 0x1001ec5) #define SKK_KEYSYMS_Ecircumflexbelowdot ((guint) 0x1001ec6) #define SKK_KEYSYMS_ecircumflexbelowdot ((guint) 0x1001ec7) #define SKK_KEYSYMS_Ihook ((guint) 0x1001ec8) #define SKK_KEYSYMS_ihook ((guint) 0x1001ec9) #define SKK_KEYSYMS_Ibelowdot ((guint) 0x1001eca) #define SKK_KEYSYMS_ibelowdot ((guint) 0x1001ecb) #define SKK_KEYSYMS_Obelowdot ((guint) 0x1001ecc) #define SKK_KEYSYMS_obelowdot ((guint) 0x1001ecd) #define SKK_KEYSYMS_Ohook ((guint) 0x1001ece) #define SKK_KEYSYMS_ohook ((guint) 0x1001ecf) #define SKK_KEYSYMS_Ocircumflexacute ((guint) 0x1001ed0) #define SKK_KEYSYMS_ocircumflexacute ((guint) 0x1001ed1) #define SKK_KEYSYMS_Ocircumflexgrave ((guint) 0x1001ed2) #define SKK_KEYSYMS_ocircumflexgrave ((guint) 0x1001ed3) #define SKK_KEYSYMS_Ocircumflexhook ((guint) 0x1001ed4) #define SKK_KEYSYMS_ocircumflexhook ((guint) 0x1001ed5) #define SKK_KEYSYMS_Ocircumflextilde ((guint) 0x1001ed6) #define SKK_KEYSYMS_ocircumflextilde ((guint) 0x1001ed7) #define SKK_KEYSYMS_Ocircumflexbelowdot ((guint) 0x1001ed8) #define SKK_KEYSYMS_ocircumflexbelowdot ((guint) 0x1001ed9) #define SKK_KEYSYMS_Ohornacute ((guint) 0x1001eda) #define SKK_KEYSYMS_ohornacute ((guint) 0x1001edb) #define SKK_KEYSYMS_Ohorngrave ((guint) 0x1001edc) #define SKK_KEYSYMS_ohorngrave ((guint) 0x1001edd) #define SKK_KEYSYMS_Ohornhook ((guint) 0x1001ede) #define SKK_KEYSYMS_ohornhook ((guint) 0x1001edf) #define SKK_KEYSYMS_Ohorntilde ((guint) 0x1001ee0) #define SKK_KEYSYMS_ohorntilde ((guint) 0x1001ee1) #define SKK_KEYSYMS_Ohornbelowdot ((guint) 0x1001ee2) #define SKK_KEYSYMS_ohornbelowdot ((guint) 0x1001ee3) #define SKK_KEYSYMS_Ubelowdot ((guint) 0x1001ee4) #define SKK_KEYSYMS_ubelowdot ((guint) 0x1001ee5) #define SKK_KEYSYMS_Uhook ((guint) 0x1001ee6) #define SKK_KEYSYMS_uhook ((guint) 0x1001ee7) #define SKK_KEYSYMS_Uhornacute ((guint) 0x1001ee8) #define SKK_KEYSYMS_uhornacute ((guint) 0x1001ee9) #define SKK_KEYSYMS_Uhorngrave ((guint) 0x1001eea) #define SKK_KEYSYMS_uhorngrave ((guint) 0x1001eeb) #define SKK_KEYSYMS_Uhornhook ((guint) 0x1001eec) #define SKK_KEYSYMS_uhornhook ((guint) 0x1001eed) #define SKK_KEYSYMS_Uhorntilde ((guint) 0x1001eee) #define SKK_KEYSYMS_uhorntilde ((guint) 0x1001eef) #define SKK_KEYSYMS_Uhornbelowdot ((guint) 0x1001ef0) #define SKK_KEYSYMS_uhornbelowdot ((guint) 0x1001ef1) #define SKK_KEYSYMS_Ybelowdot ((guint) 0x1001ef4) #define SKK_KEYSYMS_ybelowdot ((guint) 0x1001ef5) #define SKK_KEYSYMS_Yhook ((guint) 0x1001ef6) #define SKK_KEYSYMS_yhook ((guint) 0x1001ef7) #define SKK_KEYSYMS_Ytilde ((guint) 0x1001ef8) #define SKK_KEYSYMS_ytilde ((guint) 0x1001ef9) #define SKK_KEYSYMS_Ohorn ((guint) 0x10001a0) #define SKK_KEYSYMS_ohorn ((guint) 0x10001a1) #define SKK_KEYSYMS_Uhorn ((guint) 0x10001af) #define SKK_KEYSYMS_uhorn ((guint) 0x10001b0) #define SKK_KEYSYMS_EcuSign ((guint) 0x10020a0) #define SKK_KEYSYMS_ColonSign ((guint) 0x10020a1) #define SKK_KEYSYMS_CruzeiroSign ((guint) 0x10020a2) #define SKK_KEYSYMS_FFrancSign ((guint) 0x10020a3) #define SKK_KEYSYMS_LiraSign ((guint) 0x10020a4) #define SKK_KEYSYMS_MillSign ((guint) 0x10020a5) #define SKK_KEYSYMS_NairaSign ((guint) 0x10020a6) #define SKK_KEYSYMS_PesetaSign ((guint) 0x10020a7) #define SKK_KEYSYMS_RupeeSign ((guint) 0x10020a8) #define SKK_KEYSYMS_WonSign ((guint) 0x10020a9) #define SKK_KEYSYMS_NewSheqelSign ((guint) 0x10020aa) #define SKK_KEYSYMS_DongSign ((guint) 0x10020ab) #define SKK_KEYSYMS_EuroSign ((guint) 0x20ac) #define SKK_KEYSYMS_zerosuperior ((guint) 0x1002070) #define SKK_KEYSYMS_foursuperior ((guint) 0x1002074) #define SKK_KEYSYMS_fivesuperior ((guint) 0x1002075) #define SKK_KEYSYMS_sixsuperior ((guint) 0x1002076) #define SKK_KEYSYMS_sevensuperior ((guint) 0x1002077) #define SKK_KEYSYMS_eightsuperior ((guint) 0x1002078) #define SKK_KEYSYMS_ninesuperior ((guint) 0x1002079) #define SKK_KEYSYMS_zerosubscript ((guint) 0x1002080) #define SKK_KEYSYMS_onesubscript ((guint) 0x1002081) #define SKK_KEYSYMS_twosubscript ((guint) 0x1002082) #define SKK_KEYSYMS_threesubscript ((guint) 0x1002083) #define SKK_KEYSYMS_foursubscript ((guint) 0x1002084) #define SKK_KEYSYMS_fivesubscript ((guint) 0x1002085) #define SKK_KEYSYMS_sixsubscript ((guint) 0x1002086) #define SKK_KEYSYMS_sevensubscript ((guint) 0x1002087) #define SKK_KEYSYMS_eightsubscript ((guint) 0x1002088) #define SKK_KEYSYMS_ninesubscript ((guint) 0x1002089) #define SKK_KEYSYMS_partdifferential ((guint) 0x1002202) #define SKK_KEYSYMS_emptyset ((guint) 0x1002205) #define SKK_KEYSYMS_elementof ((guint) 0x1002208) #define SKK_KEYSYMS_notelementof ((guint) 0x1002209) #define SKK_KEYSYMS_containsas ((guint) 0x100220B) #define SKK_KEYSYMS_squareroot ((guint) 0x100221A) #define SKK_KEYSYMS_cuberoot ((guint) 0x100221B) #define SKK_KEYSYMS_fourthroot ((guint) 0x100221C) #define SKK_KEYSYMS_dintegral ((guint) 0x100222C) #define SKK_KEYSYMS_tintegral ((guint) 0x100222D) #define SKK_KEYSYMS_because ((guint) 0x1002235) #define SKK_KEYSYMS_approxeq ((guint) 0x1002248) #define SKK_KEYSYMS_notapproxeq ((guint) 0x1002247) #define SKK_KEYSYMS_notidentical ((guint) 0x1002262) #define SKK_KEYSYMS_stricteq ((guint) 0x1002263) #define SKK_KEYSYMS_braille_dot_1 ((guint) 0xfff1) #define SKK_KEYSYMS_braille_dot_2 ((guint) 0xfff2) #define SKK_KEYSYMS_braille_dot_3 ((guint) 0xfff3) #define SKK_KEYSYMS_braille_dot_4 ((guint) 0xfff4) #define SKK_KEYSYMS_braille_dot_5 ((guint) 0xfff5) #define SKK_KEYSYMS_braille_dot_6 ((guint) 0xfff6) #define SKK_KEYSYMS_braille_dot_7 ((guint) 0xfff7) #define SKK_KEYSYMS_braille_dot_8 ((guint) 0xfff8) #define SKK_KEYSYMS_braille_dot_9 ((guint) 0xfff9) #define SKK_KEYSYMS_braille_dot_10 ((guint) 0xfffa) #define SKK_KEYSYMS_braille_blank ((guint) 0x1002800) #define SKK_KEYSYMS_braille_dots_1 ((guint) 0x1002801) #define SKK_KEYSYMS_braille_dots_2 ((guint) 0x1002802) #define SKK_KEYSYMS_braille_dots_12 ((guint) 0x1002803) #define SKK_KEYSYMS_braille_dots_3 ((guint) 0x1002804) #define SKK_KEYSYMS_braille_dots_13 ((guint) 0x1002805) #define SKK_KEYSYMS_braille_dots_23 ((guint) 0x1002806) #define SKK_KEYSYMS_braille_dots_123 ((guint) 0x1002807) #define SKK_KEYSYMS_braille_dots_4 ((guint) 0x1002808) #define SKK_KEYSYMS_braille_dots_14 ((guint) 0x1002809) #define SKK_KEYSYMS_braille_dots_24 ((guint) 0x100280a) #define SKK_KEYSYMS_braille_dots_124 ((guint) 0x100280b) #define SKK_KEYSYMS_braille_dots_34 ((guint) 0x100280c) #define SKK_KEYSYMS_braille_dots_134 ((guint) 0x100280d) #define SKK_KEYSYMS_braille_dots_234 ((guint) 0x100280e) #define SKK_KEYSYMS_braille_dots_1234 ((guint) 0x100280f) #define SKK_KEYSYMS_braille_dots_5 ((guint) 0x1002810) #define SKK_KEYSYMS_braille_dots_15 ((guint) 0x1002811) #define SKK_KEYSYMS_braille_dots_25 ((guint) 0x1002812) #define SKK_KEYSYMS_braille_dots_125 ((guint) 0x1002813) #define SKK_KEYSYMS_braille_dots_35 ((guint) 0x1002814) #define SKK_KEYSYMS_braille_dots_135 ((guint) 0x1002815) #define SKK_KEYSYMS_braille_dots_235 ((guint) 0x1002816) #define SKK_KEYSYMS_braille_dots_1235 ((guint) 0x1002817) #define SKK_KEYSYMS_braille_dots_45 ((guint) 0x1002818) #define SKK_KEYSYMS_braille_dots_145 ((guint) 0x1002819) #define SKK_KEYSYMS_braille_dots_245 ((guint) 0x100281a) #define SKK_KEYSYMS_braille_dots_1245 ((guint) 0x100281b) #define SKK_KEYSYMS_braille_dots_345 ((guint) 0x100281c) #define SKK_KEYSYMS_braille_dots_1345 ((guint) 0x100281d) #define SKK_KEYSYMS_braille_dots_2345 ((guint) 0x100281e) #define SKK_KEYSYMS_braille_dots_12345 ((guint) 0x100281f) #define SKK_KEYSYMS_braille_dots_6 ((guint) 0x1002820) #define SKK_KEYSYMS_braille_dots_16 ((guint) 0x1002821) #define SKK_KEYSYMS_braille_dots_26 ((guint) 0x1002822) #define SKK_KEYSYMS_braille_dots_126 ((guint) 0x1002823) #define SKK_KEYSYMS_braille_dots_36 ((guint) 0x1002824) #define SKK_KEYSYMS_braille_dots_136 ((guint) 0x1002825) #define SKK_KEYSYMS_braille_dots_236 ((guint) 0x1002826) #define SKK_KEYSYMS_braille_dots_1236 ((guint) 0x1002827) #define SKK_KEYSYMS_braille_dots_46 ((guint) 0x1002828) #define SKK_KEYSYMS_braille_dots_146 ((guint) 0x1002829) #define SKK_KEYSYMS_braille_dots_246 ((guint) 0x100282a) #define SKK_KEYSYMS_braille_dots_1246 ((guint) 0x100282b) #define SKK_KEYSYMS_braille_dots_346 ((guint) 0x100282c) #define SKK_KEYSYMS_braille_dots_1346 ((guint) 0x100282d) #define SKK_KEYSYMS_braille_dots_2346 ((guint) 0x100282e) #define SKK_KEYSYMS_braille_dots_12346 ((guint) 0x100282f) #define SKK_KEYSYMS_braille_dots_56 ((guint) 0x1002830) #define SKK_KEYSYMS_braille_dots_156 ((guint) 0x1002831) #define SKK_KEYSYMS_braille_dots_256 ((guint) 0x1002832) #define SKK_KEYSYMS_braille_dots_1256 ((guint) 0x1002833) #define SKK_KEYSYMS_braille_dots_356 ((guint) 0x1002834) #define SKK_KEYSYMS_braille_dots_1356 ((guint) 0x1002835) #define SKK_KEYSYMS_braille_dots_2356 ((guint) 0x1002836) #define SKK_KEYSYMS_braille_dots_12356 ((guint) 0x1002837) #define SKK_KEYSYMS_braille_dots_456 ((guint) 0x1002838) #define SKK_KEYSYMS_braille_dots_1456 ((guint) 0x1002839) #define SKK_KEYSYMS_braille_dots_2456 ((guint) 0x100283a) #define SKK_KEYSYMS_braille_dots_12456 ((guint) 0x100283b) #define SKK_KEYSYMS_braille_dots_3456 ((guint) 0x100283c) #define SKK_KEYSYMS_braille_dots_13456 ((guint) 0x100283d) #define SKK_KEYSYMS_braille_dots_23456 ((guint) 0x100283e) #define SKK_KEYSYMS_braille_dots_123456 ((guint) 0x100283f) #define SKK_KEYSYMS_braille_dots_7 ((guint) 0x1002840) #define SKK_KEYSYMS_braille_dots_17 ((guint) 0x1002841) #define SKK_KEYSYMS_braille_dots_27 ((guint) 0x1002842) #define SKK_KEYSYMS_braille_dots_127 ((guint) 0x1002843) #define SKK_KEYSYMS_braille_dots_37 ((guint) 0x1002844) #define SKK_KEYSYMS_braille_dots_137 ((guint) 0x1002845) #define SKK_KEYSYMS_braille_dots_237 ((guint) 0x1002846) #define SKK_KEYSYMS_braille_dots_1237 ((guint) 0x1002847) #define SKK_KEYSYMS_braille_dots_47 ((guint) 0x1002848) #define SKK_KEYSYMS_braille_dots_147 ((guint) 0x1002849) #define SKK_KEYSYMS_braille_dots_247 ((guint) 0x100284a) #define SKK_KEYSYMS_braille_dots_1247 ((guint) 0x100284b) #define SKK_KEYSYMS_braille_dots_347 ((guint) 0x100284c) #define SKK_KEYSYMS_braille_dots_1347 ((guint) 0x100284d) #define SKK_KEYSYMS_braille_dots_2347 ((guint) 0x100284e) #define SKK_KEYSYMS_braille_dots_12347 ((guint) 0x100284f) #define SKK_KEYSYMS_braille_dots_57 ((guint) 0x1002850) #define SKK_KEYSYMS_braille_dots_157 ((guint) 0x1002851) #define SKK_KEYSYMS_braille_dots_257 ((guint) 0x1002852) #define SKK_KEYSYMS_braille_dots_1257 ((guint) 0x1002853) #define SKK_KEYSYMS_braille_dots_357 ((guint) 0x1002854) #define SKK_KEYSYMS_braille_dots_1357 ((guint) 0x1002855) #define SKK_KEYSYMS_braille_dots_2357 ((guint) 0x1002856) #define SKK_KEYSYMS_braille_dots_12357 ((guint) 0x1002857) #define SKK_KEYSYMS_braille_dots_457 ((guint) 0x1002858) #define SKK_KEYSYMS_braille_dots_1457 ((guint) 0x1002859) #define SKK_KEYSYMS_braille_dots_2457 ((guint) 0x100285a) #define SKK_KEYSYMS_braille_dots_12457 ((guint) 0x100285b) #define SKK_KEYSYMS_braille_dots_3457 ((guint) 0x100285c) #define SKK_KEYSYMS_braille_dots_13457 ((guint) 0x100285d) #define SKK_KEYSYMS_braille_dots_23457 ((guint) 0x100285e) #define SKK_KEYSYMS_braille_dots_123457 ((guint) 0x100285f) #define SKK_KEYSYMS_braille_dots_67 ((guint) 0x1002860) #define SKK_KEYSYMS_braille_dots_167 ((guint) 0x1002861) #define SKK_KEYSYMS_braille_dots_267 ((guint) 0x1002862) #define SKK_KEYSYMS_braille_dots_1267 ((guint) 0x1002863) #define SKK_KEYSYMS_braille_dots_367 ((guint) 0x1002864) #define SKK_KEYSYMS_braille_dots_1367 ((guint) 0x1002865) #define SKK_KEYSYMS_braille_dots_2367 ((guint) 0x1002866) #define SKK_KEYSYMS_braille_dots_12367 ((guint) 0x1002867) #define SKK_KEYSYMS_braille_dots_467 ((guint) 0x1002868) #define SKK_KEYSYMS_braille_dots_1467 ((guint) 0x1002869) #define SKK_KEYSYMS_braille_dots_2467 ((guint) 0x100286a) #define SKK_KEYSYMS_braille_dots_12467 ((guint) 0x100286b) #define SKK_KEYSYMS_braille_dots_3467 ((guint) 0x100286c) #define SKK_KEYSYMS_braille_dots_13467 ((guint) 0x100286d) #define SKK_KEYSYMS_braille_dots_23467 ((guint) 0x100286e) #define SKK_KEYSYMS_braille_dots_123467 ((guint) 0x100286f) #define SKK_KEYSYMS_braille_dots_567 ((guint) 0x1002870) #define SKK_KEYSYMS_braille_dots_1567 ((guint) 0x1002871) #define SKK_KEYSYMS_braille_dots_2567 ((guint) 0x1002872) #define SKK_KEYSYMS_braille_dots_12567 ((guint) 0x1002873) #define SKK_KEYSYMS_braille_dots_3567 ((guint) 0x1002874) #define SKK_KEYSYMS_braille_dots_13567 ((guint) 0x1002875) #define SKK_KEYSYMS_braille_dots_23567 ((guint) 0x1002876) #define SKK_KEYSYMS_braille_dots_123567 ((guint) 0x1002877) #define SKK_KEYSYMS_braille_dots_4567 ((guint) 0x1002878) #define SKK_KEYSYMS_braille_dots_14567 ((guint) 0x1002879) #define SKK_KEYSYMS_braille_dots_24567 ((guint) 0x100287a) #define SKK_KEYSYMS_braille_dots_124567 ((guint) 0x100287b) #define SKK_KEYSYMS_braille_dots_34567 ((guint) 0x100287c) #define SKK_KEYSYMS_braille_dots_134567 ((guint) 0x100287d) #define SKK_KEYSYMS_braille_dots_234567 ((guint) 0x100287e) #define SKK_KEYSYMS_braille_dots_1234567 ((guint) 0x100287f) #define SKK_KEYSYMS_braille_dots_8 ((guint) 0x1002880) #define SKK_KEYSYMS_braille_dots_18 ((guint) 0x1002881) #define SKK_KEYSYMS_braille_dots_28 ((guint) 0x1002882) #define SKK_KEYSYMS_braille_dots_128 ((guint) 0x1002883) #define SKK_KEYSYMS_braille_dots_38 ((guint) 0x1002884) #define SKK_KEYSYMS_braille_dots_138 ((guint) 0x1002885) #define SKK_KEYSYMS_braille_dots_238 ((guint) 0x1002886) #define SKK_KEYSYMS_braille_dots_1238 ((guint) 0x1002887) #define SKK_KEYSYMS_braille_dots_48 ((guint) 0x1002888) #define SKK_KEYSYMS_braille_dots_148 ((guint) 0x1002889) #define SKK_KEYSYMS_braille_dots_248 ((guint) 0x100288a) #define SKK_KEYSYMS_braille_dots_1248 ((guint) 0x100288b) #define SKK_KEYSYMS_braille_dots_348 ((guint) 0x100288c) #define SKK_KEYSYMS_braille_dots_1348 ((guint) 0x100288d) #define SKK_KEYSYMS_braille_dots_2348 ((guint) 0x100288e) #define SKK_KEYSYMS_braille_dots_12348 ((guint) 0x100288f) #define SKK_KEYSYMS_braille_dots_58 ((guint) 0x1002890) #define SKK_KEYSYMS_braille_dots_158 ((guint) 0x1002891) #define SKK_KEYSYMS_braille_dots_258 ((guint) 0x1002892) #define SKK_KEYSYMS_braille_dots_1258 ((guint) 0x1002893) #define SKK_KEYSYMS_braille_dots_358 ((guint) 0x1002894) #define SKK_KEYSYMS_braille_dots_1358 ((guint) 0x1002895) #define SKK_KEYSYMS_braille_dots_2358 ((guint) 0x1002896) #define SKK_KEYSYMS_braille_dots_12358 ((guint) 0x1002897) #define SKK_KEYSYMS_braille_dots_458 ((guint) 0x1002898) #define SKK_KEYSYMS_braille_dots_1458 ((guint) 0x1002899) #define SKK_KEYSYMS_braille_dots_2458 ((guint) 0x100289a) #define SKK_KEYSYMS_braille_dots_12458 ((guint) 0x100289b) #define SKK_KEYSYMS_braille_dots_3458 ((guint) 0x100289c) #define SKK_KEYSYMS_braille_dots_13458 ((guint) 0x100289d) #define SKK_KEYSYMS_braille_dots_23458 ((guint) 0x100289e) #define SKK_KEYSYMS_braille_dots_123458 ((guint) 0x100289f) #define SKK_KEYSYMS_braille_dots_68 ((guint) 0x10028a0) #define SKK_KEYSYMS_braille_dots_168 ((guint) 0x10028a1) #define SKK_KEYSYMS_braille_dots_268 ((guint) 0x10028a2) #define SKK_KEYSYMS_braille_dots_1268 ((guint) 0x10028a3) #define SKK_KEYSYMS_braille_dots_368 ((guint) 0x10028a4) #define SKK_KEYSYMS_braille_dots_1368 ((guint) 0x10028a5) #define SKK_KEYSYMS_braille_dots_2368 ((guint) 0x10028a6) #define SKK_KEYSYMS_braille_dots_12368 ((guint) 0x10028a7) #define SKK_KEYSYMS_braille_dots_468 ((guint) 0x10028a8) #define SKK_KEYSYMS_braille_dots_1468 ((guint) 0x10028a9) #define SKK_KEYSYMS_braille_dots_2468 ((guint) 0x10028aa) #define SKK_KEYSYMS_braille_dots_12468 ((guint) 0x10028ab) #define SKK_KEYSYMS_braille_dots_3468 ((guint) 0x10028ac) #define SKK_KEYSYMS_braille_dots_13468 ((guint) 0x10028ad) #define SKK_KEYSYMS_braille_dots_23468 ((guint) 0x10028ae) #define SKK_KEYSYMS_braille_dots_123468 ((guint) 0x10028af) #define SKK_KEYSYMS_braille_dots_568 ((guint) 0x10028b0) #define SKK_KEYSYMS_braille_dots_1568 ((guint) 0x10028b1) #define SKK_KEYSYMS_braille_dots_2568 ((guint) 0x10028b2) #define SKK_KEYSYMS_braille_dots_12568 ((guint) 0x10028b3) #define SKK_KEYSYMS_braille_dots_3568 ((guint) 0x10028b4) #define SKK_KEYSYMS_braille_dots_13568 ((guint) 0x10028b5) #define SKK_KEYSYMS_braille_dots_23568 ((guint) 0x10028b6) #define SKK_KEYSYMS_braille_dots_123568 ((guint) 0x10028b7) #define SKK_KEYSYMS_braille_dots_4568 ((guint) 0x10028b8) #define SKK_KEYSYMS_braille_dots_14568 ((guint) 0x10028b9) #define SKK_KEYSYMS_braille_dots_24568 ((guint) 0x10028ba) #define SKK_KEYSYMS_braille_dots_124568 ((guint) 0x10028bb) #define SKK_KEYSYMS_braille_dots_34568 ((guint) 0x10028bc) #define SKK_KEYSYMS_braille_dots_134568 ((guint) 0x10028bd) #define SKK_KEYSYMS_braille_dots_234568 ((guint) 0x10028be) #define SKK_KEYSYMS_braille_dots_1234568 ((guint) 0x10028bf) #define SKK_KEYSYMS_braille_dots_78 ((guint) 0x10028c0) #define SKK_KEYSYMS_braille_dots_178 ((guint) 0x10028c1) #define SKK_KEYSYMS_braille_dots_278 ((guint) 0x10028c2) #define SKK_KEYSYMS_braille_dots_1278 ((guint) 0x10028c3) #define SKK_KEYSYMS_braille_dots_378 ((guint) 0x10028c4) #define SKK_KEYSYMS_braille_dots_1378 ((guint) 0x10028c5) #define SKK_KEYSYMS_braille_dots_2378 ((guint) 0x10028c6) #define SKK_KEYSYMS_braille_dots_12378 ((guint) 0x10028c7) #define SKK_KEYSYMS_braille_dots_478 ((guint) 0x10028c8) #define SKK_KEYSYMS_braille_dots_1478 ((guint) 0x10028c9) #define SKK_KEYSYMS_braille_dots_2478 ((guint) 0x10028ca) #define SKK_KEYSYMS_braille_dots_12478 ((guint) 0x10028cb) #define SKK_KEYSYMS_braille_dots_3478 ((guint) 0x10028cc) #define SKK_KEYSYMS_braille_dots_13478 ((guint) 0x10028cd) #define SKK_KEYSYMS_braille_dots_23478 ((guint) 0x10028ce) #define SKK_KEYSYMS_braille_dots_123478 ((guint) 0x10028cf) #define SKK_KEYSYMS_braille_dots_578 ((guint) 0x10028d0) #define SKK_KEYSYMS_braille_dots_1578 ((guint) 0x10028d1) #define SKK_KEYSYMS_braille_dots_2578 ((guint) 0x10028d2) #define SKK_KEYSYMS_braille_dots_12578 ((guint) 0x10028d3) #define SKK_KEYSYMS_braille_dots_3578 ((guint) 0x10028d4) #define SKK_KEYSYMS_braille_dots_13578 ((guint) 0x10028d5) #define SKK_KEYSYMS_braille_dots_23578 ((guint) 0x10028d6) #define SKK_KEYSYMS_braille_dots_123578 ((guint) 0x10028d7) #define SKK_KEYSYMS_braille_dots_4578 ((guint) 0x10028d8) #define SKK_KEYSYMS_braille_dots_14578 ((guint) 0x10028d9) #define SKK_KEYSYMS_braille_dots_24578 ((guint) 0x10028da) #define SKK_KEYSYMS_braille_dots_124578 ((guint) 0x10028db) #define SKK_KEYSYMS_braille_dots_34578 ((guint) 0x10028dc) #define SKK_KEYSYMS_braille_dots_134578 ((guint) 0x10028dd) #define SKK_KEYSYMS_braille_dots_234578 ((guint) 0x10028de) #define SKK_KEYSYMS_braille_dots_1234578 ((guint) 0x10028df) #define SKK_KEYSYMS_braille_dots_678 ((guint) 0x10028e0) #define SKK_KEYSYMS_braille_dots_1678 ((guint) 0x10028e1) #define SKK_KEYSYMS_braille_dots_2678 ((guint) 0x10028e2) #define SKK_KEYSYMS_braille_dots_12678 ((guint) 0x10028e3) #define SKK_KEYSYMS_braille_dots_3678 ((guint) 0x10028e4) #define SKK_KEYSYMS_braille_dots_13678 ((guint) 0x10028e5) #define SKK_KEYSYMS_braille_dots_23678 ((guint) 0x10028e6) #define SKK_KEYSYMS_braille_dots_123678 ((guint) 0x10028e7) #define SKK_KEYSYMS_braille_dots_4678 ((guint) 0x10028e8) #define SKK_KEYSYMS_braille_dots_14678 ((guint) 0x10028e9) #define SKK_KEYSYMS_braille_dots_24678 ((guint) 0x10028ea) #define SKK_KEYSYMS_braille_dots_124678 ((guint) 0x10028eb) #define SKK_KEYSYMS_braille_dots_34678 ((guint) 0x10028ec) #define SKK_KEYSYMS_braille_dots_134678 ((guint) 0x10028ed) #define SKK_KEYSYMS_braille_dots_234678 ((guint) 0x10028ee) #define SKK_KEYSYMS_braille_dots_1234678 ((guint) 0x10028ef) #define SKK_KEYSYMS_braille_dots_5678 ((guint) 0x10028f0) #define SKK_KEYSYMS_braille_dots_15678 ((guint) 0x10028f1) #define SKK_KEYSYMS_braille_dots_25678 ((guint) 0x10028f2) #define SKK_KEYSYMS_braille_dots_125678 ((guint) 0x10028f3) #define SKK_KEYSYMS_braille_dots_35678 ((guint) 0x10028f4) #define SKK_KEYSYMS_braille_dots_135678 ((guint) 0x10028f5) #define SKK_KEYSYMS_braille_dots_235678 ((guint) 0x10028f6) #define SKK_KEYSYMS_braille_dots_1235678 ((guint) 0x10028f7) #define SKK_KEYSYMS_braille_dots_45678 ((guint) 0x10028f8) #define SKK_KEYSYMS_braille_dots_145678 ((guint) 0x10028f9) #define SKK_KEYSYMS_braille_dots_245678 ((guint) 0x10028fa) #define SKK_KEYSYMS_braille_dots_1245678 ((guint) 0x10028fb) #define SKK_KEYSYMS_braille_dots_345678 ((guint) 0x10028fc) #define SKK_KEYSYMS_braille_dots_1345678 ((guint) 0x10028fd) #define SKK_KEYSYMS_braille_dots_2345678 ((guint) 0x10028fe) #define SKK_KEYSYMS_braille_dots_12345678 ((guint) 0x10028ff) #define SKK_KEYSYMS_Sinh_ng ((guint) 0x1000d82) #define SKK_KEYSYMS_Sinh_h2 ((guint) 0x1000d83) #define SKK_KEYSYMS_Sinh_a ((guint) 0x1000d85) #define SKK_KEYSYMS_Sinh_aa ((guint) 0x1000d86) #define SKK_KEYSYMS_Sinh_ae ((guint) 0x1000d87) #define SKK_KEYSYMS_Sinh_aee ((guint) 0x1000d88) #define SKK_KEYSYMS_Sinh_i ((guint) 0x1000d89) #define SKK_KEYSYMS_Sinh_ii ((guint) 0x1000d8a) #define SKK_KEYSYMS_Sinh_u ((guint) 0x1000d8b) #define SKK_KEYSYMS_Sinh_uu ((guint) 0x1000d8c) #define SKK_KEYSYMS_Sinh_ri ((guint) 0x1000d8d) #define SKK_KEYSYMS_Sinh_rii ((guint) 0x1000d8e) #define SKK_KEYSYMS_Sinh_lu ((guint) 0x1000d8f) #define SKK_KEYSYMS_Sinh_luu ((guint) 0x1000d90) #define SKK_KEYSYMS_Sinh_e ((guint) 0x1000d91) #define SKK_KEYSYMS_Sinh_ee ((guint) 0x1000d92) #define SKK_KEYSYMS_Sinh_ai ((guint) 0x1000d93) #define SKK_KEYSYMS_Sinh_o ((guint) 0x1000d94) #define SKK_KEYSYMS_Sinh_oo ((guint) 0x1000d95) #define SKK_KEYSYMS_Sinh_au ((guint) 0x1000d96) #define SKK_KEYSYMS_Sinh_ka ((guint) 0x1000d9a) #define SKK_KEYSYMS_Sinh_kha ((guint) 0x1000d9b) #define SKK_KEYSYMS_Sinh_ga ((guint) 0x1000d9c) #define SKK_KEYSYMS_Sinh_gha ((guint) 0x1000d9d) #define SKK_KEYSYMS_Sinh_ng2 ((guint) 0x1000d9e) #define SKK_KEYSYMS_Sinh_nga ((guint) 0x1000d9f) #define SKK_KEYSYMS_Sinh_ca ((guint) 0x1000da0) #define SKK_KEYSYMS_Sinh_cha ((guint) 0x1000da1) #define SKK_KEYSYMS_Sinh_ja ((guint) 0x1000da2) #define SKK_KEYSYMS_Sinh_jha ((guint) 0x1000da3) #define SKK_KEYSYMS_Sinh_nya ((guint) 0x1000da4) #define SKK_KEYSYMS_Sinh_jnya ((guint) 0x1000da5) #define SKK_KEYSYMS_Sinh_nja ((guint) 0x1000da6) #define SKK_KEYSYMS_Sinh_tta ((guint) 0x1000da7) #define SKK_KEYSYMS_Sinh_ttha ((guint) 0x1000da8) #define SKK_KEYSYMS_Sinh_dda ((guint) 0x1000da9) #define SKK_KEYSYMS_Sinh_ddha ((guint) 0x1000daa) #define SKK_KEYSYMS_Sinh_nna ((guint) 0x1000dab) #define SKK_KEYSYMS_Sinh_ndda ((guint) 0x1000dac) #define SKK_KEYSYMS_Sinh_tha ((guint) 0x1000dad) #define SKK_KEYSYMS_Sinh_thha ((guint) 0x1000dae) #define SKK_KEYSYMS_Sinh_dha ((guint) 0x1000daf) #define SKK_KEYSYMS_Sinh_dhha ((guint) 0x1000db0) #define SKK_KEYSYMS_Sinh_na ((guint) 0x1000db1) #define SKK_KEYSYMS_Sinh_ndha ((guint) 0x1000db3) #define SKK_KEYSYMS_Sinh_pa ((guint) 0x1000db4) #define SKK_KEYSYMS_Sinh_pha ((guint) 0x1000db5) #define SKK_KEYSYMS_Sinh_ba ((guint) 0x1000db6) #define SKK_KEYSYMS_Sinh_bha ((guint) 0x1000db7) #define SKK_KEYSYMS_Sinh_ma ((guint) 0x1000db8) #define SKK_KEYSYMS_Sinh_mba ((guint) 0x1000db9) #define SKK_KEYSYMS_Sinh_ya ((guint) 0x1000dba) #define SKK_KEYSYMS_Sinh_ra ((guint) 0x1000dbb) #define SKK_KEYSYMS_Sinh_la ((guint) 0x1000dbd) #define SKK_KEYSYMS_Sinh_va ((guint) 0x1000dc0) #define SKK_KEYSYMS_Sinh_sha ((guint) 0x1000dc1) #define SKK_KEYSYMS_Sinh_ssha ((guint) 0x1000dc2) #define SKK_KEYSYMS_Sinh_sa ((guint) 0x1000dc3) #define SKK_KEYSYMS_Sinh_ha ((guint) 0x1000dc4) #define SKK_KEYSYMS_Sinh_lla ((guint) 0x1000dc5) #define SKK_KEYSYMS_Sinh_fa ((guint) 0x1000dc6) #define SKK_KEYSYMS_Sinh_al ((guint) 0x1000dca) #define SKK_KEYSYMS_Sinh_aa2 ((guint) 0x1000dcf) #define SKK_KEYSYMS_Sinh_ae2 ((guint) 0x1000dd0) #define SKK_KEYSYMS_Sinh_aee2 ((guint) 0x1000dd1) #define SKK_KEYSYMS_Sinh_i2 ((guint) 0x1000dd2) #define SKK_KEYSYMS_Sinh_ii2 ((guint) 0x1000dd3) #define SKK_KEYSYMS_Sinh_u2 ((guint) 0x1000dd4) #define SKK_KEYSYMS_Sinh_uu2 ((guint) 0x1000dd6) #define SKK_KEYSYMS_Sinh_ru2 ((guint) 0x1000dd8) #define SKK_KEYSYMS_Sinh_e2 ((guint) 0x1000dd9) #define SKK_KEYSYMS_Sinh_ee2 ((guint) 0x1000dda) #define SKK_KEYSYMS_Sinh_ai2 ((guint) 0x1000ddb) #define SKK_KEYSYMS_Sinh_o2 ((guint) 0x1000ddc) #define SKK_KEYSYMS_Sinh_oo2 ((guint) 0x1000ddd) #define SKK_KEYSYMS_Sinh_au2 ((guint) 0x1000dde) #define SKK_KEYSYMS_Sinh_lu2 ((guint) 0x1000ddf) #define SKK_KEYSYMS_Sinh_ruu2 ((guint) 0x1000df2) #define SKK_KEYSYMS_Sinh_luu2 ((guint) 0x1000df3) #define SKK_KEYSYMS_Sinh_kunddaliya ((guint) 0x1000df4) G_END_DECLS #endif libskk-1.0.0/libskk/encoding.c0000664000076400007640000004756012016556643013157 00000000000000/* encoding.c generated by valac 0.16.0, the Vala compiler * generated from encoding.vala, do not modify */ /* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ #include #include #include #include #include #define SKK_TYPE_ENCODING_CONVERTER (skk_encoding_converter_get_type ()) #define SKK_ENCODING_CONVERTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_ENCODING_CONVERTER, SkkEncodingConverter)) #define SKK_ENCODING_CONVERTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_ENCODING_CONVERTER, SkkEncodingConverterClass)) #define SKK_IS_ENCODING_CONVERTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_ENCODING_CONVERTER)) #define SKK_IS_ENCODING_CONVERTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_ENCODING_CONVERTER)) #define SKK_ENCODING_CONVERTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_ENCODING_CONVERTER, SkkEncodingConverterClass)) typedef struct _SkkEncodingConverter SkkEncodingConverter; typedef struct _SkkEncodingConverterClass SkkEncodingConverterClass; typedef struct _SkkEncodingConverterPrivate SkkEncodingConverterPrivate; #define _g_free0(var) (var = (g_free (var), NULL)) #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) #define SKK_TYPE_ENTRY (skk_entry_get_type ()) typedef struct _SkkEntry SkkEntry; #define _g_match_info_free0(var) ((var == NULL) ? NULL : (var = (g_match_info_free (var), NULL))) #define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL))) #define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL))) #define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL))) struct _SkkEncodingConverter { GObject parent_instance; SkkEncodingConverterPrivate * priv; }; struct _SkkEncodingConverterClass { GObjectClass parent_class; }; struct _SkkEncodingConverterPrivate { gchar* _encoding; GCharsetConverter* encoder; GCharsetConverter* decoder; }; struct _SkkEntry { gpointer key; gpointer value; }; static gpointer skk_encoding_converter_parent_class = NULL; static GRegex* skk_encoding_converter_coding_cookie_regex; static GRegex* skk_encoding_converter_coding_cookie_regex = NULL; GType skk_encoding_converter_get_type (void) G_GNUC_CONST; #define SKK_ENCODING_CONVERTER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SKK_TYPE_ENCODING_CONVERTER, SkkEncodingConverterPrivate)) enum { SKK_ENCODING_CONVERTER_DUMMY_PROPERTY, SKK_ENCODING_CONVERTER_ENCODING }; #define SKK_ENCODING_CONVERTER_BUFSIZ 4096 #define SKK_ENCODING_CONVERTER_INTERNAL_ENCODING "UTF-8" GType skk_entry_get_type (void) G_GNUC_CONST; SkkEntry* skk_entry_dup (const SkkEntry* self); void skk_entry_free (SkkEntry* self); void skk_entry_copy (const SkkEntry* self, SkkEntry* dest); void skk_entry_destroy (SkkEntry* self); gchar* skk_encoding_converter_extract_coding_system (const gchar* line); gchar* skk_encoding_converter_get_coding_system (SkkEncodingConverter* self); const gchar* skk_encoding_converter_get_encoding (SkkEncodingConverter* self); SkkEncodingConverter* skk_encoding_converter_new (const gchar* encoding, GError** error); SkkEncodingConverter* skk_encoding_converter_construct (GType object_type, const gchar* encoding, GError** error); static void skk_encoding_converter_set_encoding (SkkEncodingConverter* self, const gchar* value); SkkEncodingConverter* skk_encoding_converter_new_from_coding_system (const gchar* coding, GError** error); SkkEncodingConverter* skk_encoding_converter_construct_from_coding_system (GType object_type, const gchar* coding, GError** error); static gchar* skk_encoding_converter_convert (SkkEncodingConverter* self, GCharsetConverter* converter, const gchar* str, GError** error); static guint8* _vala_array_dup1 (guint8* self, int length); gchar* skk_encoding_converter_encode (SkkEncodingConverter* self, const gchar* internal_str, GError** error); gchar* skk_encoding_converter_decode (SkkEncodingConverter* self, const gchar* external_str, GError** error); static void skk_encoding_converter_finalize (GObject* obj); static void _vala_skk_encoding_converter_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); static void _vala_skk_encoding_converter_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec); static const SkkEntry SKK_ENCODING_CONVERTER_ENCODING_TO_CODING_SYSTEM_RULE[7] = {{"UTF-8", "utf-8"}, {"EUC-JP", "euc-jp"}, {"Shift_JIS", "shift_jis"}, {"ISO-2022-JP", "iso-2022-jp"}, {"EUC-JISX0213", "euc-jisx0213"}, {"EUC-JISX0213", "euc-jis-2004"}, {"SHIFT_JISX0213", "shift_jis-2004"}}; gchar* skk_encoding_converter_extract_coding_system (const gchar* line) { gchar* result = NULL; GMatchInfo* info; GRegex* _tmp0_; const gchar* _tmp1_; GMatchInfo* _tmp2_ = NULL; gboolean _tmp3_ = FALSE; g_return_val_if_fail (line != NULL, NULL); info = NULL; _tmp0_ = skk_encoding_converter_coding_cookie_regex; _tmp1_ = line; _tmp3_ = g_regex_match (_tmp0_, _tmp1_, 0, &_tmp2_); _g_match_info_free0 (info); info = _tmp2_; if (_tmp3_) { GMatchInfo* _tmp4_; gchar* _tmp5_ = NULL; _tmp4_ = info; _tmp5_ = g_match_info_fetch (_tmp4_, 1); result = _tmp5_; _g_match_info_free0 (info); return result; } result = NULL; _g_match_info_free0 (info); return result; } gchar* skk_encoding_converter_get_coding_system (SkkEncodingConverter* self) { gchar* result = NULL; g_return_val_if_fail (self != NULL, NULL); { SkkEntry* entry_collection = NULL; gint entry_collection_length1 = 0; gint _entry_collection_size_ = 0; gint entry_it = 0; entry_collection = SKK_ENCODING_CONVERTER_ENCODING_TO_CODING_SYSTEM_RULE; entry_collection_length1 = G_N_ELEMENTS (SKK_ENCODING_CONVERTER_ENCODING_TO_CODING_SYSTEM_RULE); for (entry_it = 0; entry_it < G_N_ELEMENTS (SKK_ENCODING_CONVERTER_ENCODING_TO_CODING_SYSTEM_RULE); entry_it = entry_it + 1) { SkkEntry entry = {0}; entry = entry_collection[entry_it]; { SkkEntry _tmp0_; gconstpointer _tmp1_; const gchar* _tmp2_; _tmp0_ = entry; _tmp1_ = _tmp0_.key; _tmp2_ = self->priv->_encoding; if (g_strcmp0 ((const gchar*) _tmp1_, _tmp2_) == 0) { SkkEntry _tmp3_; gconstpointer _tmp4_; gchar* _tmp5_; _tmp3_ = entry; _tmp4_ = _tmp3_.value; _tmp5_ = g_strdup ((const gchar*) _tmp4_); result = _tmp5_; return result; } } } } result = NULL; return result; } SkkEncodingConverter* skk_encoding_converter_construct (GType object_type, const gchar* encoding, GError** error) { SkkEncodingConverter * self = NULL; const gchar* _tmp0_; const gchar* _tmp1_; GCharsetConverter* _tmp2_; GCharsetConverter* _tmp3_; const gchar* _tmp4_; GCharsetConverter* _tmp5_; GCharsetConverter* _tmp6_; GError * _inner_error_ = NULL; g_return_val_if_fail (encoding != NULL, NULL); self = (SkkEncodingConverter*) g_object_new (object_type, NULL); _tmp0_ = encoding; skk_encoding_converter_set_encoding (self, _tmp0_); _tmp1_ = encoding; _tmp2_ = g_charset_converter_new (_tmp1_, SKK_ENCODING_CONVERTER_INTERNAL_ENCODING, &_inner_error_); _tmp3_ = _tmp2_; if (_inner_error_ != NULL) { g_propagate_error (error, _inner_error_); _g_object_unref0 (self); return NULL; } _g_object_unref0 (self->priv->encoder); self->priv->encoder = _tmp3_; _tmp4_ = encoding; _tmp5_ = g_charset_converter_new (SKK_ENCODING_CONVERTER_INTERNAL_ENCODING, _tmp4_, &_inner_error_); _tmp6_ = _tmp5_; if (_inner_error_ != NULL) { g_propagate_error (error, _inner_error_); _g_object_unref0 (self); return NULL; } _g_object_unref0 (self->priv->decoder); self->priv->decoder = _tmp6_; return self; } SkkEncodingConverter* skk_encoding_converter_new (const gchar* encoding, GError** error) { return skk_encoding_converter_construct (SKK_TYPE_ENCODING_CONVERTER, encoding, error); } SkkEncodingConverter* skk_encoding_converter_construct_from_coding_system (GType object_type, const gchar* coding, GError** error) { SkkEncodingConverter * self = NULL; GError * _inner_error_ = NULL; g_return_val_if_fail (coding != NULL, NULL); { SkkEntry* entry_collection = NULL; gint entry_collection_length1 = 0; gint _entry_collection_size_ = 0; gint entry_it = 0; entry_collection = SKK_ENCODING_CONVERTER_ENCODING_TO_CODING_SYSTEM_RULE; entry_collection_length1 = G_N_ELEMENTS (SKK_ENCODING_CONVERTER_ENCODING_TO_CODING_SYSTEM_RULE); for (entry_it = 0; entry_it < G_N_ELEMENTS (SKK_ENCODING_CONVERTER_ENCODING_TO_CODING_SYSTEM_RULE); entry_it = entry_it + 1) { SkkEntry entry = {0}; entry = entry_collection[entry_it]; { SkkEntry _tmp0_; gconstpointer _tmp1_; const gchar* _tmp2_; _tmp0_ = entry; _tmp1_ = _tmp0_.value; _tmp2_ = coding; if (g_strcmp0 ((const gchar*) _tmp1_, _tmp2_) == 0) { SkkEntry _tmp3_; gconstpointer _tmp4_; _tmp3_ = entry; _tmp4_ = _tmp3_.key; self = (SkkEncodingConverter*) skk_encoding_converter_construct (object_type, (const gchar*) _tmp4_, &_inner_error_); if (_inner_error_ != NULL) { g_propagate_error (error, _inner_error_); _g_object_unref0 (self); return NULL; } return self; } } } } g_assert_not_reached (); return self; } SkkEncodingConverter* skk_encoding_converter_new_from_coding_system (const gchar* coding, GError** error) { return skk_encoding_converter_construct_from_coding_system (SKK_TYPE_ENCODING_CONVERTER, coding, error); } static guint8* string_get_data (const gchar* self, int* result_length1) { guint8* result; guint8* res; gint res_length1; gint _res_size_; gint _tmp0_; gint _tmp1_; gint _tmp2_; guint8* _tmp3_; gint _tmp3__length1; guint8* _tmp4_; gint _tmp4__length1; g_return_val_if_fail (self != NULL, NULL); res = (guint8*) self; res_length1 = -1; _res_size_ = res_length1; _tmp0_ = strlen (self); _tmp1_ = _tmp0_; res_length1 = (gint) _tmp1_; _tmp2_ = res_length1; _tmp3_ = res; _tmp3__length1 = res_length1; _tmp4_ = _tmp3_; _tmp4__length1 = _tmp3__length1; if (result_length1) { *result_length1 = _tmp4__length1; } result = _tmp4_; return result; } static guint8* _vala_array_dup1 (guint8* self, int length) { return g_memdup (self, length * sizeof (guint8)); } static gchar* skk_encoding_converter_convert (SkkEncodingConverter* self, GCharsetConverter* converter, const gchar* str, GError** error) { gchar* result = NULL; const gchar* _tmp0_; guint8* _tmp1_; gint _tmp1__length1; guint8* _tmp2_; gint _tmp2__length1; guint8* _tmp3_; gint _tmp3__length1; guint8* inbuf; gint inbuf_length1; gint _inbuf_size_; guint8* _tmp4_ = NULL; guint8* outbuf; gint outbuf_length1; gint _outbuf_size_; GString* _tmp5_; GString* builder; gsize total_bytes_read; GString* _tmp26_; const gchar* _tmp27_; gchar* _tmp28_; GError * _inner_error_ = NULL; g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (converter != NULL, NULL); g_return_val_if_fail (str != NULL, NULL); _tmp0_ = str; _tmp1_ = string_get_data (_tmp0_, &_tmp1__length1); _tmp2_ = _tmp1_; _tmp2__length1 = _tmp1__length1; _tmp3_ = (_tmp2_ != NULL) ? _vala_array_dup1 (_tmp2_, _tmp2__length1) : ((gpointer) _tmp2_); _tmp3__length1 = _tmp2__length1; inbuf = _tmp3_; inbuf_length1 = _tmp3__length1; _inbuf_size_ = inbuf_length1; _tmp4_ = g_new0 (guint8, SKK_ENCODING_CONVERTER_BUFSIZ); outbuf = _tmp4_; outbuf_length1 = SKK_ENCODING_CONVERTER_BUFSIZ; _outbuf_size_ = outbuf_length1; _tmp5_ = g_string_new (""); builder = _tmp5_; total_bytes_read = (gsize) 0; while (TRUE) { gsize _tmp6_; guint8* _tmp7_; gint _tmp7__length1; gsize bytes_read = 0UL; gsize bytes_written = 0UL; GCharsetConverter* _tmp8_; guint8* _tmp9_; gint _tmp9__length1; gsize _tmp10_; guint8* _tmp11_; gint _tmp11__length1; guint8* _tmp12_; gint _tmp12__length1; gsize _tmp13_ = 0UL; gsize _tmp14_ = 0UL; gsize _tmp24_; gsize _tmp25_; _tmp6_ = total_bytes_read; _tmp7_ = inbuf; _tmp7__length1 = inbuf_length1; if (!(_tmp6_ < ((gsize) _tmp7__length1))) { break; } _tmp8_ = converter; _tmp9_ = inbuf; _tmp9__length1 = inbuf_length1; _tmp10_ = total_bytes_read; _tmp11_ = inbuf; _tmp11__length1 = inbuf_length1; _tmp12_ = outbuf; _tmp12__length1 = outbuf_length1; g_converter_convert ((GConverter*) _tmp8_, _tmp9_ + _tmp10_, (gsize) (_tmp11__length1 - _tmp10_), (void*) _tmp12_, (gsize) _tmp12__length1, G_CONVERTER_INPUT_AT_END, &_tmp13_, &_tmp14_, &_inner_error_); bytes_read = _tmp13_; bytes_written = _tmp14_; if (_inner_error_ != NULL) { g_propagate_error (error, _inner_error_); _g_string_free0 (builder); outbuf = (g_free (outbuf), NULL); inbuf = (g_free (inbuf), NULL); return NULL; } { gint i; i = 0; { gboolean _tmp15_; _tmp15_ = TRUE; while (TRUE) { gboolean _tmp16_; gint _tmp18_; gsize _tmp19_; GString* _tmp20_; guint8* _tmp21_; gint _tmp21__length1; gint _tmp22_; guint8 _tmp23_; _tmp16_ = _tmp15_; if (!_tmp16_) { gint _tmp17_; _tmp17_ = i; i = _tmp17_ + 1; } _tmp15_ = FALSE; _tmp18_ = i; _tmp19_ = bytes_written; if (!(((gsize) _tmp18_) < _tmp19_)) { break; } _tmp20_ = builder; _tmp21_ = outbuf; _tmp21__length1 = outbuf_length1; _tmp22_ = i; _tmp23_ = _tmp21_[_tmp22_]; g_string_append_c (_tmp20_, (gchar) _tmp23_); } } } _tmp24_ = total_bytes_read; _tmp25_ = bytes_read; total_bytes_read = _tmp24_ + _tmp25_; } _tmp26_ = builder; _tmp27_ = _tmp26_->str; _tmp28_ = g_strdup (_tmp27_); result = _tmp28_; _g_string_free0 (builder); outbuf = (g_free (outbuf), NULL); inbuf = (g_free (inbuf), NULL); return result; } gchar* skk_encoding_converter_encode (SkkEncodingConverter* self, const gchar* internal_str, GError** error) { gchar* result = NULL; GCharsetConverter* _tmp0_; const gchar* _tmp1_; gchar* _tmp2_ = NULL; gchar* _tmp3_; GError * _inner_error_ = NULL; g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (internal_str != NULL, NULL); _tmp0_ = self->priv->encoder; _tmp1_ = internal_str; _tmp2_ = skk_encoding_converter_convert (self, _tmp0_, _tmp1_, &_inner_error_); _tmp3_ = _tmp2_; if (_inner_error_ != NULL) { g_propagate_error (error, _inner_error_); return NULL; } result = _tmp3_; return result; } gchar* skk_encoding_converter_decode (SkkEncodingConverter* self, const gchar* external_str, GError** error) { gchar* result = NULL; GCharsetConverter* _tmp0_; const gchar* _tmp1_; gchar* _tmp2_ = NULL; gchar* _tmp3_; GError * _inner_error_ = NULL; g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (external_str != NULL, NULL); _tmp0_ = self->priv->decoder; _tmp1_ = external_str; _tmp2_ = skk_encoding_converter_convert (self, _tmp0_, _tmp1_, &_inner_error_); _tmp3_ = _tmp2_; if (_inner_error_ != NULL) { g_propagate_error (error, _inner_error_); return NULL; } result = _tmp3_; return result; } const gchar* skk_encoding_converter_get_encoding (SkkEncodingConverter* self) { const gchar* result; const gchar* _tmp0_; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = self->priv->_encoding; result = _tmp0_; return result; } static void skk_encoding_converter_set_encoding (SkkEncodingConverter* self, const gchar* value) { const gchar* _tmp0_; gchar* _tmp1_; g_return_if_fail (self != NULL); _tmp0_ = value; _tmp1_ = g_strdup (_tmp0_); _g_free0 (self->priv->_encoding); self->priv->_encoding = _tmp1_; g_object_notify ((GObject *) self, "encoding"); } static void skk_encoding_converter_class_init (SkkEncodingConverterClass * klass) { GError * _inner_error_ = NULL; skk_encoding_converter_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (SkkEncodingConverterPrivate)); G_OBJECT_CLASS (klass)->get_property = _vala_skk_encoding_converter_get_property; G_OBJECT_CLASS (klass)->set_property = _vala_skk_encoding_converter_set_property; G_OBJECT_CLASS (klass)->finalize = skk_encoding_converter_finalize; g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_ENCODING_CONVERTER_ENCODING, g_param_spec_string ("encoding", "encoding", "encoding", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE)); { GRegex* _tmp0_; GRegex* _tmp1_; _tmp0_ = g_regex_new ("-\\*-.*[ \t]coding:[ \t]*([^ \t;]+?)[ \t;].*-\\*-", 0, 0, &_inner_error_); _tmp1_ = _tmp0_; if (_inner_error_ != NULL) { if (_inner_error_->domain == G_REGEX_ERROR) { goto __catch1_g_regex_error; } g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); } _g_regex_unref0 (skk_encoding_converter_coding_cookie_regex); skk_encoding_converter_coding_cookie_regex = _tmp1_; } goto __finally1; __catch1_g_regex_error: { GError* e = NULL; e = _inner_error_; _inner_error_ = NULL; g_assert_not_reached (); _g_error_free0 (e); } __finally1: if (_inner_error_ != NULL) { g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); } } static void skk_encoding_converter_instance_init (SkkEncodingConverter * self) { self->priv = SKK_ENCODING_CONVERTER_GET_PRIVATE (self); } static void skk_encoding_converter_finalize (GObject* obj) { SkkEncodingConverter * self; self = SKK_ENCODING_CONVERTER (obj); _g_free0 (self->priv->_encoding); _g_object_unref0 (self->priv->encoder); _g_object_unref0 (self->priv->decoder); G_OBJECT_CLASS (skk_encoding_converter_parent_class)->finalize (obj); } GType skk_encoding_converter_get_type (void) { static volatile gsize skk_encoding_converter_type_id__volatile = 0; if (g_once_init_enter (&skk_encoding_converter_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkEncodingConverterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_encoding_converter_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkEncodingConverter), 0, (GInstanceInitFunc) skk_encoding_converter_instance_init, NULL }; GType skk_encoding_converter_type_id; skk_encoding_converter_type_id = g_type_register_static (G_TYPE_OBJECT, "SkkEncodingConverter", &g_define_type_info, 0); g_once_init_leave (&skk_encoding_converter_type_id__volatile, skk_encoding_converter_type_id); } return skk_encoding_converter_type_id__volatile; } static void _vala_skk_encoding_converter_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { SkkEncodingConverter * self; self = SKK_ENCODING_CONVERTER (object); switch (property_id) { case SKK_ENCODING_CONVERTER_ENCODING: g_value_set_string (value, skk_encoding_converter_get_encoding (self)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } static void _vala_skk_encoding_converter_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { SkkEncodingConverter * self; self = SKK_ENCODING_CONVERTER (object); switch (property_id) { case SKK_ENCODING_CONVERTER_ENCODING: skk_encoding_converter_set_encoding (self, g_value_get_string (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } libskk-1.0.0/libskk/candidate.c0000664000076400007640000003254012016556644013276 00000000000000/* candidate.c generated by valac 0.16.0, the Vala compiler * generated from candidate.vala, do not modify */ /* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ #include #include #include #include #define SKK_TYPE_CANDIDATE (skk_candidate_get_type ()) #define SKK_CANDIDATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_CANDIDATE, SkkCandidate)) #define SKK_CANDIDATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_CANDIDATE, SkkCandidateClass)) #define SKK_IS_CANDIDATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_CANDIDATE)) #define SKK_IS_CANDIDATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_CANDIDATE)) #define SKK_CANDIDATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_CANDIDATE, SkkCandidateClass)) typedef struct _SkkCandidate SkkCandidate; typedef struct _SkkCandidateClass SkkCandidateClass; typedef struct _SkkCandidatePrivate SkkCandidatePrivate; #define _g_free0(var) (var = (g_free (var), NULL)) struct _SkkCandidate { GObject parent_instance; SkkCandidatePrivate * priv; }; struct _SkkCandidateClass { GObjectClass parent_class; }; struct _SkkCandidatePrivate { gchar* _midasi; gboolean _okuri; gchar* _text; gchar* _annotation; gchar* _output; }; static gpointer skk_candidate_parent_class = NULL; GType skk_candidate_get_type (void) G_GNUC_CONST; #define SKK_CANDIDATE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SKK_TYPE_CANDIDATE, SkkCandidatePrivate)) enum { SKK_CANDIDATE_DUMMY_PROPERTY, SKK_CANDIDATE_MIDASI, SKK_CANDIDATE_OKURI, SKK_CANDIDATE_TEXT, SKK_CANDIDATE_ANNOTATION, SKK_CANDIDATE_OUTPUT }; gchar* skk_candidate_to_string (SkkCandidate* self); const gchar* skk_candidate_get_annotation (SkkCandidate* self); const gchar* skk_candidate_get_text (SkkCandidate* self); SkkCandidate* skk_candidate_new (const gchar* midasi, gboolean okuri, const gchar* text, const gchar* annotation, const gchar* output); SkkCandidate* skk_candidate_construct (GType object_type, const gchar* midasi, gboolean okuri, const gchar* text, const gchar* annotation, const gchar* output); static void skk_candidate_set_midasi (SkkCandidate* self, const gchar* value); static void skk_candidate_set_okuri (SkkCandidate* self, gboolean value); void skk_candidate_set_text (SkkCandidate* self, const gchar* value); void skk_candidate_set_annotation (SkkCandidate* self, const gchar* value); void skk_candidate_set_output (SkkCandidate* self, const gchar* value); const gchar* skk_candidate_get_midasi (SkkCandidate* self); gboolean skk_candidate_get_okuri (SkkCandidate* self); const gchar* skk_candidate_get_output (SkkCandidate* self); static void skk_candidate_finalize (GObject* obj); static void _vala_skk_candidate_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); static void _vala_skk_candidate_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec); /** * Convert the candidate to string. * @return a string representing the candidate */ gchar* skk_candidate_to_string (SkkCandidate* self) { gchar* result = NULL; const gchar* _tmp0_; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = self->priv->_annotation; if (_tmp0_ != NULL) { const gchar* _tmp1_; gchar* _tmp2_; gchar* _tmp3_; const gchar* _tmp4_; gchar* _tmp5_; gchar* _tmp6_; _tmp1_ = self->priv->_text; _tmp2_ = g_strconcat (_tmp1_, ";", NULL); _tmp3_ = _tmp2_; _tmp4_ = self->priv->_annotation; _tmp5_ = g_strconcat (_tmp3_, _tmp4_, NULL); _tmp6_ = _tmp5_; _g_free0 (_tmp3_); result = _tmp6_; return result; } else { const gchar* _tmp7_; gchar* _tmp8_; _tmp7_ = self->priv->_text; _tmp8_ = g_strdup (_tmp7_); result = _tmp8_; return result; } } /** * Create a new Candidate. * * @param midasi midasi (index) word which generate the candidate * @param okuri whether the candidate is a result of okuri-ari conversion * @param text base string value of the candidate * @param annotation optional annotation text to the candidate * @param output optional output text used instead of text * * @return a new SkkCandidate */ SkkCandidate* skk_candidate_construct (GType object_type, const gchar* midasi, gboolean okuri, const gchar* text, const gchar* annotation, const gchar* output) { SkkCandidate * self = NULL; const gchar* _tmp0_; gboolean _tmp1_; const gchar* _tmp2_; const gchar* _tmp3_; const gchar* _tmp4_ = NULL; const gchar* _tmp5_; const gchar* _tmp8_; g_return_val_if_fail (midasi != NULL, NULL); g_return_val_if_fail (text != NULL, NULL); self = (SkkCandidate*) g_object_new (object_type, NULL); _tmp0_ = midasi; skk_candidate_set_midasi (self, _tmp0_); _tmp1_ = okuri; skk_candidate_set_okuri (self, _tmp1_); _tmp2_ = text; skk_candidate_set_text (self, _tmp2_); _tmp3_ = annotation; skk_candidate_set_annotation (self, _tmp3_); _tmp5_ = output; if (_tmp5_ == NULL) { const gchar* _tmp6_; _tmp6_ = text; _tmp4_ = _tmp6_; } else { const gchar* _tmp7_; _tmp7_ = output; _tmp4_ = _tmp7_; } _tmp8_ = _tmp4_; skk_candidate_set_output (self, _tmp8_); return self; } SkkCandidate* skk_candidate_new (const gchar* midasi, gboolean okuri, const gchar* text, const gchar* annotation, const gchar* output) { return skk_candidate_construct (SKK_TYPE_CANDIDATE, midasi, okuri, text, annotation, output); } const gchar* skk_candidate_get_midasi (SkkCandidate* self) { const gchar* result; const gchar* _tmp0_; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = self->priv->_midasi; result = _tmp0_; return result; } static void skk_candidate_set_midasi (SkkCandidate* self, const gchar* value) { const gchar* _tmp0_; gchar* _tmp1_; g_return_if_fail (self != NULL); _tmp0_ = value; _tmp1_ = g_strdup (_tmp0_); _g_free0 (self->priv->_midasi); self->priv->_midasi = _tmp1_; g_object_notify ((GObject *) self, "midasi"); } gboolean skk_candidate_get_okuri (SkkCandidate* self) { gboolean result; gboolean _tmp0_; g_return_val_if_fail (self != NULL, FALSE); _tmp0_ = self->priv->_okuri; result = _tmp0_; return result; } static void skk_candidate_set_okuri (SkkCandidate* self, gboolean value) { gboolean _tmp0_; g_return_if_fail (self != NULL); _tmp0_ = value; self->priv->_okuri = _tmp0_; g_object_notify ((GObject *) self, "okuri"); } const gchar* skk_candidate_get_text (SkkCandidate* self) { const gchar* result; const gchar* _tmp0_; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = self->priv->_text; result = _tmp0_; return result; } void skk_candidate_set_text (SkkCandidate* self, const gchar* value) { const gchar* _tmp0_; gchar* _tmp1_; g_return_if_fail (self != NULL); _tmp0_ = value; _tmp1_ = g_strdup (_tmp0_); _g_free0 (self->priv->_text); self->priv->_text = _tmp1_; g_object_notify ((GObject *) self, "text"); } const gchar* skk_candidate_get_annotation (SkkCandidate* self) { const gchar* result; const gchar* _tmp0_; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = self->priv->_annotation; result = _tmp0_; return result; } void skk_candidate_set_annotation (SkkCandidate* self, const gchar* value) { const gchar* _tmp0_; gchar* _tmp1_; g_return_if_fail (self != NULL); _tmp0_ = value; _tmp1_ = g_strdup (_tmp0_); _g_free0 (self->priv->_annotation); self->priv->_annotation = _tmp1_; g_object_notify ((GObject *) self, "annotation"); } const gchar* skk_candidate_get_output (SkkCandidate* self) { const gchar* result; const gchar* _tmp0_; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = self->priv->_output; result = _tmp0_; return result; } void skk_candidate_set_output (SkkCandidate* self, const gchar* value) { const gchar* _tmp0_; gchar* _tmp1_; g_return_if_fail (self != NULL); _tmp0_ = value; _tmp1_ = g_strdup (_tmp0_); _g_free0 (self->priv->_output); self->priv->_output = _tmp1_; g_object_notify ((GObject *) self, "output"); } static void skk_candidate_class_init (SkkCandidateClass * klass) { skk_candidate_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (SkkCandidatePrivate)); G_OBJECT_CLASS (klass)->get_property = _vala_skk_candidate_get_property; G_OBJECT_CLASS (klass)->set_property = _vala_skk_candidate_set_property; G_OBJECT_CLASS (klass)->finalize = skk_candidate_finalize; /** * Midasi word which generated this candidate. */ g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_CANDIDATE_MIDASI, g_param_spec_string ("midasi", "midasi", "midasi", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE)); /** * Flag to indicate whether this candidate is generated as a * result of okuri-ari conversion. */ g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_CANDIDATE_OKURI, g_param_spec_boolean ("okuri", "okuri", "okuri", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE)); /** * Base string value of the candidate. */ g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_CANDIDATE_TEXT, g_param_spec_string ("text", "text", "text", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); /** * Optional annotation text associated with the candidate. */ g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_CANDIDATE_ANNOTATION, g_param_spec_string ("annotation", "annotation", "annotation", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); /** * Output string shown instead of text. * * This is particularly useful to display a candidate of * numeric conversion. */ g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_CANDIDATE_OUTPUT, g_param_spec_string ("output", "output", "output", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); } static void skk_candidate_instance_init (SkkCandidate * self) { self->priv = SKK_CANDIDATE_GET_PRIVATE (self); } static void skk_candidate_finalize (GObject* obj) { SkkCandidate * self; self = SKK_CANDIDATE (obj); _g_free0 (self->priv->_midasi); _g_free0 (self->priv->_text); _g_free0 (self->priv->_annotation); _g_free0 (self->priv->_output); G_OBJECT_CLASS (skk_candidate_parent_class)->finalize (obj); } /** * Object representing a candidate in dictionaries. */ GType skk_candidate_get_type (void) { static volatile gsize skk_candidate_type_id__volatile = 0; if (g_once_init_enter (&skk_candidate_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkCandidateClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_candidate_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkCandidate), 0, (GInstanceInitFunc) skk_candidate_instance_init, NULL }; GType skk_candidate_type_id; skk_candidate_type_id = g_type_register_static (G_TYPE_OBJECT, "SkkCandidate", &g_define_type_info, 0); g_once_init_leave (&skk_candidate_type_id__volatile, skk_candidate_type_id); } return skk_candidate_type_id__volatile; } static void _vala_skk_candidate_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { SkkCandidate * self; self = SKK_CANDIDATE (object); switch (property_id) { case SKK_CANDIDATE_MIDASI: g_value_set_string (value, skk_candidate_get_midasi (self)); break; case SKK_CANDIDATE_OKURI: g_value_set_boolean (value, skk_candidate_get_okuri (self)); break; case SKK_CANDIDATE_TEXT: g_value_set_string (value, skk_candidate_get_text (self)); break; case SKK_CANDIDATE_ANNOTATION: g_value_set_string (value, skk_candidate_get_annotation (self)); break; case SKK_CANDIDATE_OUTPUT: g_value_set_string (value, skk_candidate_get_output (self)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } static void _vala_skk_candidate_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { SkkCandidate * self; self = SKK_CANDIDATE (object); switch (property_id) { case SKK_CANDIDATE_MIDASI: skk_candidate_set_midasi (self, g_value_get_string (value)); break; case SKK_CANDIDATE_OKURI: skk_candidate_set_okuri (self, g_value_get_boolean (value)); break; case SKK_CANDIDATE_TEXT: skk_candidate_set_text (self, g_value_get_string (value)); break; case SKK_CANDIDATE_ANNOTATION: skk_candidate_set_annotation (self, g_value_get_string (value)); break; case SKK_CANDIDATE_OUTPUT: skk_candidate_set_output (self, g_value_get_string (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } libskk-1.0.0/libskk/Skk-1.0.gir0000664000076400007640000122620412016556644012750 00000000000000 libskk-1.0.0/libskk/util.vala0000664000076400007640000004623611703755552013050 00000000000000/* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ using Gee; namespace Skk { struct Entry { K key; V value; } enum NumericConversionType { LATIN, WIDE_LATIN, KANJI_NUMERAL, KANJI, RECONVERT, DAIJI, SHOGI } class Util : Object { struct KanaTableEntry { unichar katakana; string? hiragana; string? hankaku_katakana; } static const KanaTableEntry[] KanaTable = { {'ã‚¢', "ã‚", "ï½±"}, {'イ', "ã„", "ï½²"}, {'ウ', "ã†", "ï½³"}, {'エ', "ãˆ", "ï½´"}, {'オ', "ãŠ", "ï½µ"}, {'ã‚«', "ã‹", "ï½¶"}, {'ã‚­', "ã", "ï½·"}, {'ク', "ã", "ク"}, {'ケ', "ã‘", "ï½¹"}, {'コ', "ã“", "コ"}, {'サ', "ã•", "ï½»"}, {'ã‚·', "ã—", "ï½¼"}, {'ス', "ã™", "ï½½"}, {'ã‚»', "ã›", "ï½¾"}, {'ソ', "ã", "ソ"}, {'ã‚¿', "ãŸ", "ï¾€"}, {'ãƒ', "ã¡", "ï¾"}, {'ツ', "ã¤", "ツ"}, {'テ', "ã¦", "テ"}, {'ト', "ã¨", "ト"}, {'ナ', "ãª", "ï¾…"}, {'ニ', "ã«", "ニ"}, {'ヌ', "ã¬", "ヌ"}, {'ãƒ', "ã­", "ネ"}, {'ノ', "ã®", "ノ"}, {'ãƒ', "ã¯", "ハ"}, {'ヒ', "ã²", "ヒ"}, {'フ', "ãµ", "フ"}, {'ヘ', "ã¸", "ï¾"}, {'ホ', "ã»", "ホ"}, {'マ', "ã¾", "ï¾"}, {'ミ', "ã¿", "ï¾"}, {'ム', "ã‚€", "ム"}, {'メ', "ã‚", "ï¾’"}, {'モ', "ã‚‚", "モ"}, {'ヤ', "ã‚„", "ï¾”"}, {'ユ', "ゆ", "ユ"}, {'ヨ', "よ", "ï¾–"}, {'ラ', "ら", "ï¾—"}, {'リ', "り", "リ"}, {'ル', "ã‚‹", "ï¾™"}, {'レ', "れ", "レ"}, {'ロ', "ã‚", "ï¾›"}, {'ワ', "ã‚", "ワ"}, {'ヰ', "ã‚", "ï½²"}, {'ヱ', "ã‚‘", "ï½´"}, {'ヲ', "ã‚’", "ヲ"}, {'ン', "ã‚“", "ï¾"}, {'ガ', "ãŒ", "ガ"}, {'ã‚®', "ãŽ", "ギ"}, {'ã‚°', "ã", "グ"}, {'ゲ', "ã’", "ゲ"}, {'ã‚´', "ã”", "ゴ"}, {'ã‚¶', "ã–", "ザ"}, {'ジ', "ã˜", "ジ"}, {'ズ', "ãš", "ズ"}, {'ゼ', "ãœ", "ゼ"}, {'ゾ', "ãž", "ゾ"}, {'ダ', "ã ", "ダ"}, {'ヂ', "ã¢", "ï¾ï¾ž"}, {'ヅ', "ã¥", "ヅ"}, {'デ', "ã§", "デ"}, {'ド', "ã©", "ド"}, {'ãƒ', "ã°", "バ"}, {'ビ', "ã³", "ビ"}, {'ブ', "ã¶", "ブ"}, {'ベ', "ã¹", "ï¾ï¾ž"}, {'ボ', "ã¼", "ボ"}, {'パ', "ã±", "パ"}, {'ピ', "ã´", "ピ"}, {'プ', "ã·", "プ"}, {'ペ', "ãº", "ï¾ï¾Ÿ"}, {'ãƒ', "ã½", "ポ"}, {'ã‚¡', "ã", "ï½§"}, {'ã‚£', "ãƒ", "ィ"}, {'ã‚¥', "ã…", "ゥ"}, {'ã‚§', "ã‡", "ェ"}, {'ã‚©', "ã‰", "ォ"}, {'ッ', "ã£", "ッ"}, {'ャ', "ゃ", "ャ"}, {'ュ', "ã‚…", "ï½­"}, {'ョ', "ょ", "ï½®"}, {'ヮ', "ゎ", null}, {'ヴ', "ã†ã‚›", "ヴ"}, {'ヵ', null, null}, {'ヶ', null, null} }; static const Entry[] HankakuKatakanaSubstitute = { {'ヮ', "ワ"}, {'ヵ', "ï½¶"}, {'ヶ', "ï½¹"} }; static const string[] WideLatinTable = { " ", "ï¼", "â€", "#", "$", "ï¼…", "&", "’", "(", ")", "*", "+", ",", "−", ".", "ï¼", "ï¼", "1", "ï¼’", "3", "ï¼”", "5", "ï¼–", "ï¼—", "8", "ï¼™", ":", "ï¼›", "<", "ï¼", ">", "?", "ï¼ ", "A", "ï¼¢", "ï¼£", "D", "ï¼¥", "F", "ï¼§", "H", "I", "J", "K", "L", "ï¼­", "ï¼®", "O", "ï¼°", "ï¼±", "ï¼²", "ï¼³", "ï¼´", "ï¼µ", "ï¼¶", "ï¼·", "X", "ï¼¹", "Z", "ï¼»", "ï¼¼", "ï¼½", "ï¼¾", "_", "‘", "ï½", "b", "c", "d", "ï½…", "f", "g", "h", "i", "j", "k", "l", "ï½", "n", "ï½", "ï½", "q", "ï½’", "s", "ï½”", "u", "ï½–", "ï½—", "x", "ï½™", "z", "ï½›", "|", "ï½", "〜" }; static const string[] KanaRomTable = { "x", "a", "x", "i", "x", "u", "x", "e", "x", "o", "k", "g", "k", "g", "k", "g", "k", "g", "k", "g", "s", "z", "s", "z", "s", "z", "s", "z", "s", "z", "t", "d", "t", "d", "t", "t", "d", "t", "d", "t", "d", "n", "n", "n", "n", "n", "h", "b", "p", "h", "b", "p", "h", "b", "p", "h", "b", "p", "h", "b", "p", "m", "m", "m", "m", "m", "x", "y", "x", "y", "x", "y", "r", "r", "r", "r", "r", "x", "w", "x", "x", "w", "n" }; static string? get_okurigana_prefix_for_char (unichar uc) { if (uc == 'ã‚“') { return "n"; } else if (uc < 'ã' || uc > 'ã‚“') { return null; } else { return KanaRomTable[uc - 'ã']; } } internal static string? get_okurigana_prefix (string okurigana) { var head = okurigana.get_char (); if (head == 'ã£' && okurigana != "ã£") { var index = okurigana.index_of_nth_char (1); head = okurigana.get_char (index); } return get_okurigana_prefix_for_char (head); } static const string[] KanjiNumericTable = { "〇", "一", "二", "三", "å››", "五", "å…­", "七", "å…«", "ä¹" }; static const string[] DaijiNumericTable = { "é›¶", "壱", "å¼", "å‚", "å››", "ä¼", "å…­", "七", "å…«", "ä¹" }; static const string?[] KanjiNumericalPositionTable = { null, "å", "百", "åƒ", "万", null, null, null, "å„„", null, null, null, "å…†", null, null, null, null, "京" }; static const string?[] DaijiNumericalPositionTable = { null, "拾", "百", "阡", "è¬", null, null, null, "å„„", null, null, null, "å…†", null, null, null, null, "京" }; // katakana to hiragana static Map _HiraganaTable = new HashMap (); // hiragana or hankaku katakana (not composed) to katakana static Map _KatakanaTable = new HashMap (); // katakana to hankaku katakana static Map _HankakuKatakanaTable = new HashMap (); static Map> _CompositionTable = new HashMap> (); static Map _WideLatinToLatinTable = new HashMap (); internal static unichar get_wide_latin_char (char c) { return WideLatinTable[c - 32].get_char (); } internal static string get_wide_latin (string latin) { StringBuilder builder = new StringBuilder (); int index = 0; unichar uc; while (latin.get_next_char (ref index, out uc)) { if (0x20 <= uc && uc <= 0x7E) { builder.append_unichar (get_wide_latin_char ((char)uc)); } else { builder.append_unichar (uc); } } return builder.str; } #if 0 internal static string get_latin (string wide_latin) { StringBuilder builder = new StringBuilder (); int index = 0; unichar uc; while (wide_latin.get_next_char (ref index, out uc)) { string str = uc.to_string (); if (_WideLatinToLatinTable.has_key (str)) { builder.append_c (_WideLatinToLatinTable.get (str)); } else { builder.append (str); } } return builder.str; } #endif static unichar get_katakana_char (unichar uc) { if (_KatakanaTable.has_key (uc)) { return _KatakanaTable.get (uc); } return uc; } static void foreach_katakana (string kana, Func func) { int index = 0; unichar uc0; while (kana.get_next_char (ref index, out uc0)) { if (_CompositionTable.has_key (uc0)) { var composition = _CompositionTable.get (uc0); unichar uc1; if (kana.get_next_char (ref index, out uc1)) { if (composition.has_key (uc1)) func (composition.get (uc1)); else { func (get_katakana_char (uc0)); func (get_katakana_char (uc1)); } } else { func (get_katakana_char (uc0)); break; } } else { func (get_katakana_char (uc0)); } } } internal static string get_katakana (string kana) { StringBuilder builder = new StringBuilder (); foreach_katakana (kana, (uc) => { builder.append_unichar (uc); }); return builder.str; } internal static string get_hiragana (string kana) { StringBuilder builder = new StringBuilder (); foreach_katakana (kana, (uc) => { if (_HiraganaTable.has_key (uc)) { builder.append (_HiraganaTable.get (uc)); } else { builder.append_unichar (uc); } }); return builder.str; } internal static string get_hankaku_katakana (string kana) { StringBuilder builder = new StringBuilder (); foreach_katakana (kana, (uc) => { if (_HankakuKatakanaTable.has_key (uc)) { builder.append (_HankakuKatakanaTable.get (uc)); } else { builder.append_unichar (uc); } }); return builder.str; } internal static string convert_by_input_mode (string str, InputMode input_mode) { switch (input_mode) { case InputMode.HIRAGANA: return get_hiragana (str); case InputMode.KATAKANA: return get_katakana (str); case InputMode.HANKAKU_KATAKANA: return get_hankaku_katakana (str); #if 0 case InputMode.LATIN: return get_latin (str); #endif case InputMode.WIDE_LATIN: return get_wide_latin (str); default: return str; } } static string get_kanji_numeric (int numeric, string[] num_table, string[]? num_pos_table = null) { var builder = new StringBuilder (); var str = numeric.to_string (); unichar uc; if (num_pos_table == null) { for (var index = 0; str.get_next_char (ref index, out uc); ) { builder.append (num_table[uc - '0']); } return builder.str; } else { for (var index = 0; str.get_next_char (ref index, out uc); ) { if (uc > '0') { int pos_index = str.length - index; if (uc != '1' || pos_index % 4 == 0) builder.append (KanjiNumericTable[uc - '0']); var pos = num_pos_table[pos_index]; if (pos == null && pos_index % 4 > 0) { pos = num_pos_table[pos_index % 4]; } if (pos != null) builder.append (pos); } } return builder.str; } } internal static string get_numeric (int numeric, NumericConversionType type) { switch (type) { case NumericConversionType.LATIN: return numeric.to_string (); case NumericConversionType.WIDE_LATIN: return get_wide_latin (numeric.to_string ()); case NumericConversionType.KANJI_NUMERAL: return get_kanji_numeric (numeric, KanjiNumericTable); case NumericConversionType.KANJI: return get_kanji_numeric (numeric, KanjiNumericTable, KanjiNumericalPositionTable); case NumericConversionType.DAIJI: return get_kanji_numeric (numeric, DaijiNumericTable, DaijiNumericalPositionTable); default: break; } return ""; } static construct { foreach (var entry in KanaTable) { _HiraganaTable.set (entry.katakana, entry.hiragana); _HankakuKatakanaTable.set (entry.katakana, entry.hankaku_katakana); foreach (var substitute in HankakuKatakanaSubstitute) { _HankakuKatakanaTable.set (substitute.key, substitute.value); } if (entry.hiragana != null) { if (entry.hiragana.char_count () > 1) { int index = 0; unichar uc0, uc1; entry.hiragana.get_next_char (ref index, out uc0); entry.hiragana.get_next_char (ref index, out uc1); if (!_CompositionTable.has_key (uc0)) { _CompositionTable.set ( uc0, new HashMap ()); } var composition = _CompositionTable.get (uc0); composition.set (uc1, entry.katakana); } else { _KatakanaTable.set (entry.hiragana.get_char (), entry.katakana); } } if (entry.hankaku_katakana != null) { if (entry.hankaku_katakana.char_count () > 1) { int index = 0; unichar uc0, uc1; entry.hankaku_katakana.get_next_char ( ref index, out uc0); entry.hankaku_katakana.get_next_char ( ref index, out uc1); if (!_CompositionTable.has_key (uc0)) { _CompositionTable.set ( uc0, new HashMap ()); } var composition = _CompositionTable.get (uc0); composition.set (uc1, entry.katakana); } else { _KatakanaTable.set (entry.hankaku_katakana.get_char (), entry.katakana); } } } for (var i = 0; i < WideLatinTable.length; i++) { _WideLatinToLatinTable.set (WideLatinTable[i], i + 32); } } internal static string[] build_data_path (string subdir) { ArrayList dirs = new ArrayList (); string? path = Environment.get_variable ("LIBSKK_DATA_PATH"); if (path == null) { dirs.add (Path.build_filename ( Environment.get_user_config_dir (), Config.PACKAGE_NAME, subdir)); dirs.add (Path.build_filename (Config.PKGDATADIR, subdir)); } else { string[] elements = path.split (":"); foreach (var element in elements) { dirs.add (Path.build_filename (element, subdir)); } } return dirs.to_array (); } } class UnicodeString : Object { string str; internal int length; internal UnicodeString (string str) { this.str = str; this.length = str.char_count (); } internal string substring (long offset, long len = -1) { long byte_offset = str.index_of_nth_char (offset); long byte_len; if (len < 0) { byte_len = len; } else { byte_len = str.index_of_nth_char (offset + len) - byte_offset; } return str.substring (byte_offset, byte_len); } } class MemoryMappedFile : Object { void *_memory = null; public void *memory { get { return _memory; } } size_t _length = 0; public size_t length { get { return _length; } } File file; public MemoryMappedFile (File file) { this.file = file; } public void remap () throws SkkDictError { if (_memory != null) { Posix.munmap (_memory, _length); _memory = null; } map (); } void map () throws SkkDictError { int fd = Posix.open (file.get_path (), Posix.O_RDONLY, 0); if (fd < 0) { throw new SkkDictError.NOT_READABLE ("can't open %s", file.get_path ()); } Posix.Stat stat; int retval = Posix.fstat (fd, out stat); if (retval < 0) { throw new SkkDictError.NOT_READABLE ("can't stat fd"); } _memory = Posix.mmap (null, stat.st_size, Posix.PROT_READ, Posix.MAP_SHARED, fd, 0); if (_memory == Posix.MAP_FAILED) { throw new SkkDictError.NOT_READABLE ("mmap failed"); } _length = stat.st_size; } } } libskk-1.0.0/libskk/libskk.pc.in0000664000076400007640000000213111675742075013424 00000000000000# Copyright (C) 2011 Daiki Ueno # Copyright (C) 2011 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 library; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 USA prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ Name: libskk Description: a library to deal with Japanese kana-to-kanji conversion method Version: @VERSION@ Requires: gobject-2.0 gio-2.0 gee-1.0 Libs: -L${libdir} -lskk Cflags: -I${includedir}/skk-@SKK_API_VERSION@ libskk-1.0.0/libskk/rom-kana.c0000664000076400007640000013421712016556643013072 00000000000000/* rom-kana.c generated by valac 0.16.0, the Vala compiler * generated from rom-kana.vala, do not modify */ /* -*- coding: utf-8 -*-*/ /* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ #include #include #include #include #define SKK_TYPE_ROM_KANA_ENTRY (skk_rom_kana_entry_get_type ()) typedef struct _SkkRomKanaEntry SkkRomKanaEntry; #define _g_free0(var) (var = (g_free (var), NULL)) #define SKK_TYPE_KANA_MODE (skk_kana_mode_get_type ()) #define SKK_TYPE_ROM_KANA_NODE (skk_rom_kana_node_get_type ()) #define SKK_ROM_KANA_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_ROM_KANA_NODE, SkkRomKanaNode)) #define SKK_ROM_KANA_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_ROM_KANA_NODE, SkkRomKanaNodeClass)) #define SKK_IS_ROM_KANA_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_ROM_KANA_NODE)) #define SKK_IS_ROM_KANA_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_ROM_KANA_NODE)) #define SKK_ROM_KANA_NODE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_ROM_KANA_NODE, SkkRomKanaNodeClass)) typedef struct _SkkRomKanaNode SkkRomKanaNode; typedef struct _SkkRomKanaNodeClass SkkRomKanaNodeClass; typedef struct _SkkRomKanaNodePrivate SkkRomKanaNodePrivate; #define _skk_rom_kana_entry_free0(var) ((var == NULL) ? NULL : (var = (skk_rom_kana_entry_free (var), NULL))) #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) #define SKK_TYPE_PERIOD_STYLE (skk_period_style_get_type ()) #define SKK_TYPE_ROM_KANA_CONVERTER (skk_rom_kana_converter_get_type ()) #define SKK_ROM_KANA_CONVERTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_ROM_KANA_CONVERTER, SkkRomKanaConverter)) #define SKK_ROM_KANA_CONVERTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_ROM_KANA_CONVERTER, SkkRomKanaConverterClass)) #define SKK_IS_ROM_KANA_CONVERTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_ROM_KANA_CONVERTER)) #define SKK_IS_ROM_KANA_CONVERTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_ROM_KANA_CONVERTER)) #define SKK_ROM_KANA_CONVERTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_ROM_KANA_CONVERTER, SkkRomKanaConverterClass)) typedef struct _SkkRomKanaConverter SkkRomKanaConverter; typedef struct _SkkRomKanaConverterClass SkkRomKanaConverterClass; typedef struct _SkkRomKanaConverterPrivate SkkRomKanaConverterPrivate; #define SKK_TYPE_MAP_FILE (skk_map_file_get_type ()) #define SKK_MAP_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_MAP_FILE, SkkMapFile)) #define SKK_MAP_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_MAP_FILE, SkkMapFileClass)) #define SKK_IS_MAP_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_MAP_FILE)) #define SKK_IS_MAP_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_MAP_FILE)) #define SKK_MAP_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_MAP_FILE, SkkMapFileClass)) typedef struct _SkkMapFile SkkMapFile; typedef struct _SkkMapFileClass SkkMapFileClass; #define SKK_TYPE_ROM_KANA_MAP_FILE (skk_rom_kana_map_file_get_type ()) #define SKK_ROM_KANA_MAP_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_ROM_KANA_MAP_FILE, SkkRomKanaMapFile)) #define SKK_ROM_KANA_MAP_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_ROM_KANA_MAP_FILE, SkkRomKanaMapFileClass)) #define SKK_IS_ROM_KANA_MAP_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_ROM_KANA_MAP_FILE)) #define SKK_IS_ROM_KANA_MAP_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_ROM_KANA_MAP_FILE)) #define SKK_ROM_KANA_MAP_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_ROM_KANA_MAP_FILE, SkkRomKanaMapFileClass)) typedef struct _SkkRomKanaMapFile SkkRomKanaMapFile; typedef struct _SkkRomKanaMapFileClass SkkRomKanaMapFileClass; #define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL))) #define SKK_TYPE_RULE_METADATA (skk_rule_metadata_get_type ()) typedef struct _SkkRuleMetadata SkkRuleMetadata; #define _skk_rule_metadata_free0(var) ((var == NULL) ? NULL : (var = (skk_rule_metadata_free (var), NULL))) typedef struct _SkkMapFilePrivate SkkMapFilePrivate; typedef struct _SkkRomKanaMapFilePrivate SkkRomKanaMapFilePrivate; #define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL))) struct _SkkRomKanaEntry { gchar* rom; gchar* carryover; gchar* hiragana; gchar* katakana; gchar* hankaku_katakana; }; typedef enum { SKK_KANA_MODE_HIRAGANA, SKK_KANA_MODE_KATAKANA, SKK_KANA_MODE_HANKAKU_KATAKANA } SkkKanaMode; struct _SkkRomKanaNode { GObject parent_instance; SkkRomKanaNodePrivate * priv; SkkRomKanaEntry* entry; SkkRomKanaNode* parent; SkkRomKanaNode* children[128]; gchar c; guint n_children; gboolean valid[128]; }; struct _SkkRomKanaNodeClass { GObjectClass parent_class; }; typedef enum { SKK_PERIOD_STYLE_JA_JA, SKK_PERIOD_STYLE_EN_EN, SKK_PERIOD_STYLE_JA_EN, SKK_PERIOD_STYLE_EN_JA } SkkPeriodStyle; struct _SkkRomKanaConverter { GObject parent_instance; SkkRomKanaConverterPrivate * priv; }; struct _SkkRomKanaConverterClass { GObjectClass parent_class; }; struct _SkkRomKanaConverterPrivate { SkkRomKanaMapFile* _rule; SkkRomKanaNode* current_node; SkkKanaMode _kana_mode; SkkPeriodStyle _period_style; GString* _output; GString* _preedit; }; struct _SkkRuleMetadata { gchar* base_dir; gchar* name; gchar* label; gchar* description; gchar* filter; }; typedef enum { SKK_RULE_PARSE_ERROR_FAILED } SkkRuleParseError; #define SKK_RULE_PARSE_ERROR skk_rule_parse_error_quark () struct _SkkMapFile { GObject parent_instance; SkkMapFilePrivate * priv; }; struct _SkkMapFileClass { GObjectClass parent_class; }; struct _SkkRomKanaMapFile { SkkMapFile parent_instance; SkkRomKanaMapFilePrivate * priv; SkkRomKanaNode* root_node; }; struct _SkkRomKanaMapFileClass { SkkMapFileClass parent_class; }; static gpointer skk_rom_kana_node_parent_class = NULL; static gpointer skk_rom_kana_converter_parent_class = NULL; GType skk_rom_kana_entry_get_type (void) G_GNUC_CONST; SkkRomKanaEntry* skk_rom_kana_entry_dup (const SkkRomKanaEntry* self); void skk_rom_kana_entry_free (SkkRomKanaEntry* self); void skk_rom_kana_entry_copy (const SkkRomKanaEntry* self, SkkRomKanaEntry* dest); void skk_rom_kana_entry_destroy (SkkRomKanaEntry* self); GType skk_kana_mode_get_type (void) G_GNUC_CONST; gchar* skk_rom_kana_entry_get_kana (SkkRomKanaEntry *self, SkkKanaMode kana_mode); GType skk_rom_kana_node_get_type (void) G_GNUC_CONST; enum { SKK_ROM_KANA_NODE_DUMMY_PROPERTY }; SkkRomKanaNode* skk_rom_kana_node_new (SkkRomKanaEntry* entry); SkkRomKanaNode* skk_rom_kana_node_construct (GType object_type, SkkRomKanaEntry* entry); void skk_rom_kana_node_insert (SkkRomKanaNode* self, const gchar* key, SkkRomKanaEntry* entry); static void skk_rom_kana_node_finalize (GObject* obj); GType skk_period_style_get_type (void) G_GNUC_CONST; GType skk_rom_kana_converter_get_type (void) G_GNUC_CONST; GType skk_map_file_get_type (void) G_GNUC_CONST; GType skk_rom_kana_map_file_get_type (void) G_GNUC_CONST; #define SKK_ROM_KANA_CONVERTER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SKK_TYPE_ROM_KANA_CONVERTER, SkkRomKanaConverterPrivate)) enum { SKK_ROM_KANA_CONVERTER_DUMMY_PROPERTY, SKK_ROM_KANA_CONVERTER_RULE, SKK_ROM_KANA_CONVERTER_KANA_MODE, SKK_ROM_KANA_CONVERTER_PERIOD_STYLE, SKK_ROM_KANA_CONVERTER_OUTPUT, SKK_ROM_KANA_CONVERTER_PREEDIT }; SkkRomKanaConverter* skk_rom_kana_converter_new (void); SkkRomKanaConverter* skk_rom_kana_converter_construct (GType object_type); GType skk_rule_metadata_get_type (void) G_GNUC_CONST; SkkRuleMetadata* skk_rule_metadata_dup (const SkkRuleMetadata* self); void skk_rule_metadata_free (SkkRuleMetadata* self); void skk_rule_metadata_copy (const SkkRuleMetadata* self, SkkRuleMetadata* dest); void skk_rule_metadata_destroy (SkkRuleMetadata* self); SkkRuleMetadata* skk_rule_find_rule (const gchar* name); GQuark skk_rule_parse_error_quark (void); SkkRomKanaMapFile* skk_rom_kana_map_file_new (SkkRuleMetadata* metadata, GError** error); SkkRomKanaMapFile* skk_rom_kana_map_file_construct (GType object_type, SkkRuleMetadata* metadata, GError** error); gboolean skk_rom_kana_converter_is_valid (SkkRomKanaConverter* self, gunichar uc); gboolean skk_rom_kana_converter_output_nn_if_any (SkkRomKanaConverter* self); SkkKanaMode skk_rom_kana_converter_get_kana_mode (SkkRomKanaConverter* self); SkkRomKanaMapFile* skk_rom_kana_converter_get_rule (SkkRomKanaConverter* self); void skk_rom_kana_converter_append_text (SkkRomKanaConverter* self, const gchar* text); gboolean skk_rom_kana_converter_append (SkkRomKanaConverter* self, gunichar uc); SkkPeriodStyle skk_rom_kana_converter_get_period_style (SkkRomKanaConverter* self); gboolean skk_rom_kana_converter_can_consume (SkkRomKanaConverter* self, gunichar uc, gboolean preedit_only, gboolean no_carryover); void skk_rom_kana_converter_reset (SkkRomKanaConverter* self); gboolean skk_rom_kana_converter_delete (SkkRomKanaConverter* self); void skk_rom_kana_converter_set_rule (SkkRomKanaConverter* self, SkkRomKanaMapFile* value); void skk_rom_kana_converter_set_kana_mode (SkkRomKanaConverter* self, SkkKanaMode value); void skk_rom_kana_converter_set_period_style (SkkRomKanaConverter* self, SkkPeriodStyle value); const gchar* skk_rom_kana_converter_get_output (SkkRomKanaConverter* self); void skk_rom_kana_converter_set_output (SkkRomKanaConverter* self, const gchar* value); const gchar* skk_rom_kana_converter_get_preedit (SkkRomKanaConverter* self); static void skk_rom_kana_converter_finalize (GObject* obj); static void _vala_skk_rom_kana_converter_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); static void _vala_skk_rom_kana_converter_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec); static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func); const gchar* SKK_PERIOD_RULE[4] = {"。ã€", ".,", "。,", ".ã€"}; static const gchar* SKK_ROM_KANA_CONVERTER_NN[3] = {"ã‚“", "ン", "ï¾"}; gchar* skk_rom_kana_entry_get_kana (SkkRomKanaEntry *self, SkkKanaMode kana_mode) { gchar* result = NULL; SkkKanaMode _tmp0_; gchar* _tmp9_; _tmp0_ = kana_mode; if (_tmp0_ == SKK_KANA_MODE_HIRAGANA) { const gchar* _tmp1_; gchar* _tmp2_; _tmp1_ = (*self).hiragana; _tmp2_ = g_strdup (_tmp1_); result = _tmp2_; return result; } else { SkkKanaMode _tmp3_; _tmp3_ = kana_mode; if (_tmp3_ == SKK_KANA_MODE_KATAKANA) { const gchar* _tmp4_; gchar* _tmp5_; _tmp4_ = (*self).katakana; _tmp5_ = g_strdup (_tmp4_); result = _tmp5_; return result; } else { SkkKanaMode _tmp6_; _tmp6_ = kana_mode; if (_tmp6_ == SKK_KANA_MODE_HANKAKU_KATAKANA) { const gchar* _tmp7_; gchar* _tmp8_; _tmp7_ = (*self).hankaku_katakana; _tmp8_ = g_strdup (_tmp7_); result = _tmp8_; return result; } } } _tmp9_ = g_strdup (""); result = _tmp9_; return result; } void skk_rom_kana_entry_copy (const SkkRomKanaEntry* self, SkkRomKanaEntry* dest) { const gchar* _tmp0_; gchar* _tmp1_; const gchar* _tmp2_; gchar* _tmp3_; const gchar* _tmp4_; gchar* _tmp5_; const gchar* _tmp6_; gchar* _tmp7_; const gchar* _tmp8_; gchar* _tmp9_; _tmp0_ = (*self).rom; _tmp1_ = g_strdup (_tmp0_); _g_free0 ((*dest).rom); (*dest).rom = _tmp1_; _tmp2_ = (*self).carryover; _tmp3_ = g_strdup (_tmp2_); _g_free0 ((*dest).carryover); (*dest).carryover = _tmp3_; _tmp4_ = (*self).hiragana; _tmp5_ = g_strdup (_tmp4_); _g_free0 ((*dest).hiragana); (*dest).hiragana = _tmp5_; _tmp6_ = (*self).katakana; _tmp7_ = g_strdup (_tmp6_); _g_free0 ((*dest).katakana); (*dest).katakana = _tmp7_; _tmp8_ = (*self).hankaku_katakana; _tmp9_ = g_strdup (_tmp8_); _g_free0 ((*dest).hankaku_katakana); (*dest).hankaku_katakana = _tmp9_; } void skk_rom_kana_entry_destroy (SkkRomKanaEntry* self) { _g_free0 ((*self).rom); _g_free0 ((*self).carryover); _g_free0 ((*self).hiragana); _g_free0 ((*self).katakana); _g_free0 ((*self).hankaku_katakana); } SkkRomKanaEntry* skk_rom_kana_entry_dup (const SkkRomKanaEntry* self) { SkkRomKanaEntry* dup; dup = g_new0 (SkkRomKanaEntry, 1); skk_rom_kana_entry_copy (self, dup); return dup; } void skk_rom_kana_entry_free (SkkRomKanaEntry* self) { skk_rom_kana_entry_destroy (self); g_free (self); } GType skk_rom_kana_entry_get_type (void) { static volatile gsize skk_rom_kana_entry_type_id__volatile = 0; if (g_once_init_enter (&skk_rom_kana_entry_type_id__volatile)) { GType skk_rom_kana_entry_type_id; skk_rom_kana_entry_type_id = g_boxed_type_register_static ("SkkRomKanaEntry", (GBoxedCopyFunc) skk_rom_kana_entry_dup, (GBoxedFreeFunc) skk_rom_kana_entry_free); g_once_init_leave (&skk_rom_kana_entry_type_id__volatile, skk_rom_kana_entry_type_id); } return skk_rom_kana_entry_type_id__volatile; } static gpointer _skk_rom_kana_entry_dup0 (gpointer self) { return self ? skk_rom_kana_entry_dup (self) : NULL; } SkkRomKanaNode* skk_rom_kana_node_construct (GType object_type, SkkRomKanaEntry* entry) { SkkRomKanaNode * self = NULL; SkkRomKanaEntry* _tmp0_; SkkRomKanaEntry* _tmp1_; self = (SkkRomKanaNode*) g_object_new (object_type, NULL); _tmp0_ = entry; _tmp1_ = _skk_rom_kana_entry_dup0 (_tmp0_); _skk_rom_kana_entry_free0 (self->entry); self->entry = _tmp1_; { gint i; i = 0; { gboolean _tmp2_; _tmp2_ = TRUE; while (TRUE) { gboolean _tmp3_; gint _tmp5_; gint _tmp6_; SkkRomKanaNode* _tmp7_; _tmp3_ = _tmp2_; if (!_tmp3_) { gint _tmp4_; _tmp4_ = i; i = _tmp4_ + 1; } _tmp2_ = FALSE; _tmp5_ = i; if (!(_tmp5_ < 128)) { break; } _tmp6_ = i; _g_object_unref0 (self->children[_tmp6_]); self->children[_tmp6_] = NULL; _tmp7_ = self->children[_tmp6_]; } } } return self; } SkkRomKanaNode* skk_rom_kana_node_new (SkkRomKanaEntry* entry) { return skk_rom_kana_node_construct (SKK_TYPE_ROM_KANA_NODE, entry); } static gpointer _g_object_ref0 (gpointer self) { return self ? g_object_ref (self) : NULL; } static gchar string_get (const gchar* self, glong index) { gchar result = '\0'; glong _tmp0_; gchar _tmp1_; g_return_val_if_fail (self != NULL, '\0'); _tmp0_ = index; _tmp1_ = ((gchar*) self)[_tmp0_]; result = _tmp1_; return result; } void skk_rom_kana_node_insert (SkkRomKanaNode* self, const gchar* key, SkkRomKanaEntry* entry) { SkkRomKanaNode* _tmp0_; SkkRomKanaNode* node; SkkRomKanaNode* _tmp34_; SkkRomKanaEntry _tmp35_; SkkRomKanaEntry _tmp36_; SkkRomKanaEntry* _tmp37_; g_return_if_fail (self != NULL); g_return_if_fail (key != NULL); g_return_if_fail (entry != NULL); _tmp0_ = _g_object_ref0 (self); node = _tmp0_; { gint i; i = 0; { gboolean _tmp1_; _tmp1_ = TRUE; while (TRUE) { gboolean _tmp2_; gint _tmp4_; const gchar* _tmp5_; gint _tmp6_; gint _tmp7_; SkkRomKanaNode* _tmp8_; const gchar* _tmp9_; gint _tmp10_; gchar _tmp11_ = '\0'; SkkRomKanaNode* _tmp12_; SkkRomKanaNode* _tmp22_; guint _tmp23_; SkkRomKanaNode* _tmp24_; const gchar* _tmp25_; gint _tmp26_; gchar _tmp27_ = '\0'; SkkRomKanaNode* _tmp28_; SkkRomKanaNode* _tmp29_; const gchar* _tmp30_; gint _tmp31_; gchar _tmp32_ = '\0'; gboolean _tmp33_; _tmp2_ = _tmp1_; if (!_tmp2_) { gint _tmp3_; _tmp3_ = i; i = _tmp3_ + 1; } _tmp1_ = FALSE; _tmp4_ = i; _tmp5_ = key; _tmp6_ = strlen (_tmp5_); _tmp7_ = _tmp6_; if (!(_tmp4_ < _tmp7_)) { break; } _tmp8_ = node; _tmp9_ = key; _tmp10_ = i; _tmp11_ = string_get (_tmp9_, (glong) _tmp10_); _tmp12_ = _tmp8_->children[_tmp11_]; if (_tmp12_ == NULL) { SkkRomKanaNode* _tmp13_; const gchar* _tmp14_; gint _tmp15_; gchar _tmp16_ = '\0'; SkkRomKanaNode* _tmp17_; SkkRomKanaNode* _tmp18_; SkkRomKanaNode* _tmp19_; SkkRomKanaNode* child; SkkRomKanaNode* _tmp20_; SkkRomKanaNode* _tmp21_; _tmp13_ = node; _tmp14_ = key; _tmp15_ = i; _tmp16_ = string_get (_tmp14_, (glong) _tmp15_); _tmp17_ = skk_rom_kana_node_new (NULL); _g_object_unref0 (_tmp13_->children[_tmp16_]); _tmp13_->children[_tmp16_] = _tmp17_; _tmp18_ = _tmp13_->children[_tmp16_]; _tmp19_ = _g_object_ref0 (_tmp18_); child = _tmp19_; _tmp20_ = child; _tmp21_ = node; _tmp20_->parent = _tmp21_; _g_object_unref0 (child); } _tmp22_ = node; _tmp23_ = _tmp22_->n_children; _tmp22_->n_children = _tmp23_ + 1; _tmp24_ = node; _tmp25_ = key; _tmp26_ = i; _tmp27_ = string_get (_tmp25_, (glong) _tmp26_); _tmp28_ = _tmp24_->children[_tmp27_]; _tmp29_ = _g_object_ref0 (_tmp28_); _g_object_unref0 (node); node = _tmp29_; _tmp30_ = key; _tmp31_ = i; _tmp32_ = string_get (_tmp30_, (glong) _tmp31_); self->valid[_tmp32_] = TRUE; _tmp33_ = self->valid[_tmp32_]; } } } _tmp34_ = node; _tmp35_ = *entry; _tmp36_ = _tmp35_; _tmp37_ = _skk_rom_kana_entry_dup0 (&_tmp36_); _skk_rom_kana_entry_free0 (_tmp34_->entry); _tmp34_->entry = _tmp37_; _g_object_unref0 (node); } static void skk_rom_kana_node_class_init (SkkRomKanaNodeClass * klass) { skk_rom_kana_node_parent_class = g_type_class_peek_parent (klass); G_OBJECT_CLASS (klass)->finalize = skk_rom_kana_node_finalize; } static void skk_rom_kana_node_instance_init (SkkRomKanaNode * self) { self->n_children = (guint) 0; } static void skk_rom_kana_node_finalize (GObject* obj) { SkkRomKanaNode * self; self = SKK_ROM_KANA_NODE (obj); _skk_rom_kana_entry_free0 (self->entry); _vala_array_destroy (self->children, 128, (GDestroyNotify) g_object_unref); G_OBJECT_CLASS (skk_rom_kana_node_parent_class)->finalize (obj); } GType skk_rom_kana_node_get_type (void) { static volatile gsize skk_rom_kana_node_type_id__volatile = 0; if (g_once_init_enter (&skk_rom_kana_node_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkRomKanaNodeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_rom_kana_node_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkRomKanaNode), 0, (GInstanceInitFunc) skk_rom_kana_node_instance_init, NULL }; GType skk_rom_kana_node_type_id; skk_rom_kana_node_type_id = g_type_register_static (G_TYPE_OBJECT, "SkkRomKanaNode", &g_define_type_info, 0); g_once_init_leave (&skk_rom_kana_node_type_id__volatile, skk_rom_kana_node_type_id); } return skk_rom_kana_node_type_id__volatile; } /** * Type representing kana scripts. */ GType skk_kana_mode_get_type (void) { static volatile gsize skk_kana_mode_type_id__volatile = 0; if (g_once_init_enter (&skk_kana_mode_type_id__volatile)) { static const GEnumValue values[] = {{SKK_KANA_MODE_HIRAGANA, "SKK_KANA_MODE_HIRAGANA", "hiragana"}, {SKK_KANA_MODE_KATAKANA, "SKK_KANA_MODE_KATAKANA", "katakana"}, {SKK_KANA_MODE_HANKAKU_KATAKANA, "SKK_KANA_MODE_HANKAKU_KATAKANA", "hankaku-katakana"}, {0, NULL, NULL}}; GType skk_kana_mode_type_id; skk_kana_mode_type_id = g_enum_register_static ("SkkKanaMode", values); g_once_init_leave (&skk_kana_mode_type_id__volatile, skk_kana_mode_type_id); } return skk_kana_mode_type_id__volatile; } /** * Type to specify how "." and "," are converted. */ GType skk_period_style_get_type (void) { static volatile gsize skk_period_style_type_id__volatile = 0; if (g_once_init_enter (&skk_period_style_type_id__volatile)) { static const GEnumValue values[] = {{SKK_PERIOD_STYLE_JA_JA, "SKK_PERIOD_STYLE_JA_JA", "ja-ja"}, {SKK_PERIOD_STYLE_EN_EN, "SKK_PERIOD_STYLE_EN_EN", "en-en"}, {SKK_PERIOD_STYLE_JA_EN, "SKK_PERIOD_STYLE_JA_EN", "ja-en"}, {SKK_PERIOD_STYLE_EN_JA, "SKK_PERIOD_STYLE_EN_JA", "en-ja"}, {0, NULL, NULL}}; GType skk_period_style_type_id; skk_period_style_type_id = g_enum_register_static ("SkkPeriodStyle", values); g_once_init_leave (&skk_period_style_type_id__volatile, skk_period_style_type_id); } return skk_period_style_type_id__volatile; } SkkRomKanaConverter* skk_rom_kana_converter_construct (GType object_type) { SkkRomKanaConverter * self = NULL; GError * _inner_error_ = NULL; self = (SkkRomKanaConverter*) g_object_new (object_type, NULL); { SkkRuleMetadata* _tmp0_ = NULL; SkkRuleMetadata* _tmp1_; SkkRuleMetadata _tmp2_; SkkRomKanaMapFile* _tmp3_; SkkRomKanaMapFile* _tmp4_; SkkRomKanaMapFile* _tmp5_; SkkRomKanaMapFile* _tmp6_; SkkRomKanaNode* _tmp7_; SkkRomKanaNode* _tmp8_; _tmp0_ = skk_rule_find_rule ("default"); _tmp1_ = _tmp0_; _tmp2_ = *_tmp1_; _tmp3_ = skk_rom_kana_map_file_new (&_tmp2_, &_inner_error_); _tmp4_ = _tmp3_; _skk_rule_metadata_free0 (_tmp1_); _tmp5_ = _tmp4_; if (_inner_error_ != NULL) { if (_inner_error_->domain == SKK_RULE_PARSE_ERROR) { goto __catch0_skk_rule_parse_error; } g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } _g_object_unref0 (self->priv->_rule); self->priv->_rule = _tmp5_; _tmp6_ = self->priv->_rule; _tmp7_ = _tmp6_->root_node; _tmp8_ = _g_object_ref0 (_tmp7_); _g_object_unref0 (self->priv->current_node); self->priv->current_node = _tmp8_; } goto __finally0; __catch0_skk_rule_parse_error: { GError* e = NULL; const gchar* _tmp9_; e = _inner_error_; _inner_error_ = NULL; _tmp9_ = e->message; g_warning ("rom-kana.vala:198: can't find default rom-kana rule: %s", _tmp9_); g_assert_not_reached (); _g_error_free0 (e); } __finally0: if (_inner_error_ != NULL) { g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } return self; } SkkRomKanaConverter* skk_rom_kana_converter_new (void) { return skk_rom_kana_converter_construct (SKK_TYPE_ROM_KANA_CONVERTER); } gboolean skk_rom_kana_converter_is_valid (SkkRomKanaConverter* self, gunichar uc) { gboolean result = FALSE; gunichar _tmp0_; SkkRomKanaMapFile* _tmp1_; SkkRomKanaNode* _tmp2_; gunichar _tmp3_; gboolean _tmp4_; g_return_val_if_fail (self != NULL, FALSE); _tmp0_ = uc; if (_tmp0_ > ((gunichar) 128)) { result = FALSE; return result; } _tmp1_ = self->priv->_rule; _tmp2_ = _tmp1_->root_node; _tmp3_ = uc; _tmp4_ = _tmp2_->valid[(gint) _tmp3_]; result = _tmp4_; return result; } /** * Output "nn" if preedit ends with "n". */ gboolean skk_rom_kana_converter_output_nn_if_any (SkkRomKanaConverter* self) { gboolean result = FALSE; GString* _tmp0_; const gchar* _tmp1_; g_return_val_if_fail (self != NULL, FALSE); _tmp0_ = self->priv->_preedit; _tmp1_ = _tmp0_->str; if (g_strcmp0 (_tmp1_, "n") == 0) { GString* _tmp2_; SkkKanaMode _tmp3_; const gchar* _tmp4_; GString* _tmp5_; SkkRomKanaMapFile* _tmp6_; SkkRomKanaMapFile* _tmp7_; SkkRomKanaNode* _tmp8_; SkkRomKanaNode* _tmp9_; _tmp2_ = self->priv->_output; _tmp3_ = self->priv->_kana_mode; _tmp4_ = SKK_ROM_KANA_CONVERTER_NN[_tmp3_]; g_string_append (_tmp2_, _tmp4_); _tmp5_ = self->priv->_preedit; g_string_erase (_tmp5_, (gssize) 0, (gssize) (-1)); _tmp6_ = skk_rom_kana_converter_get_rule (self); _tmp7_ = _tmp6_; _tmp8_ = _tmp7_->root_node; _tmp9_ = _g_object_ref0 (_tmp8_); _g_object_unref0 (self->priv->current_node); self->priv->current_node = _tmp9_; result = TRUE; return result; } result = FALSE; return result; } /** * Append text to the internal buffer. * * @param text a string */ static gboolean string_get_next_char (const gchar* self, gint* index, gunichar* c) { gunichar _vala_c = 0U; gboolean result = FALSE; gint _tmp0_; gunichar _tmp1_ = 0U; gunichar _tmp2_; g_return_val_if_fail (self != NULL, FALSE); _tmp0_ = *index; _tmp1_ = g_utf8_get_char (((gchar*) self) + _tmp0_); _vala_c = _tmp1_; _tmp2_ = _vala_c; if (_tmp2_ != ((gunichar) 0)) { gint _tmp3_; gchar* _tmp4_ = NULL; _tmp3_ = *index; _tmp4_ = g_utf8_next_char (((gchar*) self) + _tmp3_); *index = (gint) (_tmp4_ - ((gchar*) self)); result = TRUE; if (c) { *c = _vala_c; } return result; } else { result = FALSE; if (c) { *c = _vala_c; } return result; } if (c) { *c = _vala_c; } } void skk_rom_kana_converter_append_text (SkkRomKanaConverter* self, const gchar* text) { gint index; gunichar c = 0U; g_return_if_fail (self != NULL); g_return_if_fail (text != NULL); index = 0; while (TRUE) { const gchar* _tmp0_; gunichar _tmp1_ = 0U; gboolean _tmp2_ = FALSE; gunichar _tmp3_; _tmp0_ = text; _tmp2_ = string_get_next_char (_tmp0_, &index, &_tmp1_); c = _tmp1_; if (!_tmp2_) { break; } _tmp3_ = c; skk_rom_kana_converter_append (self, _tmp3_); } } /** * Append a character to the internal buffer. * * @param uc an ASCII character * * @return `true` if the character is handled, `false` otherwise */ static gint string_index_of_char (const gchar* self, gunichar c, gint start_index) { gint result = 0; gint _tmp0_; gunichar _tmp1_; gchar* _tmp2_ = NULL; gchar* _result_; gchar* _tmp3_; g_return_val_if_fail (self != NULL, 0); _tmp0_ = start_index; _tmp1_ = c; _tmp2_ = g_utf8_strchr (((gchar*) self) + _tmp0_, (gssize) (-1), _tmp1_); _result_ = _tmp2_; _tmp3_ = _result_; if (_tmp3_ != NULL) { gchar* _tmp4_; _tmp4_ = _result_; result = (gint) (_tmp4_ - ((gchar*) self)); return result; } else { result = -1; return result; } } static gint string_index_of_nth_char (const gchar* self, glong c) { gint result = 0; glong _tmp0_; gchar* _tmp1_ = NULL; g_return_val_if_fail (self != NULL, 0); _tmp0_ = c; _tmp1_ = g_utf8_offset_to_pointer (self, _tmp0_); result = (gint) (_tmp1_ - ((gchar*) self)); return result; } static gunichar string_get_char (const gchar* self, glong index) { gunichar result = 0U; glong _tmp0_; gunichar _tmp1_ = 0U; g_return_val_if_fail (self != NULL, 0U); _tmp0_ = index; _tmp1_ = g_utf8_get_char (((gchar*) self) + _tmp0_); result = _tmp1_; return result; } gboolean skk_rom_kana_converter_append (SkkRomKanaConverter* self, gunichar uc) { gboolean result = FALSE; SkkRomKanaNode* _tmp0_; gunichar _tmp1_; SkkRomKanaNode* _tmp2_; SkkRomKanaNode* _tmp3_; SkkRomKanaNode* child_node; SkkRomKanaNode* _tmp4_; g_return_val_if_fail (self != NULL, FALSE); _tmp0_ = self->priv->current_node; _tmp1_ = uc; _tmp2_ = _tmp0_->children[_tmp1_]; _tmp3_ = _g_object_ref0 (_tmp2_); child_node = _tmp3_; _tmp4_ = child_node; if (_tmp4_ == NULL) { gboolean _tmp5_ = FALSE; gboolean retval; gint _tmp6_ = 0; gunichar _tmp7_; gint _tmp10_; gint index; gint _tmp11_; _tmp5_ = skk_rom_kana_converter_output_nn_if_any (self); retval = _tmp5_; _tmp7_ = uc; if (_tmp7_ != ((gunichar) '\0')) { gunichar _tmp8_; gint _tmp9_ = 0; _tmp8_ = uc; _tmp9_ = string_index_of_char (".,", _tmp8_, 0); _tmp6_ = _tmp9_; } else { _tmp6_ = -1; } _tmp10_ = _tmp6_; index = _tmp10_; _tmp11_ = index; if (_tmp11_ >= 0) { SkkPeriodStyle _tmp12_; const gchar* _tmp13_; gint _tmp14_; gint _tmp15_ = 0; SkkPeriodStyle _tmp16_; const gchar* _tmp17_; gint _tmp18_; gunichar _tmp19_ = 0U; gunichar period; GString* _tmp20_; gunichar _tmp21_; GString* _tmp22_; SkkRomKanaMapFile* _tmp23_; SkkRomKanaMapFile* _tmp24_; SkkRomKanaNode* _tmp25_; SkkRomKanaNode* _tmp26_; _tmp12_ = self->priv->_period_style; _tmp13_ = SKK_PERIOD_RULE[_tmp12_]; _tmp14_ = index; _tmp15_ = string_index_of_nth_char (_tmp13_, (glong) _tmp14_); index = _tmp15_; _tmp16_ = self->priv->_period_style; _tmp17_ = SKK_PERIOD_RULE[_tmp16_]; _tmp18_ = index; _tmp19_ = string_get_char (_tmp17_, (glong) _tmp18_); period = _tmp19_; _tmp20_ = self->priv->_output; _tmp21_ = period; g_string_append_unichar (_tmp20_, _tmp21_); _tmp22_ = self->priv->_preedit; g_string_erase (_tmp22_, (gssize) 0, (gssize) (-1)); _tmp23_ = skk_rom_kana_converter_get_rule (self); _tmp24_ = _tmp23_; _tmp25_ = _tmp24_->root_node; _tmp26_ = _g_object_ref0 (_tmp25_); _g_object_unref0 (self->priv->current_node); self->priv->current_node = _tmp26_; result = TRUE; _g_object_unref0 (child_node); return result; } else { SkkRomKanaMapFile* _tmp27_; SkkRomKanaMapFile* _tmp28_; SkkRomKanaNode* _tmp29_; gunichar _tmp30_; SkkRomKanaNode* _tmp31_; _tmp27_ = skk_rom_kana_converter_get_rule (self); _tmp28_ = _tmp27_; _tmp29_ = _tmp28_->root_node; _tmp30_ = uc; _tmp31_ = _tmp29_->children[_tmp30_]; if (_tmp31_ == NULL) { GString* _tmp32_; gunichar _tmp33_; GString* _tmp34_; SkkRomKanaMapFile* _tmp35_; SkkRomKanaMapFile* _tmp36_; SkkRomKanaNode* _tmp37_; SkkRomKanaNode* _tmp38_; _tmp32_ = self->priv->_output; _tmp33_ = uc; g_string_append_unichar (_tmp32_, _tmp33_); _tmp34_ = self->priv->_preedit; g_string_erase (_tmp34_, (gssize) 0, (gssize) (-1)); _tmp35_ = skk_rom_kana_converter_get_rule (self); _tmp36_ = _tmp35_; _tmp37_ = _tmp36_->root_node; _tmp38_ = _g_object_ref0 (_tmp37_); _g_object_unref0 (self->priv->current_node); self->priv->current_node = _tmp38_; result = retval; _g_object_unref0 (child_node); return result; } else { GString* _tmp39_; SkkRomKanaMapFile* _tmp40_; SkkRomKanaMapFile* _tmp41_; SkkRomKanaNode* _tmp42_; SkkRomKanaNode* _tmp43_; gunichar _tmp44_; gboolean _tmp45_ = FALSE; _tmp39_ = self->priv->_preedit; g_string_erase (_tmp39_, (gssize) 0, (gssize) (-1)); _tmp40_ = skk_rom_kana_converter_get_rule (self); _tmp41_ = _tmp40_; _tmp42_ = _tmp41_->root_node; _tmp43_ = _g_object_ref0 (_tmp42_); _g_object_unref0 (self->priv->current_node); self->priv->current_node = _tmp43_; _tmp44_ = uc; _tmp45_ = skk_rom_kana_converter_append (self, _tmp44_); result = _tmp45_; _g_object_unref0 (child_node); return result; } } } else { SkkRomKanaNode* _tmp46_; guint _tmp47_; _tmp46_ = child_node; _tmp47_ = _tmp46_->n_children; if (_tmp47_ > ((guint) 0)) { GString* _tmp48_; gunichar _tmp49_; SkkRomKanaNode* _tmp50_; SkkRomKanaNode* _tmp51_; _tmp48_ = self->priv->_preedit; _tmp49_ = uc; g_string_append_unichar (_tmp48_, _tmp49_); _tmp50_ = child_node; _tmp51_ = _g_object_ref0 (_tmp50_); _g_object_unref0 (self->priv->current_node); self->priv->current_node = _tmp51_; result = TRUE; _g_object_unref0 (child_node); return result; } else { GString* _tmp52_; SkkRomKanaNode* _tmp53_; SkkRomKanaEntry* _tmp54_; SkkKanaMode _tmp55_; gchar* _tmp56_ = NULL; gchar* _tmp57_; GString* _tmp58_; SkkRomKanaMapFile* _tmp59_; SkkRomKanaMapFile* _tmp60_; SkkRomKanaNode* _tmp61_; SkkRomKanaNode* _tmp62_; _tmp52_ = self->priv->_output; _tmp53_ = child_node; _tmp54_ = _tmp53_->entry; _tmp55_ = self->priv->_kana_mode; _tmp56_ = skk_rom_kana_entry_get_kana (_tmp54_, _tmp55_); _tmp57_ = _tmp56_; g_string_append (_tmp52_, _tmp57_); _g_free0 (_tmp57_); _tmp58_ = self->priv->_preedit; g_string_erase (_tmp58_, (gssize) 0, (gssize) (-1)); _tmp59_ = skk_rom_kana_converter_get_rule (self); _tmp60_ = _tmp59_; _tmp61_ = _tmp60_->root_node; _tmp62_ = _g_object_ref0 (_tmp61_); _g_object_unref0 (self->priv->current_node); self->priv->current_node = _tmp62_; { gint i; i = 0; { gboolean _tmp63_; _tmp63_ = TRUE; while (TRUE) { gboolean _tmp64_; gint _tmp66_; SkkRomKanaNode* _tmp67_; SkkRomKanaEntry* _tmp68_; const gchar* _tmp69_; gint _tmp70_; gint _tmp71_; SkkRomKanaNode* _tmp72_; SkkRomKanaEntry* _tmp73_; const gchar* _tmp74_; gint _tmp75_; gchar _tmp76_ = '\0'; _tmp64_ = _tmp63_; if (!_tmp64_) { gint _tmp65_; _tmp65_ = i; i = _tmp65_ + 1; } _tmp63_ = FALSE; _tmp66_ = i; _tmp67_ = child_node; _tmp68_ = _tmp67_->entry; _tmp69_ = (*_tmp68_).carryover; _tmp70_ = strlen (_tmp69_); _tmp71_ = _tmp70_; if (!(_tmp66_ < _tmp71_)) { break; } _tmp72_ = child_node; _tmp73_ = _tmp72_->entry; _tmp74_ = (*_tmp73_).carryover; _tmp75_ = i; _tmp76_ = string_get (_tmp74_, (glong) _tmp75_); skk_rom_kana_converter_append (self, (gunichar) _tmp76_); } } } result = TRUE; _g_object_unref0 (child_node); return result; } } _g_object_unref0 (child_node); } /** * Check if a character will be consumed by the current conversion. * * @param uc an ASCII character * @param preedit_only only checks if preedit is active * @param no_carryover return false if there will be carryover * @return `true` if the character can be consumed */ gboolean skk_rom_kana_converter_can_consume (SkkRomKanaConverter* self, gunichar uc, gboolean preedit_only, gboolean no_carryover) { gboolean result = FALSE; gboolean _tmp0_ = FALSE; gboolean _tmp1_; gboolean _tmp4_; SkkRomKanaNode* _tmp5_; gunichar _tmp6_; SkkRomKanaNode* _tmp7_; SkkRomKanaNode* _tmp8_; SkkRomKanaNode* child_node; SkkRomKanaNode* _tmp9_; gboolean _tmp10_ = FALSE; gboolean _tmp11_ = FALSE; gboolean _tmp12_; gboolean _tmp15_; gboolean _tmp19_; g_return_val_if_fail (self != NULL, FALSE); _tmp1_ = preedit_only; if (_tmp1_) { GString* _tmp2_; gssize _tmp3_; _tmp2_ = self->priv->_preedit; _tmp3_ = _tmp2_->len; _tmp0_ = _tmp3_ == ((gssize) 0); } else { _tmp0_ = FALSE; } _tmp4_ = _tmp0_; if (_tmp4_) { result = FALSE; return result; } _tmp5_ = self->priv->current_node; _tmp6_ = uc; _tmp7_ = _tmp5_->children[_tmp6_]; _tmp8_ = _g_object_ref0 (_tmp7_); child_node = _tmp8_; _tmp9_ = child_node; if (_tmp9_ == NULL) { result = FALSE; _g_object_unref0 (child_node); return result; } _tmp12_ = no_carryover; if (_tmp12_) { SkkRomKanaNode* _tmp13_; SkkRomKanaEntry* _tmp14_; _tmp13_ = child_node; _tmp14_ = _tmp13_->entry; _tmp11_ = _tmp14_ != NULL; } else { _tmp11_ = FALSE; } _tmp15_ = _tmp11_; if (_tmp15_) { SkkRomKanaNode* _tmp16_; SkkRomKanaEntry* _tmp17_; const gchar* _tmp18_; _tmp16_ = child_node; _tmp17_ = _tmp16_->entry; _tmp18_ = (*_tmp17_).carryover; _tmp10_ = g_strcmp0 (_tmp18_, "") != 0; } else { _tmp10_ = FALSE; } _tmp19_ = _tmp10_; if (_tmp19_) { result = FALSE; _g_object_unref0 (child_node); return result; } result = TRUE; _g_object_unref0 (child_node); return result; } /** * Reset the internal state of the converter. */ void skk_rom_kana_converter_reset (SkkRomKanaConverter* self) { GString* _tmp0_; GString* _tmp1_; SkkRomKanaMapFile* _tmp2_; SkkRomKanaMapFile* _tmp3_; SkkRomKanaNode* _tmp4_; SkkRomKanaNode* _tmp5_; g_return_if_fail (self != NULL); _tmp0_ = self->priv->_output; g_string_erase (_tmp0_, (gssize) 0, (gssize) (-1)); _tmp1_ = self->priv->_preedit; g_string_erase (_tmp1_, (gssize) 0, (gssize) (-1)); _tmp2_ = skk_rom_kana_converter_get_rule (self); _tmp3_ = _tmp2_; _tmp4_ = _tmp3_->root_node; _tmp5_ = _g_object_ref0 (_tmp4_); _g_object_unref0 (self->priv->current_node); self->priv->current_node = _tmp5_; } /** * Delete the trailing character from the internal buffer. * * @return `true` if any character is removed, `false` otherwise */ gboolean skk_rom_kana_converter_delete (SkkRomKanaConverter* self) { gboolean result = FALSE; GString* _tmp0_; gssize _tmp1_; GString* _tmp17_; gssize _tmp18_; g_return_val_if_fail (self != NULL, FALSE); _tmp0_ = self->priv->_preedit; _tmp1_ = _tmp0_->len; if (_tmp1_ > ((gssize) 0)) { SkkRomKanaNode* _tmp2_; SkkRomKanaNode* _tmp3_; SkkRomKanaNode* _tmp4_; SkkRomKanaNode* _tmp5_; GString* _tmp10_; GString* _tmp11_; const gchar* _tmp12_; GString* _tmp13_; const gchar* _tmp14_; gint _tmp15_ = 0; gint _tmp16_ = 0; _tmp2_ = self->priv->current_node; _tmp3_ = _tmp2_->parent; _tmp4_ = _g_object_ref0 (_tmp3_); _g_object_unref0 (self->priv->current_node); self->priv->current_node = _tmp4_; _tmp5_ = self->priv->current_node; if (_tmp5_ == NULL) { SkkRomKanaMapFile* _tmp6_; SkkRomKanaMapFile* _tmp7_; SkkRomKanaNode* _tmp8_; SkkRomKanaNode* _tmp9_; _tmp6_ = skk_rom_kana_converter_get_rule (self); _tmp7_ = _tmp6_; _tmp8_ = _tmp7_->root_node; _tmp9_ = _g_object_ref0 (_tmp8_); _g_object_unref0 (self->priv->current_node); self->priv->current_node = _tmp9_; } _tmp10_ = self->priv->_preedit; _tmp11_ = self->priv->_preedit; _tmp12_ = _tmp11_->str; _tmp13_ = self->priv->_preedit; _tmp14_ = _tmp13_->str; _tmp15_ = g_utf8_strlen (_tmp14_, (gssize) (-1)); _tmp16_ = string_index_of_nth_char (_tmp12_, (glong) (_tmp15_ - 1)); g_string_truncate (_tmp10_, (gsize) _tmp16_); result = TRUE; return result; } _tmp17_ = self->priv->_output; _tmp18_ = _tmp17_->len; if (_tmp18_ > ((gssize) 0)) { GString* _tmp19_; GString* _tmp20_; const gchar* _tmp21_; GString* _tmp22_; const gchar* _tmp23_; gint _tmp24_ = 0; gint _tmp25_ = 0; _tmp19_ = self->priv->_output; _tmp20_ = self->priv->_output; _tmp21_ = _tmp20_->str; _tmp22_ = self->priv->_output; _tmp23_ = _tmp22_->str; _tmp24_ = g_utf8_strlen (_tmp23_, (gssize) (-1)); _tmp25_ = string_index_of_nth_char (_tmp21_, (glong) (_tmp24_ - 1)); g_string_truncate (_tmp19_, (gsize) _tmp25_); result = TRUE; return result; } result = FALSE; return result; } SkkRomKanaMapFile* skk_rom_kana_converter_get_rule (SkkRomKanaConverter* self) { SkkRomKanaMapFile* result; SkkRomKanaMapFile* _tmp0_; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = self->priv->_rule; result = _tmp0_; return result; } void skk_rom_kana_converter_set_rule (SkkRomKanaConverter* self, SkkRomKanaMapFile* value) { SkkRomKanaMapFile* _tmp0_; SkkRomKanaMapFile* _tmp1_; SkkRomKanaMapFile* _tmp2_; SkkRomKanaNode* _tmp3_; SkkRomKanaNode* _tmp4_; g_return_if_fail (self != NULL); _tmp0_ = value; _tmp1_ = _g_object_ref0 (_tmp0_); _g_object_unref0 (self->priv->_rule); self->priv->_rule = _tmp1_; _tmp2_ = self->priv->_rule; _tmp3_ = _tmp2_->root_node; _tmp4_ = _g_object_ref0 (_tmp3_); _g_object_unref0 (self->priv->current_node); self->priv->current_node = _tmp4_; g_object_notify ((GObject *) self, "rule"); } SkkKanaMode skk_rom_kana_converter_get_kana_mode (SkkRomKanaConverter* self) { SkkKanaMode result; SkkKanaMode _tmp0_; g_return_val_if_fail (self != NULL, 0); _tmp0_ = self->priv->_kana_mode; result = _tmp0_; return result; } void skk_rom_kana_converter_set_kana_mode (SkkRomKanaConverter* self, SkkKanaMode value) { SkkKanaMode _tmp0_; g_return_if_fail (self != NULL); _tmp0_ = value; self->priv->_kana_mode = _tmp0_; g_object_notify ((GObject *) self, "kana-mode"); } SkkPeriodStyle skk_rom_kana_converter_get_period_style (SkkRomKanaConverter* self) { SkkPeriodStyle result; SkkPeriodStyle _tmp0_; g_return_val_if_fail (self != NULL, 0); _tmp0_ = self->priv->_period_style; result = _tmp0_; return result; } void skk_rom_kana_converter_set_period_style (SkkRomKanaConverter* self, SkkPeriodStyle value) { SkkPeriodStyle _tmp0_; g_return_if_fail (self != NULL); _tmp0_ = value; self->priv->_period_style = _tmp0_; g_object_notify ((GObject *) self, "period-style"); } const gchar* skk_rom_kana_converter_get_output (SkkRomKanaConverter* self) { const gchar* result; GString* _tmp0_; const gchar* _tmp1_; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = self->priv->_output; _tmp1_ = _tmp0_->str; result = _tmp1_; return result; } void skk_rom_kana_converter_set_output (SkkRomKanaConverter* self, const gchar* value) { GString* _tmp0_; const gchar* _tmp1_; g_return_if_fail (self != NULL); _tmp0_ = self->priv->_output; _tmp1_ = value; g_string_assign (_tmp0_, _tmp1_); g_object_notify ((GObject *) self, "output"); } const gchar* skk_rom_kana_converter_get_preedit (SkkRomKanaConverter* self) { const gchar* result; GString* _tmp0_; const gchar* _tmp1_; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = self->priv->_preedit; _tmp1_ = _tmp0_->str; result = _tmp1_; return result; } static void skk_rom_kana_converter_class_init (SkkRomKanaConverterClass * klass) { skk_rom_kana_converter_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (SkkRomKanaConverterPrivate)); G_OBJECT_CLASS (klass)->get_property = _vala_skk_rom_kana_converter_get_property; G_OBJECT_CLASS (klass)->set_property = _vala_skk_rom_kana_converter_set_property; G_OBJECT_CLASS (klass)->finalize = skk_rom_kana_converter_finalize; g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_ROM_KANA_CONVERTER_RULE, g_param_spec_object ("rule", "rule", "rule", SKK_TYPE_ROM_KANA_MAP_FILE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_ROM_KANA_CONVERTER_KANA_MODE, g_param_spec_enum ("kana-mode", "kana-mode", "kana-mode", SKK_TYPE_KANA_MODE, SKK_KANA_MODE_HIRAGANA, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_ROM_KANA_CONVERTER_PERIOD_STYLE, g_param_spec_enum ("period-style", "period-style", "period-style", SKK_TYPE_PERIOD_STYLE, SKK_PERIOD_STYLE_JA_JA, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_ROM_KANA_CONVERTER_OUTPUT, g_param_spec_string ("output", "output", "output", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_ROM_KANA_CONVERTER_PREEDIT, g_param_spec_string ("preedit", "preedit", "preedit", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE)); } static void skk_rom_kana_converter_instance_init (SkkRomKanaConverter * self) { GString* _tmp0_; GString* _tmp1_; self->priv = SKK_ROM_KANA_CONVERTER_GET_PRIVATE (self); self->priv->_kana_mode = SKK_KANA_MODE_HIRAGANA; self->priv->_period_style = SKK_PERIOD_STYLE_JA_JA; _tmp0_ = g_string_new (""); self->priv->_output = _tmp0_; _tmp1_ = g_string_new (""); self->priv->_preedit = _tmp1_; } static void skk_rom_kana_converter_finalize (GObject* obj) { SkkRomKanaConverter * self; self = SKK_ROM_KANA_CONVERTER (obj); _g_object_unref0 (self->priv->_rule); _g_object_unref0 (self->priv->current_node); _g_string_free0 (self->priv->_output); _g_string_free0 (self->priv->_preedit); G_OBJECT_CLASS (skk_rom_kana_converter_parent_class)->finalize (obj); } /** * Romaji-to-kana converter. */ GType skk_rom_kana_converter_get_type (void) { static volatile gsize skk_rom_kana_converter_type_id__volatile = 0; if (g_once_init_enter (&skk_rom_kana_converter_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkRomKanaConverterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_rom_kana_converter_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkRomKanaConverter), 0, (GInstanceInitFunc) skk_rom_kana_converter_instance_init, NULL }; GType skk_rom_kana_converter_type_id; skk_rom_kana_converter_type_id = g_type_register_static (G_TYPE_OBJECT, "SkkRomKanaConverter", &g_define_type_info, 0); g_once_init_leave (&skk_rom_kana_converter_type_id__volatile, skk_rom_kana_converter_type_id); } return skk_rom_kana_converter_type_id__volatile; } static void _vala_skk_rom_kana_converter_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { SkkRomKanaConverter * self; self = SKK_ROM_KANA_CONVERTER (object); switch (property_id) { case SKK_ROM_KANA_CONVERTER_RULE: g_value_set_object (value, skk_rom_kana_converter_get_rule (self)); break; case SKK_ROM_KANA_CONVERTER_KANA_MODE: g_value_set_enum (value, skk_rom_kana_converter_get_kana_mode (self)); break; case SKK_ROM_KANA_CONVERTER_PERIOD_STYLE: g_value_set_enum (value, skk_rom_kana_converter_get_period_style (self)); break; case SKK_ROM_KANA_CONVERTER_OUTPUT: g_value_set_string (value, skk_rom_kana_converter_get_output (self)); break; case SKK_ROM_KANA_CONVERTER_PREEDIT: g_value_set_string (value, skk_rom_kana_converter_get_preedit (self)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } static void _vala_skk_rom_kana_converter_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { SkkRomKanaConverter * self; self = SKK_ROM_KANA_CONVERTER (object); switch (property_id) { case SKK_ROM_KANA_CONVERTER_RULE: skk_rom_kana_converter_set_rule (self, g_value_get_object (value)); break; case SKK_ROM_KANA_CONVERTER_KANA_MODE: skk_rom_kana_converter_set_kana_mode (self, g_value_get_enum (value)); break; case SKK_ROM_KANA_CONVERTER_PERIOD_STYLE: skk_rom_kana_converter_set_period_style (self, g_value_get_enum (value)); break; case SKK_ROM_KANA_CONVERTER_OUTPUT: skk_rom_kana_converter_set_output (self, g_value_get_string (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { int i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); } } } } static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) { _vala_array_destroy (array, array_length, destroy_func); g_free (array); } libskk-1.0.0/libskk/file-dict.c0000664000076400007640000013655012016556643013227 00000000000000/* file-dict.c generated by valac 0.16.0, the Vala compiler * generated from file-dict.vala, do not modify */ /* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ #include #include #include #include #include #include #define SKK_TYPE_DICT (skk_dict_get_type ()) #define SKK_DICT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_DICT, SkkDict)) #define SKK_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_DICT, SkkDictClass)) #define SKK_IS_DICT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_DICT)) #define SKK_IS_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_DICT)) #define SKK_DICT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_DICT, SkkDictClass)) typedef struct _SkkDict SkkDict; typedef struct _SkkDictClass SkkDictClass; typedef struct _SkkDictPrivate SkkDictPrivate; #define SKK_TYPE_CANDIDATE (skk_candidate_get_type ()) #define SKK_CANDIDATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_CANDIDATE, SkkCandidate)) #define SKK_CANDIDATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_CANDIDATE, SkkCandidateClass)) #define SKK_IS_CANDIDATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_CANDIDATE)) #define SKK_IS_CANDIDATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_CANDIDATE)) #define SKK_CANDIDATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_CANDIDATE, SkkCandidateClass)) typedef struct _SkkCandidate SkkCandidate; typedef struct _SkkCandidateClass SkkCandidateClass; #define SKK_TYPE_FILE_DICT (skk_file_dict_get_type ()) #define SKK_FILE_DICT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_FILE_DICT, SkkFileDict)) #define SKK_FILE_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_FILE_DICT, SkkFileDictClass)) #define SKK_IS_FILE_DICT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_FILE_DICT)) #define SKK_IS_FILE_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_FILE_DICT)) #define SKK_FILE_DICT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_FILE_DICT, SkkFileDictClass)) typedef struct _SkkFileDict SkkFileDict; typedef struct _SkkFileDictClass SkkFileDictClass; typedef struct _SkkFileDictPrivate SkkFileDictPrivate; #define SKK_TYPE_MEMORY_MAPPED_FILE (skk_memory_mapped_file_get_type ()) #define SKK_MEMORY_MAPPED_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_MEMORY_MAPPED_FILE, SkkMemoryMappedFile)) #define SKK_MEMORY_MAPPED_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_MEMORY_MAPPED_FILE, SkkMemoryMappedFileClass)) #define SKK_IS_MEMORY_MAPPED_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_MEMORY_MAPPED_FILE)) #define SKK_IS_MEMORY_MAPPED_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_MEMORY_MAPPED_FILE)) #define SKK_MEMORY_MAPPED_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_MEMORY_MAPPED_FILE, SkkMemoryMappedFileClass)) typedef struct _SkkMemoryMappedFile SkkMemoryMappedFile; typedef struct _SkkMemoryMappedFileClass SkkMemoryMappedFileClass; #define SKK_TYPE_ENCODING_CONVERTER (skk_encoding_converter_get_type ()) #define SKK_ENCODING_CONVERTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_ENCODING_CONVERTER, SkkEncodingConverter)) #define SKK_ENCODING_CONVERTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_ENCODING_CONVERTER, SkkEncodingConverterClass)) #define SKK_IS_ENCODING_CONVERTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_ENCODING_CONVERTER)) #define SKK_IS_ENCODING_CONVERTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_ENCODING_CONVERTER)) #define SKK_ENCODING_CONVERTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_ENCODING_CONVERTER, SkkEncodingConverterClass)) typedef struct _SkkEncodingConverter SkkEncodingConverter; typedef struct _SkkEncodingConverterClass SkkEncodingConverterClass; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) #define _g_free0(var) (var = (g_free (var), NULL)) #define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL))) #define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL))) struct _SkkDict { GObject parent_instance; SkkDictPrivate * priv; }; struct _SkkDictClass { GObjectClass parent_class; void (*reload) (SkkDict* self, GError** error); SkkCandidate** (*lookup) (SkkDict* self, const gchar* midasi, gboolean okuri, int* result_length1); gchar** (*complete) (SkkDict* self, const gchar* midasi, int* result_length1); gboolean (*select_candidate) (SkkDict* self, SkkCandidate* candidate); gboolean (*purge_candidate) (SkkDict* self, SkkCandidate* candidate); void (*save) (SkkDict* self, GError** error); gboolean (*get_read_only) (SkkDict* self); }; struct _SkkFileDict { SkkDict parent_instance; SkkFileDictPrivate * priv; }; struct _SkkFileDictClass { SkkDictClass parent_class; }; struct _SkkFileDictPrivate { GFile* file; SkkMemoryMappedFile* mmap; gchar* etag; SkkEncodingConverter* converter; glong okuri_ari_offset; glong okuri_nasi_offset; }; typedef enum { SKK_SKK_DICT_ERROR_NOT_READABLE, SKK_SKK_DICT_ERROR_MALFORMED_INPUT } SkkSkkDictError; #define SKK_SKK_DICT_ERROR skk_skk_dict_error_quark () static gpointer skk_file_dict_parent_class = NULL; GType skk_dict_get_type (void) G_GNUC_CONST; GType skk_candidate_get_type (void) G_GNUC_CONST; GType skk_file_dict_get_type (void) G_GNUC_CONST; GType skk_memory_mapped_file_get_type (void) G_GNUC_CONST; GType skk_encoding_converter_get_type (void) G_GNUC_CONST; #define SKK_FILE_DICT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SKK_TYPE_FILE_DICT, SkkFileDictPrivate)) enum { SKK_FILE_DICT_DUMMY_PROPERTY, SKK_FILE_DICT_READ_ONLY }; static gchar* skk_file_dict_read_line (SkkFileDict* self, glong* offset); gsize skk_memory_mapped_file_get_length (SkkMemoryMappedFile* self); void* skk_memory_mapped_file_get_memory (SkkMemoryMappedFile* self); static gchar* skk_file_dict_read_previous_line (SkkFileDict* self, glong* pos, const gchar* line); static gchar* skk_file_dict_read_next_line (SkkFileDict* self, glong* pos, const gchar* line); static gboolean skk_file_dict_read_until (SkkFileDict* self, glong* offset, const gchar* line); GQuark skk_skk_dict_error_quark (void); static void skk_file_dict_load (SkkFileDict* self, GError** error); void skk_memory_mapped_file_remap (SkkMemoryMappedFile* self, GError** error); gchar* skk_encoding_converter_extract_coding_system (const gchar* line); SkkEncodingConverter* skk_encoding_converter_new_from_coding_system (const gchar* coding, GError** error); SkkEncodingConverter* skk_encoding_converter_construct_from_coding_system (GType object_type, const gchar* coding, GError** error); static void skk_file_dict_real_reload (SkkDict* base, GError** error); static gboolean skk_file_dict_search_pos (SkkFileDict* self, const gchar* midasi, glong start_offset, glong end_offset, GCompareFunc cmp, glong* pos, gchar** line, gint direction); static SkkCandidate** skk_file_dict_real_lookup (SkkDict* base, const gchar* midasi, gboolean okuri, int* result_length1); gchar* skk_encoding_converter_encode (SkkEncodingConverter* self, const gchar* internal_str, GError** error); gchar* skk_encoding_converter_decode (SkkEncodingConverter* self, const gchar* external_str, GError** error); SkkCandidate** skk_dict_split_candidates (SkkDict* self, const gchar* midasi, gboolean okuri, const gchar* line, int* result_length1); static gint skk_file_dict_strcmp_prefix (const gchar* a, const gchar* b); static gchar** skk_file_dict_real_complete (SkkDict* base, const gchar* midasi, int* result_length1); static gint _skk_file_dict_strcmp_prefix_gcompare_func (gconstpointer a, gconstpointer b); SkkFileDict* skk_file_dict_new (const gchar* path, const gchar* encoding, GError** error); SkkFileDict* skk_file_dict_construct (GType object_type, const gchar* path, const gchar* encoding, GError** error); SkkDict* skk_dict_construct (GType object_type); SkkMemoryMappedFile* skk_memory_mapped_file_new (GFile* file); SkkMemoryMappedFile* skk_memory_mapped_file_construct (GType object_type, GFile* file); SkkEncodingConverter* skk_encoding_converter_new (const gchar* encoding, GError** error); SkkEncodingConverter* skk_encoding_converter_construct (GType object_type, const gchar* encoding, GError** error); void skk_dict_reload (SkkDict* self, GError** error); static void skk_file_dict_finalize (GObject* obj); gboolean skk_dict_get_read_only (SkkDict* self); static void _vala_skk_file_dict_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); static gchar* skk_file_dict_read_line (SkkFileDict* self, glong* offset) { gchar* result = NULL; glong _tmp0_; SkkMemoryMappedFile* _tmp1_; gsize _tmp2_; gsize _tmp3_; SkkMemoryMappedFile* _tmp4_; void* _tmp5_; void* _tmp6_; glong _tmp7_; gchar* p; glong _tmp14_; GString* _tmp17_; GString* builder; glong _tmp18_; glong _offset; GString* _tmp30_; const gchar* _tmp31_; gchar* _tmp32_; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = *offset; _tmp1_ = self->priv->mmap; _tmp2_ = skk_memory_mapped_file_get_length (_tmp1_); _tmp3_ = _tmp2_; g_return_val_if_fail (((gsize) _tmp0_) < _tmp3_, NULL); _tmp4_ = self->priv->mmap; _tmp5_ = skk_memory_mapped_file_get_memory (_tmp4_); _tmp6_ = _tmp5_; _tmp7_ = *offset; p = ((gchar*) _tmp6_) + _tmp7_; { gboolean _tmp8_; _tmp8_ = TRUE; while (TRUE) { gboolean _tmp9_; glong _tmp12_; gchar* _tmp13_; _tmp9_ = _tmp8_; if (!_tmp9_) { glong _tmp10_; gchar* _tmp11_; _tmp10_ = *offset; *offset = _tmp10_ - 1; _tmp11_ = p; p = _tmp11_ - 1; } _tmp8_ = FALSE; _tmp12_ = *offset; if (!(_tmp12_ > ((glong) 0))) { break; } _tmp13_ = p; if ((*_tmp13_) == '\n') { break; } } } _tmp14_ = *offset; if (_tmp14_ > ((glong) 0)) { glong _tmp15_; gchar* _tmp16_; _tmp15_ = *offset; *offset = _tmp15_ + 1; _tmp16_ = p; p = _tmp16_ + 1; } _tmp17_ = g_string_new (""); builder = _tmp17_; _tmp18_ = *offset; _offset = _tmp18_; { gboolean _tmp19_; _tmp19_ = TRUE; while (TRUE) { gboolean _tmp20_; glong _tmp23_; SkkMemoryMappedFile* _tmp24_; gsize _tmp25_; gsize _tmp26_; gchar* _tmp27_; GString* _tmp28_; gchar* _tmp29_; _tmp20_ = _tmp19_; if (!_tmp20_) { glong _tmp21_; gchar* _tmp22_; _tmp21_ = _offset; _offset = _tmp21_ + 1; _tmp22_ = p; p = _tmp22_ + 1; } _tmp19_ = FALSE; _tmp23_ = _offset; _tmp24_ = self->priv->mmap; _tmp25_ = skk_memory_mapped_file_get_length (_tmp24_); _tmp26_ = _tmp25_; if (!(((gsize) _tmp23_) < _tmp26_)) { break; } _tmp27_ = p; if ((*_tmp27_) == '\n') { break; } _tmp28_ = builder; _tmp29_ = p; g_string_append_c (_tmp28_, *_tmp29_); } } _tmp30_ = builder; _tmp31_ = _tmp30_->str; _tmp32_ = g_strdup (_tmp31_); result = _tmp32_; _g_string_free0 (builder); return result; } static gchar* skk_file_dict_read_previous_line (SkkFileDict* self, glong* pos, const gchar* line) { gchar* result = NULL; glong _tmp0_; glong _tmp1_; gchar* _tmp2_ = NULL; g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (line != NULL, NULL); _tmp0_ = *pos; if (_tmp0_ < ((glong) 2)) { result = NULL; return result; } _tmp1_ = *pos; *pos = _tmp1_ - 2; _tmp2_ = skk_file_dict_read_line (self, pos); result = _tmp2_; return result; } static gchar* skk_file_dict_read_next_line (SkkFileDict* self, glong* pos, const gchar* line) { gchar* result = NULL; glong _tmp0_; const gchar* _tmp1_; gint _tmp2_; gint _tmp3_; SkkMemoryMappedFile* _tmp4_; gsize _tmp5_; gsize _tmp6_; glong _tmp7_; const gchar* _tmp8_; gint _tmp9_; gint _tmp10_; gchar* _tmp11_ = NULL; g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (line != NULL, NULL); _tmp0_ = *pos; _tmp1_ = line; _tmp2_ = strlen (_tmp1_); _tmp3_ = _tmp2_; _tmp4_ = self->priv->mmap; _tmp5_ = skk_memory_mapped_file_get_length (_tmp4_); _tmp6_ = _tmp5_; if (((gsize) ((_tmp0_ + _tmp3_) + 1)) >= _tmp6_) { result = NULL; return result; } _tmp7_ = *pos; _tmp8_ = line; _tmp9_ = strlen (_tmp8_); _tmp10_ = _tmp9_; *pos = _tmp7_ + (_tmp10_ + 1); _tmp11_ = skk_file_dict_read_line (self, pos); result = _tmp11_; return result; } static gboolean skk_file_dict_read_until (SkkFileDict* self, glong* offset, const gchar* line) { gboolean result = FALSE; glong _tmp0_; SkkMemoryMappedFile* _tmp1_; gsize _tmp2_; gsize _tmp3_; g_return_val_if_fail (self != NULL, FALSE); g_return_val_if_fail (line != NULL, FALSE); _tmp0_ = *offset; _tmp1_ = self->priv->mmap; _tmp2_ = skk_memory_mapped_file_get_length (_tmp1_); _tmp3_ = _tmp2_; g_return_val_if_fail (((gsize) _tmp0_) < _tmp3_, NULL); while (TRUE) { glong _tmp4_; const gchar* _tmp5_; gint _tmp6_; gint _tmp7_; SkkMemoryMappedFile* _tmp8_; gsize _tmp9_; gsize _tmp10_; SkkMemoryMappedFile* _tmp11_; void* _tmp12_; void* _tmp13_; glong _tmp14_; gchar* p; gboolean _tmp15_ = FALSE; gchar* _tmp16_; gboolean _tmp23_; glong _tmp28_; _tmp4_ = *offset; _tmp5_ = line; _tmp6_ = strlen (_tmp5_); _tmp7_ = _tmp6_; _tmp8_ = self->priv->mmap; _tmp9_ = skk_memory_mapped_file_get_length (_tmp8_); _tmp10_ = _tmp9_; if (!(((gsize) (_tmp4_ + _tmp7_)) < _tmp10_)) { break; } _tmp11_ = self->priv->mmap; _tmp12_ = skk_memory_mapped_file_get_memory (_tmp11_); _tmp13_ = _tmp12_; _tmp14_ = *offset; p = ((gchar*) _tmp13_) + _tmp14_; _tmp16_ = p; if ((*_tmp16_) == '\n') { gchar* _tmp17_; const gchar* _tmp18_; const gchar* _tmp19_; gint _tmp20_; gint _tmp21_; gint _tmp22_ = 0; _tmp17_ = p; _tmp18_ = line; _tmp19_ = line; _tmp20_ = strlen (_tmp19_); _tmp21_ = _tmp20_; _tmp22_ = memcmp (_tmp17_ + 1, (void*) _tmp18_, (gsize) _tmp21_); _tmp15_ = _tmp22_ == 0; } else { _tmp15_ = FALSE; } _tmp23_ = _tmp15_; if (_tmp23_) { glong _tmp24_; const gchar* _tmp25_; gint _tmp26_; gint _tmp27_; _tmp24_ = *offset; _tmp25_ = line; _tmp26_ = strlen (_tmp25_); _tmp27_ = _tmp26_; *offset = _tmp24_ + _tmp27_; result = TRUE; return result; } _tmp28_ = *offset; *offset = _tmp28_ + 1; } result = FALSE; return result; } static gpointer _g_object_ref0 (gpointer self) { return self ? g_object_ref (self) : NULL; } static void skk_file_dict_load (SkkFileDict* self, GError** error) { SkkMemoryMappedFile* _tmp0_; glong offset; gchar* _tmp1_ = NULL; gchar* line; const gchar* _tmp2_; const gchar* _tmp4_; gchar* _tmp5_ = NULL; gchar* coding; const gchar* _tmp6_; gboolean _tmp15_ = FALSE; glong _tmp17_; gboolean _tmp18_ = FALSE; glong _tmp20_; GError * _inner_error_ = NULL; g_return_if_fail (self != NULL); _tmp0_ = self->priv->mmap; skk_memory_mapped_file_remap (_tmp0_, &_inner_error_); if (_inner_error_ != NULL) { if (_inner_error_->domain == SKK_SKK_DICT_ERROR) { g_propagate_error (error, _inner_error_); return; } else { g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } } offset = (glong) 0; _tmp1_ = skk_file_dict_read_line (self, &offset); line = _tmp1_; _tmp2_ = line; if (_tmp2_ == NULL) { GError* _tmp3_; _tmp3_ = g_error_new_literal (SKK_SKK_DICT_ERROR, SKK_SKK_DICT_ERROR_MALFORMED_INPUT, "can't read the first line"); _inner_error_ = _tmp3_; if (_inner_error_->domain == SKK_SKK_DICT_ERROR) { g_propagate_error (error, _inner_error_); _g_free0 (line); return; } else { _g_free0 (line); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } } _tmp4_ = line; _tmp5_ = skk_encoding_converter_extract_coding_system (_tmp4_); coding = _tmp5_; _tmp6_ = coding; if (_tmp6_ != NULL) { { const gchar* _tmp7_; SkkEncodingConverter* _tmp8_; SkkEncodingConverter* _converter; SkkEncodingConverter* _tmp9_; _tmp7_ = coding; _tmp8_ = skk_encoding_converter_new_from_coding_system (_tmp7_, &_inner_error_); _converter = _tmp8_; if (_inner_error_ != NULL) { goto __catch2_g_error; } _tmp9_ = _converter; if (_tmp9_ != NULL) { SkkEncodingConverter* _tmp10_; SkkEncodingConverter* _tmp11_; _tmp10_ = _converter; _tmp11_ = _g_object_ref0 (_tmp10_); _g_object_unref0 (self->priv->converter); self->priv->converter = _tmp11_; } _g_object_unref0 (_converter); } goto __finally2; __catch2_g_error: { GError* e = NULL; const gchar* _tmp12_; GError* _tmp13_; const gchar* _tmp14_; e = _inner_error_; _inner_error_ = NULL; _tmp12_ = coding; _tmp13_ = e; _tmp14_ = _tmp13_->message; g_warning ("file-dict.vala:105: can't create converter from coding system %s: %s", _tmp12_, _tmp14_); _g_error_free0 (e); } __finally2: if (_inner_error_ != NULL) { if (_inner_error_->domain == SKK_SKK_DICT_ERROR) { g_propagate_error (error, _inner_error_); _g_free0 (coding); _g_free0 (line); return; } else { _g_free0 (coding); _g_free0 (line); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } } } offset = (glong) 0; _tmp15_ = skk_file_dict_read_until (self, &offset, ";; okuri-ari entries.\n"); if (!_tmp15_) { GError* _tmp16_; _tmp16_ = g_error_new_literal (SKK_SKK_DICT_ERROR, SKK_SKK_DICT_ERROR_MALFORMED_INPUT, "no okuri-ari boundary"); _inner_error_ = _tmp16_; if (_inner_error_->domain == SKK_SKK_DICT_ERROR) { g_propagate_error (error, _inner_error_); _g_free0 (coding); _g_free0 (line); return; } else { _g_free0 (coding); _g_free0 (line); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } } _tmp17_ = offset; self->priv->okuri_ari_offset = _tmp17_; _tmp18_ = skk_file_dict_read_until (self, &offset, ";; okuri-nasi entries.\n"); if (!_tmp18_) { GError* _tmp19_; _tmp19_ = g_error_new_literal (SKK_SKK_DICT_ERROR, SKK_SKK_DICT_ERROR_MALFORMED_INPUT, "no okuri-nasi boundary"); _inner_error_ = _tmp19_; if (_inner_error_->domain == SKK_SKK_DICT_ERROR) { g_propagate_error (error, _inner_error_); _g_free0 (coding); _g_free0 (line); return; } else { _g_free0 (coding); _g_free0 (line); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } } _tmp20_ = offset; self->priv->okuri_nasi_offset = _tmp20_; _g_free0 (coding); _g_free0 (line); } /** * {@inheritDoc} */ static void skk_file_dict_real_reload (SkkDict* base, GError** error) { SkkFileDict * self; gchar* _tmp0_; gchar* attributes; GFile* _tmp1_; GFileInfo* _tmp2_ = NULL; GFileInfo* info; const gchar* _tmp3_ = NULL; const gchar* _tmp4_; GError * _inner_error_ = NULL; self = (SkkFileDict*) base; _tmp0_ = g_strdup (G_FILE_ATTRIBUTE_ETAG_VALUE); attributes = _tmp0_; _tmp1_ = self->priv->file; _tmp2_ = g_file_query_info (_tmp1_, attributes, G_FILE_QUERY_INFO_NONE, NULL, &_inner_error_); info = _tmp2_; if (_inner_error_ != NULL) { g_propagate_error (error, _inner_error_); _g_free0 (attributes); return; } _tmp3_ = g_file_info_get_etag (info); _tmp4_ = self->priv->etag; if (g_strcmp0 (_tmp3_, _tmp4_) != 0) { { const gchar* _tmp5_ = NULL; gchar* _tmp6_; skk_file_dict_load (self, &_inner_error_); if (_inner_error_ != NULL) { if (_inner_error_->domain == SKK_SKK_DICT_ERROR) { goto __catch3_skk_skk_dict_error; } _g_object_unref0 (info); _g_free0 (attributes); g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } _tmp5_ = g_file_info_get_etag (info); _tmp6_ = g_strdup (_tmp5_); _g_free0 (self->priv->etag); self->priv->etag = _tmp6_; } goto __finally3; __catch3_skk_skk_dict_error: { GError* e = NULL; GFile* _tmp7_; gchar* _tmp8_ = NULL; gchar* _tmp9_; GError* _tmp10_; const gchar* _tmp11_; e = _inner_error_; _inner_error_ = NULL; _tmp7_ = self->priv->file; _tmp8_ = g_file_get_path (_tmp7_); _tmp9_ = _tmp8_; _tmp10_ = e; _tmp11_ = _tmp10_->message; g_warning ("file-dict.vala:140: error loading file dictionary %s %s", _tmp9_, _tmp11_); _g_free0 (_tmp9_); _g_error_free0 (e); } __finally3: if (_inner_error_ != NULL) { g_propagate_error (error, _inner_error_); _g_object_unref0 (info); _g_free0 (attributes); return; } } _g_object_unref0 (info); _g_free0 (attributes); } static gint string_index_of (const gchar* self, const gchar* needle, gint start_index) { gint result = 0; gint _tmp0_; const gchar* _tmp1_; gchar* _tmp2_ = NULL; gchar* _result_; gchar* _tmp3_; g_return_val_if_fail (self != NULL, 0); g_return_val_if_fail (needle != NULL, 0); _tmp0_ = start_index; _tmp1_ = needle; _tmp2_ = strstr (((gchar*) self) + _tmp0_, (gchar*) _tmp1_); _result_ = _tmp2_; _tmp3_ = _result_; if (_tmp3_ != NULL) { gchar* _tmp4_; _tmp4_ = _result_; result = (gint) (_tmp4_ - ((gchar*) self)); return result; } else { result = -1; return result; } } static gchar* string_slice (const gchar* self, glong start, glong end) { gchar* result = NULL; gint _tmp0_; gint _tmp1_; glong string_length; glong _tmp2_; glong _tmp5_; gboolean _tmp8_ = FALSE; glong _tmp9_; gboolean _tmp12_; gboolean _tmp13_ = FALSE; glong _tmp14_; gboolean _tmp17_; glong _tmp18_; glong _tmp19_; glong _tmp20_; glong _tmp21_; glong _tmp22_; gchar* _tmp23_ = NULL; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = strlen (self); _tmp1_ = _tmp0_; string_length = (glong) _tmp1_; _tmp2_ = start; if (_tmp2_ < ((glong) 0)) { glong _tmp3_; glong _tmp4_; _tmp3_ = string_length; _tmp4_ = start; start = _tmp3_ + _tmp4_; } _tmp5_ = end; if (_tmp5_ < ((glong) 0)) { glong _tmp6_; glong _tmp7_; _tmp6_ = string_length; _tmp7_ = end; end = _tmp6_ + _tmp7_; } _tmp9_ = start; if (_tmp9_ >= ((glong) 0)) { glong _tmp10_; glong _tmp11_; _tmp10_ = start; _tmp11_ = string_length; _tmp8_ = _tmp10_ <= _tmp11_; } else { _tmp8_ = FALSE; } _tmp12_ = _tmp8_; g_return_val_if_fail (_tmp12_, NULL); _tmp14_ = end; if (_tmp14_ >= ((glong) 0)) { glong _tmp15_; glong _tmp16_; _tmp15_ = end; _tmp16_ = string_length; _tmp13_ = _tmp15_ <= _tmp16_; } else { _tmp13_ = FALSE; } _tmp17_ = _tmp13_; g_return_val_if_fail (_tmp17_, NULL); _tmp18_ = start; _tmp19_ = end; g_return_val_if_fail (_tmp18_ <= _tmp19_, NULL); _tmp20_ = start; _tmp21_ = end; _tmp22_ = start; _tmp23_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) (_tmp21_ - _tmp22_)); result = _tmp23_; return result; } static gboolean skk_file_dict_search_pos (SkkFileDict* self, const gchar* midasi, glong start_offset, glong end_offset, GCompareFunc cmp, glong* pos, gchar** line, gint direction) { glong _vala_pos = 0L; gchar* _vala_line = NULL; gboolean result = FALSE; glong _tmp0_; glong _tmp1_; glong _tmp2_; glong offset; g_return_val_if_fail (self != NULL, FALSE); g_return_val_if_fail (midasi != NULL, FALSE); _tmp0_ = start_offset; _tmp1_ = end_offset; _tmp2_ = start_offset; offset = _tmp0_ + ((_tmp1_ - _tmp2_) / 2); while (TRUE) { glong _tmp3_; glong _tmp4_; glong _tmp5_; SkkMemoryMappedFile* _tmp6_; gsize _tmp7_; gsize _tmp8_; gchar* _tmp9_ = NULL; gchar* _line; const gchar* _tmp10_; gint _tmp11_ = 0; gint index; gint _tmp12_; GCompareFunc _tmp14_; const gchar* _tmp15_; gint _tmp16_; gchar* _tmp17_ = NULL; gchar* _tmp18_; const gchar* _tmp19_; gint _tmp20_ = 0; gint _tmp21_; gint r; gint _tmp22_; gint _tmp26_; gint _tmp27_; glong _tmp33_; glong _tmp34_; glong _tmp35_; _tmp3_ = start_offset; _tmp4_ = end_offset; if (!(_tmp3_ <= _tmp4_)) { break; } _tmp5_ = offset; _tmp6_ = self->priv->mmap; _tmp7_ = skk_memory_mapped_file_get_length (_tmp6_); _tmp8_ = _tmp7_; g_assert (((gsize) _tmp5_) < _tmp8_); _tmp9_ = skk_file_dict_read_line (self, &offset); _line = _tmp9_; _tmp10_ = _line; _tmp11_ = string_index_of (_tmp10_, " ", 0); index = _tmp11_; _tmp12_ = index; if (_tmp12_ < 1) { const gchar* _tmp13_; _tmp13_ = _line; g_warning ("file-dict.vala:160: corrupted dictionary entry: %s", _tmp13_); _g_free0 (_line); break; } _tmp14_ = cmp; _tmp15_ = _line; _tmp16_ = index; _tmp17_ = string_slice (_tmp15_, (glong) 0, (glong) _tmp16_); _tmp18_ = _tmp17_; _tmp19_ = midasi; _tmp20_ = _tmp14_ (_tmp18_, _tmp19_); _tmp21_ = _tmp20_; _g_free0 (_tmp18_); r = _tmp21_; _tmp22_ = r; if (_tmp22_ == 0) { glong _tmp23_; const gchar* _tmp24_; gchar* _tmp25_; _tmp23_ = offset; _vala_pos = _tmp23_; _tmp24_ = _line; _tmp25_ = g_strdup (_tmp24_); _g_free0 (_vala_line); _vala_line = _tmp25_; result = TRUE; _g_free0 (_line); if (pos) { *pos = _vala_pos; } if (line) { *line = _vala_line; } else { _g_free0 (_vala_line); } return result; } _tmp26_ = r; _tmp27_ = direction; if ((_tmp26_ * _tmp27_) > 0) { glong _tmp28_; _tmp28_ = offset; end_offset = _tmp28_ - 2; } else { glong _tmp29_; const gchar* _tmp30_; gint _tmp31_; gint _tmp32_; _tmp29_ = offset; _tmp30_ = _line; _tmp31_ = strlen (_tmp30_); _tmp32_ = _tmp31_; start_offset = (_tmp29_ + _tmp32_) + 1; } _tmp33_ = start_offset; _tmp34_ = end_offset; _tmp35_ = start_offset; offset = _tmp33_ + ((_tmp34_ - _tmp35_) / 2); _g_free0 (_line); } _vala_pos = (glong) (-1); _g_free0 (_vala_line); _vala_line = NULL; result = FALSE; if (pos) { *pos = _vala_pos; } if (line) { *line = _vala_line; } else { _g_free0 (_vala_line); } return result; } /** * {@inheritDoc} */ static SkkCandidate** skk_file_dict_real_lookup (SkkDict* base, const gchar* midasi, gboolean okuri, int* result_length1) { SkkFileDict * self; SkkCandidate** result = NULL; SkkMemoryMappedFile* _tmp0_; void* _tmp1_; void* _tmp2_; glong start_offset = 0L; glong end_offset = 0L; gboolean _tmp5_; gchar* _midasi = NULL; glong pos = 0L; gchar* line = NULL; gint _tmp21_ = 0; gboolean _tmp22_; const gchar* _tmp23_; glong _tmp24_; glong _tmp25_; GCompareFunc _tmp26_; gint _tmp27_; glong _tmp28_ = 0L; gchar* _tmp29_ = NULL; gboolean _tmp30_ = FALSE; SkkCandidate** _tmp56_ = NULL; SkkCandidate** _tmp57_; gint _tmp57__length1; GError * _inner_error_ = NULL; self = (SkkFileDict*) base; g_return_val_if_fail (midasi != NULL, NULL); _tmp0_ = self->priv->mmap; _tmp1_ = skk_memory_mapped_file_get_memory (_tmp0_); _tmp2_ = _tmp1_; if (_tmp2_ == NULL) { SkkCandidate** _tmp3_ = NULL; SkkCandidate** _tmp4_; gint _tmp4__length1; _tmp3_ = g_new0 (SkkCandidate*, 0 + 1); _tmp4_ = _tmp3_; _tmp4__length1 = 0; if (result_length1) { *result_length1 = _tmp4__length1; } result = _tmp4_; return result; } _tmp5_ = okuri; if (_tmp5_) { glong _tmp6_; glong _tmp7_; _tmp6_ = self->priv->okuri_ari_offset; start_offset = _tmp6_; _tmp7_ = self->priv->okuri_nasi_offset; end_offset = _tmp7_; } else { glong _tmp8_; SkkMemoryMappedFile* _tmp9_; gsize _tmp10_; gsize _tmp11_; _tmp8_ = self->priv->okuri_nasi_offset; start_offset = _tmp8_; _tmp9_ = self->priv->mmap; _tmp10_ = skk_memory_mapped_file_get_length (_tmp9_); _tmp11_ = _tmp10_; end_offset = ((glong) _tmp11_) - 1; } { SkkEncodingConverter* _tmp12_; const gchar* _tmp13_; gchar* _tmp14_ = NULL; gchar* _tmp15_; _tmp12_ = self->priv->converter; _tmp13_ = midasi; _tmp14_ = skk_encoding_converter_encode (_tmp12_, _tmp13_, &_inner_error_); _tmp15_ = _tmp14_; if (_inner_error_ != NULL) { goto __catch4_g_error; } _g_free0 (_midasi); _midasi = _tmp15_; } goto __finally4; __catch4_g_error: { GError* e = NULL; const gchar* _tmp16_; GError* _tmp17_; const gchar* _tmp18_; SkkCandidate** _tmp19_ = NULL; SkkCandidate** _tmp20_; gint _tmp20__length1; e = _inner_error_; _inner_error_ = NULL; _tmp16_ = midasi; _tmp17_ = e; _tmp18_ = _tmp17_->message; g_warning ("file-dict.vala:202: can't encode %s: %s", _tmp16_, _tmp18_); _tmp19_ = g_new0 (SkkCandidate*, 0 + 1); _tmp20_ = _tmp19_; _tmp20__length1 = 0; if (result_length1) { *result_length1 = _tmp20__length1; } result = _tmp20_; _g_error_free0 (e); _g_free0 (_midasi); return result; } __finally4: if (_inner_error_ != NULL) { _g_free0 (_midasi); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } _tmp22_ = okuri; if (_tmp22_) { _tmp21_ = -1; } else { _tmp21_ = 1; } _tmp23_ = _midasi; _tmp24_ = start_offset; _tmp25_ = end_offset; _tmp26_ = g_strcmp0; _tmp27_ = _tmp21_; _tmp30_ = skk_file_dict_search_pos (self, _tmp23_, _tmp24_, _tmp25_, _tmp26_, &_tmp28_, &_tmp29_, _tmp27_); pos = _tmp28_; _g_free0 (line); line = _tmp29_; if (_tmp30_) { const gchar* _tmp31_; gint _tmp32_ = 0; gint index; gchar* _line = NULL; gint _tmp33_; _tmp31_ = line; _tmp32_ = string_index_of (_tmp31_, " ", 0); index = _tmp32_; _tmp33_ = index; if (_tmp33_ > 0) { const gchar* _tmp50_; gboolean _tmp51_; const gchar* _tmp52_; gint _tmp53_ = 0; SkkCandidate** _tmp54_ = NULL; SkkCandidate** _tmp55_; gint _tmp55__length1; { SkkEncodingConverter* _tmp34_; const gchar* _tmp35_; gint _tmp36_; const gchar* _tmp37_; gint _tmp38_; gint _tmp39_; gchar* _tmp40_ = NULL; gchar* _tmp41_; gchar* _tmp42_ = NULL; gchar* _tmp43_; gchar* _tmp44_; _tmp34_ = self->priv->converter; _tmp35_ = line; _tmp36_ = index; _tmp37_ = line; _tmp38_ = strlen (_tmp37_); _tmp39_ = _tmp38_; _tmp40_ = string_slice (_tmp35_, (glong) _tmp36_, (glong) _tmp39_); _tmp41_ = _tmp40_; _tmp42_ = skk_encoding_converter_decode (_tmp34_, _tmp41_, &_inner_error_); _tmp43_ = _tmp42_; _g_free0 (_tmp41_); _tmp44_ = _tmp43_; if (_inner_error_ != NULL) { goto __catch5_g_error; } _g_free0 (_line); _line = _tmp44_; } goto __finally5; __catch5_g_error: { GError* e = NULL; const gchar* _tmp45_; GError* _tmp46_; const gchar* _tmp47_; SkkCandidate** _tmp48_ = NULL; SkkCandidate** _tmp49_; gint _tmp49__length1; e = _inner_error_; _inner_error_ = NULL; _tmp45_ = line; _tmp46_ = e; _tmp47_ = _tmp46_->message; g_warning ("file-dict.vala:221: can't decode line %s: %s", _tmp45_, _tmp47_); _tmp48_ = g_new0 (SkkCandidate*, 0 + 1); _tmp49_ = _tmp48_; _tmp49__length1 = 0; if (result_length1) { *result_length1 = _tmp49__length1; } result = _tmp49_; _g_error_free0 (e); _g_free0 (_line); _g_free0 (line); _g_free0 (_midasi); return result; } __finally5: if (_inner_error_ != NULL) { _g_free0 (_line); _g_free0 (line); _g_free0 (_midasi); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } _tmp50_ = midasi; _tmp51_ = okuri; _tmp52_ = _line; _tmp54_ = skk_dict_split_candidates ((SkkDict*) self, _tmp50_, _tmp51_, _tmp52_, &_tmp53_); _tmp55_ = _tmp54_; _tmp55__length1 = _tmp53_; if (result_length1) { *result_length1 = _tmp55__length1; } result = _tmp55_; _g_free0 (_line); _g_free0 (line); _g_free0 (_midasi); return result; } _g_free0 (_line); } _tmp56_ = g_new0 (SkkCandidate*, 0 + 1); _tmp57_ = _tmp56_; _tmp57__length1 = 0; if (result_length1) { *result_length1 = _tmp57__length1; } result = _tmp57_; _g_free0 (line); _g_free0 (_midasi); return result; } static gint skk_file_dict_strcmp_prefix (const gchar* a, const gchar* b) { gint result = 0; const gchar* _tmp0_; const gchar* _tmp1_; gboolean _tmp2_ = FALSE; GCompareFunc _tmp3_; const gchar* _tmp4_; const gchar* _tmp5_; gint _tmp6_ = 0; g_return_val_if_fail (a != NULL, 0); g_return_val_if_fail (b != NULL, 0); _tmp0_ = a; _tmp1_ = b; _tmp2_ = g_str_has_prefix (_tmp0_, _tmp1_); if (_tmp2_) { result = 0; return result; } _tmp3_ = g_strcmp0; _tmp4_ = a; _tmp5_ = b; _tmp6_ = _tmp3_ (_tmp4_, _tmp5_); result = _tmp6_; return result; } /** * {@inheritDoc} */ static gint _skk_file_dict_strcmp_prefix_gcompare_func (gconstpointer a, gconstpointer b) { gint result; result = skk_file_dict_strcmp_prefix (a, b); return result; } static gchar** skk_file_dict_real_complete (SkkDict* base, const gchar* midasi, int* result_length1) { SkkFileDict * self; gchar** result = NULL; SkkMemoryMappedFile* _tmp0_; void* _tmp1_; void* _tmp2_; GeeArrayList* _tmp5_; GeeArrayList* completion; glong start_offset = 0L; glong end_offset = 0L; glong _tmp6_; SkkMemoryMappedFile* _tmp7_; gsize _tmp8_; gsize _tmp9_; gchar* _midasi = NULL; glong pos = 0L; gchar* line = NULL; const gchar* _tmp21_; glong _tmp22_; glong _tmp23_; glong _tmp24_ = 0L; gchar* _tmp25_ = NULL; gboolean _tmp26_ = FALSE; GeeArrayList* _tmp85_; gint _tmp86_ = 0; gpointer* _tmp87_ = NULL; gchar** _tmp88_; gint _tmp88__length1; GError * _inner_error_ = NULL; self = (SkkFileDict*) base; g_return_val_if_fail (midasi != NULL, NULL); _tmp0_ = self->priv->mmap; _tmp1_ = skk_memory_mapped_file_get_memory (_tmp0_); _tmp2_ = _tmp1_; if (_tmp2_ == NULL) { gchar** _tmp3_ = NULL; gchar** _tmp4_; gint _tmp4__length1; _tmp3_ = g_new0 (gchar*, 0 + 1); _tmp4_ = _tmp3_; _tmp4__length1 = 0; if (result_length1) { *result_length1 = _tmp4__length1; } result = _tmp4_; return result; } _tmp5_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL); completion = _tmp5_; _tmp6_ = self->priv->okuri_nasi_offset; start_offset = _tmp6_; _tmp7_ = self->priv->mmap; _tmp8_ = skk_memory_mapped_file_get_length (_tmp7_); _tmp9_ = _tmp8_; end_offset = (glong) _tmp9_; { SkkEncodingConverter* _tmp10_; const gchar* _tmp11_; gchar* _tmp12_ = NULL; gchar* _tmp13_; _tmp10_ = self->priv->converter; _tmp11_ = midasi; _tmp12_ = skk_encoding_converter_encode (_tmp10_, _tmp11_, &_inner_error_); _tmp13_ = _tmp12_; if (_inner_error_ != NULL) { goto __catch6_g_error; } _g_free0 (_midasi); _midasi = _tmp13_; } goto __finally6; __catch6_g_error: { GError* e = NULL; const gchar* _tmp14_; GError* _tmp15_; const gchar* _tmp16_; GeeArrayList* _tmp17_; gint _tmp18_ = 0; gpointer* _tmp19_ = NULL; gchar** _tmp20_; gint _tmp20__length1; e = _inner_error_; _inner_error_ = NULL; _tmp14_ = midasi; _tmp15_ = e; _tmp16_ = _tmp15_->message; g_warning ("file-dict.vala:254: can't decode %s: %s", _tmp14_, _tmp16_); _tmp17_ = completion; _tmp19_ = gee_abstract_collection_to_array ((GeeAbstractCollection*) _tmp17_, &_tmp18_); _tmp20_ = _tmp19_; _tmp20__length1 = _tmp18_; if (result_length1) { *result_length1 = _tmp20__length1; } result = _tmp20_; _g_error_free0 (e); _g_free0 (_midasi); _g_object_unref0 (completion); return result; } __finally6: if (_inner_error_ != NULL) { _g_free0 (_midasi); _g_object_unref0 (completion); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } _tmp21_ = _midasi; _tmp22_ = start_offset; _tmp23_ = end_offset; _tmp26_ = skk_file_dict_search_pos (self, _tmp21_, _tmp22_, _tmp23_, _skk_file_dict_strcmp_prefix_gcompare_func, &_tmp24_, &_tmp25_, 1); pos = _tmp24_; _g_free0 (line); line = _tmp25_; if (_tmp26_) { glong _tmp27_; glong _pos; const gchar* _tmp28_; gchar* _tmp29_; gchar* _line; glong _tmp57_; const gchar* _tmp58_; gchar* _tmp59_; _tmp27_ = pos; _pos = _tmp27_; _tmp28_ = line; _tmp29_ = g_strdup (_tmp28_); _line = _tmp29_; { gboolean _tmp30_; _tmp30_ = TRUE; while (TRUE) { gboolean _tmp31_; const gchar* _tmp40_; gint _tmp41_ = 0; gint index; gint _tmp42_; _tmp31_ = _tmp30_; if (!_tmp31_) { gboolean _tmp32_ = FALSE; const gchar* _tmp33_; gchar* _tmp34_ = NULL; const gchar* _tmp35_; gboolean _tmp39_; _tmp33_ = line; _tmp34_ = skk_file_dict_read_previous_line (self, &pos, _tmp33_); _g_free0 (line); line = _tmp34_; _tmp35_ = line; if (_tmp35_ != NULL) { const gchar* _tmp36_; const gchar* _tmp37_; gboolean _tmp38_ = FALSE; _tmp36_ = line; _tmp37_ = _midasi; _tmp38_ = g_str_has_prefix (_tmp36_, _tmp37_); _tmp32_ = _tmp38_; } else { _tmp32_ = FALSE; } _tmp39_ = _tmp32_; if (!_tmp39_) { break; } } _tmp30_ = FALSE; _tmp40_ = line; _tmp41_ = string_index_of (_tmp40_, " ", 0); index = _tmp41_; _tmp42_ = index; if (_tmp42_ < 0) { const gchar* _tmp43_; _tmp43_ = line; g_warning ("file-dict.vala:274: corrupted dictionary entry: %s", _tmp43_); } else { const gchar* _tmp44_; gint _tmp45_; gchar* _tmp46_ = NULL; gchar* completed; const gchar* _tmp47_; const gchar* _tmp48_; _tmp44_ = line; _tmp45_ = index; _tmp46_ = string_slice (_tmp44_, (glong) 0, (glong) _tmp45_); completed = _tmp46_; _tmp47_ = completed; _tmp48_ = _midasi; if (g_strcmp0 (_tmp47_, _tmp48_) != 0) { { SkkEncodingConverter* _tmp49_; const gchar* _tmp50_; gchar* _tmp51_ = NULL; gchar* decoded; GeeArrayList* _tmp52_; const gchar* _tmp53_; _tmp49_ = self->priv->converter; _tmp50_ = completed; _tmp51_ = skk_encoding_converter_decode (_tmp49_, _tmp50_, &_inner_error_); decoded = _tmp51_; if (_inner_error_ != NULL) { goto __catch7_g_error; } _tmp52_ = completion; _tmp53_ = decoded; gee_abstract_list_insert ((GeeAbstractList*) _tmp52_, 0, _tmp53_); _g_free0 (decoded); } goto __finally7; __catch7_g_error: { GError* e = NULL; const gchar* _tmp54_; GError* _tmp55_; const gchar* _tmp56_; e = _inner_error_; _inner_error_ = NULL; _tmp54_ = line; _tmp55_ = e; _tmp56_ = _tmp55_->message; g_warning ("file-dict.vala:284: can't decode line %s: %s", _tmp54_, _tmp56_); _g_error_free0 (e); } __finally7: if (_inner_error_ != NULL) { _g_free0 (completed); _g_free0 (_line); _g_free0 (line); _g_free0 (_midasi); _g_object_unref0 (completion); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } } _g_free0 (completed); } } } _tmp57_ = _pos; pos = _tmp57_; _tmp58_ = _line; _tmp59_ = g_strdup (_tmp58_); _g_free0 (line); line = _tmp59_; while (TRUE) { gboolean _tmp60_ = FALSE; const gchar* _tmp61_; gchar* _tmp62_ = NULL; const gchar* _tmp63_; gboolean _tmp67_; const gchar* _tmp68_; gint _tmp69_ = 0; gint index; gint _tmp70_; _tmp61_ = line; _tmp62_ = skk_file_dict_read_next_line (self, &pos, _tmp61_); _g_free0 (line); line = _tmp62_; _tmp63_ = line; if (_tmp63_ != NULL) { const gchar* _tmp64_; const gchar* _tmp65_; gboolean _tmp66_ = FALSE; _tmp64_ = line; _tmp65_ = _midasi; _tmp66_ = g_str_has_prefix (_tmp64_, _tmp65_); _tmp60_ = _tmp66_; } else { _tmp60_ = FALSE; } _tmp67_ = _tmp60_; if (!_tmp67_) { break; } _tmp68_ = line; _tmp69_ = string_index_of (_tmp68_, " ", 0); index = _tmp69_; _tmp70_ = index; if (_tmp70_ < 0) { const gchar* _tmp71_; _tmp71_ = line; g_warning ("file-dict.vala:299: corrupted dictionary entry: %s", _tmp71_); } else { const gchar* _tmp72_; gint _tmp73_; gchar* _tmp74_ = NULL; gchar* completed; const gchar* _tmp75_; const gchar* _tmp76_; _tmp72_ = line; _tmp73_ = index; _tmp74_ = string_slice (_tmp72_, (glong) 0, (glong) _tmp73_); completed = _tmp74_; _tmp75_ = completed; _tmp76_ = _midasi; if (g_strcmp0 (_tmp75_, _tmp76_) != 0) { { SkkEncodingConverter* _tmp77_; const gchar* _tmp78_; gchar* _tmp79_ = NULL; gchar* decoded; GeeArrayList* _tmp80_; const gchar* _tmp81_; _tmp77_ = self->priv->converter; _tmp78_ = completed; _tmp79_ = skk_encoding_converter_decode (_tmp77_, _tmp78_, &_inner_error_); decoded = _tmp79_; if (_inner_error_ != NULL) { goto __catch8_g_error; } _tmp80_ = completion; _tmp81_ = decoded; gee_abstract_collection_add ((GeeAbstractCollection*) _tmp80_, _tmp81_); _g_free0 (decoded); } goto __finally8; __catch8_g_error: { GError* e = NULL; const gchar* _tmp82_; GError* _tmp83_; const gchar* _tmp84_; e = _inner_error_; _inner_error_ = NULL; _tmp82_ = line; _tmp83_ = e; _tmp84_ = _tmp83_->message; g_warning ("file-dict.vala:309: can't decode line %s: %s", _tmp82_, _tmp84_); _g_error_free0 (e); } __finally8: if (_inner_error_ != NULL) { _g_free0 (completed); _g_free0 (_line); _g_free0 (line); _g_free0 (_midasi); _g_object_unref0 (completion); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } } _g_free0 (completed); } } _g_free0 (_line); } _tmp85_ = completion; _tmp87_ = gee_abstract_collection_to_array ((GeeAbstractCollection*) _tmp85_, &_tmp86_); _tmp88_ = _tmp87_; _tmp88__length1 = _tmp86_; if (result_length1) { *result_length1 = _tmp88__length1; } result = _tmp88_; _g_free0 (line); _g_free0 (_midasi); _g_object_unref0 (completion); return result; } /** * Create a new FileDict. * * @param path a path to the file * @param encoding encoding of the file (default EUC-JP) * * @return a new FileDict * @throws GLib.Error if opening the file is failed */ SkkFileDict* skk_file_dict_construct (GType object_type, const gchar* path, const gchar* encoding, GError** error) { SkkFileDict * self = NULL; const gchar* _tmp0_; GFile* _tmp1_ = NULL; GFile* _tmp2_; SkkMemoryMappedFile* _tmp3_; gchar* _tmp4_; const gchar* _tmp5_; SkkEncodingConverter* _tmp6_; SkkEncodingConverter* _tmp7_; GError * _inner_error_ = NULL; g_return_val_if_fail (path != NULL, NULL); g_return_val_if_fail (encoding != NULL, NULL); self = (SkkFileDict*) skk_dict_construct (object_type); _tmp0_ = path; _tmp1_ = g_file_new_for_path (_tmp0_); _g_object_unref0 (self->priv->file); self->priv->file = _tmp1_; _tmp2_ = self->priv->file; _tmp3_ = skk_memory_mapped_file_new (_tmp2_); _g_object_unref0 (self->priv->mmap); self->priv->mmap = _tmp3_; _tmp4_ = g_strdup (""); _g_free0 (self->priv->etag); self->priv->etag = _tmp4_; _tmp5_ = encoding; _tmp6_ = skk_encoding_converter_new (_tmp5_, &_inner_error_); _tmp7_ = _tmp6_; if (_inner_error_ != NULL) { g_propagate_error (error, _inner_error_); _g_object_unref0 (self); return NULL; } _g_object_unref0 (self->priv->converter); self->priv->converter = _tmp7_; skk_dict_reload ((SkkDict*) self, &_inner_error_); if (_inner_error_ != NULL) { g_propagate_error (error, _inner_error_); _g_object_unref0 (self); return NULL; } return self; } SkkFileDict* skk_file_dict_new (const gchar* path, const gchar* encoding, GError** error) { return skk_file_dict_construct (SKK_TYPE_FILE_DICT, path, encoding, error); } static gboolean skk_file_dict_real_get_read_only (SkkDict* base) { gboolean result; SkkFileDict* self; self = (SkkFileDict*) base; result = TRUE; return result; } static void skk_file_dict_class_init (SkkFileDictClass * klass) { skk_file_dict_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (SkkFileDictPrivate)); SKK_DICT_CLASS (klass)->reload = skk_file_dict_real_reload; SKK_DICT_CLASS (klass)->lookup = skk_file_dict_real_lookup; SKK_DICT_CLASS (klass)->complete = skk_file_dict_real_complete; SKK_DICT_CLASS (klass)->get_read_only = skk_file_dict_real_get_read_only; G_OBJECT_CLASS (klass)->get_property = _vala_skk_file_dict_get_property; G_OBJECT_CLASS (klass)->finalize = skk_file_dict_finalize; /** * {@inheritDoc} */ g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_FILE_DICT_READ_ONLY, g_param_spec_boolean ("read-only", "read-only", "read-only", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE)); } static void skk_file_dict_instance_init (SkkFileDict * self) { self->priv = SKK_FILE_DICT_GET_PRIVATE (self); } static void skk_file_dict_finalize (GObject* obj) { SkkFileDict * self; self = SKK_FILE_DICT (obj); _g_object_unref0 (self->priv->file); _g_object_unref0 (self->priv->mmap); _g_free0 (self->priv->etag); _g_object_unref0 (self->priv->converter); G_OBJECT_CLASS (skk_file_dict_parent_class)->finalize (obj); } /** * Read-only file based implementation of Dict. */ GType skk_file_dict_get_type (void) { static volatile gsize skk_file_dict_type_id__volatile = 0; if (g_once_init_enter (&skk_file_dict_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkFileDictClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_file_dict_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkFileDict), 0, (GInstanceInitFunc) skk_file_dict_instance_init, NULL }; GType skk_file_dict_type_id; skk_file_dict_type_id = g_type_register_static (SKK_TYPE_DICT, "SkkFileDict", &g_define_type_info, 0); g_once_init_leave (&skk_file_dict_type_id__volatile, skk_file_dict_type_id); } return skk_file_dict_type_id__volatile; } static void _vala_skk_file_dict_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { SkkFileDict * self; self = SKK_FILE_DICT (object); switch (property_id) { case SKK_FILE_DICT_READ_ONLY: g_value_set_boolean (value, skk_dict_get_read_only ((SkkDict*) self)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } libskk-1.0.0/libskk/candidate-list.vala0000664000076400007640000003006712015366570014746 00000000000000/* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ using Gee; namespace Skk { /** * Base abstract class of candidate list. */ public abstract class CandidateList : Object { /** * Current cursor position. */ public abstract int cursor_pos { get; } /** * Get the current candidate at the given index. * * @param index candidate position (-1 for the current cursor position) * * @return a Candidate */ public abstract new Candidate @get (int index = -1); /** * The number of candidate in the candidate list. */ public abstract int size { get; } internal abstract void clear (); internal abstract void add_candidates (Candidate[] array); internal abstract void add_candidates_end (); /** * Move cursor to the previous candidate. * * @return `true` if cursor position has changed, `false` otherwise. */ public abstract bool cursor_up (); /** * Move cursor to the next candidate. * * @return `true` if cursor position has changed, `false` otherwise */ public abstract bool cursor_down (); /** * Move cursor to the previous page. * * @return `true` if cursor position has changed, `false` otherwise */ public abstract bool page_up (); /** * Move cursor to the next page. * * @return `true` if cursor position has changed, `false` otherwise */ public abstract bool page_down (); /** * Move cursor forward. * * @return `true` if cursor position has changed, `false` otherwise */ public virtual bool next () { if (cursor_pos < page_start) { return cursor_down (); } else { return page_down (); } } /** * Move cursor backward. * * @return `true` if cursor position has changed, `false` otherwise */ public virtual bool previous () { if (cursor_pos <= page_start) { return cursor_up (); } else { return page_up (); } } /** * Starting index of paging. */ public abstract uint page_start { get; set; } /** * Page size. */ public abstract uint page_size { get; set; } /** * Flag to indicate whether page (lookup table) is visible. */ public abstract bool page_visible { get; } /** * Return cursor position of the beginning of the current page. * * @return cursor position */ protected uint get_page_start_cursor_pos () { var pages = (cursor_pos - page_start) / page_size; return pages * page_size + page_start; } /** * Select a candidate in the current page. * * @param index_in_page cursor position in the page to select * * @return `true` if a candidate is selected, `false` otherwise */ public abstract bool select_at (uint index_in_page); /** * Select the current candidate. */ public abstract void select (); /** * Signal emitted when candidates are filled and ready for traversal. */ public signal void populated (); /** * Signal emitted when a candidate is selected. * * @param candidate selected candidate */ public signal void selected (Candidate candidate); } class SimpleCandidateList : CandidateList { ArrayList _candidates = new ArrayList (); int _cursor_pos; public override int cursor_pos { get { return _cursor_pos; } } public override Candidate @get (int index = -1) { if (index < 0) index = _cursor_pos; assert (0 <= index && index < size); return _candidates.get (index); } public override int size { get { return _candidates.size; } } Set seen = new HashSet (); internal override void clear () { bool is_populated = false; bool is_cursor_changed = false; seen.clear (); if (_candidates.size > 0) { _candidates.clear (); is_populated = true; } if (_cursor_pos >= 0) { _cursor_pos = -1; is_cursor_changed = true; } // to avoid race condition, emit signals after modifying // _candidates and _cursor_pos if (is_populated) { populated (); } if (is_cursor_changed) { notify_property ("cursor-pos"); } } internal override void add_candidates (Candidate[] array) { foreach (var c in array) { if (!(c.output in seen)) { _candidates.add (c); seen.add (c.output); } } } internal override void add_candidates_end () { if (_candidates.size > 0) { _cursor_pos = 0; } notify_property ("cursor-pos"); populated (); } public override bool select_at (uint index_in_page) { assert (index_in_page < page_size); var page_offset = get_page_start_cursor_pos (); if (page_offset + index_in_page < size) { _cursor_pos = (int) (page_offset + index_in_page); notify_property ("cursor-pos"); select (); return true; } return false; } public override void select () { Candidate candidate = this.get (); selected (candidate); } public SimpleCandidateList (uint page_start = 4, uint page_size = 7) { _page_start = (int) page_start; _page_size = (int) page_size; } public override bool cursor_up () { assert (_cursor_pos >= 0); if (_cursor_pos > 0) { _cursor_pos--; notify_property ("cursor-pos"); return true; } return false; } public override bool cursor_down () { assert (_cursor_pos >= 0); if (_cursor_pos < _candidates.size - 1) { _cursor_pos++; notify_property ("cursor-pos"); return true; } return false; } public override bool page_up () { assert (_cursor_pos >= 0); if (_cursor_pos >= _page_start + _page_size) { _cursor_pos -= _page_size; _cursor_pos = (int) get_page_start_cursor_pos (); notify_property ("cursor-pos"); return true; } return false; } public override bool page_down () { assert (_cursor_pos >= 0); if (_cursor_pos >= _page_start && _cursor_pos < _candidates.size - _page_size) { _cursor_pos += _page_size; _cursor_pos = (int) get_page_start_cursor_pos (); notify_property ("cursor-pos"); return true; } return false; } int _page_start; public override uint page_start { get { return (uint) _page_start; } set { _page_start = (int) value; } } int _page_size; public override uint page_size { get { return (uint) _page_size; } set { _page_size = (int) value; } } public override bool page_visible { get { return _cursor_pos >= _page_start; } } } class ProxyCandidateList : CandidateList { CandidateList _candidates; void notify_cursor_pos_cb (Object s, ParamSpec? p) { notify_property ("cursor-pos"); } void populated_cb () { populated (); } void selected_cb (Candidate c) { selected (c); } public CandidateList candidates { get { return _candidates; } set { if (_candidates != value) { // _candidates is initially null if (_candidates != null) { _candidates.notify["cursor-pos"].disconnect ( notify_cursor_pos_cb); _candidates.populated.disconnect (populated_cb); _candidates.selected.disconnect (selected_cb); } _candidates = value; _candidates.notify["cursor-pos"].connect ( notify_cursor_pos_cb); _candidates.populated.connect (populated_cb); _candidates.selected.connect (selected_cb); populated (); } } } public override int cursor_pos { get { return candidates.cursor_pos; } } public override Candidate @get (int index = -1) { return candidates.get (index); } public override int size { get { return candidates.size; } } internal override void clear () { candidates.clear (); } internal override void add_candidates (Candidate[] array) { candidates.add_candidates (array); } internal override void add_candidates_end () { candidates.add_candidates_end (); } public override bool select_at (uint index_in_page) { return candidates.select_at (index_in_page); } public override void select () { candidates.select (); } public ProxyCandidateList (CandidateList candidates) { this.candidates = candidates; } public override bool cursor_up () { return candidates.cursor_up (); } public override bool cursor_down () { return candidates.cursor_down (); } public override bool page_up () { return candidates.page_up (); } public override bool page_down () { return candidates.page_down (); } public override uint page_start { get { return candidates.page_start; } set { candidates.page_start = value; } } public override uint page_size { get { return candidates.page_size; } set { candidates.page_size = value; } } public override bool page_visible { get { return candidates.page_visible; } } } } libskk-1.0.0/libskk/keysyms.vala0000664000076400007640000027156611712171034013570 00000000000000/* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ namespace Skk.Keysyms { // converted from /usr/include/X11/keysymdef.h with: public const uint VoidSymbol = 0xffffff; public const uint BackSpace = 0xff08; public const uint Tab = 0xff09; public const uint Linefeed = 0xff0a; public const uint Clear = 0xff0b; public const uint Return = 0xff0d; public const uint Pause = 0xff13; public const uint Scroll_Lock = 0xff14; public const uint Sys_Req = 0xff15; public const uint Escape = 0xff1b; public const uint Delete = 0xffff; public const uint Multi_key = 0xff20; public const uint Codeinput = 0xff37; public const uint SingleCandidate = 0xff3c; public const uint MultipleCandidate = 0xff3d; public const uint PreviousCandidate = 0xff3e; public const uint Kanji = 0xff21; public const uint Muhenkan = 0xff22; public const uint Henkan_Mode = 0xff23; public const uint Henkan = 0xff23; public const uint Romaji = 0xff24; public const uint Hiragana = 0xff25; public const uint Katakana = 0xff26; public const uint Hiragana_Katakana = 0xff27; public const uint Zenkaku = 0xff28; public const uint Hankaku = 0xff29; public const uint Zenkaku_Hankaku = 0xff2a; public const uint Touroku = 0xff2b; public const uint Massyo = 0xff2c; public const uint Kana_Lock = 0xff2d; public const uint Kana_Shift = 0xff2e; public const uint Eisu_Shift = 0xff2f; public const uint Eisu_toggle = 0xff30; public const uint Kanji_Bangou = 0xff37; public const uint Zen_Koho = 0xff3d; public const uint Mae_Koho = 0xff3e; public const uint Home = 0xff50; public const uint Left = 0xff51; public const uint Up = 0xff52; public const uint Right = 0xff53; public const uint Down = 0xff54; public const uint Prior = 0xff55; public const uint Page_Up = 0xff55; public const uint Next = 0xff56; public const uint Page_Down = 0xff56; public const uint End = 0xff57; public const uint Begin = 0xff58; public const uint Select = 0xff60; public const uint Print = 0xff61; public const uint Execute = 0xff62; public const uint Insert = 0xff63; public const uint Undo = 0xff65; public const uint Redo = 0xff66; public const uint Menu = 0xff67; public const uint Find = 0xff68; public const uint Cancel = 0xff69; public const uint Help = 0xff6a; public const uint Break = 0xff6b; public const uint Mode_switch = 0xff7e; public const uint script_switch = 0xff7e; public const uint Num_Lock = 0xff7f; public const uint KP_Space = 0xff80; public const uint KP_Tab = 0xff89; public const uint KP_Enter = 0xff8d; public const uint KP_F1 = 0xff91; public const uint KP_F2 = 0xff92; public const uint KP_F3 = 0xff93; public const uint KP_F4 = 0xff94; public const uint KP_Home = 0xff95; public const uint KP_Left = 0xff96; public const uint KP_Up = 0xff97; public const uint KP_Right = 0xff98; public const uint KP_Down = 0xff99; public const uint KP_Prior = 0xff9a; public const uint KP_Page_Up = 0xff9a; public const uint KP_Next = 0xff9b; public const uint KP_Page_Down = 0xff9b; public const uint KP_End = 0xff9c; public const uint KP_Begin = 0xff9d; public const uint KP_Insert = 0xff9e; public const uint KP_Delete = 0xff9f; public const uint KP_Equal = 0xffbd; public const uint KP_Multiply = 0xffaa; public const uint KP_Add = 0xffab; public const uint KP_Separator = 0xffac; public const uint KP_Subtract = 0xffad; public const uint KP_Decimal = 0xffae; public const uint KP_Divide = 0xffaf; public const uint KP_0 = 0xffb0; public const uint KP_1 = 0xffb1; public const uint KP_2 = 0xffb2; public const uint KP_3 = 0xffb3; public const uint KP_4 = 0xffb4; public const uint KP_5 = 0xffb5; public const uint KP_6 = 0xffb6; public const uint KP_7 = 0xffb7; public const uint KP_8 = 0xffb8; public const uint KP_9 = 0xffb9; public const uint F1 = 0xffbe; public const uint F2 = 0xffbf; public const uint F3 = 0xffc0; public const uint F4 = 0xffc1; public const uint F5 = 0xffc2; public const uint F6 = 0xffc3; public const uint F7 = 0xffc4; public const uint F8 = 0xffc5; public const uint F9 = 0xffc6; public const uint F10 = 0xffc7; public const uint F11 = 0xffc8; public const uint L1 = 0xffc8; public const uint F12 = 0xffc9; public const uint L2 = 0xffc9; public const uint F13 = 0xffca; public const uint L3 = 0xffca; public const uint F14 = 0xffcb; public const uint L4 = 0xffcb; public const uint F15 = 0xffcc; public const uint L5 = 0xffcc; public const uint F16 = 0xffcd; public const uint L6 = 0xffcd; public const uint F17 = 0xffce; public const uint L7 = 0xffce; public const uint F18 = 0xffcf; public const uint L8 = 0xffcf; public const uint F19 = 0xffd0; public const uint L9 = 0xffd0; public const uint F20 = 0xffd1; public const uint L10 = 0xffd1; public const uint F21 = 0xffd2; public const uint R1 = 0xffd2; public const uint F22 = 0xffd3; public const uint R2 = 0xffd3; public const uint F23 = 0xffd4; public const uint R3 = 0xffd4; public const uint F24 = 0xffd5; public const uint R4 = 0xffd5; public const uint F25 = 0xffd6; public const uint R5 = 0xffd6; public const uint F26 = 0xffd7; public const uint R6 = 0xffd7; public const uint F27 = 0xffd8; public const uint R7 = 0xffd8; public const uint F28 = 0xffd9; public const uint R8 = 0xffd9; public const uint F29 = 0xffda; public const uint R9 = 0xffda; public const uint F30 = 0xffdb; public const uint R10 = 0xffdb; public const uint F31 = 0xffdc; public const uint R11 = 0xffdc; public const uint F32 = 0xffdd; public const uint R12 = 0xffdd; public const uint F33 = 0xffde; public const uint R13 = 0xffde; public const uint F34 = 0xffdf; public const uint R14 = 0xffdf; public const uint F35 = 0xffe0; public const uint R15 = 0xffe0; public const uint Shift_L = 0xffe1; public const uint Shift_R = 0xffe2; public const uint Control_L = 0xffe3; public const uint Control_R = 0xffe4; public const uint Caps_Lock = 0xffe5; public const uint Shift_Lock = 0xffe6; public const uint Meta_L = 0xffe7; public const uint Meta_R = 0xffe8; public const uint Alt_L = 0xffe9; public const uint Alt_R = 0xffea; public const uint Super_L = 0xffeb; public const uint Super_R = 0xffec; public const uint Hyper_L = 0xffed; public const uint Hyper_R = 0xffee; public const uint ISO_Lock = 0xfe01; public const uint ISO_Level2_Latch = 0xfe02; public const uint ISO_Level3_Shift = 0xfe03; public const uint ISO_Level3_Latch = 0xfe04; public const uint ISO_Level3_Lock = 0xfe05; public const uint ISO_Level5_Shift = 0xfe11; public const uint ISO_Level5_Latch = 0xfe12; public const uint ISO_Level5_Lock = 0xfe13; public const uint ISO_Group_Shift = 0xff7e; public const uint ISO_Group_Latch = 0xfe06; public const uint ISO_Group_Lock = 0xfe07; public const uint ISO_Next_Group = 0xfe08; public const uint ISO_Next_Group_Lock = 0xfe09; public const uint ISO_Prev_Group = 0xfe0a; public const uint ISO_Prev_Group_Lock = 0xfe0b; public const uint ISO_First_Group = 0xfe0c; public const uint ISO_First_Group_Lock = 0xfe0d; public const uint ISO_Last_Group = 0xfe0e; public const uint ISO_Last_Group_Lock = 0xfe0f; public const uint ISO_Left_Tab = 0xfe20; public const uint ISO_Move_Line_Up = 0xfe21; public const uint ISO_Move_Line_Down = 0xfe22; public const uint ISO_Partial_Line_Up = 0xfe23; public const uint ISO_Partial_Line_Down = 0xfe24; public const uint ISO_Partial_Space_Left = 0xfe25; public const uint ISO_Partial_Space_Right = 0xfe26; public const uint ISO_Set_Margin_Left = 0xfe27; public const uint ISO_Set_Margin_Right = 0xfe28; public const uint ISO_Release_Margin_Left = 0xfe29; public const uint ISO_Release_Margin_Right = 0xfe2a; public const uint ISO_Release_Both_Margins = 0xfe2b; public const uint ISO_Fast_Cursor_Left = 0xfe2c; public const uint ISO_Fast_Cursor_Right = 0xfe2d; public const uint ISO_Fast_Cursor_Up = 0xfe2e; public const uint ISO_Fast_Cursor_Down = 0xfe2f; public const uint ISO_Continuous_Underline = 0xfe30; public const uint ISO_Discontinuous_Underline = 0xfe31; public const uint ISO_Emphasize = 0xfe32; public const uint ISO_Center_Object = 0xfe33; public const uint ISO_Enter = 0xfe34; public const uint dead_grave = 0xfe50; public const uint dead_acute = 0xfe51; public const uint dead_circumflex = 0xfe52; public const uint dead_tilde = 0xfe53; public const uint dead_perispomeni = 0xfe53; public const uint dead_macron = 0xfe54; public const uint dead_breve = 0xfe55; public const uint dead_abovedot = 0xfe56; public const uint dead_diaeresis = 0xfe57; public const uint dead_abovering = 0xfe58; public const uint dead_doubleacute = 0xfe59; public const uint dead_caron = 0xfe5a; public const uint dead_cedilla = 0xfe5b; public const uint dead_ogonek = 0xfe5c; public const uint dead_iota = 0xfe5d; public const uint dead_voiced_sound = 0xfe5e; public const uint dead_semivoiced_sound = 0xfe5f; public const uint dead_belowdot = 0xfe60; public const uint dead_hook = 0xfe61; public const uint dead_horn = 0xfe62; public const uint dead_stroke = 0xfe63; public const uint dead_abovecomma = 0xfe64; public const uint dead_psili = 0xfe64; public const uint dead_abovereversedcomma = 0xfe65; public const uint dead_dasia = 0xfe65; public const uint dead_doublegrave = 0xfe66; public const uint dead_belowring = 0xfe67; public const uint dead_belowmacron = 0xfe68; public const uint dead_belowcircumflex = 0xfe69; public const uint dead_belowtilde = 0xfe6a; public const uint dead_belowbreve = 0xfe6b; public const uint dead_belowdiaeresis = 0xfe6c; public const uint dead_invertedbreve = 0xfe6d; public const uint dead_belowcomma = 0xfe6e; public const uint dead_currency = 0xfe6f; public const uint dead_a = 0xfe80; public const uint dead_A = 0xfe81; public const uint dead_e = 0xfe82; public const uint dead_E = 0xfe83; public const uint dead_i = 0xfe84; public const uint dead_I = 0xfe85; public const uint dead_o = 0xfe86; public const uint dead_O = 0xfe87; public const uint dead_u = 0xfe88; public const uint dead_U = 0xfe89; public const uint dead_small_schwa = 0xfe8a; public const uint dead_capital_schwa = 0xfe8b; public const uint First_Virtual_Screen = 0xfed0; public const uint Prev_Virtual_Screen = 0xfed1; public const uint Next_Virtual_Screen = 0xfed2; public const uint Last_Virtual_Screen = 0xfed4; public const uint Terminate_Server = 0xfed5; public const uint AccessX_Enable = 0xfe70; public const uint AccessX_Feedback_Enable = 0xfe71; public const uint RepeatKeys_Enable = 0xfe72; public const uint SlowKeys_Enable = 0xfe73; public const uint BounceKeys_Enable = 0xfe74; public const uint StickyKeys_Enable = 0xfe75; public const uint MouseKeys_Enable = 0xfe76; public const uint MouseKeys_Accel_Enable = 0xfe77; public const uint Overlay1_Enable = 0xfe78; public const uint Overlay2_Enable = 0xfe79; public const uint AudibleBell_Enable = 0xfe7a; public const uint Pointer_Left = 0xfee0; public const uint Pointer_Right = 0xfee1; public const uint Pointer_Up = 0xfee2; public const uint Pointer_Down = 0xfee3; public const uint Pointer_UpLeft = 0xfee4; public const uint Pointer_UpRight = 0xfee5; public const uint Pointer_DownLeft = 0xfee6; public const uint Pointer_DownRight = 0xfee7; public const uint Pointer_Button_Dflt = 0xfee8; public const uint Pointer_Button1 = 0xfee9; public const uint Pointer_Button2 = 0xfeea; public const uint Pointer_Button3 = 0xfeeb; public const uint Pointer_Button4 = 0xfeec; public const uint Pointer_Button5 = 0xfeed; public const uint Pointer_DblClick_Dflt = 0xfeee; public const uint Pointer_DblClick1 = 0xfeef; public const uint Pointer_DblClick2 = 0xfef0; public const uint Pointer_DblClick3 = 0xfef1; public const uint Pointer_DblClick4 = 0xfef2; public const uint Pointer_DblClick5 = 0xfef3; public const uint Pointer_Drag_Dflt = 0xfef4; public const uint Pointer_Drag1 = 0xfef5; public const uint Pointer_Drag2 = 0xfef6; public const uint Pointer_Drag3 = 0xfef7; public const uint Pointer_Drag4 = 0xfef8; public const uint Pointer_Drag5 = 0xfefd; public const uint Pointer_EnableKeys = 0xfef9; public const uint Pointer_Accelerate = 0xfefa; public const uint Pointer_DfltBtnNext = 0xfefb; public const uint Pointer_DfltBtnPrev = 0xfefc; public const uint @3270_Duplicate = 0xfd01; public const uint @3270_FieldMark = 0xfd02; public const uint @3270_Right2 = 0xfd03; public const uint @3270_Left2 = 0xfd04; public const uint @3270_BackTab = 0xfd05; public const uint @3270_EraseEOF = 0xfd06; public const uint @3270_EraseInput = 0xfd07; public const uint @3270_Reset = 0xfd08; public const uint @3270_Quit = 0xfd09; public const uint @3270_PA1 = 0xfd0a; public const uint @3270_PA2 = 0xfd0b; public const uint @3270_PA3 = 0xfd0c; public const uint @3270_Test = 0xfd0d; public const uint @3270_Attn = 0xfd0e; public const uint @3270_CursorBlink = 0xfd0f; public const uint @3270_AltCursor = 0xfd10; public const uint @3270_KeyClick = 0xfd11; public const uint @3270_Jump = 0xfd12; public const uint @3270_Ident = 0xfd13; public const uint @3270_Rule = 0xfd14; public const uint @3270_Copy = 0xfd15; public const uint @3270_Play = 0xfd16; public const uint @3270_Setup = 0xfd17; public const uint @3270_Record = 0xfd18; public const uint @3270_ChangeScreen = 0xfd19; public const uint @3270_DeleteWord = 0xfd1a; public const uint @3270_ExSelect = 0xfd1b; public const uint @3270_CursorSelect = 0xfd1c; public const uint @3270_PrintScreen = 0xfd1d; public const uint @3270_Enter = 0xfd1e; public const uint space = 0x0020; public const uint exclam = 0x0021; public const uint quotedbl = 0x0022; public const uint numbersign = 0x0023; public const uint dollar = 0x0024; public const uint percent = 0x0025; public const uint ampersand = 0x0026; public const uint apostrophe = 0x0027; public const uint quoteright = 0x0027; public const uint parenleft = 0x0028; public const uint parenright = 0x0029; public const uint asterisk = 0x002a; public const uint plus = 0x002b; public const uint comma = 0x002c; public const uint minus = 0x002d; public const uint period = 0x002e; public const uint slash = 0x002f; public const uint @0 = 0x0030; public const uint @1 = 0x0031; public const uint @2 = 0x0032; public const uint @3 = 0x0033; public const uint @4 = 0x0034; public const uint @5 = 0x0035; public const uint @6 = 0x0036; public const uint @7 = 0x0037; public const uint @8 = 0x0038; public const uint @9 = 0x0039; public const uint colon = 0x003a; public const uint semicolon = 0x003b; public const uint less = 0x003c; public const uint equal = 0x003d; public const uint greater = 0x003e; public const uint question = 0x003f; public const uint at = 0x0040; public const uint A = 0x0041; public const uint B = 0x0042; public const uint C = 0x0043; public const uint D = 0x0044; public const uint E = 0x0045; public const uint F = 0x0046; public const uint G = 0x0047; public const uint H = 0x0048; public const uint I = 0x0049; public const uint J = 0x004a; public const uint K = 0x004b; public const uint L = 0x004c; public const uint M = 0x004d; public const uint N = 0x004e; public const uint O = 0x004f; public const uint P = 0x0050; public const uint Q = 0x0051; public const uint R = 0x0052; public const uint S = 0x0053; public const uint T = 0x0054; public const uint U = 0x0055; public const uint V = 0x0056; public const uint W = 0x0057; public const uint X = 0x0058; public const uint Y = 0x0059; public const uint Z = 0x005a; public const uint bracketleft = 0x005b; public const uint backslash = 0x005c; public const uint bracketright = 0x005d; public const uint asciicircum = 0x005e; public const uint underscore = 0x005f; public const uint grave = 0x0060; public const uint quoteleft = 0x0060; public const uint a = 0x0061; public const uint b = 0x0062; public const uint c = 0x0063; public const uint d = 0x0064; public const uint e = 0x0065; public const uint f = 0x0066; public const uint g = 0x0067; public const uint h = 0x0068; public const uint i = 0x0069; public const uint j = 0x006a; public const uint k = 0x006b; public const uint l = 0x006c; public const uint m = 0x006d; public const uint n = 0x006e; public const uint o = 0x006f; public const uint p = 0x0070; public const uint q = 0x0071; public const uint r = 0x0072; public const uint s = 0x0073; public const uint t = 0x0074; public const uint u = 0x0075; public const uint v = 0x0076; public const uint w = 0x0077; public const uint x = 0x0078; public const uint y = 0x0079; public const uint z = 0x007a; public const uint braceleft = 0x007b; public const uint bar = 0x007c; public const uint braceright = 0x007d; public const uint asciitilde = 0x007e; public const uint nobreakspace = 0x00a0; public const uint exclamdown = 0x00a1; public const uint cent = 0x00a2; public const uint sterling = 0x00a3; public const uint currency = 0x00a4; public const uint yen = 0x00a5; public const uint brokenbar = 0x00a6; public const uint section = 0x00a7; public const uint diaeresis = 0x00a8; public const uint copyright = 0x00a9; public const uint ordfeminine = 0x00aa; public const uint guillemotleft = 0x00ab; public const uint notsign = 0x00ac; public const uint hyphen = 0x00ad; public const uint registered = 0x00ae; public const uint macron = 0x00af; public const uint degree = 0x00b0; public const uint plusminus = 0x00b1; public const uint twosuperior = 0x00b2; public const uint threesuperior = 0x00b3; public const uint acute = 0x00b4; public const uint mu = 0x00b5; public const uint paragraph = 0x00b6; public const uint periodcentered = 0x00b7; public const uint cedilla = 0x00b8; public const uint onesuperior = 0x00b9; public const uint masculine = 0x00ba; public const uint guillemotright = 0x00bb; public const uint onequarter = 0x00bc; public const uint onehalf = 0x00bd; public const uint threequarters = 0x00be; public const uint questiondown = 0x00bf; public const uint Agrave = 0x00c0; public const uint Aacute = 0x00c1; public const uint Acircumflex = 0x00c2; public const uint Atilde = 0x00c3; public const uint Adiaeresis = 0x00c4; public const uint Aring = 0x00c5; public const uint AE = 0x00c6; public const uint Ccedilla = 0x00c7; public const uint Egrave = 0x00c8; public const uint Eacute = 0x00c9; public const uint Ecircumflex = 0x00ca; public const uint Ediaeresis = 0x00cb; public const uint Igrave = 0x00cc; public const uint Iacute = 0x00cd; public const uint Icircumflex = 0x00ce; public const uint Idiaeresis = 0x00cf; public const uint ETH = 0x00d0; public const uint Eth = 0x00d0; public const uint Ntilde = 0x00d1; public const uint Ograve = 0x00d2; public const uint Oacute = 0x00d3; public const uint Ocircumflex = 0x00d4; public const uint Otilde = 0x00d5; public const uint Odiaeresis = 0x00d6; public const uint multiply = 0x00d7; public const uint Oslash = 0x00d8; public const uint Ooblique = 0x00d8; public const uint Ugrave = 0x00d9; public const uint Uacute = 0x00da; public const uint Ucircumflex = 0x00db; public const uint Udiaeresis = 0x00dc; public const uint Yacute = 0x00dd; public const uint THORN = 0x00de; public const uint Thorn = 0x00de; public const uint ssharp = 0x00df; public const uint agrave = 0x00e0; public const uint aacute = 0x00e1; public const uint acircumflex = 0x00e2; public const uint atilde = 0x00e3; public const uint adiaeresis = 0x00e4; public const uint aring = 0x00e5; public const uint ae = 0x00e6; public const uint ccedilla = 0x00e7; public const uint egrave = 0x00e8; public const uint eacute = 0x00e9; public const uint ecircumflex = 0x00ea; public const uint ediaeresis = 0x00eb; public const uint igrave = 0x00ec; public const uint iacute = 0x00ed; public const uint icircumflex = 0x00ee; public const uint idiaeresis = 0x00ef; public const uint eth = 0x00f0; public const uint ntilde = 0x00f1; public const uint ograve = 0x00f2; public const uint oacute = 0x00f3; public const uint ocircumflex = 0x00f4; public const uint otilde = 0x00f5; public const uint odiaeresis = 0x00f6; public const uint division = 0x00f7; public const uint oslash = 0x00f8; public const uint ooblique = 0x00f8; public const uint ugrave = 0x00f9; public const uint uacute = 0x00fa; public const uint ucircumflex = 0x00fb; public const uint udiaeresis = 0x00fc; public const uint yacute = 0x00fd; public const uint thorn = 0x00fe; public const uint ydiaeresis = 0x00ff; public const uint Aogonek = 0x01a1; public const uint breve = 0x01a2; public const uint Lstroke = 0x01a3; public const uint Lcaron = 0x01a5; public const uint Sacute = 0x01a6; public const uint Scaron = 0x01a9; public const uint Scedilla = 0x01aa; public const uint Tcaron = 0x01ab; public const uint Zacute = 0x01ac; public const uint Zcaron = 0x01ae; public const uint Zabovedot = 0x01af; public const uint aogonek = 0x01b1; public const uint ogonek = 0x01b2; public const uint lstroke = 0x01b3; public const uint lcaron = 0x01b5; public const uint sacute = 0x01b6; public const uint caron = 0x01b7; public const uint scaron = 0x01b9; public const uint scedilla = 0x01ba; public const uint tcaron = 0x01bb; public const uint zacute = 0x01bc; public const uint doubleacute = 0x01bd; public const uint zcaron = 0x01be; public const uint zabovedot = 0x01bf; public const uint Racute = 0x01c0; public const uint Abreve = 0x01c3; public const uint Lacute = 0x01c5; public const uint Cacute = 0x01c6; public const uint Ccaron = 0x01c8; public const uint Eogonek = 0x01ca; public const uint Ecaron = 0x01cc; public const uint Dcaron = 0x01cf; public const uint Dstroke = 0x01d0; public const uint Nacute = 0x01d1; public const uint Ncaron = 0x01d2; public const uint Odoubleacute = 0x01d5; public const uint Rcaron = 0x01d8; public const uint Uring = 0x01d9; public const uint Udoubleacute = 0x01db; public const uint Tcedilla = 0x01de; public const uint racute = 0x01e0; public const uint abreve = 0x01e3; public const uint lacute = 0x01e5; public const uint cacute = 0x01e6; public const uint ccaron = 0x01e8; public const uint eogonek = 0x01ea; public const uint ecaron = 0x01ec; public const uint dcaron = 0x01ef; public const uint dstroke = 0x01f0; public const uint nacute = 0x01f1; public const uint ncaron = 0x01f2; public const uint odoubleacute = 0x01f5; public const uint rcaron = 0x01f8; public const uint uring = 0x01f9; public const uint udoubleacute = 0x01fb; public const uint tcedilla = 0x01fe; public const uint abovedot = 0x01ff; public const uint Hstroke = 0x02a1; public const uint Hcircumflex = 0x02a6; public const uint Iabovedot = 0x02a9; public const uint Gbreve = 0x02ab; public const uint Jcircumflex = 0x02ac; public const uint hstroke = 0x02b1; public const uint hcircumflex = 0x02b6; public const uint idotless = 0x02b9; public const uint gbreve = 0x02bb; public const uint jcircumflex = 0x02bc; public const uint Cabovedot = 0x02c5; public const uint Ccircumflex = 0x02c6; public const uint Gabovedot = 0x02d5; public const uint Gcircumflex = 0x02d8; public const uint Ubreve = 0x02dd; public const uint Scircumflex = 0x02de; public const uint cabovedot = 0x02e5; public const uint ccircumflex = 0x02e6; public const uint gabovedot = 0x02f5; public const uint gcircumflex = 0x02f8; public const uint ubreve = 0x02fd; public const uint scircumflex = 0x02fe; public const uint kra = 0x03a2; public const uint kappa = 0x03a2; public const uint Rcedilla = 0x03a3; public const uint Itilde = 0x03a5; public const uint Lcedilla = 0x03a6; public const uint Emacron = 0x03aa; public const uint Gcedilla = 0x03ab; public const uint Tslash = 0x03ac; public const uint rcedilla = 0x03b3; public const uint itilde = 0x03b5; public const uint lcedilla = 0x03b6; public const uint emacron = 0x03ba; public const uint gcedilla = 0x03bb; public const uint tslash = 0x03bc; public const uint ENG = 0x03bd; public const uint eng = 0x03bf; public const uint Amacron = 0x03c0; public const uint Iogonek = 0x03c7; public const uint Eabovedot = 0x03cc; public const uint Imacron = 0x03cf; public const uint Ncedilla = 0x03d1; public const uint Omacron = 0x03d2; public const uint Kcedilla = 0x03d3; public const uint Uogonek = 0x03d9; public const uint Utilde = 0x03dd; public const uint Umacron = 0x03de; public const uint amacron = 0x03e0; public const uint iogonek = 0x03e7; public const uint eabovedot = 0x03ec; public const uint imacron = 0x03ef; public const uint ncedilla = 0x03f1; public const uint omacron = 0x03f2; public const uint kcedilla = 0x03f3; public const uint uogonek = 0x03f9; public const uint utilde = 0x03fd; public const uint umacron = 0x03fe; public const uint Wcircumflex = 0x1000174; public const uint wcircumflex = 0x1000175; public const uint Ycircumflex = 0x1000176; public const uint ycircumflex = 0x1000177; public const uint Babovedot = 0x1001e02; public const uint babovedot = 0x1001e03; public const uint Dabovedot = 0x1001e0a; public const uint dabovedot = 0x1001e0b; public const uint Fabovedot = 0x1001e1e; public const uint fabovedot = 0x1001e1f; public const uint Mabovedot = 0x1001e40; public const uint mabovedot = 0x1001e41; public const uint Pabovedot = 0x1001e56; public const uint pabovedot = 0x1001e57; public const uint Sabovedot = 0x1001e60; public const uint sabovedot = 0x1001e61; public const uint Tabovedot = 0x1001e6a; public const uint tabovedot = 0x1001e6b; public const uint Wgrave = 0x1001e80; public const uint wgrave = 0x1001e81; public const uint Wacute = 0x1001e82; public const uint wacute = 0x1001e83; public const uint Wdiaeresis = 0x1001e84; public const uint wdiaeresis = 0x1001e85; public const uint Ygrave = 0x1001ef2; public const uint ygrave = 0x1001ef3; public const uint OE = 0x13bc; public const uint oe = 0x13bd; public const uint Ydiaeresis = 0x13be; public const uint overline = 0x047e; public const uint kana_fullstop = 0x04a1; public const uint kana_openingbracket = 0x04a2; public const uint kana_closingbracket = 0x04a3; public const uint kana_comma = 0x04a4; public const uint kana_conjunctive = 0x04a5; public const uint kana_middledot = 0x04a5; public const uint kana_WO = 0x04a6; public const uint kana_a = 0x04a7; public const uint kana_i = 0x04a8; public const uint kana_u = 0x04a9; public const uint kana_e = 0x04aa; public const uint kana_o = 0x04ab; public const uint kana_ya = 0x04ac; public const uint kana_yu = 0x04ad; public const uint kana_yo = 0x04ae; public const uint kana_tsu = 0x04af; public const uint kana_tu = 0x04af; public const uint prolongedsound = 0x04b0; public const uint kana_A = 0x04b1; public const uint kana_I = 0x04b2; public const uint kana_U = 0x04b3; public const uint kana_E = 0x04b4; public const uint kana_O = 0x04b5; public const uint kana_KA = 0x04b6; public const uint kana_KI = 0x04b7; public const uint kana_KU = 0x04b8; public const uint kana_KE = 0x04b9; public const uint kana_KO = 0x04ba; public const uint kana_SA = 0x04bb; public const uint kana_SHI = 0x04bc; public const uint kana_SU = 0x04bd; public const uint kana_SE = 0x04be; public const uint kana_SO = 0x04bf; public const uint kana_TA = 0x04c0; public const uint kana_CHI = 0x04c1; public const uint kana_TI = 0x04c1; public const uint kana_TSU = 0x04c2; public const uint kana_TU = 0x04c2; public const uint kana_TE = 0x04c3; public const uint kana_TO = 0x04c4; public const uint kana_NA = 0x04c5; public const uint kana_NI = 0x04c6; public const uint kana_NU = 0x04c7; public const uint kana_NE = 0x04c8; public const uint kana_NO = 0x04c9; public const uint kana_HA = 0x04ca; public const uint kana_HI = 0x04cb; public const uint kana_FU = 0x04cc; public const uint kana_HU = 0x04cc; public const uint kana_HE = 0x04cd; public const uint kana_HO = 0x04ce; public const uint kana_MA = 0x04cf; public const uint kana_MI = 0x04d0; public const uint kana_MU = 0x04d1; public const uint kana_ME = 0x04d2; public const uint kana_MO = 0x04d3; public const uint kana_YA = 0x04d4; public const uint kana_YU = 0x04d5; public const uint kana_YO = 0x04d6; public const uint kana_RA = 0x04d7; public const uint kana_RI = 0x04d8; public const uint kana_RU = 0x04d9; public const uint kana_RE = 0x04da; public const uint kana_RO = 0x04db; public const uint kana_WA = 0x04dc; public const uint kana_N = 0x04dd; public const uint voicedsound = 0x04de; public const uint semivoicedsound = 0x04df; public const uint kana_switch = 0xff7e; public const uint Farsi_0 = 0x10006f0; public const uint Farsi_1 = 0x10006f1; public const uint Farsi_2 = 0x10006f2; public const uint Farsi_3 = 0x10006f3; public const uint Farsi_4 = 0x10006f4; public const uint Farsi_5 = 0x10006f5; public const uint Farsi_6 = 0x10006f6; public const uint Farsi_7 = 0x10006f7; public const uint Farsi_8 = 0x10006f8; public const uint Farsi_9 = 0x10006f9; public const uint Arabic_percent = 0x100066a; public const uint Arabic_superscript_alef = 0x1000670; public const uint Arabic_tteh = 0x1000679; public const uint Arabic_peh = 0x100067e; public const uint Arabic_tcheh = 0x1000686; public const uint Arabic_ddal = 0x1000688; public const uint Arabic_rreh = 0x1000691; public const uint Arabic_comma = 0x05ac; public const uint Arabic_fullstop = 0x10006d4; public const uint Arabic_0 = 0x1000660; public const uint Arabic_1 = 0x1000661; public const uint Arabic_2 = 0x1000662; public const uint Arabic_3 = 0x1000663; public const uint Arabic_4 = 0x1000664; public const uint Arabic_5 = 0x1000665; public const uint Arabic_6 = 0x1000666; public const uint Arabic_7 = 0x1000667; public const uint Arabic_8 = 0x1000668; public const uint Arabic_9 = 0x1000669; public const uint Arabic_semicolon = 0x05bb; public const uint Arabic_question_mark = 0x05bf; public const uint Arabic_hamza = 0x05c1; public const uint Arabic_maddaonalef = 0x05c2; public const uint Arabic_hamzaonalef = 0x05c3; public const uint Arabic_hamzaonwaw = 0x05c4; public const uint Arabic_hamzaunderalef = 0x05c5; public const uint Arabic_hamzaonyeh = 0x05c6; public const uint Arabic_alef = 0x05c7; public const uint Arabic_beh = 0x05c8; public const uint Arabic_tehmarbuta = 0x05c9; public const uint Arabic_teh = 0x05ca; public const uint Arabic_theh = 0x05cb; public const uint Arabic_jeem = 0x05cc; public const uint Arabic_hah = 0x05cd; public const uint Arabic_khah = 0x05ce; public const uint Arabic_dal = 0x05cf; public const uint Arabic_thal = 0x05d0; public const uint Arabic_ra = 0x05d1; public const uint Arabic_zain = 0x05d2; public const uint Arabic_seen = 0x05d3; public const uint Arabic_sheen = 0x05d4; public const uint Arabic_sad = 0x05d5; public const uint Arabic_dad = 0x05d6; public const uint Arabic_tah = 0x05d7; public const uint Arabic_zah = 0x05d8; public const uint Arabic_ain = 0x05d9; public const uint Arabic_ghain = 0x05da; public const uint Arabic_tatweel = 0x05e0; public const uint Arabic_feh = 0x05e1; public const uint Arabic_qaf = 0x05e2; public const uint Arabic_kaf = 0x05e3; public const uint Arabic_lam = 0x05e4; public const uint Arabic_meem = 0x05e5; public const uint Arabic_noon = 0x05e6; public const uint Arabic_ha = 0x05e7; public const uint Arabic_heh = 0x05e7; public const uint Arabic_waw = 0x05e8; public const uint Arabic_alefmaksura = 0x05e9; public const uint Arabic_yeh = 0x05ea; public const uint Arabic_fathatan = 0x05eb; public const uint Arabic_dammatan = 0x05ec; public const uint Arabic_kasratan = 0x05ed; public const uint Arabic_fatha = 0x05ee; public const uint Arabic_damma = 0x05ef; public const uint Arabic_kasra = 0x05f0; public const uint Arabic_shadda = 0x05f1; public const uint Arabic_sukun = 0x05f2; public const uint Arabic_madda_above = 0x1000653; public const uint Arabic_hamza_above = 0x1000654; public const uint Arabic_hamza_below = 0x1000655; public const uint Arabic_jeh = 0x1000698; public const uint Arabic_veh = 0x10006a4; public const uint Arabic_keheh = 0x10006a9; public const uint Arabic_gaf = 0x10006af; public const uint Arabic_noon_ghunna = 0x10006ba; public const uint Arabic_heh_doachashmee = 0x10006be; public const uint Farsi_yeh = 0x10006cc; public const uint Arabic_farsi_yeh = 0x10006cc; public const uint Arabic_yeh_baree = 0x10006d2; public const uint Arabic_heh_goal = 0x10006c1; public const uint Arabic_switch = 0xff7e; public const uint Cyrillic_GHE_bar = 0x1000492; public const uint Cyrillic_ghe_bar = 0x1000493; public const uint Cyrillic_ZHE_descender = 0x1000496; public const uint Cyrillic_zhe_descender = 0x1000497; public const uint Cyrillic_KA_descender = 0x100049a; public const uint Cyrillic_ka_descender = 0x100049b; public const uint Cyrillic_KA_vertstroke = 0x100049c; public const uint Cyrillic_ka_vertstroke = 0x100049d; public const uint Cyrillic_EN_descender = 0x10004a2; public const uint Cyrillic_en_descender = 0x10004a3; public const uint Cyrillic_U_straight = 0x10004ae; public const uint Cyrillic_u_straight = 0x10004af; public const uint Cyrillic_U_straight_bar = 0x10004b0; public const uint Cyrillic_u_straight_bar = 0x10004b1; public const uint Cyrillic_HA_descender = 0x10004b2; public const uint Cyrillic_ha_descender = 0x10004b3; public const uint Cyrillic_CHE_descender = 0x10004b6; public const uint Cyrillic_che_descender = 0x10004b7; public const uint Cyrillic_CHE_vertstroke = 0x10004b8; public const uint Cyrillic_che_vertstroke = 0x10004b9; public const uint Cyrillic_SHHA = 0x10004ba; public const uint Cyrillic_shha = 0x10004bb; public const uint Cyrillic_SCHWA = 0x10004d8; public const uint Cyrillic_schwa = 0x10004d9; public const uint Cyrillic_I_macron = 0x10004e2; public const uint Cyrillic_i_macron = 0x10004e3; public const uint Cyrillic_O_bar = 0x10004e8; public const uint Cyrillic_o_bar = 0x10004e9; public const uint Cyrillic_U_macron = 0x10004ee; public const uint Cyrillic_u_macron = 0x10004ef; public const uint Serbian_dje = 0x06a1; public const uint Macedonia_gje = 0x06a2; public const uint Cyrillic_io = 0x06a3; public const uint Ukrainian_ie = 0x06a4; public const uint Ukranian_je = 0x06a4; public const uint Macedonia_dse = 0x06a5; public const uint Ukrainian_i = 0x06a6; public const uint Ukranian_i = 0x06a6; public const uint Ukrainian_yi = 0x06a7; public const uint Ukranian_yi = 0x06a7; public const uint Cyrillic_je = 0x06a8; public const uint Serbian_je = 0x06a8; public const uint Cyrillic_lje = 0x06a9; public const uint Serbian_lje = 0x06a9; public const uint Cyrillic_nje = 0x06aa; public const uint Serbian_nje = 0x06aa; public const uint Serbian_tshe = 0x06ab; public const uint Macedonia_kje = 0x06ac; public const uint Ukrainian_ghe_with_upturn = 0x06ad; public const uint Byelorussian_shortu = 0x06ae; public const uint Cyrillic_dzhe = 0x06af; public const uint Serbian_dze = 0x06af; public const uint numerosign = 0x06b0; public const uint Serbian_DJE = 0x06b1; public const uint Macedonia_GJE = 0x06b2; public const uint Cyrillic_IO = 0x06b3; public const uint Ukrainian_IE = 0x06b4; public const uint Ukranian_JE = 0x06b4; public const uint Macedonia_DSE = 0x06b5; public const uint Ukrainian_I = 0x06b6; public const uint Ukranian_I = 0x06b6; public const uint Ukrainian_YI = 0x06b7; public const uint Ukranian_YI = 0x06b7; public const uint Cyrillic_JE = 0x06b8; public const uint Serbian_JE = 0x06b8; public const uint Cyrillic_LJE = 0x06b9; public const uint Serbian_LJE = 0x06b9; public const uint Cyrillic_NJE = 0x06ba; public const uint Serbian_NJE = 0x06ba; public const uint Serbian_TSHE = 0x06bb; public const uint Macedonia_KJE = 0x06bc; public const uint Ukrainian_GHE_WITH_UPTURN = 0x06bd; public const uint Byelorussian_SHORTU = 0x06be; public const uint Cyrillic_DZHE = 0x06bf; public const uint Serbian_DZE = 0x06bf; public const uint Cyrillic_yu = 0x06c0; public const uint Cyrillic_a = 0x06c1; public const uint Cyrillic_be = 0x06c2; public const uint Cyrillic_tse = 0x06c3; public const uint Cyrillic_de = 0x06c4; public const uint Cyrillic_ie = 0x06c5; public const uint Cyrillic_ef = 0x06c6; public const uint Cyrillic_ghe = 0x06c7; public const uint Cyrillic_ha = 0x06c8; public const uint Cyrillic_i = 0x06c9; public const uint Cyrillic_shorti = 0x06ca; public const uint Cyrillic_ka = 0x06cb; public const uint Cyrillic_el = 0x06cc; public const uint Cyrillic_em = 0x06cd; public const uint Cyrillic_en = 0x06ce; public const uint Cyrillic_o = 0x06cf; public const uint Cyrillic_pe = 0x06d0; public const uint Cyrillic_ya = 0x06d1; public const uint Cyrillic_er = 0x06d2; public const uint Cyrillic_es = 0x06d3; public const uint Cyrillic_te = 0x06d4; public const uint Cyrillic_u = 0x06d5; public const uint Cyrillic_zhe = 0x06d6; public const uint Cyrillic_ve = 0x06d7; public const uint Cyrillic_softsign = 0x06d8; public const uint Cyrillic_yeru = 0x06d9; public const uint Cyrillic_ze = 0x06da; public const uint Cyrillic_sha = 0x06db; public const uint Cyrillic_e = 0x06dc; public const uint Cyrillic_shcha = 0x06dd; public const uint Cyrillic_che = 0x06de; public const uint Cyrillic_hardsign = 0x06df; public const uint Cyrillic_YU = 0x06e0; public const uint Cyrillic_A = 0x06e1; public const uint Cyrillic_BE = 0x06e2; public const uint Cyrillic_TSE = 0x06e3; public const uint Cyrillic_DE = 0x06e4; public const uint Cyrillic_IE = 0x06e5; public const uint Cyrillic_EF = 0x06e6; public const uint Cyrillic_GHE = 0x06e7; public const uint Cyrillic_HA = 0x06e8; public const uint Cyrillic_I = 0x06e9; public const uint Cyrillic_SHORTI = 0x06ea; public const uint Cyrillic_KA = 0x06eb; public const uint Cyrillic_EL = 0x06ec; public const uint Cyrillic_EM = 0x06ed; public const uint Cyrillic_EN = 0x06ee; public const uint Cyrillic_O = 0x06ef; public const uint Cyrillic_PE = 0x06f0; public const uint Cyrillic_YA = 0x06f1; public const uint Cyrillic_ER = 0x06f2; public const uint Cyrillic_ES = 0x06f3; public const uint Cyrillic_TE = 0x06f4; public const uint Cyrillic_U = 0x06f5; public const uint Cyrillic_ZHE = 0x06f6; public const uint Cyrillic_VE = 0x06f7; public const uint Cyrillic_SOFTSIGN = 0x06f8; public const uint Cyrillic_YERU = 0x06f9; public const uint Cyrillic_ZE = 0x06fa; public const uint Cyrillic_SHA = 0x06fb; public const uint Cyrillic_E = 0x06fc; public const uint Cyrillic_SHCHA = 0x06fd; public const uint Cyrillic_CHE = 0x06fe; public const uint Cyrillic_HARDSIGN = 0x06ff; public const uint Greek_ALPHAaccent = 0x07a1; public const uint Greek_EPSILONaccent = 0x07a2; public const uint Greek_ETAaccent = 0x07a3; public const uint Greek_IOTAaccent = 0x07a4; public const uint Greek_IOTAdieresis = 0x07a5; public const uint Greek_IOTAdiaeresis = 0x07a5; public const uint Greek_OMICRONaccent = 0x07a7; public const uint Greek_UPSILONaccent = 0x07a8; public const uint Greek_UPSILONdieresis = 0x07a9; public const uint Greek_OMEGAaccent = 0x07ab; public const uint Greek_accentdieresis = 0x07ae; public const uint Greek_horizbar = 0x07af; public const uint Greek_alphaaccent = 0x07b1; public const uint Greek_epsilonaccent = 0x07b2; public const uint Greek_etaaccent = 0x07b3; public const uint Greek_iotaaccent = 0x07b4; public const uint Greek_iotadieresis = 0x07b5; public const uint Greek_iotaaccentdieresis = 0x07b6; public const uint Greek_omicronaccent = 0x07b7; public const uint Greek_upsilonaccent = 0x07b8; public const uint Greek_upsilondieresis = 0x07b9; public const uint Greek_upsilonaccentdieresis = 0x07ba; public const uint Greek_omegaaccent = 0x07bb; public const uint Greek_ALPHA = 0x07c1; public const uint Greek_BETA = 0x07c2; public const uint Greek_GAMMA = 0x07c3; public const uint Greek_DELTA = 0x07c4; public const uint Greek_EPSILON = 0x07c5; public const uint Greek_ZETA = 0x07c6; public const uint Greek_ETA = 0x07c7; public const uint Greek_THETA = 0x07c8; public const uint Greek_IOTA = 0x07c9; public const uint Greek_KAPPA = 0x07ca; public const uint Greek_LAMDA = 0x07cb; public const uint Greek_LAMBDA = 0x07cb; public const uint Greek_MU = 0x07cc; public const uint Greek_NU = 0x07cd; public const uint Greek_XI = 0x07ce; public const uint Greek_OMICRON = 0x07cf; public const uint Greek_PI = 0x07d0; public const uint Greek_RHO = 0x07d1; public const uint Greek_SIGMA = 0x07d2; public const uint Greek_TAU = 0x07d4; public const uint Greek_UPSILON = 0x07d5; public const uint Greek_PHI = 0x07d6; public const uint Greek_CHI = 0x07d7; public const uint Greek_PSI = 0x07d8; public const uint Greek_OMEGA = 0x07d9; public const uint Greek_alpha = 0x07e1; public const uint Greek_beta = 0x07e2; public const uint Greek_gamma = 0x07e3; public const uint Greek_delta = 0x07e4; public const uint Greek_epsilon = 0x07e5; public const uint Greek_zeta = 0x07e6; public const uint Greek_eta = 0x07e7; public const uint Greek_theta = 0x07e8; public const uint Greek_iota = 0x07e9; public const uint Greek_kappa = 0x07ea; public const uint Greek_lamda = 0x07eb; public const uint Greek_lambda = 0x07eb; public const uint Greek_mu = 0x07ec; public const uint Greek_nu = 0x07ed; public const uint Greek_xi = 0x07ee; public const uint Greek_omicron = 0x07ef; public const uint Greek_pi = 0x07f0; public const uint Greek_rho = 0x07f1; public const uint Greek_sigma = 0x07f2; public const uint Greek_finalsmallsigma = 0x07f3; public const uint Greek_tau = 0x07f4; public const uint Greek_upsilon = 0x07f5; public const uint Greek_phi = 0x07f6; public const uint Greek_chi = 0x07f7; public const uint Greek_psi = 0x07f8; public const uint Greek_omega = 0x07f9; public const uint Greek_switch = 0xff7e; public const uint leftradical = 0x08a1; public const uint topleftradical = 0x08a2; public const uint horizconnector = 0x08a3; public const uint topintegral = 0x08a4; public const uint botintegral = 0x08a5; public const uint vertconnector = 0x08a6; public const uint topleftsqbracket = 0x08a7; public const uint botleftsqbracket = 0x08a8; public const uint toprightsqbracket = 0x08a9; public const uint botrightsqbracket = 0x08aa; public const uint topleftparens = 0x08ab; public const uint botleftparens = 0x08ac; public const uint toprightparens = 0x08ad; public const uint botrightparens = 0x08ae; public const uint leftmiddlecurlybrace = 0x08af; public const uint rightmiddlecurlybrace = 0x08b0; public const uint topleftsummation = 0x08b1; public const uint botleftsummation = 0x08b2; public const uint topvertsummationconnector = 0x08b3; public const uint botvertsummationconnector = 0x08b4; public const uint toprightsummation = 0x08b5; public const uint botrightsummation = 0x08b6; public const uint rightmiddlesummation = 0x08b7; public const uint lessthanequal = 0x08bc; public const uint notequal = 0x08bd; public const uint greaterthanequal = 0x08be; public const uint integral = 0x08bf; public const uint therefore = 0x08c0; public const uint variation = 0x08c1; public const uint infinity = 0x08c2; public const uint nabla = 0x08c5; public const uint approximate = 0x08c8; public const uint similarequal = 0x08c9; public const uint ifonlyif = 0x08cd; public const uint implies = 0x08ce; public const uint identical = 0x08cf; public const uint radical = 0x08d6; public const uint includedin = 0x08da; public const uint includes = 0x08db; public const uint intersection = 0x08dc; public const uint union = 0x08dd; public const uint logicaland = 0x08de; public const uint logicalor = 0x08df; public const uint partialderivative = 0x08ef; public const uint function = 0x08f6; public const uint leftarrow = 0x08fb; public const uint uparrow = 0x08fc; public const uint rightarrow = 0x08fd; public const uint downarrow = 0x08fe; public const uint blank = 0x09df; public const uint soliddiamond = 0x09e0; public const uint checkerboard = 0x09e1; public const uint ht = 0x09e2; public const uint ff = 0x09e3; public const uint cr = 0x09e4; public const uint lf = 0x09e5; public const uint nl = 0x09e8; public const uint vt = 0x09e9; public const uint lowrightcorner = 0x09ea; public const uint uprightcorner = 0x09eb; public const uint upleftcorner = 0x09ec; public const uint lowleftcorner = 0x09ed; public const uint crossinglines = 0x09ee; public const uint horizlinescan1 = 0x09ef; public const uint horizlinescan3 = 0x09f0; public const uint horizlinescan5 = 0x09f1; public const uint horizlinescan7 = 0x09f2; public const uint horizlinescan9 = 0x09f3; public const uint leftt = 0x09f4; public const uint rightt = 0x09f5; public const uint bott = 0x09f6; public const uint topt = 0x09f7; public const uint vertbar = 0x09f8; public const uint emspace = 0x0aa1; public const uint enspace = 0x0aa2; public const uint em3space = 0x0aa3; public const uint em4space = 0x0aa4; public const uint digitspace = 0x0aa5; public const uint punctspace = 0x0aa6; public const uint thinspace = 0x0aa7; public const uint hairspace = 0x0aa8; public const uint emdash = 0x0aa9; public const uint endash = 0x0aaa; public const uint signifblank = 0x0aac; public const uint ellipsis = 0x0aae; public const uint doubbaselinedot = 0x0aaf; public const uint onethird = 0x0ab0; public const uint twothirds = 0x0ab1; public const uint onefifth = 0x0ab2; public const uint twofifths = 0x0ab3; public const uint threefifths = 0x0ab4; public const uint fourfifths = 0x0ab5; public const uint onesixth = 0x0ab6; public const uint fivesixths = 0x0ab7; public const uint careof = 0x0ab8; public const uint figdash = 0x0abb; public const uint leftanglebracket = 0x0abc; public const uint decimalpoint = 0x0abd; public const uint rightanglebracket = 0x0abe; public const uint marker = 0x0abf; public const uint oneeighth = 0x0ac3; public const uint threeeighths = 0x0ac4; public const uint fiveeighths = 0x0ac5; public const uint seveneighths = 0x0ac6; public const uint trademark = 0x0ac9; public const uint signaturemark = 0x0aca; public const uint trademarkincircle = 0x0acb; public const uint leftopentriangle = 0x0acc; public const uint rightopentriangle = 0x0acd; public const uint emopencircle = 0x0ace; public const uint emopenrectangle = 0x0acf; public const uint leftsinglequotemark = 0x0ad0; public const uint rightsinglequotemark = 0x0ad1; public const uint leftdoublequotemark = 0x0ad2; public const uint rightdoublequotemark = 0x0ad3; public const uint prescription = 0x0ad4; public const uint minutes = 0x0ad6; public const uint seconds = 0x0ad7; public const uint latincross = 0x0ad9; public const uint hexagram = 0x0ada; public const uint filledrectbullet = 0x0adb; public const uint filledlefttribullet = 0x0adc; public const uint filledrighttribullet = 0x0add; public const uint emfilledcircle = 0x0ade; public const uint emfilledrect = 0x0adf; public const uint enopencircbullet = 0x0ae0; public const uint enopensquarebullet = 0x0ae1; public const uint openrectbullet = 0x0ae2; public const uint opentribulletup = 0x0ae3; public const uint opentribulletdown = 0x0ae4; public const uint openstar = 0x0ae5; public const uint enfilledcircbullet = 0x0ae6; public const uint enfilledsqbullet = 0x0ae7; public const uint filledtribulletup = 0x0ae8; public const uint filledtribulletdown = 0x0ae9; public const uint leftpointer = 0x0aea; public const uint rightpointer = 0x0aeb; public const uint club = 0x0aec; public const uint diamond = 0x0aed; public const uint heart = 0x0aee; public const uint maltesecross = 0x0af0; public const uint dagger = 0x0af1; public const uint doubledagger = 0x0af2; public const uint checkmark = 0x0af3; public const uint ballotcross = 0x0af4; public const uint musicalsharp = 0x0af5; public const uint musicalflat = 0x0af6; public const uint malesymbol = 0x0af7; public const uint femalesymbol = 0x0af8; public const uint telephone = 0x0af9; public const uint telephonerecorder = 0x0afa; public const uint phonographcopyright = 0x0afb; public const uint caret = 0x0afc; public const uint singlelowquotemark = 0x0afd; public const uint doublelowquotemark = 0x0afe; public const uint cursor = 0x0aff; public const uint leftcaret = 0x0ba3; public const uint rightcaret = 0x0ba6; public const uint downcaret = 0x0ba8; public const uint upcaret = 0x0ba9; public const uint overbar = 0x0bc0; public const uint downtack = 0x0bc2; public const uint upshoe = 0x0bc3; public const uint downstile = 0x0bc4; public const uint underbar = 0x0bc6; public const uint jot = 0x0bca; public const uint quad = 0x0bcc; public const uint uptack = 0x0bce; public const uint circle = 0x0bcf; public const uint upstile = 0x0bd3; public const uint downshoe = 0x0bd6; public const uint rightshoe = 0x0bd8; public const uint leftshoe = 0x0bda; public const uint lefttack = 0x0bdc; public const uint righttack = 0x0bfc; public const uint hebrew_doublelowline = 0x0cdf; public const uint hebrew_aleph = 0x0ce0; public const uint hebrew_bet = 0x0ce1; public const uint hebrew_beth = 0x0ce1; public const uint hebrew_gimel = 0x0ce2; public const uint hebrew_gimmel = 0x0ce2; public const uint hebrew_dalet = 0x0ce3; public const uint hebrew_daleth = 0x0ce3; public const uint hebrew_he = 0x0ce4; public const uint hebrew_waw = 0x0ce5; public const uint hebrew_zain = 0x0ce6; public const uint hebrew_zayin = 0x0ce6; public const uint hebrew_chet = 0x0ce7; public const uint hebrew_het = 0x0ce7; public const uint hebrew_tet = 0x0ce8; public const uint hebrew_teth = 0x0ce8; public const uint hebrew_yod = 0x0ce9; public const uint hebrew_finalkaph = 0x0cea; public const uint hebrew_kaph = 0x0ceb; public const uint hebrew_lamed = 0x0cec; public const uint hebrew_finalmem = 0x0ced; public const uint hebrew_mem = 0x0cee; public const uint hebrew_finalnun = 0x0cef; public const uint hebrew_nun = 0x0cf0; public const uint hebrew_samech = 0x0cf1; public const uint hebrew_samekh = 0x0cf1; public const uint hebrew_ayin = 0x0cf2; public const uint hebrew_finalpe = 0x0cf3; public const uint hebrew_pe = 0x0cf4; public const uint hebrew_finalzade = 0x0cf5; public const uint hebrew_finalzadi = 0x0cf5; public const uint hebrew_zade = 0x0cf6; public const uint hebrew_zadi = 0x0cf6; public const uint hebrew_qoph = 0x0cf7; public const uint hebrew_kuf = 0x0cf7; public const uint hebrew_resh = 0x0cf8; public const uint hebrew_shin = 0x0cf9; public const uint hebrew_taw = 0x0cfa; public const uint hebrew_taf = 0x0cfa; public const uint Hebrew_switch = 0xff7e; public const uint Thai_kokai = 0x0da1; public const uint Thai_khokhai = 0x0da2; public const uint Thai_khokhuat = 0x0da3; public const uint Thai_khokhwai = 0x0da4; public const uint Thai_khokhon = 0x0da5; public const uint Thai_khorakhang = 0x0da6; public const uint Thai_ngongu = 0x0da7; public const uint Thai_chochan = 0x0da8; public const uint Thai_choching = 0x0da9; public const uint Thai_chochang = 0x0daa; public const uint Thai_soso = 0x0dab; public const uint Thai_chochoe = 0x0dac; public const uint Thai_yoying = 0x0dad; public const uint Thai_dochada = 0x0dae; public const uint Thai_topatak = 0x0daf; public const uint Thai_thothan = 0x0db0; public const uint Thai_thonangmontho = 0x0db1; public const uint Thai_thophuthao = 0x0db2; public const uint Thai_nonen = 0x0db3; public const uint Thai_dodek = 0x0db4; public const uint Thai_totao = 0x0db5; public const uint Thai_thothung = 0x0db6; public const uint Thai_thothahan = 0x0db7; public const uint Thai_thothong = 0x0db8; public const uint Thai_nonu = 0x0db9; public const uint Thai_bobaimai = 0x0dba; public const uint Thai_popla = 0x0dbb; public const uint Thai_phophung = 0x0dbc; public const uint Thai_fofa = 0x0dbd; public const uint Thai_phophan = 0x0dbe; public const uint Thai_fofan = 0x0dbf; public const uint Thai_phosamphao = 0x0dc0; public const uint Thai_moma = 0x0dc1; public const uint Thai_yoyak = 0x0dc2; public const uint Thai_rorua = 0x0dc3; public const uint Thai_ru = 0x0dc4; public const uint Thai_loling = 0x0dc5; public const uint Thai_lu = 0x0dc6; public const uint Thai_wowaen = 0x0dc7; public const uint Thai_sosala = 0x0dc8; public const uint Thai_sorusi = 0x0dc9; public const uint Thai_sosua = 0x0dca; public const uint Thai_hohip = 0x0dcb; public const uint Thai_lochula = 0x0dcc; public const uint Thai_oang = 0x0dcd; public const uint Thai_honokhuk = 0x0dce; public const uint Thai_paiyannoi = 0x0dcf; public const uint Thai_saraa = 0x0dd0; public const uint Thai_maihanakat = 0x0dd1; public const uint Thai_saraaa = 0x0dd2; public const uint Thai_saraam = 0x0dd3; public const uint Thai_sarai = 0x0dd4; public const uint Thai_saraii = 0x0dd5; public const uint Thai_saraue = 0x0dd6; public const uint Thai_sarauee = 0x0dd7; public const uint Thai_sarau = 0x0dd8; public const uint Thai_sarauu = 0x0dd9; public const uint Thai_phinthu = 0x0dda; public const uint Thai_maihanakat_maitho = 0x0dde; public const uint Thai_baht = 0x0ddf; public const uint Thai_sarae = 0x0de0; public const uint Thai_saraae = 0x0de1; public const uint Thai_sarao = 0x0de2; public const uint Thai_saraaimaimuan = 0x0de3; public const uint Thai_saraaimaimalai = 0x0de4; public const uint Thai_lakkhangyao = 0x0de5; public const uint Thai_maiyamok = 0x0de6; public const uint Thai_maitaikhu = 0x0de7; public const uint Thai_maiek = 0x0de8; public const uint Thai_maitho = 0x0de9; public const uint Thai_maitri = 0x0dea; public const uint Thai_maichattawa = 0x0deb; public const uint Thai_thanthakhat = 0x0dec; public const uint Thai_nikhahit = 0x0ded; public const uint Thai_leksun = 0x0df0; public const uint Thai_leknung = 0x0df1; public const uint Thai_leksong = 0x0df2; public const uint Thai_leksam = 0x0df3; public const uint Thai_leksi = 0x0df4; public const uint Thai_lekha = 0x0df5; public const uint Thai_lekhok = 0x0df6; public const uint Thai_lekchet = 0x0df7; public const uint Thai_lekpaet = 0x0df8; public const uint Thai_lekkao = 0x0df9; public const uint Hangul = 0xff31; public const uint Hangul_Start = 0xff32; public const uint Hangul_End = 0xff33; public const uint Hangul_Hanja = 0xff34; public const uint Hangul_Jamo = 0xff35; public const uint Hangul_Romaja = 0xff36; public const uint Hangul_Codeinput = 0xff37; public const uint Hangul_Jeonja = 0xff38; public const uint Hangul_Banja = 0xff39; public const uint Hangul_PreHanja = 0xff3a; public const uint Hangul_PostHanja = 0xff3b; public const uint Hangul_SingleCandidate = 0xff3c; public const uint Hangul_MultipleCandidate = 0xff3d; public const uint Hangul_PreviousCandidate = 0xff3e; public const uint Hangul_Special = 0xff3f; public const uint Hangul_switch = 0xff7e; public const uint Hangul_Kiyeog = 0x0ea1; public const uint Hangul_SsangKiyeog = 0x0ea2; public const uint Hangul_KiyeogSios = 0x0ea3; public const uint Hangul_Nieun = 0x0ea4; public const uint Hangul_NieunJieuj = 0x0ea5; public const uint Hangul_NieunHieuh = 0x0ea6; public const uint Hangul_Dikeud = 0x0ea7; public const uint Hangul_SsangDikeud = 0x0ea8; public const uint Hangul_Rieul = 0x0ea9; public const uint Hangul_RieulKiyeog = 0x0eaa; public const uint Hangul_RieulMieum = 0x0eab; public const uint Hangul_RieulPieub = 0x0eac; public const uint Hangul_RieulSios = 0x0ead; public const uint Hangul_RieulTieut = 0x0eae; public const uint Hangul_RieulPhieuf = 0x0eaf; public const uint Hangul_RieulHieuh = 0x0eb0; public const uint Hangul_Mieum = 0x0eb1; public const uint Hangul_Pieub = 0x0eb2; public const uint Hangul_SsangPieub = 0x0eb3; public const uint Hangul_PieubSios = 0x0eb4; public const uint Hangul_Sios = 0x0eb5; public const uint Hangul_SsangSios = 0x0eb6; public const uint Hangul_Ieung = 0x0eb7; public const uint Hangul_Jieuj = 0x0eb8; public const uint Hangul_SsangJieuj = 0x0eb9; public const uint Hangul_Cieuc = 0x0eba; public const uint Hangul_Khieuq = 0x0ebb; public const uint Hangul_Tieut = 0x0ebc; public const uint Hangul_Phieuf = 0x0ebd; public const uint Hangul_Hieuh = 0x0ebe; public const uint Hangul_A = 0x0ebf; public const uint Hangul_AE = 0x0ec0; public const uint Hangul_YA = 0x0ec1; public const uint Hangul_YAE = 0x0ec2; public const uint Hangul_EO = 0x0ec3; public const uint Hangul_E = 0x0ec4; public const uint Hangul_YEO = 0x0ec5; public const uint Hangul_YE = 0x0ec6; public const uint Hangul_O = 0x0ec7; public const uint Hangul_WA = 0x0ec8; public const uint Hangul_WAE = 0x0ec9; public const uint Hangul_OE = 0x0eca; public const uint Hangul_YO = 0x0ecb; public const uint Hangul_U = 0x0ecc; public const uint Hangul_WEO = 0x0ecd; public const uint Hangul_WE = 0x0ece; public const uint Hangul_WI = 0x0ecf; public const uint Hangul_YU = 0x0ed0; public const uint Hangul_EU = 0x0ed1; public const uint Hangul_YI = 0x0ed2; public const uint Hangul_I = 0x0ed3; public const uint Hangul_J_Kiyeog = 0x0ed4; public const uint Hangul_J_SsangKiyeog = 0x0ed5; public const uint Hangul_J_KiyeogSios = 0x0ed6; public const uint Hangul_J_Nieun = 0x0ed7; public const uint Hangul_J_NieunJieuj = 0x0ed8; public const uint Hangul_J_NieunHieuh = 0x0ed9; public const uint Hangul_J_Dikeud = 0x0eda; public const uint Hangul_J_Rieul = 0x0edb; public const uint Hangul_J_RieulKiyeog = 0x0edc; public const uint Hangul_J_RieulMieum = 0x0edd; public const uint Hangul_J_RieulPieub = 0x0ede; public const uint Hangul_J_RieulSios = 0x0edf; public const uint Hangul_J_RieulTieut = 0x0ee0; public const uint Hangul_J_RieulPhieuf = 0x0ee1; public const uint Hangul_J_RieulHieuh = 0x0ee2; public const uint Hangul_J_Mieum = 0x0ee3; public const uint Hangul_J_Pieub = 0x0ee4; public const uint Hangul_J_PieubSios = 0x0ee5; public const uint Hangul_J_Sios = 0x0ee6; public const uint Hangul_J_SsangSios = 0x0ee7; public const uint Hangul_J_Ieung = 0x0ee8; public const uint Hangul_J_Jieuj = 0x0ee9; public const uint Hangul_J_Cieuc = 0x0eea; public const uint Hangul_J_Khieuq = 0x0eeb; public const uint Hangul_J_Tieut = 0x0eec; public const uint Hangul_J_Phieuf = 0x0eed; public const uint Hangul_J_Hieuh = 0x0eee; public const uint Hangul_RieulYeorinHieuh = 0x0eef; public const uint Hangul_SunkyeongeumMieum = 0x0ef0; public const uint Hangul_SunkyeongeumPieub = 0x0ef1; public const uint Hangul_PanSios = 0x0ef2; public const uint Hangul_KkogjiDalrinIeung = 0x0ef3; public const uint Hangul_SunkyeongeumPhieuf = 0x0ef4; public const uint Hangul_YeorinHieuh = 0x0ef5; public const uint Hangul_AraeA = 0x0ef6; public const uint Hangul_AraeAE = 0x0ef7; public const uint Hangul_J_PanSios = 0x0ef8; public const uint Hangul_J_KkogjiDalrinIeung = 0x0ef9; public const uint Hangul_J_YeorinHieuh = 0x0efa; public const uint Korean_Won = 0x0eff; public const uint Armenian_ligature_ew = 0x1000587; public const uint Armenian_full_stop = 0x1000589; public const uint Armenian_verjaket = 0x1000589; public const uint Armenian_separation_mark = 0x100055d; public const uint Armenian_but = 0x100055d; public const uint Armenian_hyphen = 0x100058a; public const uint Armenian_yentamna = 0x100058a; public const uint Armenian_exclam = 0x100055c; public const uint Armenian_amanak = 0x100055c; public const uint Armenian_accent = 0x100055b; public const uint Armenian_shesht = 0x100055b; public const uint Armenian_question = 0x100055e; public const uint Armenian_paruyk = 0x100055e; public const uint Armenian_AYB = 0x1000531; public const uint Armenian_ayb = 0x1000561; public const uint Armenian_BEN = 0x1000532; public const uint Armenian_ben = 0x1000562; public const uint Armenian_GIM = 0x1000533; public const uint Armenian_gim = 0x1000563; public const uint Armenian_DA = 0x1000534; public const uint Armenian_da = 0x1000564; public const uint Armenian_YECH = 0x1000535; public const uint Armenian_yech = 0x1000565; public const uint Armenian_ZA = 0x1000536; public const uint Armenian_za = 0x1000566; public const uint Armenian_E = 0x1000537; public const uint Armenian_e = 0x1000567; public const uint Armenian_AT = 0x1000538; public const uint Armenian_at = 0x1000568; public const uint Armenian_TO = 0x1000539; public const uint Armenian_to = 0x1000569; public const uint Armenian_ZHE = 0x100053a; public const uint Armenian_zhe = 0x100056a; public const uint Armenian_INI = 0x100053b; public const uint Armenian_ini = 0x100056b; public const uint Armenian_LYUN = 0x100053c; public const uint Armenian_lyun = 0x100056c; public const uint Armenian_KHE = 0x100053d; public const uint Armenian_khe = 0x100056d; public const uint Armenian_TSA = 0x100053e; public const uint Armenian_tsa = 0x100056e; public const uint Armenian_KEN = 0x100053f; public const uint Armenian_ken = 0x100056f; public const uint Armenian_HO = 0x1000540; public const uint Armenian_ho = 0x1000570; public const uint Armenian_DZA = 0x1000541; public const uint Armenian_dza = 0x1000571; public const uint Armenian_GHAT = 0x1000542; public const uint Armenian_ghat = 0x1000572; public const uint Armenian_TCHE = 0x1000543; public const uint Armenian_tche = 0x1000573; public const uint Armenian_MEN = 0x1000544; public const uint Armenian_men = 0x1000574; public const uint Armenian_HI = 0x1000545; public const uint Armenian_hi = 0x1000575; public const uint Armenian_NU = 0x1000546; public const uint Armenian_nu = 0x1000576; public const uint Armenian_SHA = 0x1000547; public const uint Armenian_sha = 0x1000577; public const uint Armenian_VO = 0x1000548; public const uint Armenian_vo = 0x1000578; public const uint Armenian_CHA = 0x1000549; public const uint Armenian_cha = 0x1000579; public const uint Armenian_PE = 0x100054a; public const uint Armenian_pe = 0x100057a; public const uint Armenian_JE = 0x100054b; public const uint Armenian_je = 0x100057b; public const uint Armenian_RA = 0x100054c; public const uint Armenian_ra = 0x100057c; public const uint Armenian_SE = 0x100054d; public const uint Armenian_se = 0x100057d; public const uint Armenian_VEV = 0x100054e; public const uint Armenian_vev = 0x100057e; public const uint Armenian_TYUN = 0x100054f; public const uint Armenian_tyun = 0x100057f; public const uint Armenian_RE = 0x1000550; public const uint Armenian_re = 0x1000580; public const uint Armenian_TSO = 0x1000551; public const uint Armenian_tso = 0x1000581; public const uint Armenian_VYUN = 0x1000552; public const uint Armenian_vyun = 0x1000582; public const uint Armenian_PYUR = 0x1000553; public const uint Armenian_pyur = 0x1000583; public const uint Armenian_KE = 0x1000554; public const uint Armenian_ke = 0x1000584; public const uint Armenian_O = 0x1000555; public const uint Armenian_o = 0x1000585; public const uint Armenian_FE = 0x1000556; public const uint Armenian_fe = 0x1000586; public const uint Armenian_apostrophe = 0x100055a; public const uint Georgian_an = 0x10010d0; public const uint Georgian_ban = 0x10010d1; public const uint Georgian_gan = 0x10010d2; public const uint Georgian_don = 0x10010d3; public const uint Georgian_en = 0x10010d4; public const uint Georgian_vin = 0x10010d5; public const uint Georgian_zen = 0x10010d6; public const uint Georgian_tan = 0x10010d7; public const uint Georgian_in = 0x10010d8; public const uint Georgian_kan = 0x10010d9; public const uint Georgian_las = 0x10010da; public const uint Georgian_man = 0x10010db; public const uint Georgian_nar = 0x10010dc; public const uint Georgian_on = 0x10010dd; public const uint Georgian_par = 0x10010de; public const uint Georgian_zhar = 0x10010df; public const uint Georgian_rae = 0x10010e0; public const uint Georgian_san = 0x10010e1; public const uint Georgian_tar = 0x10010e2; public const uint Georgian_un = 0x10010e3; public const uint Georgian_phar = 0x10010e4; public const uint Georgian_khar = 0x10010e5; public const uint Georgian_ghan = 0x10010e6; public const uint Georgian_qar = 0x10010e7; public const uint Georgian_shin = 0x10010e8; public const uint Georgian_chin = 0x10010e9; public const uint Georgian_can = 0x10010ea; public const uint Georgian_jil = 0x10010eb; public const uint Georgian_cil = 0x10010ec; public const uint Georgian_char = 0x10010ed; public const uint Georgian_xan = 0x10010ee; public const uint Georgian_jhan = 0x10010ef; public const uint Georgian_hae = 0x10010f0; public const uint Georgian_he = 0x10010f1; public const uint Georgian_hie = 0x10010f2; public const uint Georgian_we = 0x10010f3; public const uint Georgian_har = 0x10010f4; public const uint Georgian_hoe = 0x10010f5; public const uint Georgian_fi = 0x10010f6; public const uint Xabovedot = 0x1001e8a; public const uint Ibreve = 0x100012c; public const uint Zstroke = 0x10001b5; public const uint Gcaron = 0x10001e6; public const uint Ocaron = 0x10001d1; public const uint Obarred = 0x100019f; public const uint xabovedot = 0x1001e8b; public const uint ibreve = 0x100012d; public const uint zstroke = 0x10001b6; public const uint gcaron = 0x10001e7; public const uint ocaron = 0x10001d2; public const uint obarred = 0x1000275; public const uint SCHWA = 0x100018f; public const uint schwa = 0x1000259; public const uint Lbelowdot = 0x1001e36; public const uint lbelowdot = 0x1001e37; public const uint Abelowdot = 0x1001ea0; public const uint abelowdot = 0x1001ea1; public const uint Ahook = 0x1001ea2; public const uint ahook = 0x1001ea3; public const uint Acircumflexacute = 0x1001ea4; public const uint acircumflexacute = 0x1001ea5; public const uint Acircumflexgrave = 0x1001ea6; public const uint acircumflexgrave = 0x1001ea7; public const uint Acircumflexhook = 0x1001ea8; public const uint acircumflexhook = 0x1001ea9; public const uint Acircumflextilde = 0x1001eaa; public const uint acircumflextilde = 0x1001eab; public const uint Acircumflexbelowdot = 0x1001eac; public const uint acircumflexbelowdot = 0x1001ead; public const uint Abreveacute = 0x1001eae; public const uint abreveacute = 0x1001eaf; public const uint Abrevegrave = 0x1001eb0; public const uint abrevegrave = 0x1001eb1; public const uint Abrevehook = 0x1001eb2; public const uint abrevehook = 0x1001eb3; public const uint Abrevetilde = 0x1001eb4; public const uint abrevetilde = 0x1001eb5; public const uint Abrevebelowdot = 0x1001eb6; public const uint abrevebelowdot = 0x1001eb7; public const uint Ebelowdot = 0x1001eb8; public const uint ebelowdot = 0x1001eb9; public const uint Ehook = 0x1001eba; public const uint ehook = 0x1001ebb; public const uint Etilde = 0x1001ebc; public const uint etilde = 0x1001ebd; public const uint Ecircumflexacute = 0x1001ebe; public const uint ecircumflexacute = 0x1001ebf; public const uint Ecircumflexgrave = 0x1001ec0; public const uint ecircumflexgrave = 0x1001ec1; public const uint Ecircumflexhook = 0x1001ec2; public const uint ecircumflexhook = 0x1001ec3; public const uint Ecircumflextilde = 0x1001ec4; public const uint ecircumflextilde = 0x1001ec5; public const uint Ecircumflexbelowdot = 0x1001ec6; public const uint ecircumflexbelowdot = 0x1001ec7; public const uint Ihook = 0x1001ec8; public const uint ihook = 0x1001ec9; public const uint Ibelowdot = 0x1001eca; public const uint ibelowdot = 0x1001ecb; public const uint Obelowdot = 0x1001ecc; public const uint obelowdot = 0x1001ecd; public const uint Ohook = 0x1001ece; public const uint ohook = 0x1001ecf; public const uint Ocircumflexacute = 0x1001ed0; public const uint ocircumflexacute = 0x1001ed1; public const uint Ocircumflexgrave = 0x1001ed2; public const uint ocircumflexgrave = 0x1001ed3; public const uint Ocircumflexhook = 0x1001ed4; public const uint ocircumflexhook = 0x1001ed5; public const uint Ocircumflextilde = 0x1001ed6; public const uint ocircumflextilde = 0x1001ed7; public const uint Ocircumflexbelowdot = 0x1001ed8; public const uint ocircumflexbelowdot = 0x1001ed9; public const uint Ohornacute = 0x1001eda; public const uint ohornacute = 0x1001edb; public const uint Ohorngrave = 0x1001edc; public const uint ohorngrave = 0x1001edd; public const uint Ohornhook = 0x1001ede; public const uint ohornhook = 0x1001edf; public const uint Ohorntilde = 0x1001ee0; public const uint ohorntilde = 0x1001ee1; public const uint Ohornbelowdot = 0x1001ee2; public const uint ohornbelowdot = 0x1001ee3; public const uint Ubelowdot = 0x1001ee4; public const uint ubelowdot = 0x1001ee5; public const uint Uhook = 0x1001ee6; public const uint uhook = 0x1001ee7; public const uint Uhornacute = 0x1001ee8; public const uint uhornacute = 0x1001ee9; public const uint Uhorngrave = 0x1001eea; public const uint uhorngrave = 0x1001eeb; public const uint Uhornhook = 0x1001eec; public const uint uhornhook = 0x1001eed; public const uint Uhorntilde = 0x1001eee; public const uint uhorntilde = 0x1001eef; public const uint Uhornbelowdot = 0x1001ef0; public const uint uhornbelowdot = 0x1001ef1; public const uint Ybelowdot = 0x1001ef4; public const uint ybelowdot = 0x1001ef5; public const uint Yhook = 0x1001ef6; public const uint yhook = 0x1001ef7; public const uint Ytilde = 0x1001ef8; public const uint ytilde = 0x1001ef9; public const uint Ohorn = 0x10001a0; public const uint ohorn = 0x10001a1; public const uint Uhorn = 0x10001af; public const uint uhorn = 0x10001b0; public const uint EcuSign = 0x10020a0; public const uint ColonSign = 0x10020a1; public const uint CruzeiroSign = 0x10020a2; public const uint FFrancSign = 0x10020a3; public const uint LiraSign = 0x10020a4; public const uint MillSign = 0x10020a5; public const uint NairaSign = 0x10020a6; public const uint PesetaSign = 0x10020a7; public const uint RupeeSign = 0x10020a8; public const uint WonSign = 0x10020a9; public const uint NewSheqelSign = 0x10020aa; public const uint DongSign = 0x10020ab; public const uint EuroSign = 0x20ac; public const uint zerosuperior = 0x1002070; public const uint foursuperior = 0x1002074; public const uint fivesuperior = 0x1002075; public const uint sixsuperior = 0x1002076; public const uint sevensuperior = 0x1002077; public const uint eightsuperior = 0x1002078; public const uint ninesuperior = 0x1002079; public const uint zerosubscript = 0x1002080; public const uint onesubscript = 0x1002081; public const uint twosubscript = 0x1002082; public const uint threesubscript = 0x1002083; public const uint foursubscript = 0x1002084; public const uint fivesubscript = 0x1002085; public const uint sixsubscript = 0x1002086; public const uint sevensubscript = 0x1002087; public const uint eightsubscript = 0x1002088; public const uint ninesubscript = 0x1002089; public const uint partdifferential = 0x1002202; public const uint emptyset = 0x1002205; public const uint elementof = 0x1002208; public const uint notelementof = 0x1002209; public const uint containsas = 0x100220B; public const uint squareroot = 0x100221A; public const uint cuberoot = 0x100221B; public const uint fourthroot = 0x100221C; public const uint dintegral = 0x100222C; public const uint tintegral = 0x100222D; public const uint because = 0x1002235; public const uint approxeq = 0x1002248; public const uint notapproxeq = 0x1002247; public const uint notidentical = 0x1002262; public const uint stricteq = 0x1002263; public const uint braille_dot_1 = 0xfff1; public const uint braille_dot_2 = 0xfff2; public const uint braille_dot_3 = 0xfff3; public const uint braille_dot_4 = 0xfff4; public const uint braille_dot_5 = 0xfff5; public const uint braille_dot_6 = 0xfff6; public const uint braille_dot_7 = 0xfff7; public const uint braille_dot_8 = 0xfff8; public const uint braille_dot_9 = 0xfff9; public const uint braille_dot_10 = 0xfffa; public const uint braille_blank = 0x1002800; public const uint braille_dots_1 = 0x1002801; public const uint braille_dots_2 = 0x1002802; public const uint braille_dots_12 = 0x1002803; public const uint braille_dots_3 = 0x1002804; public const uint braille_dots_13 = 0x1002805; public const uint braille_dots_23 = 0x1002806; public const uint braille_dots_123 = 0x1002807; public const uint braille_dots_4 = 0x1002808; public const uint braille_dots_14 = 0x1002809; public const uint braille_dots_24 = 0x100280a; public const uint braille_dots_124 = 0x100280b; public const uint braille_dots_34 = 0x100280c; public const uint braille_dots_134 = 0x100280d; public const uint braille_dots_234 = 0x100280e; public const uint braille_dots_1234 = 0x100280f; public const uint braille_dots_5 = 0x1002810; public const uint braille_dots_15 = 0x1002811; public const uint braille_dots_25 = 0x1002812; public const uint braille_dots_125 = 0x1002813; public const uint braille_dots_35 = 0x1002814; public const uint braille_dots_135 = 0x1002815; public const uint braille_dots_235 = 0x1002816; public const uint braille_dots_1235 = 0x1002817; public const uint braille_dots_45 = 0x1002818; public const uint braille_dots_145 = 0x1002819; public const uint braille_dots_245 = 0x100281a; public const uint braille_dots_1245 = 0x100281b; public const uint braille_dots_345 = 0x100281c; public const uint braille_dots_1345 = 0x100281d; public const uint braille_dots_2345 = 0x100281e; public const uint braille_dots_12345 = 0x100281f; public const uint braille_dots_6 = 0x1002820; public const uint braille_dots_16 = 0x1002821; public const uint braille_dots_26 = 0x1002822; public const uint braille_dots_126 = 0x1002823; public const uint braille_dots_36 = 0x1002824; public const uint braille_dots_136 = 0x1002825; public const uint braille_dots_236 = 0x1002826; public const uint braille_dots_1236 = 0x1002827; public const uint braille_dots_46 = 0x1002828; public const uint braille_dots_146 = 0x1002829; public const uint braille_dots_246 = 0x100282a; public const uint braille_dots_1246 = 0x100282b; public const uint braille_dots_346 = 0x100282c; public const uint braille_dots_1346 = 0x100282d; public const uint braille_dots_2346 = 0x100282e; public const uint braille_dots_12346 = 0x100282f; public const uint braille_dots_56 = 0x1002830; public const uint braille_dots_156 = 0x1002831; public const uint braille_dots_256 = 0x1002832; public const uint braille_dots_1256 = 0x1002833; public const uint braille_dots_356 = 0x1002834; public const uint braille_dots_1356 = 0x1002835; public const uint braille_dots_2356 = 0x1002836; public const uint braille_dots_12356 = 0x1002837; public const uint braille_dots_456 = 0x1002838; public const uint braille_dots_1456 = 0x1002839; public const uint braille_dots_2456 = 0x100283a; public const uint braille_dots_12456 = 0x100283b; public const uint braille_dots_3456 = 0x100283c; public const uint braille_dots_13456 = 0x100283d; public const uint braille_dots_23456 = 0x100283e; public const uint braille_dots_123456 = 0x100283f; public const uint braille_dots_7 = 0x1002840; public const uint braille_dots_17 = 0x1002841; public const uint braille_dots_27 = 0x1002842; public const uint braille_dots_127 = 0x1002843; public const uint braille_dots_37 = 0x1002844; public const uint braille_dots_137 = 0x1002845; public const uint braille_dots_237 = 0x1002846; public const uint braille_dots_1237 = 0x1002847; public const uint braille_dots_47 = 0x1002848; public const uint braille_dots_147 = 0x1002849; public const uint braille_dots_247 = 0x100284a; public const uint braille_dots_1247 = 0x100284b; public const uint braille_dots_347 = 0x100284c; public const uint braille_dots_1347 = 0x100284d; public const uint braille_dots_2347 = 0x100284e; public const uint braille_dots_12347 = 0x100284f; public const uint braille_dots_57 = 0x1002850; public const uint braille_dots_157 = 0x1002851; public const uint braille_dots_257 = 0x1002852; public const uint braille_dots_1257 = 0x1002853; public const uint braille_dots_357 = 0x1002854; public const uint braille_dots_1357 = 0x1002855; public const uint braille_dots_2357 = 0x1002856; public const uint braille_dots_12357 = 0x1002857; public const uint braille_dots_457 = 0x1002858; public const uint braille_dots_1457 = 0x1002859; public const uint braille_dots_2457 = 0x100285a; public const uint braille_dots_12457 = 0x100285b; public const uint braille_dots_3457 = 0x100285c; public const uint braille_dots_13457 = 0x100285d; public const uint braille_dots_23457 = 0x100285e; public const uint braille_dots_123457 = 0x100285f; public const uint braille_dots_67 = 0x1002860; public const uint braille_dots_167 = 0x1002861; public const uint braille_dots_267 = 0x1002862; public const uint braille_dots_1267 = 0x1002863; public const uint braille_dots_367 = 0x1002864; public const uint braille_dots_1367 = 0x1002865; public const uint braille_dots_2367 = 0x1002866; public const uint braille_dots_12367 = 0x1002867; public const uint braille_dots_467 = 0x1002868; public const uint braille_dots_1467 = 0x1002869; public const uint braille_dots_2467 = 0x100286a; public const uint braille_dots_12467 = 0x100286b; public const uint braille_dots_3467 = 0x100286c; public const uint braille_dots_13467 = 0x100286d; public const uint braille_dots_23467 = 0x100286e; public const uint braille_dots_123467 = 0x100286f; public const uint braille_dots_567 = 0x1002870; public const uint braille_dots_1567 = 0x1002871; public const uint braille_dots_2567 = 0x1002872; public const uint braille_dots_12567 = 0x1002873; public const uint braille_dots_3567 = 0x1002874; public const uint braille_dots_13567 = 0x1002875; public const uint braille_dots_23567 = 0x1002876; public const uint braille_dots_123567 = 0x1002877; public const uint braille_dots_4567 = 0x1002878; public const uint braille_dots_14567 = 0x1002879; public const uint braille_dots_24567 = 0x100287a; public const uint braille_dots_124567 = 0x100287b; public const uint braille_dots_34567 = 0x100287c; public const uint braille_dots_134567 = 0x100287d; public const uint braille_dots_234567 = 0x100287e; public const uint braille_dots_1234567 = 0x100287f; public const uint braille_dots_8 = 0x1002880; public const uint braille_dots_18 = 0x1002881; public const uint braille_dots_28 = 0x1002882; public const uint braille_dots_128 = 0x1002883; public const uint braille_dots_38 = 0x1002884; public const uint braille_dots_138 = 0x1002885; public const uint braille_dots_238 = 0x1002886; public const uint braille_dots_1238 = 0x1002887; public const uint braille_dots_48 = 0x1002888; public const uint braille_dots_148 = 0x1002889; public const uint braille_dots_248 = 0x100288a; public const uint braille_dots_1248 = 0x100288b; public const uint braille_dots_348 = 0x100288c; public const uint braille_dots_1348 = 0x100288d; public const uint braille_dots_2348 = 0x100288e; public const uint braille_dots_12348 = 0x100288f; public const uint braille_dots_58 = 0x1002890; public const uint braille_dots_158 = 0x1002891; public const uint braille_dots_258 = 0x1002892; public const uint braille_dots_1258 = 0x1002893; public const uint braille_dots_358 = 0x1002894; public const uint braille_dots_1358 = 0x1002895; public const uint braille_dots_2358 = 0x1002896; public const uint braille_dots_12358 = 0x1002897; public const uint braille_dots_458 = 0x1002898; public const uint braille_dots_1458 = 0x1002899; public const uint braille_dots_2458 = 0x100289a; public const uint braille_dots_12458 = 0x100289b; public const uint braille_dots_3458 = 0x100289c; public const uint braille_dots_13458 = 0x100289d; public const uint braille_dots_23458 = 0x100289e; public const uint braille_dots_123458 = 0x100289f; public const uint braille_dots_68 = 0x10028a0; public const uint braille_dots_168 = 0x10028a1; public const uint braille_dots_268 = 0x10028a2; public const uint braille_dots_1268 = 0x10028a3; public const uint braille_dots_368 = 0x10028a4; public const uint braille_dots_1368 = 0x10028a5; public const uint braille_dots_2368 = 0x10028a6; public const uint braille_dots_12368 = 0x10028a7; public const uint braille_dots_468 = 0x10028a8; public const uint braille_dots_1468 = 0x10028a9; public const uint braille_dots_2468 = 0x10028aa; public const uint braille_dots_12468 = 0x10028ab; public const uint braille_dots_3468 = 0x10028ac; public const uint braille_dots_13468 = 0x10028ad; public const uint braille_dots_23468 = 0x10028ae; public const uint braille_dots_123468 = 0x10028af; public const uint braille_dots_568 = 0x10028b0; public const uint braille_dots_1568 = 0x10028b1; public const uint braille_dots_2568 = 0x10028b2; public const uint braille_dots_12568 = 0x10028b3; public const uint braille_dots_3568 = 0x10028b4; public const uint braille_dots_13568 = 0x10028b5; public const uint braille_dots_23568 = 0x10028b6; public const uint braille_dots_123568 = 0x10028b7; public const uint braille_dots_4568 = 0x10028b8; public const uint braille_dots_14568 = 0x10028b9; public const uint braille_dots_24568 = 0x10028ba; public const uint braille_dots_124568 = 0x10028bb; public const uint braille_dots_34568 = 0x10028bc; public const uint braille_dots_134568 = 0x10028bd; public const uint braille_dots_234568 = 0x10028be; public const uint braille_dots_1234568 = 0x10028bf; public const uint braille_dots_78 = 0x10028c0; public const uint braille_dots_178 = 0x10028c1; public const uint braille_dots_278 = 0x10028c2; public const uint braille_dots_1278 = 0x10028c3; public const uint braille_dots_378 = 0x10028c4; public const uint braille_dots_1378 = 0x10028c5; public const uint braille_dots_2378 = 0x10028c6; public const uint braille_dots_12378 = 0x10028c7; public const uint braille_dots_478 = 0x10028c8; public const uint braille_dots_1478 = 0x10028c9; public const uint braille_dots_2478 = 0x10028ca; public const uint braille_dots_12478 = 0x10028cb; public const uint braille_dots_3478 = 0x10028cc; public const uint braille_dots_13478 = 0x10028cd; public const uint braille_dots_23478 = 0x10028ce; public const uint braille_dots_123478 = 0x10028cf; public const uint braille_dots_578 = 0x10028d0; public const uint braille_dots_1578 = 0x10028d1; public const uint braille_dots_2578 = 0x10028d2; public const uint braille_dots_12578 = 0x10028d3; public const uint braille_dots_3578 = 0x10028d4; public const uint braille_dots_13578 = 0x10028d5; public const uint braille_dots_23578 = 0x10028d6; public const uint braille_dots_123578 = 0x10028d7; public const uint braille_dots_4578 = 0x10028d8; public const uint braille_dots_14578 = 0x10028d9; public const uint braille_dots_24578 = 0x10028da; public const uint braille_dots_124578 = 0x10028db; public const uint braille_dots_34578 = 0x10028dc; public const uint braille_dots_134578 = 0x10028dd; public const uint braille_dots_234578 = 0x10028de; public const uint braille_dots_1234578 = 0x10028df; public const uint braille_dots_678 = 0x10028e0; public const uint braille_dots_1678 = 0x10028e1; public const uint braille_dots_2678 = 0x10028e2; public const uint braille_dots_12678 = 0x10028e3; public const uint braille_dots_3678 = 0x10028e4; public const uint braille_dots_13678 = 0x10028e5; public const uint braille_dots_23678 = 0x10028e6; public const uint braille_dots_123678 = 0x10028e7; public const uint braille_dots_4678 = 0x10028e8; public const uint braille_dots_14678 = 0x10028e9; public const uint braille_dots_24678 = 0x10028ea; public const uint braille_dots_124678 = 0x10028eb; public const uint braille_dots_34678 = 0x10028ec; public const uint braille_dots_134678 = 0x10028ed; public const uint braille_dots_234678 = 0x10028ee; public const uint braille_dots_1234678 = 0x10028ef; public const uint braille_dots_5678 = 0x10028f0; public const uint braille_dots_15678 = 0x10028f1; public const uint braille_dots_25678 = 0x10028f2; public const uint braille_dots_125678 = 0x10028f3; public const uint braille_dots_35678 = 0x10028f4; public const uint braille_dots_135678 = 0x10028f5; public const uint braille_dots_235678 = 0x10028f6; public const uint braille_dots_1235678 = 0x10028f7; public const uint braille_dots_45678 = 0x10028f8; public const uint braille_dots_145678 = 0x10028f9; public const uint braille_dots_245678 = 0x10028fa; public const uint braille_dots_1245678 = 0x10028fb; public const uint braille_dots_345678 = 0x10028fc; public const uint braille_dots_1345678 = 0x10028fd; public const uint braille_dots_2345678 = 0x10028fe; public const uint braille_dots_12345678 = 0x10028ff; public const uint Sinh_ng = 0x1000d82; public const uint Sinh_h2 = 0x1000d83; public const uint Sinh_a = 0x1000d85; public const uint Sinh_aa = 0x1000d86; public const uint Sinh_ae = 0x1000d87; public const uint Sinh_aee = 0x1000d88; public const uint Sinh_i = 0x1000d89; public const uint Sinh_ii = 0x1000d8a; public const uint Sinh_u = 0x1000d8b; public const uint Sinh_uu = 0x1000d8c; public const uint Sinh_ri = 0x1000d8d; public const uint Sinh_rii = 0x1000d8e; public const uint Sinh_lu = 0x1000d8f; public const uint Sinh_luu = 0x1000d90; public const uint Sinh_e = 0x1000d91; public const uint Sinh_ee = 0x1000d92; public const uint Sinh_ai = 0x1000d93; public const uint Sinh_o = 0x1000d94; public const uint Sinh_oo = 0x1000d95; public const uint Sinh_au = 0x1000d96; public const uint Sinh_ka = 0x1000d9a; public const uint Sinh_kha = 0x1000d9b; public const uint Sinh_ga = 0x1000d9c; public const uint Sinh_gha = 0x1000d9d; public const uint Sinh_ng2 = 0x1000d9e; public const uint Sinh_nga = 0x1000d9f; public const uint Sinh_ca = 0x1000da0; public const uint Sinh_cha = 0x1000da1; public const uint Sinh_ja = 0x1000da2; public const uint Sinh_jha = 0x1000da3; public const uint Sinh_nya = 0x1000da4; public const uint Sinh_jnya = 0x1000da5; public const uint Sinh_nja = 0x1000da6; public const uint Sinh_tta = 0x1000da7; public const uint Sinh_ttha = 0x1000da8; public const uint Sinh_dda = 0x1000da9; public const uint Sinh_ddha = 0x1000daa; public const uint Sinh_nna = 0x1000dab; public const uint Sinh_ndda = 0x1000dac; public const uint Sinh_tha = 0x1000dad; public const uint Sinh_thha = 0x1000dae; public const uint Sinh_dha = 0x1000daf; public const uint Sinh_dhha = 0x1000db0; public const uint Sinh_na = 0x1000db1; public const uint Sinh_ndha = 0x1000db3; public const uint Sinh_pa = 0x1000db4; public const uint Sinh_pha = 0x1000db5; public const uint Sinh_ba = 0x1000db6; public const uint Sinh_bha = 0x1000db7; public const uint Sinh_ma = 0x1000db8; public const uint Sinh_mba = 0x1000db9; public const uint Sinh_ya = 0x1000dba; public const uint Sinh_ra = 0x1000dbb; public const uint Sinh_la = 0x1000dbd; public const uint Sinh_va = 0x1000dc0; public const uint Sinh_sha = 0x1000dc1; public const uint Sinh_ssha = 0x1000dc2; public const uint Sinh_sa = 0x1000dc3; public const uint Sinh_ha = 0x1000dc4; public const uint Sinh_lla = 0x1000dc5; public const uint Sinh_fa = 0x1000dc6; public const uint Sinh_al = 0x1000dca; public const uint Sinh_aa2 = 0x1000dcf; public const uint Sinh_ae2 = 0x1000dd0; public const uint Sinh_aee2 = 0x1000dd1; public const uint Sinh_i2 = 0x1000dd2; public const uint Sinh_ii2 = 0x1000dd3; public const uint Sinh_u2 = 0x1000dd4; public const uint Sinh_uu2 = 0x1000dd6; public const uint Sinh_ru2 = 0x1000dd8; public const uint Sinh_e2 = 0x1000dd9; public const uint Sinh_ee2 = 0x1000dda; public const uint Sinh_ai2 = 0x1000ddb; public const uint Sinh_o2 = 0x1000ddc; public const uint Sinh_oo2 = 0x1000ddd; public const uint Sinh_au2 = 0x1000dde; public const uint Sinh_lu2 = 0x1000ddf; public const uint Sinh_ruu2 = 0x1000df2; public const uint Sinh_luu2 = 0x1000df3; public const uint Sinh_kunddaliya = 0x1000df4; } libskk-1.0.0/libskk/skk-1.0.deps0000664000076400007640000000005511675742075013160 00000000000000glib-2.0 gio-2.0 gee-1.0 posix json-glib-1.0 libskk-1.0.0/libskk/libskk-internals.h0000664000076400007640000051756512016556644014662 00000000000000/* libskk-internals.h generated by valac 0.16.0, the Vala compiler, do not modify */ #ifndef __LIBSKK_INTERNALS_H__ #define __LIBSKK_INTERNALS_H__ #include #include #include #include #include #include #include #include #include G_BEGIN_DECLS #define SKK_TYPE_ROM_KANA_ENTRY (skk_rom_kana_entry_get_type ()) typedef struct _SkkRomKanaEntry SkkRomKanaEntry; #define SKK_TYPE_KANA_MODE (skk_kana_mode_get_type ()) #define SKK_TYPE_ROM_KANA_NODE (skk_rom_kana_node_get_type ()) #define SKK_ROM_KANA_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_ROM_KANA_NODE, SkkRomKanaNode)) #define SKK_ROM_KANA_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_ROM_KANA_NODE, SkkRomKanaNodeClass)) #define SKK_IS_ROM_KANA_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_ROM_KANA_NODE)) #define SKK_IS_ROM_KANA_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_ROM_KANA_NODE)) #define SKK_ROM_KANA_NODE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_ROM_KANA_NODE, SkkRomKanaNodeClass)) typedef struct _SkkRomKanaNode SkkRomKanaNode; typedef struct _SkkRomKanaNodeClass SkkRomKanaNodeClass; typedef struct _SkkRomKanaNodePrivate SkkRomKanaNodePrivate; #define SKK_TYPE_PERIOD_STYLE (skk_period_style_get_type ()) #define SKK_TYPE_ROM_KANA_CONVERTER (skk_rom_kana_converter_get_type ()) #define SKK_ROM_KANA_CONVERTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_ROM_KANA_CONVERTER, SkkRomKanaConverter)) #define SKK_ROM_KANA_CONVERTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_ROM_KANA_CONVERTER, SkkRomKanaConverterClass)) #define SKK_IS_ROM_KANA_CONVERTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_ROM_KANA_CONVERTER)) #define SKK_IS_ROM_KANA_CONVERTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_ROM_KANA_CONVERTER)) #define SKK_ROM_KANA_CONVERTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_ROM_KANA_CONVERTER, SkkRomKanaConverterClass)) typedef struct _SkkRomKanaConverter SkkRomKanaConverter; typedef struct _SkkRomKanaConverterClass SkkRomKanaConverterClass; typedef struct _SkkRomKanaConverterPrivate SkkRomKanaConverterPrivate; #define SKK_TYPE_MAP_FILE (skk_map_file_get_type ()) #define SKK_MAP_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_MAP_FILE, SkkMapFile)) #define SKK_MAP_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_MAP_FILE, SkkMapFileClass)) #define SKK_IS_MAP_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_MAP_FILE)) #define SKK_IS_MAP_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_MAP_FILE)) #define SKK_MAP_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_MAP_FILE, SkkMapFileClass)) typedef struct _SkkMapFile SkkMapFile; typedef struct _SkkMapFileClass SkkMapFileClass; #define SKK_TYPE_ROM_KANA_MAP_FILE (skk_rom_kana_map_file_get_type ()) #define SKK_ROM_KANA_MAP_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_ROM_KANA_MAP_FILE, SkkRomKanaMapFile)) #define SKK_ROM_KANA_MAP_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_ROM_KANA_MAP_FILE, SkkRomKanaMapFileClass)) #define SKK_IS_ROM_KANA_MAP_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_ROM_KANA_MAP_FILE)) #define SKK_IS_ROM_KANA_MAP_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_ROM_KANA_MAP_FILE)) #define SKK_ROM_KANA_MAP_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_ROM_KANA_MAP_FILE, SkkRomKanaMapFileClass)) typedef struct _SkkRomKanaMapFile SkkRomKanaMapFile; typedef struct _SkkRomKanaMapFileClass SkkRomKanaMapFileClass; #define SKK_TYPE_KANA_KAN_CONVERTER (skk_kana_kan_converter_get_type ()) #define SKK_KANA_KAN_CONVERTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KANA_KAN_CONVERTER, SkkKanaKanConverter)) #define SKK_KANA_KAN_CONVERTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KANA_KAN_CONVERTER, SkkKanaKanConverterClass)) #define SKK_IS_KANA_KAN_CONVERTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KANA_KAN_CONVERTER)) #define SKK_IS_KANA_KAN_CONVERTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KANA_KAN_CONVERTER)) #define SKK_KANA_KAN_CONVERTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KANA_KAN_CONVERTER, SkkKanaKanConverterClass)) typedef struct _SkkKanaKanConverter SkkKanaKanConverter; typedef struct _SkkKanaKanConverterClass SkkKanaKanConverterClass; typedef struct _SkkKanaKanConverterPrivate SkkKanaKanConverterPrivate; #define SKK_TYPE_KANA_KAN_DICT (skk_kana_kan_dict_get_type ()) #define SKK_KANA_KAN_DICT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KANA_KAN_DICT, SkkKanaKanDict)) #define SKK_KANA_KAN_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KANA_KAN_DICT, SkkKanaKanDictClass)) #define SKK_IS_KANA_KAN_DICT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KANA_KAN_DICT)) #define SKK_IS_KANA_KAN_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KANA_KAN_DICT)) #define SKK_KANA_KAN_DICT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KANA_KAN_DICT, SkkKanaKanDictClass)) typedef struct _SkkKanaKanDict SkkKanaKanDict; typedef struct _SkkKanaKanDictClass SkkKanaKanDictClass; #define SKK_TYPE_KANA_KAN_SCORE_MAP (skk_kana_kan_score_map_get_type ()) #define SKK_KANA_KAN_SCORE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KANA_KAN_SCORE_MAP, SkkKanaKanScoreMap)) #define SKK_KANA_KAN_SCORE_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KANA_KAN_SCORE_MAP, SkkKanaKanScoreMapClass)) #define SKK_IS_KANA_KAN_SCORE_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KANA_KAN_SCORE_MAP)) #define SKK_IS_KANA_KAN_SCORE_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KANA_KAN_SCORE_MAP)) #define SKK_KANA_KAN_SCORE_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KANA_KAN_SCORE_MAP, SkkKanaKanScoreMapClass)) typedef struct _SkkKanaKanScoreMap SkkKanaKanScoreMap; typedef struct _SkkKanaKanScoreMapClass SkkKanaKanScoreMapClass; typedef struct _SkkKanaKanDictPrivate SkkKanaKanDictPrivate; typedef struct _SkkKanaKanScoreMapPrivate SkkKanaKanScoreMapPrivate; #define SKK_TYPE_KANA_KAN_NODE (skk_kana_kan_node_get_type ()) #define SKK_KANA_KAN_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KANA_KAN_NODE, SkkKanaKanNode)) #define SKK_KANA_KAN_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KANA_KAN_NODE, SkkKanaKanNodeClass)) #define SKK_IS_KANA_KAN_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KANA_KAN_NODE)) #define SKK_IS_KANA_KAN_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KANA_KAN_NODE)) #define SKK_KANA_KAN_NODE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KANA_KAN_NODE, SkkKanaKanNodeClass)) typedef struct _SkkKanaKanNode SkkKanaKanNode; typedef struct _SkkKanaKanNodeClass SkkKanaKanNodeClass; typedef struct _SkkKanaKanNodePrivate SkkKanaKanNodePrivate; #define SKK_TYPE_KANA_KAN_GRAPH (skk_kana_kan_graph_get_type ()) #define SKK_KANA_KAN_GRAPH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KANA_KAN_GRAPH, SkkKanaKanGraph)) #define SKK_KANA_KAN_GRAPH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KANA_KAN_GRAPH, SkkKanaKanGraphClass)) #define SKK_IS_KANA_KAN_GRAPH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KANA_KAN_GRAPH)) #define SKK_IS_KANA_KAN_GRAPH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KANA_KAN_GRAPH)) #define SKK_KANA_KAN_GRAPH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KANA_KAN_GRAPH, SkkKanaKanGraphClass)) typedef struct _SkkKanaKanGraph SkkKanaKanGraph; typedef struct _SkkKanaKanGraphClass SkkKanaKanGraphClass; typedef struct _SkkKanaKanGraphPrivate SkkKanaKanGraphPrivate; #define SKK_TYPE_ENCODING_CONVERTER (skk_encoding_converter_get_type ()) #define SKK_ENCODING_CONVERTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_ENCODING_CONVERTER, SkkEncodingConverter)) #define SKK_ENCODING_CONVERTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_ENCODING_CONVERTER, SkkEncodingConverterClass)) #define SKK_IS_ENCODING_CONVERTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_ENCODING_CONVERTER)) #define SKK_IS_ENCODING_CONVERTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_ENCODING_CONVERTER)) #define SKK_ENCODING_CONVERTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_ENCODING_CONVERTER, SkkEncodingConverterClass)) typedef struct _SkkEncodingConverter SkkEncodingConverter; typedef struct _SkkEncodingConverterClass SkkEncodingConverterClass; typedef struct _SkkEncodingConverterPrivate SkkEncodingConverterPrivate; #define SKK_TYPE_DICT (skk_dict_get_type ()) #define SKK_DICT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_DICT, SkkDict)) #define SKK_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_DICT, SkkDictClass)) #define SKK_IS_DICT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_DICT)) #define SKK_IS_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_DICT)) #define SKK_DICT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_DICT, SkkDictClass)) typedef struct _SkkDict SkkDict; typedef struct _SkkDictClass SkkDictClass; typedef struct _SkkDictPrivate SkkDictPrivate; #define SKK_TYPE_CANDIDATE (skk_candidate_get_type ()) #define SKK_CANDIDATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_CANDIDATE, SkkCandidate)) #define SKK_CANDIDATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_CANDIDATE, SkkCandidateClass)) #define SKK_IS_CANDIDATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_CANDIDATE)) #define SKK_IS_CANDIDATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_CANDIDATE)) #define SKK_CANDIDATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_CANDIDATE, SkkCandidateClass)) typedef struct _SkkCandidate SkkCandidate; typedef struct _SkkCandidateClass SkkCandidateClass; #define SKK_TYPE_EMPTY_DICT (skk_empty_dict_get_type ()) #define SKK_EMPTY_DICT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_EMPTY_DICT, SkkEmptyDict)) #define SKK_EMPTY_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_EMPTY_DICT, SkkEmptyDictClass)) #define SKK_IS_EMPTY_DICT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_EMPTY_DICT)) #define SKK_IS_EMPTY_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_EMPTY_DICT)) #define SKK_EMPTY_DICT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_EMPTY_DICT, SkkEmptyDictClass)) typedef struct _SkkEmptyDict SkkEmptyDict; typedef struct _SkkEmptyDictClass SkkEmptyDictClass; typedef struct _SkkEmptyDictPrivate SkkEmptyDictPrivate; #define SKK_TYPE_FILE_DICT (skk_file_dict_get_type ()) #define SKK_FILE_DICT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_FILE_DICT, SkkFileDict)) #define SKK_FILE_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_FILE_DICT, SkkFileDictClass)) #define SKK_IS_FILE_DICT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_FILE_DICT)) #define SKK_IS_FILE_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_FILE_DICT)) #define SKK_FILE_DICT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_FILE_DICT, SkkFileDictClass)) typedef struct _SkkFileDict SkkFileDict; typedef struct _SkkFileDictClass SkkFileDictClass; typedef struct _SkkFileDictPrivate SkkFileDictPrivate; #define SKK_TYPE_CDB_DICT (skk_cdb_dict_get_type ()) #define SKK_CDB_DICT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_CDB_DICT, SkkCdbDict)) #define SKK_CDB_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_CDB_DICT, SkkCdbDictClass)) #define SKK_IS_CDB_DICT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_CDB_DICT)) #define SKK_IS_CDB_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_CDB_DICT)) #define SKK_CDB_DICT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_CDB_DICT, SkkCdbDictClass)) typedef struct _SkkCdbDict SkkCdbDict; typedef struct _SkkCdbDictClass SkkCdbDictClass; typedef struct _SkkCdbDictPrivate SkkCdbDictPrivate; #define SKK_TYPE_USER_DICT (skk_user_dict_get_type ()) #define SKK_USER_DICT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_USER_DICT, SkkUserDict)) #define SKK_USER_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_USER_DICT, SkkUserDictClass)) #define SKK_IS_USER_DICT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_USER_DICT)) #define SKK_IS_USER_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_USER_DICT)) #define SKK_USER_DICT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_USER_DICT, SkkUserDictClass)) typedef struct _SkkUserDict SkkUserDict; typedef struct _SkkUserDictClass SkkUserDictClass; typedef struct _SkkUserDictPrivate SkkUserDictPrivate; #define SKK_TYPE_SKK_SERV (skk_skk_serv_get_type ()) #define SKK_SKK_SERV(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_SKK_SERV, SkkSkkServ)) #define SKK_SKK_SERV_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_SKK_SERV, SkkSkkServClass)) #define SKK_IS_SKK_SERV(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_SKK_SERV)) #define SKK_IS_SKK_SERV_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_SKK_SERV)) #define SKK_SKK_SERV_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_SKK_SERV, SkkSkkServClass)) typedef struct _SkkSkkServ SkkSkkServ; typedef struct _SkkSkkServClass SkkSkkServClass; typedef struct _SkkSkkServPrivate SkkSkkServPrivate; #define SKK_TYPE_MODIFIER_TYPE (skk_modifier_type_get_type ()) #define SKK_TYPE_KEY_EVENT (skk_key_event_get_type ()) #define SKK_KEY_EVENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KEY_EVENT, SkkKeyEvent)) #define SKK_KEY_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KEY_EVENT, SkkKeyEventClass)) #define SKK_IS_KEY_EVENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KEY_EVENT)) #define SKK_IS_KEY_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KEY_EVENT)) #define SKK_KEY_EVENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KEY_EVENT, SkkKeyEventClass)) typedef struct _SkkKeyEvent SkkKeyEvent; typedef struct _SkkKeyEventClass SkkKeyEventClass; typedef struct _SkkKeyEventPrivate SkkKeyEventPrivate; #define SKK_TYPE_KEY_EVENT_FILTER (skk_key_event_filter_get_type ()) #define SKK_KEY_EVENT_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KEY_EVENT_FILTER, SkkKeyEventFilter)) #define SKK_KEY_EVENT_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KEY_EVENT_FILTER, SkkKeyEventFilterClass)) #define SKK_IS_KEY_EVENT_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KEY_EVENT_FILTER)) #define SKK_IS_KEY_EVENT_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KEY_EVENT_FILTER)) #define SKK_KEY_EVENT_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KEY_EVENT_FILTER, SkkKeyEventFilterClass)) typedef struct _SkkKeyEventFilter SkkKeyEventFilter; typedef struct _SkkKeyEventFilterClass SkkKeyEventFilterClass; typedef struct _SkkKeyEventFilterPrivate SkkKeyEventFilterPrivate; #define SKK_TYPE_SIMPLE_KEY_EVENT_FILTER (skk_simple_key_event_filter_get_type ()) #define SKK_SIMPLE_KEY_EVENT_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_SIMPLE_KEY_EVENT_FILTER, SkkSimpleKeyEventFilter)) #define SKK_SIMPLE_KEY_EVENT_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_SIMPLE_KEY_EVENT_FILTER, SkkSimpleKeyEventFilterClass)) #define SKK_IS_SIMPLE_KEY_EVENT_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_SIMPLE_KEY_EVENT_FILTER)) #define SKK_IS_SIMPLE_KEY_EVENT_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_SIMPLE_KEY_EVENT_FILTER)) #define SKK_SIMPLE_KEY_EVENT_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_SIMPLE_KEY_EVENT_FILTER, SkkSimpleKeyEventFilterClass)) typedef struct _SkkSimpleKeyEventFilter SkkSimpleKeyEventFilter; typedef struct _SkkSimpleKeyEventFilterClass SkkSimpleKeyEventFilterClass; typedef struct _SkkSimpleKeyEventFilterPrivate SkkSimpleKeyEventFilterPrivate; #define SKK_TYPE_KEYMAP (skk_keymap_get_type ()) #define SKK_KEYMAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KEYMAP, SkkKeymap)) #define SKK_KEYMAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KEYMAP, SkkKeymapClass)) #define SKK_IS_KEYMAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KEYMAP)) #define SKK_IS_KEYMAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KEYMAP)) #define SKK_KEYMAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KEYMAP, SkkKeymapClass)) typedef struct _SkkKeymap SkkKeymap; typedef struct _SkkKeymapClass SkkKeymapClass; typedef struct _SkkKeymapPrivate SkkKeymapPrivate; typedef struct _SkkMapFilePrivate SkkMapFilePrivate; #define SKK_TYPE_KEYMAP_MAP_FILE (skk_keymap_map_file_get_type ()) #define SKK_KEYMAP_MAP_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KEYMAP_MAP_FILE, SkkKeymapMapFile)) #define SKK_KEYMAP_MAP_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KEYMAP_MAP_FILE, SkkKeymapMapFileClass)) #define SKK_IS_KEYMAP_MAP_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KEYMAP_MAP_FILE)) #define SKK_IS_KEYMAP_MAP_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KEYMAP_MAP_FILE)) #define SKK_KEYMAP_MAP_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KEYMAP_MAP_FILE, SkkKeymapMapFileClass)) typedef struct _SkkKeymapMapFile SkkKeymapMapFile; typedef struct _SkkKeymapMapFileClass SkkKeymapMapFileClass; typedef struct _SkkKeymapMapFilePrivate SkkKeymapMapFilePrivate; #define SKK_TYPE_RULE_METADATA (skk_rule_metadata_get_type ()) typedef struct _SkkRuleMetadata SkkRuleMetadata; typedef struct _SkkRomKanaMapFilePrivate SkkRomKanaMapFilePrivate; #define SKK_TYPE_RULE (skk_rule_get_type ()) #define SKK_RULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_RULE, SkkRule)) #define SKK_RULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_RULE, SkkRuleClass)) #define SKK_IS_RULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_RULE)) #define SKK_IS_RULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_RULE)) #define SKK_RULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_RULE, SkkRuleClass)) typedef struct _SkkRule SkkRule; typedef struct _SkkRuleClass SkkRuleClass; typedef struct _SkkRulePrivate SkkRulePrivate; #define SKK_TYPE_STATE (skk_state_get_type ()) #define SKK_STATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_STATE, SkkState)) #define SKK_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_STATE, SkkStateClass)) #define SKK_IS_STATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_STATE)) #define SKK_IS_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_STATE)) #define SKK_STATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_STATE, SkkStateClass)) typedef struct _SkkState SkkState; typedef struct _SkkStateClass SkkStateClass; typedef struct _SkkStatePrivate SkkStatePrivate; #define SKK_TYPE_CANDIDATE_LIST (skk_candidate_list_get_type ()) #define SKK_CANDIDATE_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_CANDIDATE_LIST, SkkCandidateList)) #define SKK_CANDIDATE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_CANDIDATE_LIST, SkkCandidateListClass)) #define SKK_IS_CANDIDATE_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_CANDIDATE_LIST)) #define SKK_IS_CANDIDATE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_CANDIDATE_LIST)) #define SKK_CANDIDATE_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_CANDIDATE_LIST, SkkCandidateListClass)) typedef struct _SkkCandidateList SkkCandidateList; typedef struct _SkkCandidateListClass SkkCandidateListClass; #define SKK_TYPE_UNICODE_STRING (skk_unicode_string_get_type ()) #define SKK_UNICODE_STRING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_UNICODE_STRING, SkkUnicodeString)) #define SKK_UNICODE_STRING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_UNICODE_STRING, SkkUnicodeStringClass)) #define SKK_IS_UNICODE_STRING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_UNICODE_STRING)) #define SKK_IS_UNICODE_STRING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_UNICODE_STRING)) #define SKK_UNICODE_STRING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_UNICODE_STRING, SkkUnicodeStringClass)) typedef struct _SkkUnicodeString SkkUnicodeString; typedef struct _SkkUnicodeStringClass SkkUnicodeStringClass; #define SKK_TYPE_INPUT_MODE (skk_input_mode_get_type ()) #define SKK_TYPE_STATE_HANDLER (skk_state_handler_get_type ()) #define SKK_STATE_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_STATE_HANDLER, SkkStateHandler)) #define SKK_STATE_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_STATE_HANDLER, SkkStateHandlerClass)) #define SKK_IS_STATE_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_STATE_HANDLER)) #define SKK_IS_STATE_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_STATE_HANDLER)) #define SKK_STATE_HANDLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_STATE_HANDLER, SkkStateHandlerClass)) typedef struct _SkkStateHandler SkkStateHandler; typedef struct _SkkStateHandlerClass SkkStateHandlerClass; typedef struct _SkkStateHandlerPrivate SkkStateHandlerPrivate; #define SKK_TYPE_NONE_STATE_HANDLER (skk_none_state_handler_get_type ()) #define SKK_NONE_STATE_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_NONE_STATE_HANDLER, SkkNoneStateHandler)) #define SKK_NONE_STATE_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_NONE_STATE_HANDLER, SkkNoneStateHandlerClass)) #define SKK_IS_NONE_STATE_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_NONE_STATE_HANDLER)) #define SKK_IS_NONE_STATE_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_NONE_STATE_HANDLER)) #define SKK_NONE_STATE_HANDLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_NONE_STATE_HANDLER, SkkNoneStateHandlerClass)) typedef struct _SkkNoneStateHandler SkkNoneStateHandler; typedef struct _SkkNoneStateHandlerClass SkkNoneStateHandlerClass; typedef struct _SkkNoneStateHandlerPrivate SkkNoneStateHandlerPrivate; #define SKK_TYPE_KUTEN_STATE_HANDLER (skk_kuten_state_handler_get_type ()) #define SKK_KUTEN_STATE_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KUTEN_STATE_HANDLER, SkkKutenStateHandler)) #define SKK_KUTEN_STATE_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KUTEN_STATE_HANDLER, SkkKutenStateHandlerClass)) #define SKK_IS_KUTEN_STATE_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KUTEN_STATE_HANDLER)) #define SKK_IS_KUTEN_STATE_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KUTEN_STATE_HANDLER)) #define SKK_KUTEN_STATE_HANDLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KUTEN_STATE_HANDLER, SkkKutenStateHandlerClass)) typedef struct _SkkKutenStateHandler SkkKutenStateHandler; typedef struct _SkkKutenStateHandlerClass SkkKutenStateHandlerClass; typedef struct _SkkKutenStateHandlerPrivate SkkKutenStateHandlerPrivate; #define SKK_TYPE_ABBREV_STATE_HANDLER (skk_abbrev_state_handler_get_type ()) #define SKK_ABBREV_STATE_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_ABBREV_STATE_HANDLER, SkkAbbrevStateHandler)) #define SKK_ABBREV_STATE_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_ABBREV_STATE_HANDLER, SkkAbbrevStateHandlerClass)) #define SKK_IS_ABBREV_STATE_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_ABBREV_STATE_HANDLER)) #define SKK_IS_ABBREV_STATE_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_ABBREV_STATE_HANDLER)) #define SKK_ABBREV_STATE_HANDLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_ABBREV_STATE_HANDLER, SkkAbbrevStateHandlerClass)) typedef struct _SkkAbbrevStateHandler SkkAbbrevStateHandler; typedef struct _SkkAbbrevStateHandlerClass SkkAbbrevStateHandlerClass; typedef struct _SkkAbbrevStateHandlerPrivate SkkAbbrevStateHandlerPrivate; #define SKK_TYPE_START_STATE_HANDLER (skk_start_state_handler_get_type ()) #define SKK_START_STATE_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_START_STATE_HANDLER, SkkStartStateHandler)) #define SKK_START_STATE_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_START_STATE_HANDLER, SkkStartStateHandlerClass)) #define SKK_IS_START_STATE_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_START_STATE_HANDLER)) #define SKK_IS_START_STATE_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_START_STATE_HANDLER)) #define SKK_START_STATE_HANDLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_START_STATE_HANDLER, SkkStartStateHandlerClass)) typedef struct _SkkStartStateHandler SkkStartStateHandler; typedef struct _SkkStartStateHandlerClass SkkStartStateHandlerClass; typedef struct _SkkStartStateHandlerPrivate SkkStartStateHandlerPrivate; #define SKK_TYPE_SELECT_STATE_HANDLER (skk_select_state_handler_get_type ()) #define SKK_SELECT_STATE_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_SELECT_STATE_HANDLER, SkkSelectStateHandler)) #define SKK_SELECT_STATE_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_SELECT_STATE_HANDLER, SkkSelectStateHandlerClass)) #define SKK_IS_SELECT_STATE_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_SELECT_STATE_HANDLER)) #define SKK_IS_SELECT_STATE_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_SELECT_STATE_HANDLER)) #define SKK_SELECT_STATE_HANDLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_SELECT_STATE_HANDLER, SkkSelectStateHandlerClass)) typedef struct _SkkSelectStateHandler SkkSelectStateHandler; typedef struct _SkkSelectStateHandlerClass SkkSelectStateHandlerClass; typedef struct _SkkSelectStateHandlerPrivate SkkSelectStateHandlerPrivate; #define SKK_TYPE_CONTEXT (skk_context_get_type ()) #define SKK_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_CONTEXT, SkkContext)) #define SKK_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_CONTEXT, SkkContextClass)) #define SKK_IS_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_CONTEXT)) #define SKK_IS_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_CONTEXT)) #define SKK_CONTEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_CONTEXT, SkkContextClass)) typedef struct _SkkContext SkkContext; typedef struct _SkkContextClass SkkContextClass; typedef struct _SkkContextPrivate SkkContextPrivate; typedef struct _SkkCandidatePrivate SkkCandidatePrivate; typedef struct _SkkCandidateListPrivate SkkCandidateListPrivate; #define SKK_TYPE_SIMPLE_CANDIDATE_LIST (skk_simple_candidate_list_get_type ()) #define SKK_SIMPLE_CANDIDATE_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_SIMPLE_CANDIDATE_LIST, SkkSimpleCandidateList)) #define SKK_SIMPLE_CANDIDATE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_SIMPLE_CANDIDATE_LIST, SkkSimpleCandidateListClass)) #define SKK_IS_SIMPLE_CANDIDATE_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_SIMPLE_CANDIDATE_LIST)) #define SKK_IS_SIMPLE_CANDIDATE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_SIMPLE_CANDIDATE_LIST)) #define SKK_SIMPLE_CANDIDATE_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_SIMPLE_CANDIDATE_LIST, SkkSimpleCandidateListClass)) typedef struct _SkkSimpleCandidateList SkkSimpleCandidateList; typedef struct _SkkSimpleCandidateListClass SkkSimpleCandidateListClass; typedef struct _SkkSimpleCandidateListPrivate SkkSimpleCandidateListPrivate; #define SKK_TYPE_PROXY_CANDIDATE_LIST (skk_proxy_candidate_list_get_type ()) #define SKK_PROXY_CANDIDATE_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_PROXY_CANDIDATE_LIST, SkkProxyCandidateList)) #define SKK_PROXY_CANDIDATE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_PROXY_CANDIDATE_LIST, SkkProxyCandidateListClass)) #define SKK_IS_PROXY_CANDIDATE_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_PROXY_CANDIDATE_LIST)) #define SKK_IS_PROXY_CANDIDATE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_PROXY_CANDIDATE_LIST)) #define SKK_PROXY_CANDIDATE_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_PROXY_CANDIDATE_LIST, SkkProxyCandidateListClass)) typedef struct _SkkProxyCandidateList SkkProxyCandidateList; typedef struct _SkkProxyCandidateListClass SkkProxyCandidateListClass; typedef struct _SkkProxyCandidateListPrivate SkkProxyCandidateListPrivate; #define SKK_TYPE_NICOLA_KEY_EVENT_FILTER (skk_nicola_key_event_filter_get_type ()) #define SKK_NICOLA_KEY_EVENT_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_NICOLA_KEY_EVENT_FILTER, SkkNicolaKeyEventFilter)) #define SKK_NICOLA_KEY_EVENT_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_NICOLA_KEY_EVENT_FILTER, SkkNicolaKeyEventFilterClass)) #define SKK_IS_NICOLA_KEY_EVENT_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_NICOLA_KEY_EVENT_FILTER)) #define SKK_IS_NICOLA_KEY_EVENT_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_NICOLA_KEY_EVENT_FILTER)) #define SKK_NICOLA_KEY_EVENT_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_NICOLA_KEY_EVENT_FILTER, SkkNicolaKeyEventFilterClass)) typedef struct _SkkNicolaKeyEventFilter SkkNicolaKeyEventFilter; typedef struct _SkkNicolaKeyEventFilterClass SkkNicolaKeyEventFilterClass; typedef struct _SkkNicolaKeyEventFilterPrivate SkkNicolaKeyEventFilterPrivate; #define SKK_TYPE_EXPR_NODE_TYPE (skk_expr_node_type_get_type ()) #define SKK_TYPE_EXPR_NODE (skk_expr_node_get_type ()) typedef struct _SkkExprNode SkkExprNode; #define SKK_TYPE_EXPR_READER (skk_expr_reader_get_type ()) #define SKK_EXPR_READER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_EXPR_READER, SkkExprReader)) #define SKK_EXPR_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_EXPR_READER, SkkExprReaderClass)) #define SKK_IS_EXPR_READER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_EXPR_READER)) #define SKK_IS_EXPR_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_EXPR_READER)) #define SKK_EXPR_READER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_EXPR_READER, SkkExprReaderClass)) typedef struct _SkkExprReader SkkExprReader; typedef struct _SkkExprReaderClass SkkExprReaderClass; typedef struct _SkkExprReaderPrivate SkkExprReaderPrivate; #define SKK_TYPE_EXPR_EVALUATOR (skk_expr_evaluator_get_type ()) #define SKK_EXPR_EVALUATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_EXPR_EVALUATOR, SkkExprEvaluator)) #define SKK_EXPR_EVALUATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_EXPR_EVALUATOR, SkkExprEvaluatorClass)) #define SKK_IS_EXPR_EVALUATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_EXPR_EVALUATOR)) #define SKK_IS_EXPR_EVALUATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_EXPR_EVALUATOR)) #define SKK_EXPR_EVALUATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_EXPR_EVALUATOR, SkkExprEvaluatorClass)) typedef struct _SkkExprEvaluator SkkExprEvaluator; typedef struct _SkkExprEvaluatorClass SkkExprEvaluatorClass; typedef struct _SkkExprEvaluatorPrivate SkkExprEvaluatorPrivate; #define SKK_TYPE_ENTRY (skk_entry_get_type ()) typedef struct _SkkEntry SkkEntry; #define SKK_TYPE_NUMERIC_CONVERSION_TYPE (skk_numeric_conversion_type_get_type ()) #define SKK_TYPE_UTIL (skk_util_get_type ()) #define SKK_UTIL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_UTIL, SkkUtil)) #define SKK_UTIL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_UTIL, SkkUtilClass)) #define SKK_IS_UTIL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_UTIL)) #define SKK_IS_UTIL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_UTIL)) #define SKK_UTIL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_UTIL, SkkUtilClass)) typedef struct _SkkUtil SkkUtil; typedef struct _SkkUtilClass SkkUtilClass; typedef struct _SkkUtilPrivate SkkUtilPrivate; typedef struct _SkkUnicodeStringPrivate SkkUnicodeStringPrivate; #define SKK_TYPE_MEMORY_MAPPED_FILE (skk_memory_mapped_file_get_type ()) #define SKK_MEMORY_MAPPED_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_MEMORY_MAPPED_FILE, SkkMemoryMappedFile)) #define SKK_MEMORY_MAPPED_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_MEMORY_MAPPED_FILE, SkkMemoryMappedFileClass)) #define SKK_IS_MEMORY_MAPPED_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_MEMORY_MAPPED_FILE)) #define SKK_IS_MEMORY_MAPPED_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_MEMORY_MAPPED_FILE)) #define SKK_MEMORY_MAPPED_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_MEMORY_MAPPED_FILE, SkkMemoryMappedFileClass)) typedef struct _SkkMemoryMappedFile SkkMemoryMappedFile; typedef struct _SkkMemoryMappedFileClass SkkMemoryMappedFileClass; typedef struct _SkkMemoryMappedFilePrivate SkkMemoryMappedFilePrivate; struct _SkkRomKanaEntry { gchar* rom; gchar* carryover; gchar* hiragana; gchar* katakana; gchar* hankaku_katakana; }; typedef enum { SKK_KANA_MODE_HIRAGANA, SKK_KANA_MODE_KATAKANA, SKK_KANA_MODE_HANKAKU_KATAKANA } SkkKanaMode; struct _SkkRomKanaNode { GObject parent_instance; SkkRomKanaNodePrivate * priv; SkkRomKanaEntry* entry; SkkRomKanaNode* parent; SkkRomKanaNode* children[128]; gchar c; guint n_children; gboolean valid[128]; }; struct _SkkRomKanaNodeClass { GObjectClass parent_class; }; typedef enum { SKK_PERIOD_STYLE_JA_JA, SKK_PERIOD_STYLE_EN_EN, SKK_PERIOD_STYLE_JA_EN, SKK_PERIOD_STYLE_EN_JA } SkkPeriodStyle; struct _SkkRomKanaConverter { GObject parent_instance; SkkRomKanaConverterPrivate * priv; }; struct _SkkRomKanaConverterClass { GObjectClass parent_class; }; struct _SkkKanaKanConverter { GObject parent_instance; SkkKanaKanConverterPrivate * priv; }; struct _SkkKanaKanConverterClass { GObjectClass parent_class; }; struct _SkkKanaKanDict { GObject parent_instance; SkkKanaKanDictPrivate * priv; }; struct _SkkKanaKanDictClass { GObjectClass parent_class; }; struct _SkkKanaKanScoreMap { GObject parent_instance; SkkKanaKanScoreMapPrivate * priv; }; struct _SkkKanaKanScoreMapClass { GObjectClass parent_class; }; struct _SkkKanaKanNode { GObject parent_instance; SkkKanaKanNodePrivate * priv; gchar* word; gchar* pron; gint endpos; gdouble score; SkkKanaKanNode* prev; }; struct _SkkKanaKanNodeClass { GObjectClass parent_class; }; struct _SkkKanaKanGraph { GObject parent_instance; SkkKanaKanGraphPrivate * priv; GeeArrayList** nodes; gint nodes_length1; gint _nodes_size_; SkkKanaKanNode* bos; SkkKanaKanNode* eos; }; struct _SkkKanaKanGraphClass { GObjectClass parent_class; }; struct _SkkEncodingConverter { GObject parent_instance; SkkEncodingConverterPrivate * priv; }; struct _SkkEncodingConverterClass { GObjectClass parent_class; }; struct _SkkDict { GObject parent_instance; SkkDictPrivate * priv; }; struct _SkkDictClass { GObjectClass parent_class; void (*reload) (SkkDict* self, GError** error); SkkCandidate** (*lookup) (SkkDict* self, const gchar* midasi, gboolean okuri, int* result_length1); gchar** (*complete) (SkkDict* self, const gchar* midasi, int* result_length1); gboolean (*select_candidate) (SkkDict* self, SkkCandidate* candidate); gboolean (*purge_candidate) (SkkDict* self, SkkCandidate* candidate); void (*save) (SkkDict* self, GError** error); gboolean (*get_read_only) (SkkDict* self); }; struct _SkkEmptyDict { SkkDict parent_instance; SkkEmptyDictPrivate * priv; }; struct _SkkEmptyDictClass { SkkDictClass parent_class; }; typedef enum { SKK_SKK_DICT_ERROR_NOT_READABLE, SKK_SKK_DICT_ERROR_MALFORMED_INPUT } SkkSkkDictError; #define SKK_SKK_DICT_ERROR skk_skk_dict_error_quark () struct _SkkFileDict { SkkDict parent_instance; SkkFileDictPrivate * priv; }; struct _SkkFileDictClass { SkkDictClass parent_class; }; struct _SkkCdbDict { SkkDict parent_instance; SkkCdbDictPrivate * priv; }; struct _SkkCdbDictClass { SkkDictClass parent_class; }; struct _SkkUserDict { SkkDict parent_instance; SkkUserDictPrivate * priv; }; struct _SkkUserDictClass { SkkDictClass parent_class; }; typedef enum { SKK_SKK_SERV_ERROR_NOT_READABLE, SKK_SKK_SERV_ERROR_INVALID_RESPONSE } SkkSkkServError; #define SKK_SKK_SERV_ERROR skk_skk_serv_error_quark () struct _SkkSkkServ { SkkDict parent_instance; SkkSkkServPrivate * priv; }; struct _SkkSkkServClass { SkkDictClass parent_class; }; typedef enum { SKK_KEY_EVENT_FORMAT_ERROR_PARSE_FAILED, SKK_KEY_EVENT_FORMAT_ERROR_KEYSYM_NOT_FOUND } SkkKeyEventFormatError; #define SKK_KEY_EVENT_FORMAT_ERROR skk_key_event_format_error_quark () typedef enum { SKK_MODIFIER_TYPE_NONE = 0, SKK_MODIFIER_TYPE_SHIFT_MASK = 1 << 0, SKK_MODIFIER_TYPE_LOCK_MASK = 1 << 1, SKK_MODIFIER_TYPE_CONTROL_MASK = 1 << 2, SKK_MODIFIER_TYPE_MOD1_MASK = 1 << 3, SKK_MODIFIER_TYPE_MOD2_MASK = 1 << 4, SKK_MODIFIER_TYPE_MOD3_MASK = 1 << 5, SKK_MODIFIER_TYPE_MOD4_MASK = 1 << 6, SKK_MODIFIER_TYPE_MOD5_MASK = 1 << 7, SKK_MODIFIER_TYPE_LSHIFT_MASK = 1 << 22, SKK_MODIFIER_TYPE_RSHIFT_MASK = 1 << 23, SKK_MODIFIER_TYPE_USLEEP_MASK = 1 << 24, SKK_MODIFIER_TYPE_SUPER_MASK = 1 << 26, SKK_MODIFIER_TYPE_HYPER_MASK = 1 << 27, SKK_MODIFIER_TYPE_META_MASK = 1 << 28, SKK_MODIFIER_TYPE_RELEASE_MASK = 1 << 30 } SkkModifierType; struct _SkkKeyEvent { GObject parent_instance; SkkKeyEventPrivate * priv; }; struct _SkkKeyEventClass { GObjectClass parent_class; }; struct _SkkKeyEventFilter { GObject parent_instance; SkkKeyEventFilterPrivate * priv; }; struct _SkkKeyEventFilterClass { GObjectClass parent_class; SkkKeyEvent* (*filter_key_event) (SkkKeyEventFilter* self, SkkKeyEvent* key); void (*reset) (SkkKeyEventFilter* self); }; struct _SkkSimpleKeyEventFilter { SkkKeyEventFilter parent_instance; SkkSimpleKeyEventFilterPrivate * priv; }; struct _SkkSimpleKeyEventFilterClass { SkkKeyEventFilterClass parent_class; }; struct _SkkKeymap { GObject parent_instance; SkkKeymapPrivate * priv; }; struct _SkkKeymapClass { GObjectClass parent_class; }; struct _SkkMapFile { GObject parent_instance; SkkMapFilePrivate * priv; }; struct _SkkMapFileClass { GObjectClass parent_class; }; struct _SkkKeymapMapFile { SkkMapFile parent_instance; SkkKeymapMapFilePrivate * priv; SkkKeymap* keymap; }; struct _SkkKeymapMapFileClass { SkkMapFileClass parent_class; }; struct _SkkRuleMetadata { gchar* base_dir; gchar* name; gchar* label; gchar* description; gchar* filter; }; typedef enum { SKK_RULE_PARSE_ERROR_FAILED } SkkRuleParseError; #define SKK_RULE_PARSE_ERROR skk_rule_parse_error_quark () struct _SkkRomKanaMapFile { SkkMapFile parent_instance; SkkRomKanaMapFilePrivate * priv; SkkRomKanaNode* root_node; }; struct _SkkRomKanaMapFileClass { SkkMapFileClass parent_class; }; struct _SkkRule { GObject parent_instance; SkkRulePrivate * priv; SkkKeymapMapFile** keymaps; gint keymaps_length1; gint _keymaps_size_; SkkRomKanaMapFile* rom_kana; }; struct _SkkRuleClass { GObjectClass parent_class; }; struct _SkkState { GObject parent_instance; SkkStatePrivate * priv; GType handler_type; GeeList* dictionaries; SkkCandidateList* candidates; SkkRomKanaConverter* rom_kana_converter; SkkRomKanaConverter* okuri_rom_kana_converter; gboolean okuri; gchar* midasi; GString* output; GString* abbrev; GString* kuten; GeeIterator* completion_iterator; gchar** auto_start_henkan_keywords; gint auto_start_henkan_keywords_length1; gint _auto_start_henkan_keywords_size_; gchar* auto_start_henkan_keyword; gboolean egg_like_newline; SkkUnicodeString* surrounding_text; guint surrounding_end; }; struct _SkkStateClass { GObjectClass parent_class; }; typedef enum { SKK_INPUT_MODE_HIRAGANA = SKK_KANA_MODE_HIRAGANA, SKK_INPUT_MODE_KATAKANA = SKK_KANA_MODE_KATAKANA, SKK_INPUT_MODE_HANKAKU_KATAKANA = SKK_KANA_MODE_HANKAKU_KATAKANA, SKK_INPUT_MODE_LATIN, SKK_INPUT_MODE_WIDE_LATIN, SKK_INPUT_MODE_LAST, SKK_INPUT_MODE_DEFAULT = SKK_INPUT_MODE_HIRAGANA } SkkInputMode; typedef gboolean (*SkkCommandHandler) (SkkState* state, void* user_data); struct _SkkStateHandler { GObject parent_instance; SkkStateHandlerPrivate * priv; }; struct _SkkStateHandlerClass { GObjectClass parent_class; gboolean (*process_key_event) (SkkStateHandler* self, SkkState* state, SkkKeyEvent** key); gchar* (*get_preedit) (SkkStateHandler* self, SkkState* state, guint* underline_offset, guint* underline_nchars); gchar* (*get_output) (SkkStateHandler* self, SkkState* state); }; struct _SkkNoneStateHandler { SkkStateHandler parent_instance; SkkNoneStateHandlerPrivate * priv; }; struct _SkkNoneStateHandlerClass { SkkStateHandlerClass parent_class; }; struct _SkkKutenStateHandler { SkkStateHandler parent_instance; SkkKutenStateHandlerPrivate * priv; }; struct _SkkKutenStateHandlerClass { SkkStateHandlerClass parent_class; }; struct _SkkAbbrevStateHandler { SkkStateHandler parent_instance; SkkAbbrevStateHandlerPrivate * priv; }; struct _SkkAbbrevStateHandlerClass { SkkStateHandlerClass parent_class; }; struct _SkkStartStateHandler { SkkStateHandler parent_instance; SkkStartStateHandlerPrivate * priv; }; struct _SkkStartStateHandlerClass { SkkStateHandlerClass parent_class; }; struct _SkkSelectStateHandler { SkkStateHandler parent_instance; SkkSelectStateHandlerPrivate * priv; }; struct _SkkSelectStateHandlerClass { SkkStateHandlerClass parent_class; }; struct _SkkContext { GObject parent_instance; SkkContextPrivate * priv; }; struct _SkkContextClass { GObjectClass parent_class; }; struct _SkkCandidate { GObject parent_instance; SkkCandidatePrivate * priv; }; struct _SkkCandidateClass { GObjectClass parent_class; }; struct _SkkCandidateList { GObject parent_instance; SkkCandidateListPrivate * priv; }; struct _SkkCandidateListClass { GObjectClass parent_class; SkkCandidate* (*get) (SkkCandidateList* self, gint index); void (*clear) (SkkCandidateList* self); void (*add_candidates) (SkkCandidateList* self, SkkCandidate** array, int array_length1); void (*add_candidates_end) (SkkCandidateList* self); gboolean (*cursor_up) (SkkCandidateList* self); gboolean (*cursor_down) (SkkCandidateList* self); gboolean (*page_up) (SkkCandidateList* self); gboolean (*page_down) (SkkCandidateList* self); gboolean (*next) (SkkCandidateList* self); gboolean (*previous) (SkkCandidateList* self); gboolean (*select_at) (SkkCandidateList* self, guint index_in_page); void (*select) (SkkCandidateList* self); gint (*get_cursor_pos) (SkkCandidateList* self); gint (*get_size) (SkkCandidateList* self); guint (*get_page_start) (SkkCandidateList* self); void (*set_page_start) (SkkCandidateList* self, guint value); guint (*get_page_size) (SkkCandidateList* self); void (*set_page_size) (SkkCandidateList* self, guint value); gboolean (*get_page_visible) (SkkCandidateList* self); }; struct _SkkSimpleCandidateList { SkkCandidateList parent_instance; SkkSimpleCandidateListPrivate * priv; }; struct _SkkSimpleCandidateListClass { SkkCandidateListClass parent_class; }; struct _SkkProxyCandidateList { SkkCandidateList parent_instance; SkkProxyCandidateListPrivate * priv; }; struct _SkkProxyCandidateListClass { SkkCandidateListClass parent_class; }; typedef gint64 (*SkkGetTime) (void* user_data); struct _SkkNicolaKeyEventFilter { SkkKeyEventFilter parent_instance; SkkNicolaKeyEventFilterPrivate * priv; SkkGetTime get_time_func; gpointer get_time_func_target; GDestroyNotify get_time_func_target_destroy_notify; gint64 timeout; gint64 overlap; gint64 maxwait; gchar** special_doubles; gint special_doubles_length1; }; struct _SkkNicolaKeyEventFilterClass { SkkKeyEventFilterClass parent_class; }; typedef enum { SKK_EXPR_NODE_TYPE_ARRAY, SKK_EXPR_NODE_TYPE_SYMBOL, SKK_EXPR_NODE_TYPE_STRING } SkkExprNodeType; struct _SkkExprNode { SkkExprNodeType type; GeeLinkedList* nodes; gchar* data; }; struct _SkkExprReader { GObject parent_instance; SkkExprReaderPrivate * priv; }; struct _SkkExprReaderClass { GObjectClass parent_class; }; struct _SkkExprEvaluator { GObject parent_instance; SkkExprEvaluatorPrivate * priv; }; struct _SkkExprEvaluatorClass { GObjectClass parent_class; }; struct _SkkEntry { gpointer key; gpointer value; }; typedef enum { SKK_NUMERIC_CONVERSION_TYPE_LATIN, SKK_NUMERIC_CONVERSION_TYPE_WIDE_LATIN, SKK_NUMERIC_CONVERSION_TYPE_KANJI_NUMERAL, SKK_NUMERIC_CONVERSION_TYPE_KANJI, SKK_NUMERIC_CONVERSION_TYPE_RECONVERT, SKK_NUMERIC_CONVERSION_TYPE_DAIJI, SKK_NUMERIC_CONVERSION_TYPE_SHOGI } SkkNumericConversionType; struct _SkkUtil { GObject parent_instance; SkkUtilPrivate * priv; }; struct _SkkUtilClass { GObjectClass parent_class; }; struct _SkkUnicodeString { GObject parent_instance; SkkUnicodeStringPrivate * priv; gint length; }; struct _SkkUnicodeStringClass { GObjectClass parent_class; }; struct _SkkMemoryMappedFile { GObject parent_instance; SkkMemoryMappedFilePrivate * priv; }; struct _SkkMemoryMappedFileClass { GObjectClass parent_class; }; GType skk_rom_kana_entry_get_type (void) G_GNUC_CONST; SkkRomKanaEntry* skk_rom_kana_entry_dup (const SkkRomKanaEntry* self); void skk_rom_kana_entry_free (SkkRomKanaEntry* self); void skk_rom_kana_entry_copy (const SkkRomKanaEntry* self, SkkRomKanaEntry* dest); void skk_rom_kana_entry_destroy (SkkRomKanaEntry* self); GType skk_kana_mode_get_type (void) G_GNUC_CONST; gchar* skk_rom_kana_entry_get_kana (SkkRomKanaEntry *self, SkkKanaMode kana_mode); GType skk_rom_kana_node_get_type (void) G_GNUC_CONST; SkkRomKanaNode* skk_rom_kana_node_new (SkkRomKanaEntry* entry); SkkRomKanaNode* skk_rom_kana_node_construct (GType object_type, SkkRomKanaEntry* entry); void skk_rom_kana_node_insert (SkkRomKanaNode* self, const gchar* key, SkkRomKanaEntry* entry); GType skk_period_style_get_type (void) G_GNUC_CONST; GType skk_rom_kana_converter_get_type (void) G_GNUC_CONST; SkkRomKanaConverter* skk_rom_kana_converter_new (void); SkkRomKanaConverter* skk_rom_kana_converter_construct (GType object_type); gboolean skk_rom_kana_converter_is_valid (SkkRomKanaConverter* self, gunichar uc); gboolean skk_rom_kana_converter_output_nn_if_any (SkkRomKanaConverter* self); void skk_rom_kana_converter_append_text (SkkRomKanaConverter* self, const gchar* text); gboolean skk_rom_kana_converter_append (SkkRomKanaConverter* self, gunichar uc); gboolean skk_rom_kana_converter_can_consume (SkkRomKanaConverter* self, gunichar uc, gboolean preedit_only, gboolean no_carryover); void skk_rom_kana_converter_reset (SkkRomKanaConverter* self); gboolean skk_rom_kana_converter_delete (SkkRomKanaConverter* self); GType skk_map_file_get_type (void) G_GNUC_CONST; GType skk_rom_kana_map_file_get_type (void) G_GNUC_CONST; SkkRomKanaMapFile* skk_rom_kana_converter_get_rule (SkkRomKanaConverter* self); void skk_rom_kana_converter_set_rule (SkkRomKanaConverter* self, SkkRomKanaMapFile* value); SkkKanaMode skk_rom_kana_converter_get_kana_mode (SkkRomKanaConverter* self); void skk_rom_kana_converter_set_kana_mode (SkkRomKanaConverter* self, SkkKanaMode value); SkkPeriodStyle skk_rom_kana_converter_get_period_style (SkkRomKanaConverter* self); void skk_rom_kana_converter_set_period_style (SkkRomKanaConverter* self, SkkPeriodStyle value); const gchar* skk_rom_kana_converter_get_output (SkkRomKanaConverter* self); void skk_rom_kana_converter_set_output (SkkRomKanaConverter* self, const gchar* value); const gchar* skk_rom_kana_converter_get_preedit (SkkRomKanaConverter* self); GType skk_kana_kan_converter_get_type (void) G_GNUC_CONST; GType skk_kana_kan_dict_get_type (void) G_GNUC_CONST; GType skk_kana_kan_score_map_get_type (void) G_GNUC_CONST; SkkKanaKanConverter* skk_kana_kan_converter_new (SkkKanaKanDict* dict, SkkKanaKanScoreMap* map); SkkKanaKanConverter* skk_kana_kan_converter_construct (GType object_type, SkkKanaKanDict* dict, SkkKanaKanScoreMap* map); gchar* skk_kana_kan_converter_convert (SkkKanaKanConverter* self, const gchar* kana); SkkKanaKanDict* skk_kana_kan_dict_new (const gchar* path, GError** error); SkkKanaKanDict* skk_kana_kan_dict_construct (GType object_type, const gchar* path, GError** error); void skk_kana_kan_dict_add (SkkKanaKanDict* self, const gchar* pron, const gchar* word); GeeSet* skk_kana_kan_dict_lookup (SkkKanaKanDict* self, const gchar* pron); SkkKanaKanScoreMap* skk_kana_kan_score_map_new (const gchar* path, SkkKanaKanDict* dict, GError** error); SkkKanaKanScoreMap* skk_kana_kan_score_map_construct (GType object_type, const gchar* path, SkkKanaKanDict* dict, GError** error); GType skk_kana_kan_node_get_type (void) G_GNUC_CONST; gdouble skk_kana_kan_score_map_get_node_score (SkkKanaKanScoreMap* self, SkkKanaKanNode* node); gdouble skk_kana_kan_score_map_get_edge_score (SkkKanaKanScoreMap* self, SkkKanaKanNode* prev_node, SkkKanaKanNode* node); SkkKanaKanNode* skk_kana_kan_node_new (const gchar* word, const gchar* pron, gint endpos); SkkKanaKanNode* skk_kana_kan_node_construct (GType object_type, const gchar* word, const gchar* pron, gint endpos); gboolean skk_kana_kan_node_is_bos (SkkKanaKanNode* self); gboolean skk_kana_kan_node_is_eos (SkkKanaKanNode* self); gint skk_kana_kan_node_get_length (SkkKanaKanNode* self); GType skk_kana_kan_graph_get_type (void) G_GNUC_CONST; SkkKanaKanGraph* skk_kana_kan_graph_new (SkkKanaKanDict* dict, const gchar* str); SkkKanaKanGraph* skk_kana_kan_graph_construct (GType object_type, SkkKanaKanDict* dict, const gchar* str); GeeArrayList* skk_kana_kan_graph_get_prev_nodes (SkkKanaKanGraph* self, SkkKanaKanNode* node); GType skk_encoding_converter_get_type (void) G_GNUC_CONST; gchar* skk_encoding_converter_extract_coding_system (const gchar* line); gchar* skk_encoding_converter_get_coding_system (SkkEncodingConverter* self); SkkEncodingConverter* skk_encoding_converter_new (const gchar* encoding, GError** error); SkkEncodingConverter* skk_encoding_converter_construct (GType object_type, const gchar* encoding, GError** error); SkkEncodingConverter* skk_encoding_converter_new_from_coding_system (const gchar* coding, GError** error); SkkEncodingConverter* skk_encoding_converter_construct_from_coding_system (GType object_type, const gchar* coding, GError** error); gchar* skk_encoding_converter_encode (SkkEncodingConverter* self, const gchar* internal_str, GError** error); gchar* skk_encoding_converter_decode (SkkEncodingConverter* self, const gchar* external_str, GError** error); const gchar* skk_encoding_converter_get_encoding (SkkEncodingConverter* self); GType skk_dict_get_type (void) G_GNUC_CONST; GType skk_candidate_get_type (void) G_GNUC_CONST; SkkCandidate** skk_dict_split_candidates (SkkDict* self, const gchar* midasi, gboolean okuri, const gchar* line, int* result_length1); gchar* skk_dict_join_candidates (SkkDict* self, SkkCandidate** candidates, int candidates_length1); void skk_dict_reload (SkkDict* self, GError** error); SkkCandidate** skk_dict_lookup (SkkDict* self, const gchar* midasi, gboolean okuri, int* result_length1); gchar** skk_dict_complete (SkkDict* self, const gchar* midasi, int* result_length1); gboolean skk_dict_select_candidate (SkkDict* self, SkkCandidate* candidate); gboolean skk_dict_purge_candidate (SkkDict* self, SkkCandidate* candidate); void skk_dict_save (SkkDict* self, GError** error); SkkDict* skk_dict_construct (GType object_type); gboolean skk_dict_get_read_only (SkkDict* self); GType skk_empty_dict_get_type (void) G_GNUC_CONST; SkkEmptyDict* skk_empty_dict_new (void); SkkEmptyDict* skk_empty_dict_construct (GType object_type); GQuark skk_skk_dict_error_quark (void); GType skk_file_dict_get_type (void) G_GNUC_CONST; SkkFileDict* skk_file_dict_new (const gchar* path, const gchar* encoding, GError** error); SkkFileDict* skk_file_dict_construct (GType object_type, const gchar* path, const gchar* encoding, GError** error); GType skk_cdb_dict_get_type (void) G_GNUC_CONST; SkkCdbDict* skk_cdb_dict_new (const gchar* path, const gchar* encoding, GError** error); SkkCdbDict* skk_cdb_dict_construct (GType object_type, const gchar* path, const gchar* encoding, GError** error); GType skk_user_dict_get_type (void) G_GNUC_CONST; SkkUserDict* skk_user_dict_new (const gchar* path, const gchar* encoding, GError** error); SkkUserDict* skk_user_dict_construct (GType object_type, const gchar* path, const gchar* encoding, GError** error); GQuark skk_skk_serv_error_quark (void); GType skk_skk_serv_get_type (void) G_GNUC_CONST; SkkSkkServ* skk_skk_serv_new (const gchar* host, guint16 port, const gchar* encoding, GError** error); SkkSkkServ* skk_skk_serv_construct (GType object_type, const gchar* host, guint16 port, const gchar* encoding, GError** error); GQuark skk_key_event_format_error_quark (void); GType skk_modifier_type_get_type (void) G_GNUC_CONST; GType skk_key_event_get_type (void) G_GNUC_CONST; SkkKeyEvent* skk_key_event_new (const gchar* name, gunichar code, SkkModifierType modifiers); SkkKeyEvent* skk_key_event_construct (GType object_type, const gchar* name, gunichar code, SkkModifierType modifiers); SkkKeyEvent* skk_key_event_copy (SkkKeyEvent* self); SkkKeyEvent* skk_key_event_new_from_string (const gchar* key, GError** error); SkkKeyEvent* skk_key_event_construct_from_string (GType object_type, const gchar* key, GError** error); gchar* skk_key_event_to_string (SkkKeyEvent* self); SkkKeyEvent* skk_key_event_new_from_x_keysym (guint keyval, SkkModifierType modifiers, GError** error); SkkKeyEvent* skk_key_event_construct_from_x_keysym (GType object_type, guint keyval, SkkModifierType modifiers, GError** error); gboolean skk_key_event_base_equal (SkkKeyEvent* self, SkkKeyEvent* key); const gchar* skk_key_event_get_name (SkkKeyEvent* self); gunichar skk_key_event_get_code (SkkKeyEvent* self); SkkModifierType skk_key_event_get_modifiers (SkkKeyEvent* self); void skk_key_event_set_modifiers (SkkKeyEvent* self, SkkModifierType value); GType skk_key_event_filter_get_type (void) G_GNUC_CONST; SkkKeyEvent* skk_key_event_filter_filter_key_event (SkkKeyEventFilter* self, SkkKeyEvent* key); void skk_key_event_filter_reset (SkkKeyEventFilter* self); SkkKeyEventFilter* skk_key_event_filter_construct (GType object_type); GType skk_simple_key_event_filter_get_type (void) G_GNUC_CONST; SkkSimpleKeyEventFilter* skk_simple_key_event_filter_new (void); SkkSimpleKeyEventFilter* skk_simple_key_event_filter_construct (GType object_type); GType skk_keymap_get_type (void) G_GNUC_CONST; void skk_keymap_set (SkkKeymap* self, const gchar* key, const gchar* command); gchar* skk_keymap_lookup_key (SkkKeymap* self, SkkKeyEvent* key); SkkKeyEvent* skk_keymap_where_is (SkkKeymap* self, const gchar* command); SkkKeymap* skk_keymap_new (void); SkkKeymap* skk_keymap_construct (GType object_type); GType skk_keymap_map_file_get_type (void) G_GNUC_CONST; GType skk_rule_metadata_get_type (void) G_GNUC_CONST; SkkRuleMetadata* skk_rule_metadata_dup (const SkkRuleMetadata* self); void skk_rule_metadata_free (SkkRuleMetadata* self); void skk_rule_metadata_copy (const SkkRuleMetadata* self, SkkRuleMetadata* dest); void skk_rule_metadata_destroy (SkkRuleMetadata* self); GQuark skk_rule_parse_error_quark (void); SkkKeymapMapFile* skk_keymap_map_file_new (SkkRuleMetadata* metadata, const gchar* mode, GError** error); SkkKeymapMapFile* skk_keymap_map_file_construct (GType object_type, SkkRuleMetadata* metadata, const gchar* mode, GError** error); SkkRomKanaMapFile* skk_rom_kana_map_file_new (SkkRuleMetadata* metadata, GError** error); SkkRomKanaMapFile* skk_rom_kana_map_file_construct (GType object_type, SkkRuleMetadata* metadata, GError** error); gchar* skk_rule_metadata_locate_map_file (SkkRuleMetadata *self, const gchar* type, const gchar* name); GType skk_rule_get_type (void) G_GNUC_CONST; SkkKeyEventFilter* skk_rule_get_filter (SkkRule* self); SkkRule* skk_rule_new (const gchar* name, GError** error); SkkRule* skk_rule_construct (GType object_type, const gchar* name, GError** error); SkkRuleMetadata* skk_rule_find_rule (const gchar* name); SkkRuleMetadata* skk_rule_list (int* result_length1); void skk_rule_get_metadata (SkkRule* self, SkkRuleMetadata* result); SkkMapFile* skk_map_file_construct (GType object_type, SkkRuleMetadata* metadata, const gchar* type, const gchar* name, GError** error); gboolean skk_map_file_has_map (SkkMapFile* self, const gchar* name); GeeMap* skk_map_file_get (SkkMapFile* self, const gchar* name); GType skk_state_get_type (void) G_GNUC_CONST; GType skk_candidate_list_get_type (void) G_GNUC_CONST; GType skk_unicode_string_get_type (void) G_GNUC_CONST; gchar* skk_state_lookup_key (SkkState* self, SkkKeyEvent* key); SkkKeyEvent* skk_state_where_is (SkkState* self, const gchar* command); gboolean skk_state_isupper (SkkState* self, SkkKeyEvent* key, gunichar* lower_code); SkkState* skk_state_new (GeeList* dictionaries); SkkState* skk_state_construct (GType object_type, GeeList* dictionaries); void skk_state_output_surrounding_text (SkkState* self); void skk_state_reset (SkkState* self); void skk_state_cancel_okuri (SkkState* self); void skk_state_lookup (SkkState* self, const gchar* midasi, gboolean okuri); void skk_state_purge_candidate (SkkState* self, SkkCandidate* candidate); void skk_state_completion_start (SkkState* self, const gchar* midasi); gchar* skk_state_get_yomi (SkkState* self); GType skk_input_mode_get_type (void) G_GNUC_CONST; SkkInputMode skk_state_get_input_mode (SkkState* self); void skk_state_set_input_mode (SkkState* self, SkkInputMode value); SkkPeriodStyle skk_state_get_period_style (SkkState* self); void skk_state_set_period_style (SkkState* self, SkkPeriodStyle value); SkkRule* skk_state_get_typing_rule (SkkState* self); void skk_state_set_typing_rule (SkkState* self, SkkRule* value); GType skk_state_handler_get_type (void) G_GNUC_CONST; gboolean skk_state_handler_process_key_event (SkkStateHandler* self, SkkState* state, SkkKeyEvent** key); gchar* skk_state_handler_get_preedit (SkkStateHandler* self, SkkState* state, guint* underline_offset, guint* underline_nchars); gchar* skk_state_handler_get_output (SkkStateHandler* self, SkkState* state); SkkStateHandler* skk_state_handler_construct (GType object_type); GType skk_none_state_handler_get_type (void) G_GNUC_CONST; SkkNoneStateHandler* skk_none_state_handler_new (void); SkkNoneStateHandler* skk_none_state_handler_construct (GType object_type); GType skk_kuten_state_handler_get_type (void) G_GNUC_CONST; SkkKutenStateHandler* skk_kuten_state_handler_new (void); SkkKutenStateHandler* skk_kuten_state_handler_construct (GType object_type); GType skk_abbrev_state_handler_get_type (void) G_GNUC_CONST; SkkAbbrevStateHandler* skk_abbrev_state_handler_new (void); SkkAbbrevStateHandler* skk_abbrev_state_handler_construct (GType object_type); GType skk_start_state_handler_get_type (void) G_GNUC_CONST; SkkStartStateHandler* skk_start_state_handler_new (void); SkkStartStateHandler* skk_start_state_handler_construct (GType object_type); GType skk_select_state_handler_get_type (void) G_GNUC_CONST; SkkSelectStateHandler* skk_select_state_handler_new (void); SkkSelectStateHandler* skk_select_state_handler_construct (GType object_type); void skk_init (void); GType skk_context_get_type (void) G_GNUC_CONST; void skk_context_add_dictionary (SkkContext* self, SkkDict* dict); void skk_context_remove_dictionary (SkkContext* self, SkkDict* dict); SkkContext* skk_context_new (SkkDict** dictionaries, int dictionaries_length1); SkkContext* skk_context_construct (GType object_type, SkkDict** dictionaries, int dictionaries_length1); gboolean skk_context_process_key_events (SkkContext* self, const gchar* keyseq); gboolean skk_context_process_key_event (SkkContext* self, SkkKeyEvent* key); void skk_context_reset (SkkContext* self); gchar* skk_context_get_output (SkkContext* self); gchar* skk_context_peek_output (SkkContext* self); gchar* skk_context_poll_output (SkkContext* self); void skk_context_clear_output (SkkContext* self); void skk_context_get_preedit_underline (SkkContext* self, guint* offset, guint* nchars); void skk_context_save_dictionaries (SkkContext* self, GError** error); SkkDict** skk_context_get_dictionaries (SkkContext* self, int* result_length1); void skk_context_set_dictionaries (SkkContext* self, SkkDict** value, int value_length1); SkkCandidateList* skk_context_get_candidates (SkkContext* self); SkkInputMode skk_context_get_input_mode (SkkContext* self); void skk_context_set_input_mode (SkkContext* self, SkkInputMode value); gchar** skk_context_get_auto_start_henkan_keywords (SkkContext* self, int* result_length1); void skk_context_set_auto_start_henkan_keywords (SkkContext* self, gchar** value, int value_length1); gboolean skk_context_get_egg_like_newline (SkkContext* self); void skk_context_set_egg_like_newline (SkkContext* self, gboolean value); SkkPeriodStyle skk_context_get_period_style (SkkContext* self); void skk_context_set_period_style (SkkContext* self, SkkPeriodStyle value); SkkRule* skk_context_get_typing_rule (SkkContext* self); void skk_context_set_typing_rule (SkkContext* self, SkkRule* value); SkkKeyEventFilter* skk_context_get_key_event_filter (SkkContext* self); const gchar* skk_context_get_preedit (SkkContext* self); gchar* skk_candidate_to_string (SkkCandidate* self); SkkCandidate* skk_candidate_new (const gchar* midasi, gboolean okuri, const gchar* text, const gchar* annotation, const gchar* output); SkkCandidate* skk_candidate_construct (GType object_type, const gchar* midasi, gboolean okuri, const gchar* text, const gchar* annotation, const gchar* output); const gchar* skk_candidate_get_midasi (SkkCandidate* self); gboolean skk_candidate_get_okuri (SkkCandidate* self); const gchar* skk_candidate_get_text (SkkCandidate* self); void skk_candidate_set_text (SkkCandidate* self, const gchar* value); const gchar* skk_candidate_get_annotation (SkkCandidate* self); void skk_candidate_set_annotation (SkkCandidate* self, const gchar* value); const gchar* skk_candidate_get_output (SkkCandidate* self); void skk_candidate_set_output (SkkCandidate* self, const gchar* value); SkkCandidate* skk_candidate_list_get (SkkCandidateList* self, gint index); void skk_candidate_list_clear (SkkCandidateList* self); void skk_candidate_list_add_candidates (SkkCandidateList* self, SkkCandidate** array, int array_length1); void skk_candidate_list_add_candidates_end (SkkCandidateList* self); gboolean skk_candidate_list_cursor_up (SkkCandidateList* self); gboolean skk_candidate_list_cursor_down (SkkCandidateList* self); gboolean skk_candidate_list_page_up (SkkCandidateList* self); gboolean skk_candidate_list_page_down (SkkCandidateList* self); gboolean skk_candidate_list_next (SkkCandidateList* self); gboolean skk_candidate_list_previous (SkkCandidateList* self); guint skk_candidate_list_get_page_start_cursor_pos (SkkCandidateList* self); gboolean skk_candidate_list_select_at (SkkCandidateList* self, guint index_in_page); void skk_candidate_list_select (SkkCandidateList* self); SkkCandidateList* skk_candidate_list_construct (GType object_type); gint skk_candidate_list_get_cursor_pos (SkkCandidateList* self); gint skk_candidate_list_get_size (SkkCandidateList* self); guint skk_candidate_list_get_page_start (SkkCandidateList* self); void skk_candidate_list_set_page_start (SkkCandidateList* self, guint value); guint skk_candidate_list_get_page_size (SkkCandidateList* self); void skk_candidate_list_set_page_size (SkkCandidateList* self, guint value); gboolean skk_candidate_list_get_page_visible (SkkCandidateList* self); GType skk_simple_candidate_list_get_type (void) G_GNUC_CONST; SkkSimpleCandidateList* skk_simple_candidate_list_new (guint page_start, guint page_size); SkkSimpleCandidateList* skk_simple_candidate_list_construct (GType object_type, guint page_start, guint page_size); GType skk_proxy_candidate_list_get_type (void) G_GNUC_CONST; SkkProxyCandidateList* skk_proxy_candidate_list_new (SkkCandidateList* candidates); SkkProxyCandidateList* skk_proxy_candidate_list_construct (GType object_type, SkkCandidateList* candidates); SkkCandidateList* skk_proxy_candidate_list_get_candidates (SkkProxyCandidateList* self); void skk_proxy_candidate_list_set_candidates (SkkProxyCandidateList* self, SkkCandidateList* value); GType skk_nicola_key_event_filter_get_type (void) G_GNUC_CONST; SkkNicolaKeyEventFilter* skk_nicola_key_event_filter_new (void); SkkNicolaKeyEventFilter* skk_nicola_key_event_filter_construct (GType object_type); GType skk_expr_node_type_get_type (void) G_GNUC_CONST; GType skk_expr_node_get_type (void) G_GNUC_CONST; SkkExprNode* skk_expr_node_dup (const SkkExprNode* self); void skk_expr_node_free (SkkExprNode* self); void skk_expr_node_copy (const SkkExprNode* self, SkkExprNode* dest); void skk_expr_node_destroy (SkkExprNode* self); void skk_expr_node_init (SkkExprNode *self, SkkExprNodeType type); GType skk_expr_reader_get_type (void) G_GNUC_CONST; void skk_expr_reader_read_symbol (SkkExprReader* self, const gchar* expr, gint* index, SkkExprNode* result); void skk_expr_reader_read_string (SkkExprReader* self, const gchar* expr, gint* index, SkkExprNode* result); SkkExprNode* skk_expr_reader_read_expr (SkkExprReader* self, const gchar* expr, gint* index); SkkExprReader* skk_expr_reader_new (void); SkkExprReader* skk_expr_reader_construct (GType object_type); GType skk_expr_evaluator_get_type (void) G_GNUC_CONST; gchar* skk_expr_evaluator_eval (SkkExprEvaluator* self, SkkExprNode* node); SkkExprEvaluator* skk_expr_evaluator_new (void); SkkExprEvaluator* skk_expr_evaluator_construct (GType object_type); GType skk_entry_get_type (void) G_GNUC_CONST; SkkEntry* skk_entry_dup (const SkkEntry* self); void skk_entry_free (SkkEntry* self); void skk_entry_copy (const SkkEntry* self, SkkEntry* dest); void skk_entry_destroy (SkkEntry* self); GType skk_numeric_conversion_type_get_type (void) G_GNUC_CONST; GType skk_util_get_type (void) G_GNUC_CONST; gchar* skk_util_get_okurigana_prefix (const gchar* okurigana); gunichar skk_util_get_wide_latin_char (gchar c); gchar* skk_util_get_wide_latin (const gchar* latin); gchar* skk_util_get_katakana (const gchar* kana); gchar* skk_util_get_hiragana (const gchar* kana); gchar* skk_util_get_hankaku_katakana (const gchar* kana); gchar* skk_util_convert_by_input_mode (const gchar* str, SkkInputMode input_mode); gchar* skk_util_get_numeric (gint numeric, SkkNumericConversionType type); gchar** skk_util_build_data_path (const gchar* subdir, int* result_length1); SkkUtil* skk_util_new (void); SkkUtil* skk_util_construct (GType object_type); SkkUnicodeString* skk_unicode_string_new (const gchar* str); SkkUnicodeString* skk_unicode_string_construct (GType object_type, const gchar* str); gchar* skk_unicode_string_substring (SkkUnicodeString* self, glong offset, glong len); GType skk_memory_mapped_file_get_type (void) G_GNUC_CONST; SkkMemoryMappedFile* skk_memory_mapped_file_new (GFile* file); SkkMemoryMappedFile* skk_memory_mapped_file_construct (GType object_type, GFile* file); void skk_memory_mapped_file_remap (SkkMemoryMappedFile* self, GError** error); void* skk_memory_mapped_file_get_memory (SkkMemoryMappedFile* self); gsize skk_memory_mapped_file_get_length (SkkMemoryMappedFile* self); #define SKK_KEYSYMS_VoidSymbol ((guint) 0xffffff) #define SKK_KEYSYMS_BackSpace ((guint) 0xff08) #define SKK_KEYSYMS_Tab ((guint) 0xff09) #define SKK_KEYSYMS_Linefeed ((guint) 0xff0a) #define SKK_KEYSYMS_Clear ((guint) 0xff0b) #define SKK_KEYSYMS_Return ((guint) 0xff0d) #define SKK_KEYSYMS_Pause ((guint) 0xff13) #define SKK_KEYSYMS_Scroll_Lock ((guint) 0xff14) #define SKK_KEYSYMS_Sys_Req ((guint) 0xff15) #define SKK_KEYSYMS_Escape ((guint) 0xff1b) #define SKK_KEYSYMS_Delete ((guint) 0xffff) #define SKK_KEYSYMS_Multi_key ((guint) 0xff20) #define SKK_KEYSYMS_Codeinput ((guint) 0xff37) #define SKK_KEYSYMS_SingleCandidate ((guint) 0xff3c) #define SKK_KEYSYMS_MultipleCandidate ((guint) 0xff3d) #define SKK_KEYSYMS_PreviousCandidate ((guint) 0xff3e) #define SKK_KEYSYMS_Kanji ((guint) 0xff21) #define SKK_KEYSYMS_Muhenkan ((guint) 0xff22) #define SKK_KEYSYMS_Henkan_Mode ((guint) 0xff23) #define SKK_KEYSYMS_Henkan ((guint) 0xff23) #define SKK_KEYSYMS_Romaji ((guint) 0xff24) #define SKK_KEYSYMS_Hiragana ((guint) 0xff25) #define SKK_KEYSYMS_Katakana ((guint) 0xff26) #define SKK_KEYSYMS_Hiragana_Katakana ((guint) 0xff27) #define SKK_KEYSYMS_Zenkaku ((guint) 0xff28) #define SKK_KEYSYMS_Hankaku ((guint) 0xff29) #define SKK_KEYSYMS_Zenkaku_Hankaku ((guint) 0xff2a) #define SKK_KEYSYMS_Touroku ((guint) 0xff2b) #define SKK_KEYSYMS_Massyo ((guint) 0xff2c) #define SKK_KEYSYMS_Kana_Lock ((guint) 0xff2d) #define SKK_KEYSYMS_Kana_Shift ((guint) 0xff2e) #define SKK_KEYSYMS_Eisu_Shift ((guint) 0xff2f) #define SKK_KEYSYMS_Eisu_toggle ((guint) 0xff30) #define SKK_KEYSYMS_Kanji_Bangou ((guint) 0xff37) #define SKK_KEYSYMS_Zen_Koho ((guint) 0xff3d) #define SKK_KEYSYMS_Mae_Koho ((guint) 0xff3e) #define SKK_KEYSYMS_Home ((guint) 0xff50) #define SKK_KEYSYMS_Left ((guint) 0xff51) #define SKK_KEYSYMS_Up ((guint) 0xff52) #define SKK_KEYSYMS_Right ((guint) 0xff53) #define SKK_KEYSYMS_Down ((guint) 0xff54) #define SKK_KEYSYMS_Prior ((guint) 0xff55) #define SKK_KEYSYMS_Page_Up ((guint) 0xff55) #define SKK_KEYSYMS_Next ((guint) 0xff56) #define SKK_KEYSYMS_Page_Down ((guint) 0xff56) #define SKK_KEYSYMS_End ((guint) 0xff57) #define SKK_KEYSYMS_Begin ((guint) 0xff58) #define SKK_KEYSYMS_Select ((guint) 0xff60) #define SKK_KEYSYMS_Print ((guint) 0xff61) #define SKK_KEYSYMS_Execute ((guint) 0xff62) #define SKK_KEYSYMS_Insert ((guint) 0xff63) #define SKK_KEYSYMS_Undo ((guint) 0xff65) #define SKK_KEYSYMS_Redo ((guint) 0xff66) #define SKK_KEYSYMS_Menu ((guint) 0xff67) #define SKK_KEYSYMS_Find ((guint) 0xff68) #define SKK_KEYSYMS_Cancel ((guint) 0xff69) #define SKK_KEYSYMS_Help ((guint) 0xff6a) #define SKK_KEYSYMS_Break ((guint) 0xff6b) #define SKK_KEYSYMS_Mode_switch ((guint) 0xff7e) #define SKK_KEYSYMS_script_switch ((guint) 0xff7e) #define SKK_KEYSYMS_Num_Lock ((guint) 0xff7f) #define SKK_KEYSYMS_KP_Space ((guint) 0xff80) #define SKK_KEYSYMS_KP_Tab ((guint) 0xff89) #define SKK_KEYSYMS_KP_Enter ((guint) 0xff8d) #define SKK_KEYSYMS_KP_F1 ((guint) 0xff91) #define SKK_KEYSYMS_KP_F2 ((guint) 0xff92) #define SKK_KEYSYMS_KP_F3 ((guint) 0xff93) #define SKK_KEYSYMS_KP_F4 ((guint) 0xff94) #define SKK_KEYSYMS_KP_Home ((guint) 0xff95) #define SKK_KEYSYMS_KP_Left ((guint) 0xff96) #define SKK_KEYSYMS_KP_Up ((guint) 0xff97) #define SKK_KEYSYMS_KP_Right ((guint) 0xff98) #define SKK_KEYSYMS_KP_Down ((guint) 0xff99) #define SKK_KEYSYMS_KP_Prior ((guint) 0xff9a) #define SKK_KEYSYMS_KP_Page_Up ((guint) 0xff9a) #define SKK_KEYSYMS_KP_Next ((guint) 0xff9b) #define SKK_KEYSYMS_KP_Page_Down ((guint) 0xff9b) #define SKK_KEYSYMS_KP_End ((guint) 0xff9c) #define SKK_KEYSYMS_KP_Begin ((guint) 0xff9d) #define SKK_KEYSYMS_KP_Insert ((guint) 0xff9e) #define SKK_KEYSYMS_KP_Delete ((guint) 0xff9f) #define SKK_KEYSYMS_KP_Equal ((guint) 0xffbd) #define SKK_KEYSYMS_KP_Multiply ((guint) 0xffaa) #define SKK_KEYSYMS_KP_Add ((guint) 0xffab) #define SKK_KEYSYMS_KP_Separator ((guint) 0xffac) #define SKK_KEYSYMS_KP_Subtract ((guint) 0xffad) #define SKK_KEYSYMS_KP_Decimal ((guint) 0xffae) #define SKK_KEYSYMS_KP_Divide ((guint) 0xffaf) #define SKK_KEYSYMS_KP_0 ((guint) 0xffb0) #define SKK_KEYSYMS_KP_1 ((guint) 0xffb1) #define SKK_KEYSYMS_KP_2 ((guint) 0xffb2) #define SKK_KEYSYMS_KP_3 ((guint) 0xffb3) #define SKK_KEYSYMS_KP_4 ((guint) 0xffb4) #define SKK_KEYSYMS_KP_5 ((guint) 0xffb5) #define SKK_KEYSYMS_KP_6 ((guint) 0xffb6) #define SKK_KEYSYMS_KP_7 ((guint) 0xffb7) #define SKK_KEYSYMS_KP_8 ((guint) 0xffb8) #define SKK_KEYSYMS_KP_9 ((guint) 0xffb9) #define SKK_KEYSYMS_F1 ((guint) 0xffbe) #define SKK_KEYSYMS_F2 ((guint) 0xffbf) #define SKK_KEYSYMS_F3 ((guint) 0xffc0) #define SKK_KEYSYMS_F4 ((guint) 0xffc1) #define SKK_KEYSYMS_F5 ((guint) 0xffc2) #define SKK_KEYSYMS_F6 ((guint) 0xffc3) #define SKK_KEYSYMS_F7 ((guint) 0xffc4) #define SKK_KEYSYMS_F8 ((guint) 0xffc5) #define SKK_KEYSYMS_F9 ((guint) 0xffc6) #define SKK_KEYSYMS_F10 ((guint) 0xffc7) #define SKK_KEYSYMS_F11 ((guint) 0xffc8) #define SKK_KEYSYMS_L1 ((guint) 0xffc8) #define SKK_KEYSYMS_F12 ((guint) 0xffc9) #define SKK_KEYSYMS_L2 ((guint) 0xffc9) #define SKK_KEYSYMS_F13 ((guint) 0xffca) #define SKK_KEYSYMS_L3 ((guint) 0xffca) #define SKK_KEYSYMS_F14 ((guint) 0xffcb) #define SKK_KEYSYMS_L4 ((guint) 0xffcb) #define SKK_KEYSYMS_F15 ((guint) 0xffcc) #define SKK_KEYSYMS_L5 ((guint) 0xffcc) #define SKK_KEYSYMS_F16 ((guint) 0xffcd) #define SKK_KEYSYMS_L6 ((guint) 0xffcd) #define SKK_KEYSYMS_F17 ((guint) 0xffce) #define SKK_KEYSYMS_L7 ((guint) 0xffce) #define SKK_KEYSYMS_F18 ((guint) 0xffcf) #define SKK_KEYSYMS_L8 ((guint) 0xffcf) #define SKK_KEYSYMS_F19 ((guint) 0xffd0) #define SKK_KEYSYMS_L9 ((guint) 0xffd0) #define SKK_KEYSYMS_F20 ((guint) 0xffd1) #define SKK_KEYSYMS_L10 ((guint) 0xffd1) #define SKK_KEYSYMS_F21 ((guint) 0xffd2) #define SKK_KEYSYMS_R1 ((guint) 0xffd2) #define SKK_KEYSYMS_F22 ((guint) 0xffd3) #define SKK_KEYSYMS_R2 ((guint) 0xffd3) #define SKK_KEYSYMS_F23 ((guint) 0xffd4) #define SKK_KEYSYMS_R3 ((guint) 0xffd4) #define SKK_KEYSYMS_F24 ((guint) 0xffd5) #define SKK_KEYSYMS_R4 ((guint) 0xffd5) #define SKK_KEYSYMS_F25 ((guint) 0xffd6) #define SKK_KEYSYMS_R5 ((guint) 0xffd6) #define SKK_KEYSYMS_F26 ((guint) 0xffd7) #define SKK_KEYSYMS_R6 ((guint) 0xffd7) #define SKK_KEYSYMS_F27 ((guint) 0xffd8) #define SKK_KEYSYMS_R7 ((guint) 0xffd8) #define SKK_KEYSYMS_F28 ((guint) 0xffd9) #define SKK_KEYSYMS_R8 ((guint) 0xffd9) #define SKK_KEYSYMS_F29 ((guint) 0xffda) #define SKK_KEYSYMS_R9 ((guint) 0xffda) #define SKK_KEYSYMS_F30 ((guint) 0xffdb) #define SKK_KEYSYMS_R10 ((guint) 0xffdb) #define SKK_KEYSYMS_F31 ((guint) 0xffdc) #define SKK_KEYSYMS_R11 ((guint) 0xffdc) #define SKK_KEYSYMS_F32 ((guint) 0xffdd) #define SKK_KEYSYMS_R12 ((guint) 0xffdd) #define SKK_KEYSYMS_F33 ((guint) 0xffde) #define SKK_KEYSYMS_R13 ((guint) 0xffde) #define SKK_KEYSYMS_F34 ((guint) 0xffdf) #define SKK_KEYSYMS_R14 ((guint) 0xffdf) #define SKK_KEYSYMS_F35 ((guint) 0xffe0) #define SKK_KEYSYMS_R15 ((guint) 0xffe0) #define SKK_KEYSYMS_Shift_L ((guint) 0xffe1) #define SKK_KEYSYMS_Shift_R ((guint) 0xffe2) #define SKK_KEYSYMS_Control_L ((guint) 0xffe3) #define SKK_KEYSYMS_Control_R ((guint) 0xffe4) #define SKK_KEYSYMS_Caps_Lock ((guint) 0xffe5) #define SKK_KEYSYMS_Shift_Lock ((guint) 0xffe6) #define SKK_KEYSYMS_Meta_L ((guint) 0xffe7) #define SKK_KEYSYMS_Meta_R ((guint) 0xffe8) #define SKK_KEYSYMS_Alt_L ((guint) 0xffe9) #define SKK_KEYSYMS_Alt_R ((guint) 0xffea) #define SKK_KEYSYMS_Super_L ((guint) 0xffeb) #define SKK_KEYSYMS_Super_R ((guint) 0xffec) #define SKK_KEYSYMS_Hyper_L ((guint) 0xffed) #define SKK_KEYSYMS_Hyper_R ((guint) 0xffee) #define SKK_KEYSYMS_ISO_Lock ((guint) 0xfe01) #define SKK_KEYSYMS_ISO_Level2_Latch ((guint) 0xfe02) #define SKK_KEYSYMS_ISO_Level3_Shift ((guint) 0xfe03) #define SKK_KEYSYMS_ISO_Level3_Latch ((guint) 0xfe04) #define SKK_KEYSYMS_ISO_Level3_Lock ((guint) 0xfe05) #define SKK_KEYSYMS_ISO_Level5_Shift ((guint) 0xfe11) #define SKK_KEYSYMS_ISO_Level5_Latch ((guint) 0xfe12) #define SKK_KEYSYMS_ISO_Level5_Lock ((guint) 0xfe13) #define SKK_KEYSYMS_ISO_Group_Shift ((guint) 0xff7e) #define SKK_KEYSYMS_ISO_Group_Latch ((guint) 0xfe06) #define SKK_KEYSYMS_ISO_Group_Lock ((guint) 0xfe07) #define SKK_KEYSYMS_ISO_Next_Group ((guint) 0xfe08) #define SKK_KEYSYMS_ISO_Next_Group_Lock ((guint) 0xfe09) #define SKK_KEYSYMS_ISO_Prev_Group ((guint) 0xfe0a) #define SKK_KEYSYMS_ISO_Prev_Group_Lock ((guint) 0xfe0b) #define SKK_KEYSYMS_ISO_First_Group ((guint) 0xfe0c) #define SKK_KEYSYMS_ISO_First_Group_Lock ((guint) 0xfe0d) #define SKK_KEYSYMS_ISO_Last_Group ((guint) 0xfe0e) #define SKK_KEYSYMS_ISO_Last_Group_Lock ((guint) 0xfe0f) #define SKK_KEYSYMS_ISO_Left_Tab ((guint) 0xfe20) #define SKK_KEYSYMS_ISO_Move_Line_Up ((guint) 0xfe21) #define SKK_KEYSYMS_ISO_Move_Line_Down ((guint) 0xfe22) #define SKK_KEYSYMS_ISO_Partial_Line_Up ((guint) 0xfe23) #define SKK_KEYSYMS_ISO_Partial_Line_Down ((guint) 0xfe24) #define SKK_KEYSYMS_ISO_Partial_Space_Left ((guint) 0xfe25) #define SKK_KEYSYMS_ISO_Partial_Space_Right ((guint) 0xfe26) #define SKK_KEYSYMS_ISO_Set_Margin_Left ((guint) 0xfe27) #define SKK_KEYSYMS_ISO_Set_Margin_Right ((guint) 0xfe28) #define SKK_KEYSYMS_ISO_Release_Margin_Left ((guint) 0xfe29) #define SKK_KEYSYMS_ISO_Release_Margin_Right ((guint) 0xfe2a) #define SKK_KEYSYMS_ISO_Release_Both_Margins ((guint) 0xfe2b) #define SKK_KEYSYMS_ISO_Fast_Cursor_Left ((guint) 0xfe2c) #define SKK_KEYSYMS_ISO_Fast_Cursor_Right ((guint) 0xfe2d) #define SKK_KEYSYMS_ISO_Fast_Cursor_Up ((guint) 0xfe2e) #define SKK_KEYSYMS_ISO_Fast_Cursor_Down ((guint) 0xfe2f) #define SKK_KEYSYMS_ISO_Continuous_Underline ((guint) 0xfe30) #define SKK_KEYSYMS_ISO_Discontinuous_Underline ((guint) 0xfe31) #define SKK_KEYSYMS_ISO_Emphasize ((guint) 0xfe32) #define SKK_KEYSYMS_ISO_Center_Object ((guint) 0xfe33) #define SKK_KEYSYMS_ISO_Enter ((guint) 0xfe34) #define SKK_KEYSYMS_dead_grave ((guint) 0xfe50) #define SKK_KEYSYMS_dead_acute ((guint) 0xfe51) #define SKK_KEYSYMS_dead_circumflex ((guint) 0xfe52) #define SKK_KEYSYMS_dead_tilde ((guint) 0xfe53) #define SKK_KEYSYMS_dead_perispomeni ((guint) 0xfe53) #define SKK_KEYSYMS_dead_macron ((guint) 0xfe54) #define SKK_KEYSYMS_dead_breve ((guint) 0xfe55) #define SKK_KEYSYMS_dead_abovedot ((guint) 0xfe56) #define SKK_KEYSYMS_dead_diaeresis ((guint) 0xfe57) #define SKK_KEYSYMS_dead_abovering ((guint) 0xfe58) #define SKK_KEYSYMS_dead_doubleacute ((guint) 0xfe59) #define SKK_KEYSYMS_dead_caron ((guint) 0xfe5a) #define SKK_KEYSYMS_dead_cedilla ((guint) 0xfe5b) #define SKK_KEYSYMS_dead_ogonek ((guint) 0xfe5c) #define SKK_KEYSYMS_dead_iota ((guint) 0xfe5d) #define SKK_KEYSYMS_dead_voiced_sound ((guint) 0xfe5e) #define SKK_KEYSYMS_dead_semivoiced_sound ((guint) 0xfe5f) #define SKK_KEYSYMS_dead_belowdot ((guint) 0xfe60) #define SKK_KEYSYMS_dead_hook ((guint) 0xfe61) #define SKK_KEYSYMS_dead_horn ((guint) 0xfe62) #define SKK_KEYSYMS_dead_stroke ((guint) 0xfe63) #define SKK_KEYSYMS_dead_abovecomma ((guint) 0xfe64) #define SKK_KEYSYMS_dead_psili ((guint) 0xfe64) #define SKK_KEYSYMS_dead_abovereversedcomma ((guint) 0xfe65) #define SKK_KEYSYMS_dead_dasia ((guint) 0xfe65) #define SKK_KEYSYMS_dead_doublegrave ((guint) 0xfe66) #define SKK_KEYSYMS_dead_belowring ((guint) 0xfe67) #define SKK_KEYSYMS_dead_belowmacron ((guint) 0xfe68) #define SKK_KEYSYMS_dead_belowcircumflex ((guint) 0xfe69) #define SKK_KEYSYMS_dead_belowtilde ((guint) 0xfe6a) #define SKK_KEYSYMS_dead_belowbreve ((guint) 0xfe6b) #define SKK_KEYSYMS_dead_belowdiaeresis ((guint) 0xfe6c) #define SKK_KEYSYMS_dead_invertedbreve ((guint) 0xfe6d) #define SKK_KEYSYMS_dead_belowcomma ((guint) 0xfe6e) #define SKK_KEYSYMS_dead_currency ((guint) 0xfe6f) #define SKK_KEYSYMS_dead_a ((guint) 0xfe80) #define SKK_KEYSYMS_dead_A ((guint) 0xfe81) #define SKK_KEYSYMS_dead_e ((guint) 0xfe82) #define SKK_KEYSYMS_dead_E ((guint) 0xfe83) #define SKK_KEYSYMS_dead_i ((guint) 0xfe84) #define SKK_KEYSYMS_dead_I ((guint) 0xfe85) #define SKK_KEYSYMS_dead_o ((guint) 0xfe86) #define SKK_KEYSYMS_dead_O ((guint) 0xfe87) #define SKK_KEYSYMS_dead_u ((guint) 0xfe88) #define SKK_KEYSYMS_dead_U ((guint) 0xfe89) #define SKK_KEYSYMS_dead_small_schwa ((guint) 0xfe8a) #define SKK_KEYSYMS_dead_capital_schwa ((guint) 0xfe8b) #define SKK_KEYSYMS_First_Virtual_Screen ((guint) 0xfed0) #define SKK_KEYSYMS_Prev_Virtual_Screen ((guint) 0xfed1) #define SKK_KEYSYMS_Next_Virtual_Screen ((guint) 0xfed2) #define SKK_KEYSYMS_Last_Virtual_Screen ((guint) 0xfed4) #define SKK_KEYSYMS_Terminate_Server ((guint) 0xfed5) #define SKK_KEYSYMS_AccessX_Enable ((guint) 0xfe70) #define SKK_KEYSYMS_AccessX_Feedback_Enable ((guint) 0xfe71) #define SKK_KEYSYMS_RepeatKeys_Enable ((guint) 0xfe72) #define SKK_KEYSYMS_SlowKeys_Enable ((guint) 0xfe73) #define SKK_KEYSYMS_BounceKeys_Enable ((guint) 0xfe74) #define SKK_KEYSYMS_StickyKeys_Enable ((guint) 0xfe75) #define SKK_KEYSYMS_MouseKeys_Enable ((guint) 0xfe76) #define SKK_KEYSYMS_MouseKeys_Accel_Enable ((guint) 0xfe77) #define SKK_KEYSYMS_Overlay1_Enable ((guint) 0xfe78) #define SKK_KEYSYMS_Overlay2_Enable ((guint) 0xfe79) #define SKK_KEYSYMS_AudibleBell_Enable ((guint) 0xfe7a) #define SKK_KEYSYMS_Pointer_Left ((guint) 0xfee0) #define SKK_KEYSYMS_Pointer_Right ((guint) 0xfee1) #define SKK_KEYSYMS_Pointer_Up ((guint) 0xfee2) #define SKK_KEYSYMS_Pointer_Down ((guint) 0xfee3) #define SKK_KEYSYMS_Pointer_UpLeft ((guint) 0xfee4) #define SKK_KEYSYMS_Pointer_UpRight ((guint) 0xfee5) #define SKK_KEYSYMS_Pointer_DownLeft ((guint) 0xfee6) #define SKK_KEYSYMS_Pointer_DownRight ((guint) 0xfee7) #define SKK_KEYSYMS_Pointer_Button_Dflt ((guint) 0xfee8) #define SKK_KEYSYMS_Pointer_Button1 ((guint) 0xfee9) #define SKK_KEYSYMS_Pointer_Button2 ((guint) 0xfeea) #define SKK_KEYSYMS_Pointer_Button3 ((guint) 0xfeeb) #define SKK_KEYSYMS_Pointer_Button4 ((guint) 0xfeec) #define SKK_KEYSYMS_Pointer_Button5 ((guint) 0xfeed) #define SKK_KEYSYMS_Pointer_DblClick_Dflt ((guint) 0xfeee) #define SKK_KEYSYMS_Pointer_DblClick1 ((guint) 0xfeef) #define SKK_KEYSYMS_Pointer_DblClick2 ((guint) 0xfef0) #define SKK_KEYSYMS_Pointer_DblClick3 ((guint) 0xfef1) #define SKK_KEYSYMS_Pointer_DblClick4 ((guint) 0xfef2) #define SKK_KEYSYMS_Pointer_DblClick5 ((guint) 0xfef3) #define SKK_KEYSYMS_Pointer_Drag_Dflt ((guint) 0xfef4) #define SKK_KEYSYMS_Pointer_Drag1 ((guint) 0xfef5) #define SKK_KEYSYMS_Pointer_Drag2 ((guint) 0xfef6) #define SKK_KEYSYMS_Pointer_Drag3 ((guint) 0xfef7) #define SKK_KEYSYMS_Pointer_Drag4 ((guint) 0xfef8) #define SKK_KEYSYMS_Pointer_Drag5 ((guint) 0xfefd) #define SKK_KEYSYMS_Pointer_EnableKeys ((guint) 0xfef9) #define SKK_KEYSYMS_Pointer_Accelerate ((guint) 0xfefa) #define SKK_KEYSYMS_Pointer_DfltBtnNext ((guint) 0xfefb) #define SKK_KEYSYMS_Pointer_DfltBtnPrev ((guint) 0xfefc) #define SKK_KEYSYMS_3270_Duplicate ((guint) 0xfd01) #define SKK_KEYSYMS_3270_FieldMark ((guint) 0xfd02) #define SKK_KEYSYMS_3270_Right2 ((guint) 0xfd03) #define SKK_KEYSYMS_3270_Left2 ((guint) 0xfd04) #define SKK_KEYSYMS_3270_BackTab ((guint) 0xfd05) #define SKK_KEYSYMS_3270_EraseEOF ((guint) 0xfd06) #define SKK_KEYSYMS_3270_EraseInput ((guint) 0xfd07) #define SKK_KEYSYMS_3270_Reset ((guint) 0xfd08) #define SKK_KEYSYMS_3270_Quit ((guint) 0xfd09) #define SKK_KEYSYMS_3270_PA1 ((guint) 0xfd0a) #define SKK_KEYSYMS_3270_PA2 ((guint) 0xfd0b) #define SKK_KEYSYMS_3270_PA3 ((guint) 0xfd0c) #define SKK_KEYSYMS_3270_Test ((guint) 0xfd0d) #define SKK_KEYSYMS_3270_Attn ((guint) 0xfd0e) #define SKK_KEYSYMS_3270_CursorBlink ((guint) 0xfd0f) #define SKK_KEYSYMS_3270_AltCursor ((guint) 0xfd10) #define SKK_KEYSYMS_3270_KeyClick ((guint) 0xfd11) #define SKK_KEYSYMS_3270_Jump ((guint) 0xfd12) #define SKK_KEYSYMS_3270_Ident ((guint) 0xfd13) #define SKK_KEYSYMS_3270_Rule ((guint) 0xfd14) #define SKK_KEYSYMS_3270_Copy ((guint) 0xfd15) #define SKK_KEYSYMS_3270_Play ((guint) 0xfd16) #define SKK_KEYSYMS_3270_Setup ((guint) 0xfd17) #define SKK_KEYSYMS_3270_Record ((guint) 0xfd18) #define SKK_KEYSYMS_3270_ChangeScreen ((guint) 0xfd19) #define SKK_KEYSYMS_3270_DeleteWord ((guint) 0xfd1a) #define SKK_KEYSYMS_3270_ExSelect ((guint) 0xfd1b) #define SKK_KEYSYMS_3270_CursorSelect ((guint) 0xfd1c) #define SKK_KEYSYMS_3270_PrintScreen ((guint) 0xfd1d) #define SKK_KEYSYMS_3270_Enter ((guint) 0xfd1e) #define SKK_KEYSYMS_space ((guint) 0x0020) #define SKK_KEYSYMS_exclam ((guint) 0x0021) #define SKK_KEYSYMS_quotedbl ((guint) 0x0022) #define SKK_KEYSYMS_numbersign ((guint) 0x0023) #define SKK_KEYSYMS_dollar ((guint) 0x0024) #define SKK_KEYSYMS_percent ((guint) 0x0025) #define SKK_KEYSYMS_ampersand ((guint) 0x0026) #define SKK_KEYSYMS_apostrophe ((guint) 0x0027) #define SKK_KEYSYMS_quoteright ((guint) 0x0027) #define SKK_KEYSYMS_parenleft ((guint) 0x0028) #define SKK_KEYSYMS_parenright ((guint) 0x0029) #define SKK_KEYSYMS_asterisk ((guint) 0x002a) #define SKK_KEYSYMS_plus ((guint) 0x002b) #define SKK_KEYSYMS_comma ((guint) 0x002c) #define SKK_KEYSYMS_minus ((guint) 0x002d) #define SKK_KEYSYMS_period ((guint) 0x002e) #define SKK_KEYSYMS_slash ((guint) 0x002f) #define SKK_KEYSYMS_0 ((guint) 0x0030) #define SKK_KEYSYMS_1 ((guint) 0x0031) #define SKK_KEYSYMS_2 ((guint) 0x0032) #define SKK_KEYSYMS_3 ((guint) 0x0033) #define SKK_KEYSYMS_4 ((guint) 0x0034) #define SKK_KEYSYMS_5 ((guint) 0x0035) #define SKK_KEYSYMS_6 ((guint) 0x0036) #define SKK_KEYSYMS_7 ((guint) 0x0037) #define SKK_KEYSYMS_8 ((guint) 0x0038) #define SKK_KEYSYMS_9 ((guint) 0x0039) #define SKK_KEYSYMS_colon ((guint) 0x003a) #define SKK_KEYSYMS_semicolon ((guint) 0x003b) #define SKK_KEYSYMS_less ((guint) 0x003c) #define SKK_KEYSYMS_equal ((guint) 0x003d) #define SKK_KEYSYMS_greater ((guint) 0x003e) #define SKK_KEYSYMS_question ((guint) 0x003f) #define SKK_KEYSYMS_at ((guint) 0x0040) #define SKK_KEYSYMS_A ((guint) 0x0041) #define SKK_KEYSYMS_B ((guint) 0x0042) #define SKK_KEYSYMS_C ((guint) 0x0043) #define SKK_KEYSYMS_D ((guint) 0x0044) #define SKK_KEYSYMS_E ((guint) 0x0045) #define SKK_KEYSYMS_F ((guint) 0x0046) #define SKK_KEYSYMS_G ((guint) 0x0047) #define SKK_KEYSYMS_H ((guint) 0x0048) #define SKK_KEYSYMS_I ((guint) 0x0049) #define SKK_KEYSYMS_J ((guint) 0x004a) #define SKK_KEYSYMS_K ((guint) 0x004b) #define SKK_KEYSYMS_L ((guint) 0x004c) #define SKK_KEYSYMS_M ((guint) 0x004d) #define SKK_KEYSYMS_N ((guint) 0x004e) #define SKK_KEYSYMS_O ((guint) 0x004f) #define SKK_KEYSYMS_P ((guint) 0x0050) #define SKK_KEYSYMS_Q ((guint) 0x0051) #define SKK_KEYSYMS_R ((guint) 0x0052) #define SKK_KEYSYMS_S ((guint) 0x0053) #define SKK_KEYSYMS_T ((guint) 0x0054) #define SKK_KEYSYMS_U ((guint) 0x0055) #define SKK_KEYSYMS_V ((guint) 0x0056) #define SKK_KEYSYMS_W ((guint) 0x0057) #define SKK_KEYSYMS_X ((guint) 0x0058) #define SKK_KEYSYMS_Y ((guint) 0x0059) #define SKK_KEYSYMS_Z ((guint) 0x005a) #define SKK_KEYSYMS_bracketleft ((guint) 0x005b) #define SKK_KEYSYMS_backslash ((guint) 0x005c) #define SKK_KEYSYMS_bracketright ((guint) 0x005d) #define SKK_KEYSYMS_asciicircum ((guint) 0x005e) #define SKK_KEYSYMS_underscore ((guint) 0x005f) #define SKK_KEYSYMS_grave ((guint) 0x0060) #define SKK_KEYSYMS_quoteleft ((guint) 0x0060) #define SKK_KEYSYMS_a ((guint) 0x0061) #define SKK_KEYSYMS_b ((guint) 0x0062) #define SKK_KEYSYMS_c ((guint) 0x0063) #define SKK_KEYSYMS_d ((guint) 0x0064) #define SKK_KEYSYMS_e ((guint) 0x0065) #define SKK_KEYSYMS_f ((guint) 0x0066) #define SKK_KEYSYMS_g ((guint) 0x0067) #define SKK_KEYSYMS_h ((guint) 0x0068) #define SKK_KEYSYMS_i ((guint) 0x0069) #define SKK_KEYSYMS_j ((guint) 0x006a) #define SKK_KEYSYMS_k ((guint) 0x006b) #define SKK_KEYSYMS_l ((guint) 0x006c) #define SKK_KEYSYMS_m ((guint) 0x006d) #define SKK_KEYSYMS_n ((guint) 0x006e) #define SKK_KEYSYMS_o ((guint) 0x006f) #define SKK_KEYSYMS_p ((guint) 0x0070) #define SKK_KEYSYMS_q ((guint) 0x0071) #define SKK_KEYSYMS_r ((guint) 0x0072) #define SKK_KEYSYMS_s ((guint) 0x0073) #define SKK_KEYSYMS_t ((guint) 0x0074) #define SKK_KEYSYMS_u ((guint) 0x0075) #define SKK_KEYSYMS_v ((guint) 0x0076) #define SKK_KEYSYMS_w ((guint) 0x0077) #define SKK_KEYSYMS_x ((guint) 0x0078) #define SKK_KEYSYMS_y ((guint) 0x0079) #define SKK_KEYSYMS_z ((guint) 0x007a) #define SKK_KEYSYMS_braceleft ((guint) 0x007b) #define SKK_KEYSYMS_bar ((guint) 0x007c) #define SKK_KEYSYMS_braceright ((guint) 0x007d) #define SKK_KEYSYMS_asciitilde ((guint) 0x007e) #define SKK_KEYSYMS_nobreakspace ((guint) 0x00a0) #define SKK_KEYSYMS_exclamdown ((guint) 0x00a1) #define SKK_KEYSYMS_cent ((guint) 0x00a2) #define SKK_KEYSYMS_sterling ((guint) 0x00a3) #define SKK_KEYSYMS_currency ((guint) 0x00a4) #define SKK_KEYSYMS_yen ((guint) 0x00a5) #define SKK_KEYSYMS_brokenbar ((guint) 0x00a6) #define SKK_KEYSYMS_section ((guint) 0x00a7) #define SKK_KEYSYMS_diaeresis ((guint) 0x00a8) #define SKK_KEYSYMS_copyright ((guint) 0x00a9) #define SKK_KEYSYMS_ordfeminine ((guint) 0x00aa) #define SKK_KEYSYMS_guillemotleft ((guint) 0x00ab) #define SKK_KEYSYMS_notsign ((guint) 0x00ac) #define SKK_KEYSYMS_hyphen ((guint) 0x00ad) #define SKK_KEYSYMS_registered ((guint) 0x00ae) #define SKK_KEYSYMS_macron ((guint) 0x00af) #define SKK_KEYSYMS_degree ((guint) 0x00b0) #define SKK_KEYSYMS_plusminus ((guint) 0x00b1) #define SKK_KEYSYMS_twosuperior ((guint) 0x00b2) #define SKK_KEYSYMS_threesuperior ((guint) 0x00b3) #define SKK_KEYSYMS_acute ((guint) 0x00b4) #define SKK_KEYSYMS_mu ((guint) 0x00b5) #define SKK_KEYSYMS_paragraph ((guint) 0x00b6) #define SKK_KEYSYMS_periodcentered ((guint) 0x00b7) #define SKK_KEYSYMS_cedilla ((guint) 0x00b8) #define SKK_KEYSYMS_onesuperior ((guint) 0x00b9) #define SKK_KEYSYMS_masculine ((guint) 0x00ba) #define SKK_KEYSYMS_guillemotright ((guint) 0x00bb) #define SKK_KEYSYMS_onequarter ((guint) 0x00bc) #define SKK_KEYSYMS_onehalf ((guint) 0x00bd) #define SKK_KEYSYMS_threequarters ((guint) 0x00be) #define SKK_KEYSYMS_questiondown ((guint) 0x00bf) #define SKK_KEYSYMS_Agrave ((guint) 0x00c0) #define SKK_KEYSYMS_Aacute ((guint) 0x00c1) #define SKK_KEYSYMS_Acircumflex ((guint) 0x00c2) #define SKK_KEYSYMS_Atilde ((guint) 0x00c3) #define SKK_KEYSYMS_Adiaeresis ((guint) 0x00c4) #define SKK_KEYSYMS_Aring ((guint) 0x00c5) #define SKK_KEYSYMS_AE ((guint) 0x00c6) #define SKK_KEYSYMS_Ccedilla ((guint) 0x00c7) #define SKK_KEYSYMS_Egrave ((guint) 0x00c8) #define SKK_KEYSYMS_Eacute ((guint) 0x00c9) #define SKK_KEYSYMS_Ecircumflex ((guint) 0x00ca) #define SKK_KEYSYMS_Ediaeresis ((guint) 0x00cb) #define SKK_KEYSYMS_Igrave ((guint) 0x00cc) #define SKK_KEYSYMS_Iacute ((guint) 0x00cd) #define SKK_KEYSYMS_Icircumflex ((guint) 0x00ce) #define SKK_KEYSYMS_Idiaeresis ((guint) 0x00cf) #define SKK_KEYSYMS_ETH ((guint) 0x00d0) #define SKK_KEYSYMS_Eth ((guint) 0x00d0) #define SKK_KEYSYMS_Ntilde ((guint) 0x00d1) #define SKK_KEYSYMS_Ograve ((guint) 0x00d2) #define SKK_KEYSYMS_Oacute ((guint) 0x00d3) #define SKK_KEYSYMS_Ocircumflex ((guint) 0x00d4) #define SKK_KEYSYMS_Otilde ((guint) 0x00d5) #define SKK_KEYSYMS_Odiaeresis ((guint) 0x00d6) #define SKK_KEYSYMS_multiply ((guint) 0x00d7) #define SKK_KEYSYMS_Oslash ((guint) 0x00d8) #define SKK_KEYSYMS_Ooblique ((guint) 0x00d8) #define SKK_KEYSYMS_Ugrave ((guint) 0x00d9) #define SKK_KEYSYMS_Uacute ((guint) 0x00da) #define SKK_KEYSYMS_Ucircumflex ((guint) 0x00db) #define SKK_KEYSYMS_Udiaeresis ((guint) 0x00dc) #define SKK_KEYSYMS_Yacute ((guint) 0x00dd) #define SKK_KEYSYMS_THORN ((guint) 0x00de) #define SKK_KEYSYMS_Thorn ((guint) 0x00de) #define SKK_KEYSYMS_ssharp ((guint) 0x00df) #define SKK_KEYSYMS_agrave ((guint) 0x00e0) #define SKK_KEYSYMS_aacute ((guint) 0x00e1) #define SKK_KEYSYMS_acircumflex ((guint) 0x00e2) #define SKK_KEYSYMS_atilde ((guint) 0x00e3) #define SKK_KEYSYMS_adiaeresis ((guint) 0x00e4) #define SKK_KEYSYMS_aring ((guint) 0x00e5) #define SKK_KEYSYMS_ae ((guint) 0x00e6) #define SKK_KEYSYMS_ccedilla ((guint) 0x00e7) #define SKK_KEYSYMS_egrave ((guint) 0x00e8) #define SKK_KEYSYMS_eacute ((guint) 0x00e9) #define SKK_KEYSYMS_ecircumflex ((guint) 0x00ea) #define SKK_KEYSYMS_ediaeresis ((guint) 0x00eb) #define SKK_KEYSYMS_igrave ((guint) 0x00ec) #define SKK_KEYSYMS_iacute ((guint) 0x00ed) #define SKK_KEYSYMS_icircumflex ((guint) 0x00ee) #define SKK_KEYSYMS_idiaeresis ((guint) 0x00ef) #define SKK_KEYSYMS_eth ((guint) 0x00f0) #define SKK_KEYSYMS_ntilde ((guint) 0x00f1) #define SKK_KEYSYMS_ograve ((guint) 0x00f2) #define SKK_KEYSYMS_oacute ((guint) 0x00f3) #define SKK_KEYSYMS_ocircumflex ((guint) 0x00f4) #define SKK_KEYSYMS_otilde ((guint) 0x00f5) #define SKK_KEYSYMS_odiaeresis ((guint) 0x00f6) #define SKK_KEYSYMS_division ((guint) 0x00f7) #define SKK_KEYSYMS_oslash ((guint) 0x00f8) #define SKK_KEYSYMS_ooblique ((guint) 0x00f8) #define SKK_KEYSYMS_ugrave ((guint) 0x00f9) #define SKK_KEYSYMS_uacute ((guint) 0x00fa) #define SKK_KEYSYMS_ucircumflex ((guint) 0x00fb) #define SKK_KEYSYMS_udiaeresis ((guint) 0x00fc) #define SKK_KEYSYMS_yacute ((guint) 0x00fd) #define SKK_KEYSYMS_thorn ((guint) 0x00fe) #define SKK_KEYSYMS_ydiaeresis ((guint) 0x00ff) #define SKK_KEYSYMS_Aogonek ((guint) 0x01a1) #define SKK_KEYSYMS_breve ((guint) 0x01a2) #define SKK_KEYSYMS_Lstroke ((guint) 0x01a3) #define SKK_KEYSYMS_Lcaron ((guint) 0x01a5) #define SKK_KEYSYMS_Sacute ((guint) 0x01a6) #define SKK_KEYSYMS_Scaron ((guint) 0x01a9) #define SKK_KEYSYMS_Scedilla ((guint) 0x01aa) #define SKK_KEYSYMS_Tcaron ((guint) 0x01ab) #define SKK_KEYSYMS_Zacute ((guint) 0x01ac) #define SKK_KEYSYMS_Zcaron ((guint) 0x01ae) #define SKK_KEYSYMS_Zabovedot ((guint) 0x01af) #define SKK_KEYSYMS_aogonek ((guint) 0x01b1) #define SKK_KEYSYMS_ogonek ((guint) 0x01b2) #define SKK_KEYSYMS_lstroke ((guint) 0x01b3) #define SKK_KEYSYMS_lcaron ((guint) 0x01b5) #define SKK_KEYSYMS_sacute ((guint) 0x01b6) #define SKK_KEYSYMS_caron ((guint) 0x01b7) #define SKK_KEYSYMS_scaron ((guint) 0x01b9) #define SKK_KEYSYMS_scedilla ((guint) 0x01ba) #define SKK_KEYSYMS_tcaron ((guint) 0x01bb) #define SKK_KEYSYMS_zacute ((guint) 0x01bc) #define SKK_KEYSYMS_doubleacute ((guint) 0x01bd) #define SKK_KEYSYMS_zcaron ((guint) 0x01be) #define SKK_KEYSYMS_zabovedot ((guint) 0x01bf) #define SKK_KEYSYMS_Racute ((guint) 0x01c0) #define SKK_KEYSYMS_Abreve ((guint) 0x01c3) #define SKK_KEYSYMS_Lacute ((guint) 0x01c5) #define SKK_KEYSYMS_Cacute ((guint) 0x01c6) #define SKK_KEYSYMS_Ccaron ((guint) 0x01c8) #define SKK_KEYSYMS_Eogonek ((guint) 0x01ca) #define SKK_KEYSYMS_Ecaron ((guint) 0x01cc) #define SKK_KEYSYMS_Dcaron ((guint) 0x01cf) #define SKK_KEYSYMS_Dstroke ((guint) 0x01d0) #define SKK_KEYSYMS_Nacute ((guint) 0x01d1) #define SKK_KEYSYMS_Ncaron ((guint) 0x01d2) #define SKK_KEYSYMS_Odoubleacute ((guint) 0x01d5) #define SKK_KEYSYMS_Rcaron ((guint) 0x01d8) #define SKK_KEYSYMS_Uring ((guint) 0x01d9) #define SKK_KEYSYMS_Udoubleacute ((guint) 0x01db) #define SKK_KEYSYMS_Tcedilla ((guint) 0x01de) #define SKK_KEYSYMS_racute ((guint) 0x01e0) #define SKK_KEYSYMS_abreve ((guint) 0x01e3) #define SKK_KEYSYMS_lacute ((guint) 0x01e5) #define SKK_KEYSYMS_cacute ((guint) 0x01e6) #define SKK_KEYSYMS_ccaron ((guint) 0x01e8) #define SKK_KEYSYMS_eogonek ((guint) 0x01ea) #define SKK_KEYSYMS_ecaron ((guint) 0x01ec) #define SKK_KEYSYMS_dcaron ((guint) 0x01ef) #define SKK_KEYSYMS_dstroke ((guint) 0x01f0) #define SKK_KEYSYMS_nacute ((guint) 0x01f1) #define SKK_KEYSYMS_ncaron ((guint) 0x01f2) #define SKK_KEYSYMS_odoubleacute ((guint) 0x01f5) #define SKK_KEYSYMS_rcaron ((guint) 0x01f8) #define SKK_KEYSYMS_uring ((guint) 0x01f9) #define SKK_KEYSYMS_udoubleacute ((guint) 0x01fb) #define SKK_KEYSYMS_tcedilla ((guint) 0x01fe) #define SKK_KEYSYMS_abovedot ((guint) 0x01ff) #define SKK_KEYSYMS_Hstroke ((guint) 0x02a1) #define SKK_KEYSYMS_Hcircumflex ((guint) 0x02a6) #define SKK_KEYSYMS_Iabovedot ((guint) 0x02a9) #define SKK_KEYSYMS_Gbreve ((guint) 0x02ab) #define SKK_KEYSYMS_Jcircumflex ((guint) 0x02ac) #define SKK_KEYSYMS_hstroke ((guint) 0x02b1) #define SKK_KEYSYMS_hcircumflex ((guint) 0x02b6) #define SKK_KEYSYMS_idotless ((guint) 0x02b9) #define SKK_KEYSYMS_gbreve ((guint) 0x02bb) #define SKK_KEYSYMS_jcircumflex ((guint) 0x02bc) #define SKK_KEYSYMS_Cabovedot ((guint) 0x02c5) #define SKK_KEYSYMS_Ccircumflex ((guint) 0x02c6) #define SKK_KEYSYMS_Gabovedot ((guint) 0x02d5) #define SKK_KEYSYMS_Gcircumflex ((guint) 0x02d8) #define SKK_KEYSYMS_Ubreve ((guint) 0x02dd) #define SKK_KEYSYMS_Scircumflex ((guint) 0x02de) #define SKK_KEYSYMS_cabovedot ((guint) 0x02e5) #define SKK_KEYSYMS_ccircumflex ((guint) 0x02e6) #define SKK_KEYSYMS_gabovedot ((guint) 0x02f5) #define SKK_KEYSYMS_gcircumflex ((guint) 0x02f8) #define SKK_KEYSYMS_ubreve ((guint) 0x02fd) #define SKK_KEYSYMS_scircumflex ((guint) 0x02fe) #define SKK_KEYSYMS_kra ((guint) 0x03a2) #define SKK_KEYSYMS_kappa ((guint) 0x03a2) #define SKK_KEYSYMS_Rcedilla ((guint) 0x03a3) #define SKK_KEYSYMS_Itilde ((guint) 0x03a5) #define SKK_KEYSYMS_Lcedilla ((guint) 0x03a6) #define SKK_KEYSYMS_Emacron ((guint) 0x03aa) #define SKK_KEYSYMS_Gcedilla ((guint) 0x03ab) #define SKK_KEYSYMS_Tslash ((guint) 0x03ac) #define SKK_KEYSYMS_rcedilla ((guint) 0x03b3) #define SKK_KEYSYMS_itilde ((guint) 0x03b5) #define SKK_KEYSYMS_lcedilla ((guint) 0x03b6) #define SKK_KEYSYMS_emacron ((guint) 0x03ba) #define SKK_KEYSYMS_gcedilla ((guint) 0x03bb) #define SKK_KEYSYMS_tslash ((guint) 0x03bc) #define SKK_KEYSYMS_ENG ((guint) 0x03bd) #define SKK_KEYSYMS_eng ((guint) 0x03bf) #define SKK_KEYSYMS_Amacron ((guint) 0x03c0) #define SKK_KEYSYMS_Iogonek ((guint) 0x03c7) #define SKK_KEYSYMS_Eabovedot ((guint) 0x03cc) #define SKK_KEYSYMS_Imacron ((guint) 0x03cf) #define SKK_KEYSYMS_Ncedilla ((guint) 0x03d1) #define SKK_KEYSYMS_Omacron ((guint) 0x03d2) #define SKK_KEYSYMS_Kcedilla ((guint) 0x03d3) #define SKK_KEYSYMS_Uogonek ((guint) 0x03d9) #define SKK_KEYSYMS_Utilde ((guint) 0x03dd) #define SKK_KEYSYMS_Umacron ((guint) 0x03de) #define SKK_KEYSYMS_amacron ((guint) 0x03e0) #define SKK_KEYSYMS_iogonek ((guint) 0x03e7) #define SKK_KEYSYMS_eabovedot ((guint) 0x03ec) #define SKK_KEYSYMS_imacron ((guint) 0x03ef) #define SKK_KEYSYMS_ncedilla ((guint) 0x03f1) #define SKK_KEYSYMS_omacron ((guint) 0x03f2) #define SKK_KEYSYMS_kcedilla ((guint) 0x03f3) #define SKK_KEYSYMS_uogonek ((guint) 0x03f9) #define SKK_KEYSYMS_utilde ((guint) 0x03fd) #define SKK_KEYSYMS_umacron ((guint) 0x03fe) #define SKK_KEYSYMS_Wcircumflex ((guint) 0x1000174) #define SKK_KEYSYMS_wcircumflex ((guint) 0x1000175) #define SKK_KEYSYMS_Ycircumflex ((guint) 0x1000176) #define SKK_KEYSYMS_ycircumflex ((guint) 0x1000177) #define SKK_KEYSYMS_Babovedot ((guint) 0x1001e02) #define SKK_KEYSYMS_babovedot ((guint) 0x1001e03) #define SKK_KEYSYMS_Dabovedot ((guint) 0x1001e0a) #define SKK_KEYSYMS_dabovedot ((guint) 0x1001e0b) #define SKK_KEYSYMS_Fabovedot ((guint) 0x1001e1e) #define SKK_KEYSYMS_fabovedot ((guint) 0x1001e1f) #define SKK_KEYSYMS_Mabovedot ((guint) 0x1001e40) #define SKK_KEYSYMS_mabovedot ((guint) 0x1001e41) #define SKK_KEYSYMS_Pabovedot ((guint) 0x1001e56) #define SKK_KEYSYMS_pabovedot ((guint) 0x1001e57) #define SKK_KEYSYMS_Sabovedot ((guint) 0x1001e60) #define SKK_KEYSYMS_sabovedot ((guint) 0x1001e61) #define SKK_KEYSYMS_Tabovedot ((guint) 0x1001e6a) #define SKK_KEYSYMS_tabovedot ((guint) 0x1001e6b) #define SKK_KEYSYMS_Wgrave ((guint) 0x1001e80) #define SKK_KEYSYMS_wgrave ((guint) 0x1001e81) #define SKK_KEYSYMS_Wacute ((guint) 0x1001e82) #define SKK_KEYSYMS_wacute ((guint) 0x1001e83) #define SKK_KEYSYMS_Wdiaeresis ((guint) 0x1001e84) #define SKK_KEYSYMS_wdiaeresis ((guint) 0x1001e85) #define SKK_KEYSYMS_Ygrave ((guint) 0x1001ef2) #define SKK_KEYSYMS_ygrave ((guint) 0x1001ef3) #define SKK_KEYSYMS_OE ((guint) 0x13bc) #define SKK_KEYSYMS_oe ((guint) 0x13bd) #define SKK_KEYSYMS_Ydiaeresis ((guint) 0x13be) #define SKK_KEYSYMS_overline ((guint) 0x047e) #define SKK_KEYSYMS_kana_fullstop ((guint) 0x04a1) #define SKK_KEYSYMS_kana_openingbracket ((guint) 0x04a2) #define SKK_KEYSYMS_kana_closingbracket ((guint) 0x04a3) #define SKK_KEYSYMS_kana_comma ((guint) 0x04a4) #define SKK_KEYSYMS_kana_conjunctive ((guint) 0x04a5) #define SKK_KEYSYMS_kana_middledot ((guint) 0x04a5) #define SKK_KEYSYMS_kana_WO ((guint) 0x04a6) #define SKK_KEYSYMS_kana_a ((guint) 0x04a7) #define SKK_KEYSYMS_kana_i ((guint) 0x04a8) #define SKK_KEYSYMS_kana_u ((guint) 0x04a9) #define SKK_KEYSYMS_kana_e ((guint) 0x04aa) #define SKK_KEYSYMS_kana_o ((guint) 0x04ab) #define SKK_KEYSYMS_kana_ya ((guint) 0x04ac) #define SKK_KEYSYMS_kana_yu ((guint) 0x04ad) #define SKK_KEYSYMS_kana_yo ((guint) 0x04ae) #define SKK_KEYSYMS_kana_tsu ((guint) 0x04af) #define SKK_KEYSYMS_kana_tu ((guint) 0x04af) #define SKK_KEYSYMS_prolongedsound ((guint) 0x04b0) #define SKK_KEYSYMS_kana_A ((guint) 0x04b1) #define SKK_KEYSYMS_kana_I ((guint) 0x04b2) #define SKK_KEYSYMS_kana_U ((guint) 0x04b3) #define SKK_KEYSYMS_kana_E ((guint) 0x04b4) #define SKK_KEYSYMS_kana_O ((guint) 0x04b5) #define SKK_KEYSYMS_kana_KA ((guint) 0x04b6) #define SKK_KEYSYMS_kana_KI ((guint) 0x04b7) #define SKK_KEYSYMS_kana_KU ((guint) 0x04b8) #define SKK_KEYSYMS_kana_KE ((guint) 0x04b9) #define SKK_KEYSYMS_kana_KO ((guint) 0x04ba) #define SKK_KEYSYMS_kana_SA ((guint) 0x04bb) #define SKK_KEYSYMS_kana_SHI ((guint) 0x04bc) #define SKK_KEYSYMS_kana_SU ((guint) 0x04bd) #define SKK_KEYSYMS_kana_SE ((guint) 0x04be) #define SKK_KEYSYMS_kana_SO ((guint) 0x04bf) #define SKK_KEYSYMS_kana_TA ((guint) 0x04c0) #define SKK_KEYSYMS_kana_CHI ((guint) 0x04c1) #define SKK_KEYSYMS_kana_TI ((guint) 0x04c1) #define SKK_KEYSYMS_kana_TSU ((guint) 0x04c2) #define SKK_KEYSYMS_kana_TU ((guint) 0x04c2) #define SKK_KEYSYMS_kana_TE ((guint) 0x04c3) #define SKK_KEYSYMS_kana_TO ((guint) 0x04c4) #define SKK_KEYSYMS_kana_NA ((guint) 0x04c5) #define SKK_KEYSYMS_kana_NI ((guint) 0x04c6) #define SKK_KEYSYMS_kana_NU ((guint) 0x04c7) #define SKK_KEYSYMS_kana_NE ((guint) 0x04c8) #define SKK_KEYSYMS_kana_NO ((guint) 0x04c9) #define SKK_KEYSYMS_kana_HA ((guint) 0x04ca) #define SKK_KEYSYMS_kana_HI ((guint) 0x04cb) #define SKK_KEYSYMS_kana_FU ((guint) 0x04cc) #define SKK_KEYSYMS_kana_HU ((guint) 0x04cc) #define SKK_KEYSYMS_kana_HE ((guint) 0x04cd) #define SKK_KEYSYMS_kana_HO ((guint) 0x04ce) #define SKK_KEYSYMS_kana_MA ((guint) 0x04cf) #define SKK_KEYSYMS_kana_MI ((guint) 0x04d0) #define SKK_KEYSYMS_kana_MU ((guint) 0x04d1) #define SKK_KEYSYMS_kana_ME ((guint) 0x04d2) #define SKK_KEYSYMS_kana_MO ((guint) 0x04d3) #define SKK_KEYSYMS_kana_YA ((guint) 0x04d4) #define SKK_KEYSYMS_kana_YU ((guint) 0x04d5) #define SKK_KEYSYMS_kana_YO ((guint) 0x04d6) #define SKK_KEYSYMS_kana_RA ((guint) 0x04d7) #define SKK_KEYSYMS_kana_RI ((guint) 0x04d8) #define SKK_KEYSYMS_kana_RU ((guint) 0x04d9) #define SKK_KEYSYMS_kana_RE ((guint) 0x04da) #define SKK_KEYSYMS_kana_RO ((guint) 0x04db) #define SKK_KEYSYMS_kana_WA ((guint) 0x04dc) #define SKK_KEYSYMS_kana_N ((guint) 0x04dd) #define SKK_KEYSYMS_voicedsound ((guint) 0x04de) #define SKK_KEYSYMS_semivoicedsound ((guint) 0x04df) #define SKK_KEYSYMS_kana_switch ((guint) 0xff7e) #define SKK_KEYSYMS_Farsi_0 ((guint) 0x10006f0) #define SKK_KEYSYMS_Farsi_1 ((guint) 0x10006f1) #define SKK_KEYSYMS_Farsi_2 ((guint) 0x10006f2) #define SKK_KEYSYMS_Farsi_3 ((guint) 0x10006f3) #define SKK_KEYSYMS_Farsi_4 ((guint) 0x10006f4) #define SKK_KEYSYMS_Farsi_5 ((guint) 0x10006f5) #define SKK_KEYSYMS_Farsi_6 ((guint) 0x10006f6) #define SKK_KEYSYMS_Farsi_7 ((guint) 0x10006f7) #define SKK_KEYSYMS_Farsi_8 ((guint) 0x10006f8) #define SKK_KEYSYMS_Farsi_9 ((guint) 0x10006f9) #define SKK_KEYSYMS_Arabic_percent ((guint) 0x100066a) #define SKK_KEYSYMS_Arabic_superscript_alef ((guint) 0x1000670) #define SKK_KEYSYMS_Arabic_tteh ((guint) 0x1000679) #define SKK_KEYSYMS_Arabic_peh ((guint) 0x100067e) #define SKK_KEYSYMS_Arabic_tcheh ((guint) 0x1000686) #define SKK_KEYSYMS_Arabic_ddal ((guint) 0x1000688) #define SKK_KEYSYMS_Arabic_rreh ((guint) 0x1000691) #define SKK_KEYSYMS_Arabic_comma ((guint) 0x05ac) #define SKK_KEYSYMS_Arabic_fullstop ((guint) 0x10006d4) #define SKK_KEYSYMS_Arabic_0 ((guint) 0x1000660) #define SKK_KEYSYMS_Arabic_1 ((guint) 0x1000661) #define SKK_KEYSYMS_Arabic_2 ((guint) 0x1000662) #define SKK_KEYSYMS_Arabic_3 ((guint) 0x1000663) #define SKK_KEYSYMS_Arabic_4 ((guint) 0x1000664) #define SKK_KEYSYMS_Arabic_5 ((guint) 0x1000665) #define SKK_KEYSYMS_Arabic_6 ((guint) 0x1000666) #define SKK_KEYSYMS_Arabic_7 ((guint) 0x1000667) #define SKK_KEYSYMS_Arabic_8 ((guint) 0x1000668) #define SKK_KEYSYMS_Arabic_9 ((guint) 0x1000669) #define SKK_KEYSYMS_Arabic_semicolon ((guint) 0x05bb) #define SKK_KEYSYMS_Arabic_question_mark ((guint) 0x05bf) #define SKK_KEYSYMS_Arabic_hamza ((guint) 0x05c1) #define SKK_KEYSYMS_Arabic_maddaonalef ((guint) 0x05c2) #define SKK_KEYSYMS_Arabic_hamzaonalef ((guint) 0x05c3) #define SKK_KEYSYMS_Arabic_hamzaonwaw ((guint) 0x05c4) #define SKK_KEYSYMS_Arabic_hamzaunderalef ((guint) 0x05c5) #define SKK_KEYSYMS_Arabic_hamzaonyeh ((guint) 0x05c6) #define SKK_KEYSYMS_Arabic_alef ((guint) 0x05c7) #define SKK_KEYSYMS_Arabic_beh ((guint) 0x05c8) #define SKK_KEYSYMS_Arabic_tehmarbuta ((guint) 0x05c9) #define SKK_KEYSYMS_Arabic_teh ((guint) 0x05ca) #define SKK_KEYSYMS_Arabic_theh ((guint) 0x05cb) #define SKK_KEYSYMS_Arabic_jeem ((guint) 0x05cc) #define SKK_KEYSYMS_Arabic_hah ((guint) 0x05cd) #define SKK_KEYSYMS_Arabic_khah ((guint) 0x05ce) #define SKK_KEYSYMS_Arabic_dal ((guint) 0x05cf) #define SKK_KEYSYMS_Arabic_thal ((guint) 0x05d0) #define SKK_KEYSYMS_Arabic_ra ((guint) 0x05d1) #define SKK_KEYSYMS_Arabic_zain ((guint) 0x05d2) #define SKK_KEYSYMS_Arabic_seen ((guint) 0x05d3) #define SKK_KEYSYMS_Arabic_sheen ((guint) 0x05d4) #define SKK_KEYSYMS_Arabic_sad ((guint) 0x05d5) #define SKK_KEYSYMS_Arabic_dad ((guint) 0x05d6) #define SKK_KEYSYMS_Arabic_tah ((guint) 0x05d7) #define SKK_KEYSYMS_Arabic_zah ((guint) 0x05d8) #define SKK_KEYSYMS_Arabic_ain ((guint) 0x05d9) #define SKK_KEYSYMS_Arabic_ghain ((guint) 0x05da) #define SKK_KEYSYMS_Arabic_tatweel ((guint) 0x05e0) #define SKK_KEYSYMS_Arabic_feh ((guint) 0x05e1) #define SKK_KEYSYMS_Arabic_qaf ((guint) 0x05e2) #define SKK_KEYSYMS_Arabic_kaf ((guint) 0x05e3) #define SKK_KEYSYMS_Arabic_lam ((guint) 0x05e4) #define SKK_KEYSYMS_Arabic_meem ((guint) 0x05e5) #define SKK_KEYSYMS_Arabic_noon ((guint) 0x05e6) #define SKK_KEYSYMS_Arabic_ha ((guint) 0x05e7) #define SKK_KEYSYMS_Arabic_heh ((guint) 0x05e7) #define SKK_KEYSYMS_Arabic_waw ((guint) 0x05e8) #define SKK_KEYSYMS_Arabic_alefmaksura ((guint) 0x05e9) #define SKK_KEYSYMS_Arabic_yeh ((guint) 0x05ea) #define SKK_KEYSYMS_Arabic_fathatan ((guint) 0x05eb) #define SKK_KEYSYMS_Arabic_dammatan ((guint) 0x05ec) #define SKK_KEYSYMS_Arabic_kasratan ((guint) 0x05ed) #define SKK_KEYSYMS_Arabic_fatha ((guint) 0x05ee) #define SKK_KEYSYMS_Arabic_damma ((guint) 0x05ef) #define SKK_KEYSYMS_Arabic_kasra ((guint) 0x05f0) #define SKK_KEYSYMS_Arabic_shadda ((guint) 0x05f1) #define SKK_KEYSYMS_Arabic_sukun ((guint) 0x05f2) #define SKK_KEYSYMS_Arabic_madda_above ((guint) 0x1000653) #define SKK_KEYSYMS_Arabic_hamza_above ((guint) 0x1000654) #define SKK_KEYSYMS_Arabic_hamza_below ((guint) 0x1000655) #define SKK_KEYSYMS_Arabic_jeh ((guint) 0x1000698) #define SKK_KEYSYMS_Arabic_veh ((guint) 0x10006a4) #define SKK_KEYSYMS_Arabic_keheh ((guint) 0x10006a9) #define SKK_KEYSYMS_Arabic_gaf ((guint) 0x10006af) #define SKK_KEYSYMS_Arabic_noon_ghunna ((guint) 0x10006ba) #define SKK_KEYSYMS_Arabic_heh_doachashmee ((guint) 0x10006be) #define SKK_KEYSYMS_Farsi_yeh ((guint) 0x10006cc) #define SKK_KEYSYMS_Arabic_farsi_yeh ((guint) 0x10006cc) #define SKK_KEYSYMS_Arabic_yeh_baree ((guint) 0x10006d2) #define SKK_KEYSYMS_Arabic_heh_goal ((guint) 0x10006c1) #define SKK_KEYSYMS_Arabic_switch ((guint) 0xff7e) #define SKK_KEYSYMS_Cyrillic_GHE_bar ((guint) 0x1000492) #define SKK_KEYSYMS_Cyrillic_ghe_bar ((guint) 0x1000493) #define SKK_KEYSYMS_Cyrillic_ZHE_descender ((guint) 0x1000496) #define SKK_KEYSYMS_Cyrillic_zhe_descender ((guint) 0x1000497) #define SKK_KEYSYMS_Cyrillic_KA_descender ((guint) 0x100049a) #define SKK_KEYSYMS_Cyrillic_ka_descender ((guint) 0x100049b) #define SKK_KEYSYMS_Cyrillic_KA_vertstroke ((guint) 0x100049c) #define SKK_KEYSYMS_Cyrillic_ka_vertstroke ((guint) 0x100049d) #define SKK_KEYSYMS_Cyrillic_EN_descender ((guint) 0x10004a2) #define SKK_KEYSYMS_Cyrillic_en_descender ((guint) 0x10004a3) #define SKK_KEYSYMS_Cyrillic_U_straight ((guint) 0x10004ae) #define SKK_KEYSYMS_Cyrillic_u_straight ((guint) 0x10004af) #define SKK_KEYSYMS_Cyrillic_U_straight_bar ((guint) 0x10004b0) #define SKK_KEYSYMS_Cyrillic_u_straight_bar ((guint) 0x10004b1) #define SKK_KEYSYMS_Cyrillic_HA_descender ((guint) 0x10004b2) #define SKK_KEYSYMS_Cyrillic_ha_descender ((guint) 0x10004b3) #define SKK_KEYSYMS_Cyrillic_CHE_descender ((guint) 0x10004b6) #define SKK_KEYSYMS_Cyrillic_che_descender ((guint) 0x10004b7) #define SKK_KEYSYMS_Cyrillic_CHE_vertstroke ((guint) 0x10004b8) #define SKK_KEYSYMS_Cyrillic_che_vertstroke ((guint) 0x10004b9) #define SKK_KEYSYMS_Cyrillic_SHHA ((guint) 0x10004ba) #define SKK_KEYSYMS_Cyrillic_shha ((guint) 0x10004bb) #define SKK_KEYSYMS_Cyrillic_SCHWA ((guint) 0x10004d8) #define SKK_KEYSYMS_Cyrillic_schwa ((guint) 0x10004d9) #define SKK_KEYSYMS_Cyrillic_I_macron ((guint) 0x10004e2) #define SKK_KEYSYMS_Cyrillic_i_macron ((guint) 0x10004e3) #define SKK_KEYSYMS_Cyrillic_O_bar ((guint) 0x10004e8) #define SKK_KEYSYMS_Cyrillic_o_bar ((guint) 0x10004e9) #define SKK_KEYSYMS_Cyrillic_U_macron ((guint) 0x10004ee) #define SKK_KEYSYMS_Cyrillic_u_macron ((guint) 0x10004ef) #define SKK_KEYSYMS_Serbian_dje ((guint) 0x06a1) #define SKK_KEYSYMS_Macedonia_gje ((guint) 0x06a2) #define SKK_KEYSYMS_Cyrillic_io ((guint) 0x06a3) #define SKK_KEYSYMS_Ukrainian_ie ((guint) 0x06a4) #define SKK_KEYSYMS_Ukranian_je ((guint) 0x06a4) #define SKK_KEYSYMS_Macedonia_dse ((guint) 0x06a5) #define SKK_KEYSYMS_Ukrainian_i ((guint) 0x06a6) #define SKK_KEYSYMS_Ukranian_i ((guint) 0x06a6) #define SKK_KEYSYMS_Ukrainian_yi ((guint) 0x06a7) #define SKK_KEYSYMS_Ukranian_yi ((guint) 0x06a7) #define SKK_KEYSYMS_Cyrillic_je ((guint) 0x06a8) #define SKK_KEYSYMS_Serbian_je ((guint) 0x06a8) #define SKK_KEYSYMS_Cyrillic_lje ((guint) 0x06a9) #define SKK_KEYSYMS_Serbian_lje ((guint) 0x06a9) #define SKK_KEYSYMS_Cyrillic_nje ((guint) 0x06aa) #define SKK_KEYSYMS_Serbian_nje ((guint) 0x06aa) #define SKK_KEYSYMS_Serbian_tshe ((guint) 0x06ab) #define SKK_KEYSYMS_Macedonia_kje ((guint) 0x06ac) #define SKK_KEYSYMS_Ukrainian_ghe_with_upturn ((guint) 0x06ad) #define SKK_KEYSYMS_Byelorussian_shortu ((guint) 0x06ae) #define SKK_KEYSYMS_Cyrillic_dzhe ((guint) 0x06af) #define SKK_KEYSYMS_Serbian_dze ((guint) 0x06af) #define SKK_KEYSYMS_numerosign ((guint) 0x06b0) #define SKK_KEYSYMS_Serbian_DJE ((guint) 0x06b1) #define SKK_KEYSYMS_Macedonia_GJE ((guint) 0x06b2) #define SKK_KEYSYMS_Cyrillic_IO ((guint) 0x06b3) #define SKK_KEYSYMS_Ukrainian_IE ((guint) 0x06b4) #define SKK_KEYSYMS_Ukranian_JE ((guint) 0x06b4) #define SKK_KEYSYMS_Macedonia_DSE ((guint) 0x06b5) #define SKK_KEYSYMS_Ukrainian_I ((guint) 0x06b6) #define SKK_KEYSYMS_Ukranian_I ((guint) 0x06b6) #define SKK_KEYSYMS_Ukrainian_YI ((guint) 0x06b7) #define SKK_KEYSYMS_Ukranian_YI ((guint) 0x06b7) #define SKK_KEYSYMS_Cyrillic_JE ((guint) 0x06b8) #define SKK_KEYSYMS_Serbian_JE ((guint) 0x06b8) #define SKK_KEYSYMS_Cyrillic_LJE ((guint) 0x06b9) #define SKK_KEYSYMS_Serbian_LJE ((guint) 0x06b9) #define SKK_KEYSYMS_Cyrillic_NJE ((guint) 0x06ba) #define SKK_KEYSYMS_Serbian_NJE ((guint) 0x06ba) #define SKK_KEYSYMS_Serbian_TSHE ((guint) 0x06bb) #define SKK_KEYSYMS_Macedonia_KJE ((guint) 0x06bc) #define SKK_KEYSYMS_Ukrainian_GHE_WITH_UPTURN ((guint) 0x06bd) #define SKK_KEYSYMS_Byelorussian_SHORTU ((guint) 0x06be) #define SKK_KEYSYMS_Cyrillic_DZHE ((guint) 0x06bf) #define SKK_KEYSYMS_Serbian_DZE ((guint) 0x06bf) #define SKK_KEYSYMS_Cyrillic_yu ((guint) 0x06c0) #define SKK_KEYSYMS_Cyrillic_a ((guint) 0x06c1) #define SKK_KEYSYMS_Cyrillic_be ((guint) 0x06c2) #define SKK_KEYSYMS_Cyrillic_tse ((guint) 0x06c3) #define SKK_KEYSYMS_Cyrillic_de ((guint) 0x06c4) #define SKK_KEYSYMS_Cyrillic_ie ((guint) 0x06c5) #define SKK_KEYSYMS_Cyrillic_ef ((guint) 0x06c6) #define SKK_KEYSYMS_Cyrillic_ghe ((guint) 0x06c7) #define SKK_KEYSYMS_Cyrillic_ha ((guint) 0x06c8) #define SKK_KEYSYMS_Cyrillic_i ((guint) 0x06c9) #define SKK_KEYSYMS_Cyrillic_shorti ((guint) 0x06ca) #define SKK_KEYSYMS_Cyrillic_ka ((guint) 0x06cb) #define SKK_KEYSYMS_Cyrillic_el ((guint) 0x06cc) #define SKK_KEYSYMS_Cyrillic_em ((guint) 0x06cd) #define SKK_KEYSYMS_Cyrillic_en ((guint) 0x06ce) #define SKK_KEYSYMS_Cyrillic_o ((guint) 0x06cf) #define SKK_KEYSYMS_Cyrillic_pe ((guint) 0x06d0) #define SKK_KEYSYMS_Cyrillic_ya ((guint) 0x06d1) #define SKK_KEYSYMS_Cyrillic_er ((guint) 0x06d2) #define SKK_KEYSYMS_Cyrillic_es ((guint) 0x06d3) #define SKK_KEYSYMS_Cyrillic_te ((guint) 0x06d4) #define SKK_KEYSYMS_Cyrillic_u ((guint) 0x06d5) #define SKK_KEYSYMS_Cyrillic_zhe ((guint) 0x06d6) #define SKK_KEYSYMS_Cyrillic_ve ((guint) 0x06d7) #define SKK_KEYSYMS_Cyrillic_softsign ((guint) 0x06d8) #define SKK_KEYSYMS_Cyrillic_yeru ((guint) 0x06d9) #define SKK_KEYSYMS_Cyrillic_ze ((guint) 0x06da) #define SKK_KEYSYMS_Cyrillic_sha ((guint) 0x06db) #define SKK_KEYSYMS_Cyrillic_e ((guint) 0x06dc) #define SKK_KEYSYMS_Cyrillic_shcha ((guint) 0x06dd) #define SKK_KEYSYMS_Cyrillic_che ((guint) 0x06de) #define SKK_KEYSYMS_Cyrillic_hardsign ((guint) 0x06df) #define SKK_KEYSYMS_Cyrillic_YU ((guint) 0x06e0) #define SKK_KEYSYMS_Cyrillic_A ((guint) 0x06e1) #define SKK_KEYSYMS_Cyrillic_BE ((guint) 0x06e2) #define SKK_KEYSYMS_Cyrillic_TSE ((guint) 0x06e3) #define SKK_KEYSYMS_Cyrillic_DE ((guint) 0x06e4) #define SKK_KEYSYMS_Cyrillic_IE ((guint) 0x06e5) #define SKK_KEYSYMS_Cyrillic_EF ((guint) 0x06e6) #define SKK_KEYSYMS_Cyrillic_GHE ((guint) 0x06e7) #define SKK_KEYSYMS_Cyrillic_HA ((guint) 0x06e8) #define SKK_KEYSYMS_Cyrillic_I ((guint) 0x06e9) #define SKK_KEYSYMS_Cyrillic_SHORTI ((guint) 0x06ea) #define SKK_KEYSYMS_Cyrillic_KA ((guint) 0x06eb) #define SKK_KEYSYMS_Cyrillic_EL ((guint) 0x06ec) #define SKK_KEYSYMS_Cyrillic_EM ((guint) 0x06ed) #define SKK_KEYSYMS_Cyrillic_EN ((guint) 0x06ee) #define SKK_KEYSYMS_Cyrillic_O ((guint) 0x06ef) #define SKK_KEYSYMS_Cyrillic_PE ((guint) 0x06f0) #define SKK_KEYSYMS_Cyrillic_YA ((guint) 0x06f1) #define SKK_KEYSYMS_Cyrillic_ER ((guint) 0x06f2) #define SKK_KEYSYMS_Cyrillic_ES ((guint) 0x06f3) #define SKK_KEYSYMS_Cyrillic_TE ((guint) 0x06f4) #define SKK_KEYSYMS_Cyrillic_U ((guint) 0x06f5) #define SKK_KEYSYMS_Cyrillic_ZHE ((guint) 0x06f6) #define SKK_KEYSYMS_Cyrillic_VE ((guint) 0x06f7) #define SKK_KEYSYMS_Cyrillic_SOFTSIGN ((guint) 0x06f8) #define SKK_KEYSYMS_Cyrillic_YERU ((guint) 0x06f9) #define SKK_KEYSYMS_Cyrillic_ZE ((guint) 0x06fa) #define SKK_KEYSYMS_Cyrillic_SHA ((guint) 0x06fb) #define SKK_KEYSYMS_Cyrillic_E ((guint) 0x06fc) #define SKK_KEYSYMS_Cyrillic_SHCHA ((guint) 0x06fd) #define SKK_KEYSYMS_Cyrillic_CHE ((guint) 0x06fe) #define SKK_KEYSYMS_Cyrillic_HARDSIGN ((guint) 0x06ff) #define SKK_KEYSYMS_Greek_ALPHAaccent ((guint) 0x07a1) #define SKK_KEYSYMS_Greek_EPSILONaccent ((guint) 0x07a2) #define SKK_KEYSYMS_Greek_ETAaccent ((guint) 0x07a3) #define SKK_KEYSYMS_Greek_IOTAaccent ((guint) 0x07a4) #define SKK_KEYSYMS_Greek_IOTAdieresis ((guint) 0x07a5) #define SKK_KEYSYMS_Greek_IOTAdiaeresis ((guint) 0x07a5) #define SKK_KEYSYMS_Greek_OMICRONaccent ((guint) 0x07a7) #define SKK_KEYSYMS_Greek_UPSILONaccent ((guint) 0x07a8) #define SKK_KEYSYMS_Greek_UPSILONdieresis ((guint) 0x07a9) #define SKK_KEYSYMS_Greek_OMEGAaccent ((guint) 0x07ab) #define SKK_KEYSYMS_Greek_accentdieresis ((guint) 0x07ae) #define SKK_KEYSYMS_Greek_horizbar ((guint) 0x07af) #define SKK_KEYSYMS_Greek_alphaaccent ((guint) 0x07b1) #define SKK_KEYSYMS_Greek_epsilonaccent ((guint) 0x07b2) #define SKK_KEYSYMS_Greek_etaaccent ((guint) 0x07b3) #define SKK_KEYSYMS_Greek_iotaaccent ((guint) 0x07b4) #define SKK_KEYSYMS_Greek_iotadieresis ((guint) 0x07b5) #define SKK_KEYSYMS_Greek_iotaaccentdieresis ((guint) 0x07b6) #define SKK_KEYSYMS_Greek_omicronaccent ((guint) 0x07b7) #define SKK_KEYSYMS_Greek_upsilonaccent ((guint) 0x07b8) #define SKK_KEYSYMS_Greek_upsilondieresis ((guint) 0x07b9) #define SKK_KEYSYMS_Greek_upsilonaccentdieresis ((guint) 0x07ba) #define SKK_KEYSYMS_Greek_omegaaccent ((guint) 0x07bb) #define SKK_KEYSYMS_Greek_ALPHA ((guint) 0x07c1) #define SKK_KEYSYMS_Greek_BETA ((guint) 0x07c2) #define SKK_KEYSYMS_Greek_GAMMA ((guint) 0x07c3) #define SKK_KEYSYMS_Greek_DELTA ((guint) 0x07c4) #define SKK_KEYSYMS_Greek_EPSILON ((guint) 0x07c5) #define SKK_KEYSYMS_Greek_ZETA ((guint) 0x07c6) #define SKK_KEYSYMS_Greek_ETA ((guint) 0x07c7) #define SKK_KEYSYMS_Greek_THETA ((guint) 0x07c8) #define SKK_KEYSYMS_Greek_IOTA ((guint) 0x07c9) #define SKK_KEYSYMS_Greek_KAPPA ((guint) 0x07ca) #define SKK_KEYSYMS_Greek_LAMDA ((guint) 0x07cb) #define SKK_KEYSYMS_Greek_LAMBDA ((guint) 0x07cb) #define SKK_KEYSYMS_Greek_MU ((guint) 0x07cc) #define SKK_KEYSYMS_Greek_NU ((guint) 0x07cd) #define SKK_KEYSYMS_Greek_XI ((guint) 0x07ce) #define SKK_KEYSYMS_Greek_OMICRON ((guint) 0x07cf) #define SKK_KEYSYMS_Greek_PI ((guint) 0x07d0) #define SKK_KEYSYMS_Greek_RHO ((guint) 0x07d1) #define SKK_KEYSYMS_Greek_SIGMA ((guint) 0x07d2) #define SKK_KEYSYMS_Greek_TAU ((guint) 0x07d4) #define SKK_KEYSYMS_Greek_UPSILON ((guint) 0x07d5) #define SKK_KEYSYMS_Greek_PHI ((guint) 0x07d6) #define SKK_KEYSYMS_Greek_CHI ((guint) 0x07d7) #define SKK_KEYSYMS_Greek_PSI ((guint) 0x07d8) #define SKK_KEYSYMS_Greek_OMEGA ((guint) 0x07d9) #define SKK_KEYSYMS_Greek_alpha ((guint) 0x07e1) #define SKK_KEYSYMS_Greek_beta ((guint) 0x07e2) #define SKK_KEYSYMS_Greek_gamma ((guint) 0x07e3) #define SKK_KEYSYMS_Greek_delta ((guint) 0x07e4) #define SKK_KEYSYMS_Greek_epsilon ((guint) 0x07e5) #define SKK_KEYSYMS_Greek_zeta ((guint) 0x07e6) #define SKK_KEYSYMS_Greek_eta ((guint) 0x07e7) #define SKK_KEYSYMS_Greek_theta ((guint) 0x07e8) #define SKK_KEYSYMS_Greek_iota ((guint) 0x07e9) #define SKK_KEYSYMS_Greek_kappa ((guint) 0x07ea) #define SKK_KEYSYMS_Greek_lamda ((guint) 0x07eb) #define SKK_KEYSYMS_Greek_lambda ((guint) 0x07eb) #define SKK_KEYSYMS_Greek_mu ((guint) 0x07ec) #define SKK_KEYSYMS_Greek_nu ((guint) 0x07ed) #define SKK_KEYSYMS_Greek_xi ((guint) 0x07ee) #define SKK_KEYSYMS_Greek_omicron ((guint) 0x07ef) #define SKK_KEYSYMS_Greek_pi ((guint) 0x07f0) #define SKK_KEYSYMS_Greek_rho ((guint) 0x07f1) #define SKK_KEYSYMS_Greek_sigma ((guint) 0x07f2) #define SKK_KEYSYMS_Greek_finalsmallsigma ((guint) 0x07f3) #define SKK_KEYSYMS_Greek_tau ((guint) 0x07f4) #define SKK_KEYSYMS_Greek_upsilon ((guint) 0x07f5) #define SKK_KEYSYMS_Greek_phi ((guint) 0x07f6) #define SKK_KEYSYMS_Greek_chi ((guint) 0x07f7) #define SKK_KEYSYMS_Greek_psi ((guint) 0x07f8) #define SKK_KEYSYMS_Greek_omega ((guint) 0x07f9) #define SKK_KEYSYMS_Greek_switch ((guint) 0xff7e) #define SKK_KEYSYMS_leftradical ((guint) 0x08a1) #define SKK_KEYSYMS_topleftradical ((guint) 0x08a2) #define SKK_KEYSYMS_horizconnector ((guint) 0x08a3) #define SKK_KEYSYMS_topintegral ((guint) 0x08a4) #define SKK_KEYSYMS_botintegral ((guint) 0x08a5) #define SKK_KEYSYMS_vertconnector ((guint) 0x08a6) #define SKK_KEYSYMS_topleftsqbracket ((guint) 0x08a7) #define SKK_KEYSYMS_botleftsqbracket ((guint) 0x08a8) #define SKK_KEYSYMS_toprightsqbracket ((guint) 0x08a9) #define SKK_KEYSYMS_botrightsqbracket ((guint) 0x08aa) #define SKK_KEYSYMS_topleftparens ((guint) 0x08ab) #define SKK_KEYSYMS_botleftparens ((guint) 0x08ac) #define SKK_KEYSYMS_toprightparens ((guint) 0x08ad) #define SKK_KEYSYMS_botrightparens ((guint) 0x08ae) #define SKK_KEYSYMS_leftmiddlecurlybrace ((guint) 0x08af) #define SKK_KEYSYMS_rightmiddlecurlybrace ((guint) 0x08b0) #define SKK_KEYSYMS_topleftsummation ((guint) 0x08b1) #define SKK_KEYSYMS_botleftsummation ((guint) 0x08b2) #define SKK_KEYSYMS_topvertsummationconnector ((guint) 0x08b3) #define SKK_KEYSYMS_botvertsummationconnector ((guint) 0x08b4) #define SKK_KEYSYMS_toprightsummation ((guint) 0x08b5) #define SKK_KEYSYMS_botrightsummation ((guint) 0x08b6) #define SKK_KEYSYMS_rightmiddlesummation ((guint) 0x08b7) #define SKK_KEYSYMS_lessthanequal ((guint) 0x08bc) #define SKK_KEYSYMS_notequal ((guint) 0x08bd) #define SKK_KEYSYMS_greaterthanequal ((guint) 0x08be) #define SKK_KEYSYMS_integral ((guint) 0x08bf) #define SKK_KEYSYMS_therefore ((guint) 0x08c0) #define SKK_KEYSYMS_variation ((guint) 0x08c1) #define SKK_KEYSYMS_infinity ((guint) 0x08c2) #define SKK_KEYSYMS_nabla ((guint) 0x08c5) #define SKK_KEYSYMS_approximate ((guint) 0x08c8) #define SKK_KEYSYMS_similarequal ((guint) 0x08c9) #define SKK_KEYSYMS_ifonlyif ((guint) 0x08cd) #define SKK_KEYSYMS_implies ((guint) 0x08ce) #define SKK_KEYSYMS_identical ((guint) 0x08cf) #define SKK_KEYSYMS_radical ((guint) 0x08d6) #define SKK_KEYSYMS_includedin ((guint) 0x08da) #define SKK_KEYSYMS_includes ((guint) 0x08db) #define SKK_KEYSYMS_intersection ((guint) 0x08dc) #define SKK_KEYSYMS_union ((guint) 0x08dd) #define SKK_KEYSYMS_logicaland ((guint) 0x08de) #define SKK_KEYSYMS_logicalor ((guint) 0x08df) #define SKK_KEYSYMS_partialderivative ((guint) 0x08ef) #define SKK_KEYSYMS_function ((guint) 0x08f6) #define SKK_KEYSYMS_leftarrow ((guint) 0x08fb) #define SKK_KEYSYMS_uparrow ((guint) 0x08fc) #define SKK_KEYSYMS_rightarrow ((guint) 0x08fd) #define SKK_KEYSYMS_downarrow ((guint) 0x08fe) #define SKK_KEYSYMS_blank ((guint) 0x09df) #define SKK_KEYSYMS_soliddiamond ((guint) 0x09e0) #define SKK_KEYSYMS_checkerboard ((guint) 0x09e1) #define SKK_KEYSYMS_ht ((guint) 0x09e2) #define SKK_KEYSYMS_ff ((guint) 0x09e3) #define SKK_KEYSYMS_cr ((guint) 0x09e4) #define SKK_KEYSYMS_lf ((guint) 0x09e5) #define SKK_KEYSYMS_nl ((guint) 0x09e8) #define SKK_KEYSYMS_vt ((guint) 0x09e9) #define SKK_KEYSYMS_lowrightcorner ((guint) 0x09ea) #define SKK_KEYSYMS_uprightcorner ((guint) 0x09eb) #define SKK_KEYSYMS_upleftcorner ((guint) 0x09ec) #define SKK_KEYSYMS_lowleftcorner ((guint) 0x09ed) #define SKK_KEYSYMS_crossinglines ((guint) 0x09ee) #define SKK_KEYSYMS_horizlinescan1 ((guint) 0x09ef) #define SKK_KEYSYMS_horizlinescan3 ((guint) 0x09f0) #define SKK_KEYSYMS_horizlinescan5 ((guint) 0x09f1) #define SKK_KEYSYMS_horizlinescan7 ((guint) 0x09f2) #define SKK_KEYSYMS_horizlinescan9 ((guint) 0x09f3) #define SKK_KEYSYMS_leftt ((guint) 0x09f4) #define SKK_KEYSYMS_rightt ((guint) 0x09f5) #define SKK_KEYSYMS_bott ((guint) 0x09f6) #define SKK_KEYSYMS_topt ((guint) 0x09f7) #define SKK_KEYSYMS_vertbar ((guint) 0x09f8) #define SKK_KEYSYMS_emspace ((guint) 0x0aa1) #define SKK_KEYSYMS_enspace ((guint) 0x0aa2) #define SKK_KEYSYMS_em3space ((guint) 0x0aa3) #define SKK_KEYSYMS_em4space ((guint) 0x0aa4) #define SKK_KEYSYMS_digitspace ((guint) 0x0aa5) #define SKK_KEYSYMS_punctspace ((guint) 0x0aa6) #define SKK_KEYSYMS_thinspace ((guint) 0x0aa7) #define SKK_KEYSYMS_hairspace ((guint) 0x0aa8) #define SKK_KEYSYMS_emdash ((guint) 0x0aa9) #define SKK_KEYSYMS_endash ((guint) 0x0aaa) #define SKK_KEYSYMS_signifblank ((guint) 0x0aac) #define SKK_KEYSYMS_ellipsis ((guint) 0x0aae) #define SKK_KEYSYMS_doubbaselinedot ((guint) 0x0aaf) #define SKK_KEYSYMS_onethird ((guint) 0x0ab0) #define SKK_KEYSYMS_twothirds ((guint) 0x0ab1) #define SKK_KEYSYMS_onefifth ((guint) 0x0ab2) #define SKK_KEYSYMS_twofifths ((guint) 0x0ab3) #define SKK_KEYSYMS_threefifths ((guint) 0x0ab4) #define SKK_KEYSYMS_fourfifths ((guint) 0x0ab5) #define SKK_KEYSYMS_onesixth ((guint) 0x0ab6) #define SKK_KEYSYMS_fivesixths ((guint) 0x0ab7) #define SKK_KEYSYMS_careof ((guint) 0x0ab8) #define SKK_KEYSYMS_figdash ((guint) 0x0abb) #define SKK_KEYSYMS_leftanglebracket ((guint) 0x0abc) #define SKK_KEYSYMS_decimalpoint ((guint) 0x0abd) #define SKK_KEYSYMS_rightanglebracket ((guint) 0x0abe) #define SKK_KEYSYMS_marker ((guint) 0x0abf) #define SKK_KEYSYMS_oneeighth ((guint) 0x0ac3) #define SKK_KEYSYMS_threeeighths ((guint) 0x0ac4) #define SKK_KEYSYMS_fiveeighths ((guint) 0x0ac5) #define SKK_KEYSYMS_seveneighths ((guint) 0x0ac6) #define SKK_KEYSYMS_trademark ((guint) 0x0ac9) #define SKK_KEYSYMS_signaturemark ((guint) 0x0aca) #define SKK_KEYSYMS_trademarkincircle ((guint) 0x0acb) #define SKK_KEYSYMS_leftopentriangle ((guint) 0x0acc) #define SKK_KEYSYMS_rightopentriangle ((guint) 0x0acd) #define SKK_KEYSYMS_emopencircle ((guint) 0x0ace) #define SKK_KEYSYMS_emopenrectangle ((guint) 0x0acf) #define SKK_KEYSYMS_leftsinglequotemark ((guint) 0x0ad0) #define SKK_KEYSYMS_rightsinglequotemark ((guint) 0x0ad1) #define SKK_KEYSYMS_leftdoublequotemark ((guint) 0x0ad2) #define SKK_KEYSYMS_rightdoublequotemark ((guint) 0x0ad3) #define SKK_KEYSYMS_prescription ((guint) 0x0ad4) #define SKK_KEYSYMS_minutes ((guint) 0x0ad6) #define SKK_KEYSYMS_seconds ((guint) 0x0ad7) #define SKK_KEYSYMS_latincross ((guint) 0x0ad9) #define SKK_KEYSYMS_hexagram ((guint) 0x0ada) #define SKK_KEYSYMS_filledrectbullet ((guint) 0x0adb) #define SKK_KEYSYMS_filledlefttribullet ((guint) 0x0adc) #define SKK_KEYSYMS_filledrighttribullet ((guint) 0x0add) #define SKK_KEYSYMS_emfilledcircle ((guint) 0x0ade) #define SKK_KEYSYMS_emfilledrect ((guint) 0x0adf) #define SKK_KEYSYMS_enopencircbullet ((guint) 0x0ae0) #define SKK_KEYSYMS_enopensquarebullet ((guint) 0x0ae1) #define SKK_KEYSYMS_openrectbullet ((guint) 0x0ae2) #define SKK_KEYSYMS_opentribulletup ((guint) 0x0ae3) #define SKK_KEYSYMS_opentribulletdown ((guint) 0x0ae4) #define SKK_KEYSYMS_openstar ((guint) 0x0ae5) #define SKK_KEYSYMS_enfilledcircbullet ((guint) 0x0ae6) #define SKK_KEYSYMS_enfilledsqbullet ((guint) 0x0ae7) #define SKK_KEYSYMS_filledtribulletup ((guint) 0x0ae8) #define SKK_KEYSYMS_filledtribulletdown ((guint) 0x0ae9) #define SKK_KEYSYMS_leftpointer ((guint) 0x0aea) #define SKK_KEYSYMS_rightpointer ((guint) 0x0aeb) #define SKK_KEYSYMS_club ((guint) 0x0aec) #define SKK_KEYSYMS_diamond ((guint) 0x0aed) #define SKK_KEYSYMS_heart ((guint) 0x0aee) #define SKK_KEYSYMS_maltesecross ((guint) 0x0af0) #define SKK_KEYSYMS_dagger ((guint) 0x0af1) #define SKK_KEYSYMS_doubledagger ((guint) 0x0af2) #define SKK_KEYSYMS_checkmark ((guint) 0x0af3) #define SKK_KEYSYMS_ballotcross ((guint) 0x0af4) #define SKK_KEYSYMS_musicalsharp ((guint) 0x0af5) #define SKK_KEYSYMS_musicalflat ((guint) 0x0af6) #define SKK_KEYSYMS_malesymbol ((guint) 0x0af7) #define SKK_KEYSYMS_femalesymbol ((guint) 0x0af8) #define SKK_KEYSYMS_telephone ((guint) 0x0af9) #define SKK_KEYSYMS_telephonerecorder ((guint) 0x0afa) #define SKK_KEYSYMS_phonographcopyright ((guint) 0x0afb) #define SKK_KEYSYMS_caret ((guint) 0x0afc) #define SKK_KEYSYMS_singlelowquotemark ((guint) 0x0afd) #define SKK_KEYSYMS_doublelowquotemark ((guint) 0x0afe) #define SKK_KEYSYMS_cursor ((guint) 0x0aff) #define SKK_KEYSYMS_leftcaret ((guint) 0x0ba3) #define SKK_KEYSYMS_rightcaret ((guint) 0x0ba6) #define SKK_KEYSYMS_downcaret ((guint) 0x0ba8) #define SKK_KEYSYMS_upcaret ((guint) 0x0ba9) #define SKK_KEYSYMS_overbar ((guint) 0x0bc0) #define SKK_KEYSYMS_downtack ((guint) 0x0bc2) #define SKK_KEYSYMS_upshoe ((guint) 0x0bc3) #define SKK_KEYSYMS_downstile ((guint) 0x0bc4) #define SKK_KEYSYMS_underbar ((guint) 0x0bc6) #define SKK_KEYSYMS_jot ((guint) 0x0bca) #define SKK_KEYSYMS_quad ((guint) 0x0bcc) #define SKK_KEYSYMS_uptack ((guint) 0x0bce) #define SKK_KEYSYMS_circle ((guint) 0x0bcf) #define SKK_KEYSYMS_upstile ((guint) 0x0bd3) #define SKK_KEYSYMS_downshoe ((guint) 0x0bd6) #define SKK_KEYSYMS_rightshoe ((guint) 0x0bd8) #define SKK_KEYSYMS_leftshoe ((guint) 0x0bda) #define SKK_KEYSYMS_lefttack ((guint) 0x0bdc) #define SKK_KEYSYMS_righttack ((guint) 0x0bfc) #define SKK_KEYSYMS_hebrew_doublelowline ((guint) 0x0cdf) #define SKK_KEYSYMS_hebrew_aleph ((guint) 0x0ce0) #define SKK_KEYSYMS_hebrew_bet ((guint) 0x0ce1) #define SKK_KEYSYMS_hebrew_beth ((guint) 0x0ce1) #define SKK_KEYSYMS_hebrew_gimel ((guint) 0x0ce2) #define SKK_KEYSYMS_hebrew_gimmel ((guint) 0x0ce2) #define SKK_KEYSYMS_hebrew_dalet ((guint) 0x0ce3) #define SKK_KEYSYMS_hebrew_daleth ((guint) 0x0ce3) #define SKK_KEYSYMS_hebrew_he ((guint) 0x0ce4) #define SKK_KEYSYMS_hebrew_waw ((guint) 0x0ce5) #define SKK_KEYSYMS_hebrew_zain ((guint) 0x0ce6) #define SKK_KEYSYMS_hebrew_zayin ((guint) 0x0ce6) #define SKK_KEYSYMS_hebrew_chet ((guint) 0x0ce7) #define SKK_KEYSYMS_hebrew_het ((guint) 0x0ce7) #define SKK_KEYSYMS_hebrew_tet ((guint) 0x0ce8) #define SKK_KEYSYMS_hebrew_teth ((guint) 0x0ce8) #define SKK_KEYSYMS_hebrew_yod ((guint) 0x0ce9) #define SKK_KEYSYMS_hebrew_finalkaph ((guint) 0x0cea) #define SKK_KEYSYMS_hebrew_kaph ((guint) 0x0ceb) #define SKK_KEYSYMS_hebrew_lamed ((guint) 0x0cec) #define SKK_KEYSYMS_hebrew_finalmem ((guint) 0x0ced) #define SKK_KEYSYMS_hebrew_mem ((guint) 0x0cee) #define SKK_KEYSYMS_hebrew_finalnun ((guint) 0x0cef) #define SKK_KEYSYMS_hebrew_nun ((guint) 0x0cf0) #define SKK_KEYSYMS_hebrew_samech ((guint) 0x0cf1) #define SKK_KEYSYMS_hebrew_samekh ((guint) 0x0cf1) #define SKK_KEYSYMS_hebrew_ayin ((guint) 0x0cf2) #define SKK_KEYSYMS_hebrew_finalpe ((guint) 0x0cf3) #define SKK_KEYSYMS_hebrew_pe ((guint) 0x0cf4) #define SKK_KEYSYMS_hebrew_finalzade ((guint) 0x0cf5) #define SKK_KEYSYMS_hebrew_finalzadi ((guint) 0x0cf5) #define SKK_KEYSYMS_hebrew_zade ((guint) 0x0cf6) #define SKK_KEYSYMS_hebrew_zadi ((guint) 0x0cf6) #define SKK_KEYSYMS_hebrew_qoph ((guint) 0x0cf7) #define SKK_KEYSYMS_hebrew_kuf ((guint) 0x0cf7) #define SKK_KEYSYMS_hebrew_resh ((guint) 0x0cf8) #define SKK_KEYSYMS_hebrew_shin ((guint) 0x0cf9) #define SKK_KEYSYMS_hebrew_taw ((guint) 0x0cfa) #define SKK_KEYSYMS_hebrew_taf ((guint) 0x0cfa) #define SKK_KEYSYMS_Hebrew_switch ((guint) 0xff7e) #define SKK_KEYSYMS_Thai_kokai ((guint) 0x0da1) #define SKK_KEYSYMS_Thai_khokhai ((guint) 0x0da2) #define SKK_KEYSYMS_Thai_khokhuat ((guint) 0x0da3) #define SKK_KEYSYMS_Thai_khokhwai ((guint) 0x0da4) #define SKK_KEYSYMS_Thai_khokhon ((guint) 0x0da5) #define SKK_KEYSYMS_Thai_khorakhang ((guint) 0x0da6) #define SKK_KEYSYMS_Thai_ngongu ((guint) 0x0da7) #define SKK_KEYSYMS_Thai_chochan ((guint) 0x0da8) #define SKK_KEYSYMS_Thai_choching ((guint) 0x0da9) #define SKK_KEYSYMS_Thai_chochang ((guint) 0x0daa) #define SKK_KEYSYMS_Thai_soso ((guint) 0x0dab) #define SKK_KEYSYMS_Thai_chochoe ((guint) 0x0dac) #define SKK_KEYSYMS_Thai_yoying ((guint) 0x0dad) #define SKK_KEYSYMS_Thai_dochada ((guint) 0x0dae) #define SKK_KEYSYMS_Thai_topatak ((guint) 0x0daf) #define SKK_KEYSYMS_Thai_thothan ((guint) 0x0db0) #define SKK_KEYSYMS_Thai_thonangmontho ((guint) 0x0db1) #define SKK_KEYSYMS_Thai_thophuthao ((guint) 0x0db2) #define SKK_KEYSYMS_Thai_nonen ((guint) 0x0db3) #define SKK_KEYSYMS_Thai_dodek ((guint) 0x0db4) #define SKK_KEYSYMS_Thai_totao ((guint) 0x0db5) #define SKK_KEYSYMS_Thai_thothung ((guint) 0x0db6) #define SKK_KEYSYMS_Thai_thothahan ((guint) 0x0db7) #define SKK_KEYSYMS_Thai_thothong ((guint) 0x0db8) #define SKK_KEYSYMS_Thai_nonu ((guint) 0x0db9) #define SKK_KEYSYMS_Thai_bobaimai ((guint) 0x0dba) #define SKK_KEYSYMS_Thai_popla ((guint) 0x0dbb) #define SKK_KEYSYMS_Thai_phophung ((guint) 0x0dbc) #define SKK_KEYSYMS_Thai_fofa ((guint) 0x0dbd) #define SKK_KEYSYMS_Thai_phophan ((guint) 0x0dbe) #define SKK_KEYSYMS_Thai_fofan ((guint) 0x0dbf) #define SKK_KEYSYMS_Thai_phosamphao ((guint) 0x0dc0) #define SKK_KEYSYMS_Thai_moma ((guint) 0x0dc1) #define SKK_KEYSYMS_Thai_yoyak ((guint) 0x0dc2) #define SKK_KEYSYMS_Thai_rorua ((guint) 0x0dc3) #define SKK_KEYSYMS_Thai_ru ((guint) 0x0dc4) #define SKK_KEYSYMS_Thai_loling ((guint) 0x0dc5) #define SKK_KEYSYMS_Thai_lu ((guint) 0x0dc6) #define SKK_KEYSYMS_Thai_wowaen ((guint) 0x0dc7) #define SKK_KEYSYMS_Thai_sosala ((guint) 0x0dc8) #define SKK_KEYSYMS_Thai_sorusi ((guint) 0x0dc9) #define SKK_KEYSYMS_Thai_sosua ((guint) 0x0dca) #define SKK_KEYSYMS_Thai_hohip ((guint) 0x0dcb) #define SKK_KEYSYMS_Thai_lochula ((guint) 0x0dcc) #define SKK_KEYSYMS_Thai_oang ((guint) 0x0dcd) #define SKK_KEYSYMS_Thai_honokhuk ((guint) 0x0dce) #define SKK_KEYSYMS_Thai_paiyannoi ((guint) 0x0dcf) #define SKK_KEYSYMS_Thai_saraa ((guint) 0x0dd0) #define SKK_KEYSYMS_Thai_maihanakat ((guint) 0x0dd1) #define SKK_KEYSYMS_Thai_saraaa ((guint) 0x0dd2) #define SKK_KEYSYMS_Thai_saraam ((guint) 0x0dd3) #define SKK_KEYSYMS_Thai_sarai ((guint) 0x0dd4) #define SKK_KEYSYMS_Thai_saraii ((guint) 0x0dd5) #define SKK_KEYSYMS_Thai_saraue ((guint) 0x0dd6) #define SKK_KEYSYMS_Thai_sarauee ((guint) 0x0dd7) #define SKK_KEYSYMS_Thai_sarau ((guint) 0x0dd8) #define SKK_KEYSYMS_Thai_sarauu ((guint) 0x0dd9) #define SKK_KEYSYMS_Thai_phinthu ((guint) 0x0dda) #define SKK_KEYSYMS_Thai_maihanakat_maitho ((guint) 0x0dde) #define SKK_KEYSYMS_Thai_baht ((guint) 0x0ddf) #define SKK_KEYSYMS_Thai_sarae ((guint) 0x0de0) #define SKK_KEYSYMS_Thai_saraae ((guint) 0x0de1) #define SKK_KEYSYMS_Thai_sarao ((guint) 0x0de2) #define SKK_KEYSYMS_Thai_saraaimaimuan ((guint) 0x0de3) #define SKK_KEYSYMS_Thai_saraaimaimalai ((guint) 0x0de4) #define SKK_KEYSYMS_Thai_lakkhangyao ((guint) 0x0de5) #define SKK_KEYSYMS_Thai_maiyamok ((guint) 0x0de6) #define SKK_KEYSYMS_Thai_maitaikhu ((guint) 0x0de7) #define SKK_KEYSYMS_Thai_maiek ((guint) 0x0de8) #define SKK_KEYSYMS_Thai_maitho ((guint) 0x0de9) #define SKK_KEYSYMS_Thai_maitri ((guint) 0x0dea) #define SKK_KEYSYMS_Thai_maichattawa ((guint) 0x0deb) #define SKK_KEYSYMS_Thai_thanthakhat ((guint) 0x0dec) #define SKK_KEYSYMS_Thai_nikhahit ((guint) 0x0ded) #define SKK_KEYSYMS_Thai_leksun ((guint) 0x0df0) #define SKK_KEYSYMS_Thai_leknung ((guint) 0x0df1) #define SKK_KEYSYMS_Thai_leksong ((guint) 0x0df2) #define SKK_KEYSYMS_Thai_leksam ((guint) 0x0df3) #define SKK_KEYSYMS_Thai_leksi ((guint) 0x0df4) #define SKK_KEYSYMS_Thai_lekha ((guint) 0x0df5) #define SKK_KEYSYMS_Thai_lekhok ((guint) 0x0df6) #define SKK_KEYSYMS_Thai_lekchet ((guint) 0x0df7) #define SKK_KEYSYMS_Thai_lekpaet ((guint) 0x0df8) #define SKK_KEYSYMS_Thai_lekkao ((guint) 0x0df9) #define SKK_KEYSYMS_Hangul ((guint) 0xff31) #define SKK_KEYSYMS_Hangul_Start ((guint) 0xff32) #define SKK_KEYSYMS_Hangul_End ((guint) 0xff33) #define SKK_KEYSYMS_Hangul_Hanja ((guint) 0xff34) #define SKK_KEYSYMS_Hangul_Jamo ((guint) 0xff35) #define SKK_KEYSYMS_Hangul_Romaja ((guint) 0xff36) #define SKK_KEYSYMS_Hangul_Codeinput ((guint) 0xff37) #define SKK_KEYSYMS_Hangul_Jeonja ((guint) 0xff38) #define SKK_KEYSYMS_Hangul_Banja ((guint) 0xff39) #define SKK_KEYSYMS_Hangul_PreHanja ((guint) 0xff3a) #define SKK_KEYSYMS_Hangul_PostHanja ((guint) 0xff3b) #define SKK_KEYSYMS_Hangul_SingleCandidate ((guint) 0xff3c) #define SKK_KEYSYMS_Hangul_MultipleCandidate ((guint) 0xff3d) #define SKK_KEYSYMS_Hangul_PreviousCandidate ((guint) 0xff3e) #define SKK_KEYSYMS_Hangul_Special ((guint) 0xff3f) #define SKK_KEYSYMS_Hangul_switch ((guint) 0xff7e) #define SKK_KEYSYMS_Hangul_Kiyeog ((guint) 0x0ea1) #define SKK_KEYSYMS_Hangul_SsangKiyeog ((guint) 0x0ea2) #define SKK_KEYSYMS_Hangul_KiyeogSios ((guint) 0x0ea3) #define SKK_KEYSYMS_Hangul_Nieun ((guint) 0x0ea4) #define SKK_KEYSYMS_Hangul_NieunJieuj ((guint) 0x0ea5) #define SKK_KEYSYMS_Hangul_NieunHieuh ((guint) 0x0ea6) #define SKK_KEYSYMS_Hangul_Dikeud ((guint) 0x0ea7) #define SKK_KEYSYMS_Hangul_SsangDikeud ((guint) 0x0ea8) #define SKK_KEYSYMS_Hangul_Rieul ((guint) 0x0ea9) #define SKK_KEYSYMS_Hangul_RieulKiyeog ((guint) 0x0eaa) #define SKK_KEYSYMS_Hangul_RieulMieum ((guint) 0x0eab) #define SKK_KEYSYMS_Hangul_RieulPieub ((guint) 0x0eac) #define SKK_KEYSYMS_Hangul_RieulSios ((guint) 0x0ead) #define SKK_KEYSYMS_Hangul_RieulTieut ((guint) 0x0eae) #define SKK_KEYSYMS_Hangul_RieulPhieuf ((guint) 0x0eaf) #define SKK_KEYSYMS_Hangul_RieulHieuh ((guint) 0x0eb0) #define SKK_KEYSYMS_Hangul_Mieum ((guint) 0x0eb1) #define SKK_KEYSYMS_Hangul_Pieub ((guint) 0x0eb2) #define SKK_KEYSYMS_Hangul_SsangPieub ((guint) 0x0eb3) #define SKK_KEYSYMS_Hangul_PieubSios ((guint) 0x0eb4) #define SKK_KEYSYMS_Hangul_Sios ((guint) 0x0eb5) #define SKK_KEYSYMS_Hangul_SsangSios ((guint) 0x0eb6) #define SKK_KEYSYMS_Hangul_Ieung ((guint) 0x0eb7) #define SKK_KEYSYMS_Hangul_Jieuj ((guint) 0x0eb8) #define SKK_KEYSYMS_Hangul_SsangJieuj ((guint) 0x0eb9) #define SKK_KEYSYMS_Hangul_Cieuc ((guint) 0x0eba) #define SKK_KEYSYMS_Hangul_Khieuq ((guint) 0x0ebb) #define SKK_KEYSYMS_Hangul_Tieut ((guint) 0x0ebc) #define SKK_KEYSYMS_Hangul_Phieuf ((guint) 0x0ebd) #define SKK_KEYSYMS_Hangul_Hieuh ((guint) 0x0ebe) #define SKK_KEYSYMS_Hangul_A ((guint) 0x0ebf) #define SKK_KEYSYMS_Hangul_AE ((guint) 0x0ec0) #define SKK_KEYSYMS_Hangul_YA ((guint) 0x0ec1) #define SKK_KEYSYMS_Hangul_YAE ((guint) 0x0ec2) #define SKK_KEYSYMS_Hangul_EO ((guint) 0x0ec3) #define SKK_KEYSYMS_Hangul_E ((guint) 0x0ec4) #define SKK_KEYSYMS_Hangul_YEO ((guint) 0x0ec5) #define SKK_KEYSYMS_Hangul_YE ((guint) 0x0ec6) #define SKK_KEYSYMS_Hangul_O ((guint) 0x0ec7) #define SKK_KEYSYMS_Hangul_WA ((guint) 0x0ec8) #define SKK_KEYSYMS_Hangul_WAE ((guint) 0x0ec9) #define SKK_KEYSYMS_Hangul_OE ((guint) 0x0eca) #define SKK_KEYSYMS_Hangul_YO ((guint) 0x0ecb) #define SKK_KEYSYMS_Hangul_U ((guint) 0x0ecc) #define SKK_KEYSYMS_Hangul_WEO ((guint) 0x0ecd) #define SKK_KEYSYMS_Hangul_WE ((guint) 0x0ece) #define SKK_KEYSYMS_Hangul_WI ((guint) 0x0ecf) #define SKK_KEYSYMS_Hangul_YU ((guint) 0x0ed0) #define SKK_KEYSYMS_Hangul_EU ((guint) 0x0ed1) #define SKK_KEYSYMS_Hangul_YI ((guint) 0x0ed2) #define SKK_KEYSYMS_Hangul_I ((guint) 0x0ed3) #define SKK_KEYSYMS_Hangul_J_Kiyeog ((guint) 0x0ed4) #define SKK_KEYSYMS_Hangul_J_SsangKiyeog ((guint) 0x0ed5) #define SKK_KEYSYMS_Hangul_J_KiyeogSios ((guint) 0x0ed6) #define SKK_KEYSYMS_Hangul_J_Nieun ((guint) 0x0ed7) #define SKK_KEYSYMS_Hangul_J_NieunJieuj ((guint) 0x0ed8) #define SKK_KEYSYMS_Hangul_J_NieunHieuh ((guint) 0x0ed9) #define SKK_KEYSYMS_Hangul_J_Dikeud ((guint) 0x0eda) #define SKK_KEYSYMS_Hangul_J_Rieul ((guint) 0x0edb) #define SKK_KEYSYMS_Hangul_J_RieulKiyeog ((guint) 0x0edc) #define SKK_KEYSYMS_Hangul_J_RieulMieum ((guint) 0x0edd) #define SKK_KEYSYMS_Hangul_J_RieulPieub ((guint) 0x0ede) #define SKK_KEYSYMS_Hangul_J_RieulSios ((guint) 0x0edf) #define SKK_KEYSYMS_Hangul_J_RieulTieut ((guint) 0x0ee0) #define SKK_KEYSYMS_Hangul_J_RieulPhieuf ((guint) 0x0ee1) #define SKK_KEYSYMS_Hangul_J_RieulHieuh ((guint) 0x0ee2) #define SKK_KEYSYMS_Hangul_J_Mieum ((guint) 0x0ee3) #define SKK_KEYSYMS_Hangul_J_Pieub ((guint) 0x0ee4) #define SKK_KEYSYMS_Hangul_J_PieubSios ((guint) 0x0ee5) #define SKK_KEYSYMS_Hangul_J_Sios ((guint) 0x0ee6) #define SKK_KEYSYMS_Hangul_J_SsangSios ((guint) 0x0ee7) #define SKK_KEYSYMS_Hangul_J_Ieung ((guint) 0x0ee8) #define SKK_KEYSYMS_Hangul_J_Jieuj ((guint) 0x0ee9) #define SKK_KEYSYMS_Hangul_J_Cieuc ((guint) 0x0eea) #define SKK_KEYSYMS_Hangul_J_Khieuq ((guint) 0x0eeb) #define SKK_KEYSYMS_Hangul_J_Tieut ((guint) 0x0eec) #define SKK_KEYSYMS_Hangul_J_Phieuf ((guint) 0x0eed) #define SKK_KEYSYMS_Hangul_J_Hieuh ((guint) 0x0eee) #define SKK_KEYSYMS_Hangul_RieulYeorinHieuh ((guint) 0x0eef) #define SKK_KEYSYMS_Hangul_SunkyeongeumMieum ((guint) 0x0ef0) #define SKK_KEYSYMS_Hangul_SunkyeongeumPieub ((guint) 0x0ef1) #define SKK_KEYSYMS_Hangul_PanSios ((guint) 0x0ef2) #define SKK_KEYSYMS_Hangul_KkogjiDalrinIeung ((guint) 0x0ef3) #define SKK_KEYSYMS_Hangul_SunkyeongeumPhieuf ((guint) 0x0ef4) #define SKK_KEYSYMS_Hangul_YeorinHieuh ((guint) 0x0ef5) #define SKK_KEYSYMS_Hangul_AraeA ((guint) 0x0ef6) #define SKK_KEYSYMS_Hangul_AraeAE ((guint) 0x0ef7) #define SKK_KEYSYMS_Hangul_J_PanSios ((guint) 0x0ef8) #define SKK_KEYSYMS_Hangul_J_KkogjiDalrinIeung ((guint) 0x0ef9) #define SKK_KEYSYMS_Hangul_J_YeorinHieuh ((guint) 0x0efa) #define SKK_KEYSYMS_Korean_Won ((guint) 0x0eff) #define SKK_KEYSYMS_Armenian_ligature_ew ((guint) 0x1000587) #define SKK_KEYSYMS_Armenian_full_stop ((guint) 0x1000589) #define SKK_KEYSYMS_Armenian_verjaket ((guint) 0x1000589) #define SKK_KEYSYMS_Armenian_separation_mark ((guint) 0x100055d) #define SKK_KEYSYMS_Armenian_but ((guint) 0x100055d) #define SKK_KEYSYMS_Armenian_hyphen ((guint) 0x100058a) #define SKK_KEYSYMS_Armenian_yentamna ((guint) 0x100058a) #define SKK_KEYSYMS_Armenian_exclam ((guint) 0x100055c) #define SKK_KEYSYMS_Armenian_amanak ((guint) 0x100055c) #define SKK_KEYSYMS_Armenian_accent ((guint) 0x100055b) #define SKK_KEYSYMS_Armenian_shesht ((guint) 0x100055b) #define SKK_KEYSYMS_Armenian_question ((guint) 0x100055e) #define SKK_KEYSYMS_Armenian_paruyk ((guint) 0x100055e) #define SKK_KEYSYMS_Armenian_AYB ((guint) 0x1000531) #define SKK_KEYSYMS_Armenian_ayb ((guint) 0x1000561) #define SKK_KEYSYMS_Armenian_BEN ((guint) 0x1000532) #define SKK_KEYSYMS_Armenian_ben ((guint) 0x1000562) #define SKK_KEYSYMS_Armenian_GIM ((guint) 0x1000533) #define SKK_KEYSYMS_Armenian_gim ((guint) 0x1000563) #define SKK_KEYSYMS_Armenian_DA ((guint) 0x1000534) #define SKK_KEYSYMS_Armenian_da ((guint) 0x1000564) #define SKK_KEYSYMS_Armenian_YECH ((guint) 0x1000535) #define SKK_KEYSYMS_Armenian_yech ((guint) 0x1000565) #define SKK_KEYSYMS_Armenian_ZA ((guint) 0x1000536) #define SKK_KEYSYMS_Armenian_za ((guint) 0x1000566) #define SKK_KEYSYMS_Armenian_E ((guint) 0x1000537) #define SKK_KEYSYMS_Armenian_e ((guint) 0x1000567) #define SKK_KEYSYMS_Armenian_AT ((guint) 0x1000538) #define SKK_KEYSYMS_Armenian_at ((guint) 0x1000568) #define SKK_KEYSYMS_Armenian_TO ((guint) 0x1000539) #define SKK_KEYSYMS_Armenian_to ((guint) 0x1000569) #define SKK_KEYSYMS_Armenian_ZHE ((guint) 0x100053a) #define SKK_KEYSYMS_Armenian_zhe ((guint) 0x100056a) #define SKK_KEYSYMS_Armenian_INI ((guint) 0x100053b) #define SKK_KEYSYMS_Armenian_ini ((guint) 0x100056b) #define SKK_KEYSYMS_Armenian_LYUN ((guint) 0x100053c) #define SKK_KEYSYMS_Armenian_lyun ((guint) 0x100056c) #define SKK_KEYSYMS_Armenian_KHE ((guint) 0x100053d) #define SKK_KEYSYMS_Armenian_khe ((guint) 0x100056d) #define SKK_KEYSYMS_Armenian_TSA ((guint) 0x100053e) #define SKK_KEYSYMS_Armenian_tsa ((guint) 0x100056e) #define SKK_KEYSYMS_Armenian_KEN ((guint) 0x100053f) #define SKK_KEYSYMS_Armenian_ken ((guint) 0x100056f) #define SKK_KEYSYMS_Armenian_HO ((guint) 0x1000540) #define SKK_KEYSYMS_Armenian_ho ((guint) 0x1000570) #define SKK_KEYSYMS_Armenian_DZA ((guint) 0x1000541) #define SKK_KEYSYMS_Armenian_dza ((guint) 0x1000571) #define SKK_KEYSYMS_Armenian_GHAT ((guint) 0x1000542) #define SKK_KEYSYMS_Armenian_ghat ((guint) 0x1000572) #define SKK_KEYSYMS_Armenian_TCHE ((guint) 0x1000543) #define SKK_KEYSYMS_Armenian_tche ((guint) 0x1000573) #define SKK_KEYSYMS_Armenian_MEN ((guint) 0x1000544) #define SKK_KEYSYMS_Armenian_men ((guint) 0x1000574) #define SKK_KEYSYMS_Armenian_HI ((guint) 0x1000545) #define SKK_KEYSYMS_Armenian_hi ((guint) 0x1000575) #define SKK_KEYSYMS_Armenian_NU ((guint) 0x1000546) #define SKK_KEYSYMS_Armenian_nu ((guint) 0x1000576) #define SKK_KEYSYMS_Armenian_SHA ((guint) 0x1000547) #define SKK_KEYSYMS_Armenian_sha ((guint) 0x1000577) #define SKK_KEYSYMS_Armenian_VO ((guint) 0x1000548) #define SKK_KEYSYMS_Armenian_vo ((guint) 0x1000578) #define SKK_KEYSYMS_Armenian_CHA ((guint) 0x1000549) #define SKK_KEYSYMS_Armenian_cha ((guint) 0x1000579) #define SKK_KEYSYMS_Armenian_PE ((guint) 0x100054a) #define SKK_KEYSYMS_Armenian_pe ((guint) 0x100057a) #define SKK_KEYSYMS_Armenian_JE ((guint) 0x100054b) #define SKK_KEYSYMS_Armenian_je ((guint) 0x100057b) #define SKK_KEYSYMS_Armenian_RA ((guint) 0x100054c) #define SKK_KEYSYMS_Armenian_ra ((guint) 0x100057c) #define SKK_KEYSYMS_Armenian_SE ((guint) 0x100054d) #define SKK_KEYSYMS_Armenian_se ((guint) 0x100057d) #define SKK_KEYSYMS_Armenian_VEV ((guint) 0x100054e) #define SKK_KEYSYMS_Armenian_vev ((guint) 0x100057e) #define SKK_KEYSYMS_Armenian_TYUN ((guint) 0x100054f) #define SKK_KEYSYMS_Armenian_tyun ((guint) 0x100057f) #define SKK_KEYSYMS_Armenian_RE ((guint) 0x1000550) #define SKK_KEYSYMS_Armenian_re ((guint) 0x1000580) #define SKK_KEYSYMS_Armenian_TSO ((guint) 0x1000551) #define SKK_KEYSYMS_Armenian_tso ((guint) 0x1000581) #define SKK_KEYSYMS_Armenian_VYUN ((guint) 0x1000552) #define SKK_KEYSYMS_Armenian_vyun ((guint) 0x1000582) #define SKK_KEYSYMS_Armenian_PYUR ((guint) 0x1000553) #define SKK_KEYSYMS_Armenian_pyur ((guint) 0x1000583) #define SKK_KEYSYMS_Armenian_KE ((guint) 0x1000554) #define SKK_KEYSYMS_Armenian_ke ((guint) 0x1000584) #define SKK_KEYSYMS_Armenian_O ((guint) 0x1000555) #define SKK_KEYSYMS_Armenian_o ((guint) 0x1000585) #define SKK_KEYSYMS_Armenian_FE ((guint) 0x1000556) #define SKK_KEYSYMS_Armenian_fe ((guint) 0x1000586) #define SKK_KEYSYMS_Armenian_apostrophe ((guint) 0x100055a) #define SKK_KEYSYMS_Georgian_an ((guint) 0x10010d0) #define SKK_KEYSYMS_Georgian_ban ((guint) 0x10010d1) #define SKK_KEYSYMS_Georgian_gan ((guint) 0x10010d2) #define SKK_KEYSYMS_Georgian_don ((guint) 0x10010d3) #define SKK_KEYSYMS_Georgian_en ((guint) 0x10010d4) #define SKK_KEYSYMS_Georgian_vin ((guint) 0x10010d5) #define SKK_KEYSYMS_Georgian_zen ((guint) 0x10010d6) #define SKK_KEYSYMS_Georgian_tan ((guint) 0x10010d7) #define SKK_KEYSYMS_Georgian_in ((guint) 0x10010d8) #define SKK_KEYSYMS_Georgian_kan ((guint) 0x10010d9) #define SKK_KEYSYMS_Georgian_las ((guint) 0x10010da) #define SKK_KEYSYMS_Georgian_man ((guint) 0x10010db) #define SKK_KEYSYMS_Georgian_nar ((guint) 0x10010dc) #define SKK_KEYSYMS_Georgian_on ((guint) 0x10010dd) #define SKK_KEYSYMS_Georgian_par ((guint) 0x10010de) #define SKK_KEYSYMS_Georgian_zhar ((guint) 0x10010df) #define SKK_KEYSYMS_Georgian_rae ((guint) 0x10010e0) #define SKK_KEYSYMS_Georgian_san ((guint) 0x10010e1) #define SKK_KEYSYMS_Georgian_tar ((guint) 0x10010e2) #define SKK_KEYSYMS_Georgian_un ((guint) 0x10010e3) #define SKK_KEYSYMS_Georgian_phar ((guint) 0x10010e4) #define SKK_KEYSYMS_Georgian_khar ((guint) 0x10010e5) #define SKK_KEYSYMS_Georgian_ghan ((guint) 0x10010e6) #define SKK_KEYSYMS_Georgian_qar ((guint) 0x10010e7) #define SKK_KEYSYMS_Georgian_shin ((guint) 0x10010e8) #define SKK_KEYSYMS_Georgian_chin ((guint) 0x10010e9) #define SKK_KEYSYMS_Georgian_can ((guint) 0x10010ea) #define SKK_KEYSYMS_Georgian_jil ((guint) 0x10010eb) #define SKK_KEYSYMS_Georgian_cil ((guint) 0x10010ec) #define SKK_KEYSYMS_Georgian_char ((guint) 0x10010ed) #define SKK_KEYSYMS_Georgian_xan ((guint) 0x10010ee) #define SKK_KEYSYMS_Georgian_jhan ((guint) 0x10010ef) #define SKK_KEYSYMS_Georgian_hae ((guint) 0x10010f0) #define SKK_KEYSYMS_Georgian_he ((guint) 0x10010f1) #define SKK_KEYSYMS_Georgian_hie ((guint) 0x10010f2) #define SKK_KEYSYMS_Georgian_we ((guint) 0x10010f3) #define SKK_KEYSYMS_Georgian_har ((guint) 0x10010f4) #define SKK_KEYSYMS_Georgian_hoe ((guint) 0x10010f5) #define SKK_KEYSYMS_Georgian_fi ((guint) 0x10010f6) #define SKK_KEYSYMS_Xabovedot ((guint) 0x1001e8a) #define SKK_KEYSYMS_Ibreve ((guint) 0x100012c) #define SKK_KEYSYMS_Zstroke ((guint) 0x10001b5) #define SKK_KEYSYMS_Gcaron ((guint) 0x10001e6) #define SKK_KEYSYMS_Ocaron ((guint) 0x10001d1) #define SKK_KEYSYMS_Obarred ((guint) 0x100019f) #define SKK_KEYSYMS_xabovedot ((guint) 0x1001e8b) #define SKK_KEYSYMS_ibreve ((guint) 0x100012d) #define SKK_KEYSYMS_zstroke ((guint) 0x10001b6) #define SKK_KEYSYMS_gcaron ((guint) 0x10001e7) #define SKK_KEYSYMS_ocaron ((guint) 0x10001d2) #define SKK_KEYSYMS_obarred ((guint) 0x1000275) #define SKK_KEYSYMS_SCHWA ((guint) 0x100018f) #define SKK_KEYSYMS_schwa ((guint) 0x1000259) #define SKK_KEYSYMS_Lbelowdot ((guint) 0x1001e36) #define SKK_KEYSYMS_lbelowdot ((guint) 0x1001e37) #define SKK_KEYSYMS_Abelowdot ((guint) 0x1001ea0) #define SKK_KEYSYMS_abelowdot ((guint) 0x1001ea1) #define SKK_KEYSYMS_Ahook ((guint) 0x1001ea2) #define SKK_KEYSYMS_ahook ((guint) 0x1001ea3) #define SKK_KEYSYMS_Acircumflexacute ((guint) 0x1001ea4) #define SKK_KEYSYMS_acircumflexacute ((guint) 0x1001ea5) #define SKK_KEYSYMS_Acircumflexgrave ((guint) 0x1001ea6) #define SKK_KEYSYMS_acircumflexgrave ((guint) 0x1001ea7) #define SKK_KEYSYMS_Acircumflexhook ((guint) 0x1001ea8) #define SKK_KEYSYMS_acircumflexhook ((guint) 0x1001ea9) #define SKK_KEYSYMS_Acircumflextilde ((guint) 0x1001eaa) #define SKK_KEYSYMS_acircumflextilde ((guint) 0x1001eab) #define SKK_KEYSYMS_Acircumflexbelowdot ((guint) 0x1001eac) #define SKK_KEYSYMS_acircumflexbelowdot ((guint) 0x1001ead) #define SKK_KEYSYMS_Abreveacute ((guint) 0x1001eae) #define SKK_KEYSYMS_abreveacute ((guint) 0x1001eaf) #define SKK_KEYSYMS_Abrevegrave ((guint) 0x1001eb0) #define SKK_KEYSYMS_abrevegrave ((guint) 0x1001eb1) #define SKK_KEYSYMS_Abrevehook ((guint) 0x1001eb2) #define SKK_KEYSYMS_abrevehook ((guint) 0x1001eb3) #define SKK_KEYSYMS_Abrevetilde ((guint) 0x1001eb4) #define SKK_KEYSYMS_abrevetilde ((guint) 0x1001eb5) #define SKK_KEYSYMS_Abrevebelowdot ((guint) 0x1001eb6) #define SKK_KEYSYMS_abrevebelowdot ((guint) 0x1001eb7) #define SKK_KEYSYMS_Ebelowdot ((guint) 0x1001eb8) #define SKK_KEYSYMS_ebelowdot ((guint) 0x1001eb9) #define SKK_KEYSYMS_Ehook ((guint) 0x1001eba) #define SKK_KEYSYMS_ehook ((guint) 0x1001ebb) #define SKK_KEYSYMS_Etilde ((guint) 0x1001ebc) #define SKK_KEYSYMS_etilde ((guint) 0x1001ebd) #define SKK_KEYSYMS_Ecircumflexacute ((guint) 0x1001ebe) #define SKK_KEYSYMS_ecircumflexacute ((guint) 0x1001ebf) #define SKK_KEYSYMS_Ecircumflexgrave ((guint) 0x1001ec0) #define SKK_KEYSYMS_ecircumflexgrave ((guint) 0x1001ec1) #define SKK_KEYSYMS_Ecircumflexhook ((guint) 0x1001ec2) #define SKK_KEYSYMS_ecircumflexhook ((guint) 0x1001ec3) #define SKK_KEYSYMS_Ecircumflextilde ((guint) 0x1001ec4) #define SKK_KEYSYMS_ecircumflextilde ((guint) 0x1001ec5) #define SKK_KEYSYMS_Ecircumflexbelowdot ((guint) 0x1001ec6) #define SKK_KEYSYMS_ecircumflexbelowdot ((guint) 0x1001ec7) #define SKK_KEYSYMS_Ihook ((guint) 0x1001ec8) #define SKK_KEYSYMS_ihook ((guint) 0x1001ec9) #define SKK_KEYSYMS_Ibelowdot ((guint) 0x1001eca) #define SKK_KEYSYMS_ibelowdot ((guint) 0x1001ecb) #define SKK_KEYSYMS_Obelowdot ((guint) 0x1001ecc) #define SKK_KEYSYMS_obelowdot ((guint) 0x1001ecd) #define SKK_KEYSYMS_Ohook ((guint) 0x1001ece) #define SKK_KEYSYMS_ohook ((guint) 0x1001ecf) #define SKK_KEYSYMS_Ocircumflexacute ((guint) 0x1001ed0) #define SKK_KEYSYMS_ocircumflexacute ((guint) 0x1001ed1) #define SKK_KEYSYMS_Ocircumflexgrave ((guint) 0x1001ed2) #define SKK_KEYSYMS_ocircumflexgrave ((guint) 0x1001ed3) #define SKK_KEYSYMS_Ocircumflexhook ((guint) 0x1001ed4) #define SKK_KEYSYMS_ocircumflexhook ((guint) 0x1001ed5) #define SKK_KEYSYMS_Ocircumflextilde ((guint) 0x1001ed6) #define SKK_KEYSYMS_ocircumflextilde ((guint) 0x1001ed7) #define SKK_KEYSYMS_Ocircumflexbelowdot ((guint) 0x1001ed8) #define SKK_KEYSYMS_ocircumflexbelowdot ((guint) 0x1001ed9) #define SKK_KEYSYMS_Ohornacute ((guint) 0x1001eda) #define SKK_KEYSYMS_ohornacute ((guint) 0x1001edb) #define SKK_KEYSYMS_Ohorngrave ((guint) 0x1001edc) #define SKK_KEYSYMS_ohorngrave ((guint) 0x1001edd) #define SKK_KEYSYMS_Ohornhook ((guint) 0x1001ede) #define SKK_KEYSYMS_ohornhook ((guint) 0x1001edf) #define SKK_KEYSYMS_Ohorntilde ((guint) 0x1001ee0) #define SKK_KEYSYMS_ohorntilde ((guint) 0x1001ee1) #define SKK_KEYSYMS_Ohornbelowdot ((guint) 0x1001ee2) #define SKK_KEYSYMS_ohornbelowdot ((guint) 0x1001ee3) #define SKK_KEYSYMS_Ubelowdot ((guint) 0x1001ee4) #define SKK_KEYSYMS_ubelowdot ((guint) 0x1001ee5) #define SKK_KEYSYMS_Uhook ((guint) 0x1001ee6) #define SKK_KEYSYMS_uhook ((guint) 0x1001ee7) #define SKK_KEYSYMS_Uhornacute ((guint) 0x1001ee8) #define SKK_KEYSYMS_uhornacute ((guint) 0x1001ee9) #define SKK_KEYSYMS_Uhorngrave ((guint) 0x1001eea) #define SKK_KEYSYMS_uhorngrave ((guint) 0x1001eeb) #define SKK_KEYSYMS_Uhornhook ((guint) 0x1001eec) #define SKK_KEYSYMS_uhornhook ((guint) 0x1001eed) #define SKK_KEYSYMS_Uhorntilde ((guint) 0x1001eee) #define SKK_KEYSYMS_uhorntilde ((guint) 0x1001eef) #define SKK_KEYSYMS_Uhornbelowdot ((guint) 0x1001ef0) #define SKK_KEYSYMS_uhornbelowdot ((guint) 0x1001ef1) #define SKK_KEYSYMS_Ybelowdot ((guint) 0x1001ef4) #define SKK_KEYSYMS_ybelowdot ((guint) 0x1001ef5) #define SKK_KEYSYMS_Yhook ((guint) 0x1001ef6) #define SKK_KEYSYMS_yhook ((guint) 0x1001ef7) #define SKK_KEYSYMS_Ytilde ((guint) 0x1001ef8) #define SKK_KEYSYMS_ytilde ((guint) 0x1001ef9) #define SKK_KEYSYMS_Ohorn ((guint) 0x10001a0) #define SKK_KEYSYMS_ohorn ((guint) 0x10001a1) #define SKK_KEYSYMS_Uhorn ((guint) 0x10001af) #define SKK_KEYSYMS_uhorn ((guint) 0x10001b0) #define SKK_KEYSYMS_EcuSign ((guint) 0x10020a0) #define SKK_KEYSYMS_ColonSign ((guint) 0x10020a1) #define SKK_KEYSYMS_CruzeiroSign ((guint) 0x10020a2) #define SKK_KEYSYMS_FFrancSign ((guint) 0x10020a3) #define SKK_KEYSYMS_LiraSign ((guint) 0x10020a4) #define SKK_KEYSYMS_MillSign ((guint) 0x10020a5) #define SKK_KEYSYMS_NairaSign ((guint) 0x10020a6) #define SKK_KEYSYMS_PesetaSign ((guint) 0x10020a7) #define SKK_KEYSYMS_RupeeSign ((guint) 0x10020a8) #define SKK_KEYSYMS_WonSign ((guint) 0x10020a9) #define SKK_KEYSYMS_NewSheqelSign ((guint) 0x10020aa) #define SKK_KEYSYMS_DongSign ((guint) 0x10020ab) #define SKK_KEYSYMS_EuroSign ((guint) 0x20ac) #define SKK_KEYSYMS_zerosuperior ((guint) 0x1002070) #define SKK_KEYSYMS_foursuperior ((guint) 0x1002074) #define SKK_KEYSYMS_fivesuperior ((guint) 0x1002075) #define SKK_KEYSYMS_sixsuperior ((guint) 0x1002076) #define SKK_KEYSYMS_sevensuperior ((guint) 0x1002077) #define SKK_KEYSYMS_eightsuperior ((guint) 0x1002078) #define SKK_KEYSYMS_ninesuperior ((guint) 0x1002079) #define SKK_KEYSYMS_zerosubscript ((guint) 0x1002080) #define SKK_KEYSYMS_onesubscript ((guint) 0x1002081) #define SKK_KEYSYMS_twosubscript ((guint) 0x1002082) #define SKK_KEYSYMS_threesubscript ((guint) 0x1002083) #define SKK_KEYSYMS_foursubscript ((guint) 0x1002084) #define SKK_KEYSYMS_fivesubscript ((guint) 0x1002085) #define SKK_KEYSYMS_sixsubscript ((guint) 0x1002086) #define SKK_KEYSYMS_sevensubscript ((guint) 0x1002087) #define SKK_KEYSYMS_eightsubscript ((guint) 0x1002088) #define SKK_KEYSYMS_ninesubscript ((guint) 0x1002089) #define SKK_KEYSYMS_partdifferential ((guint) 0x1002202) #define SKK_KEYSYMS_emptyset ((guint) 0x1002205) #define SKK_KEYSYMS_elementof ((guint) 0x1002208) #define SKK_KEYSYMS_notelementof ((guint) 0x1002209) #define SKK_KEYSYMS_containsas ((guint) 0x100220B) #define SKK_KEYSYMS_squareroot ((guint) 0x100221A) #define SKK_KEYSYMS_cuberoot ((guint) 0x100221B) #define SKK_KEYSYMS_fourthroot ((guint) 0x100221C) #define SKK_KEYSYMS_dintegral ((guint) 0x100222C) #define SKK_KEYSYMS_tintegral ((guint) 0x100222D) #define SKK_KEYSYMS_because ((guint) 0x1002235) #define SKK_KEYSYMS_approxeq ((guint) 0x1002248) #define SKK_KEYSYMS_notapproxeq ((guint) 0x1002247) #define SKK_KEYSYMS_notidentical ((guint) 0x1002262) #define SKK_KEYSYMS_stricteq ((guint) 0x1002263) #define SKK_KEYSYMS_braille_dot_1 ((guint) 0xfff1) #define SKK_KEYSYMS_braille_dot_2 ((guint) 0xfff2) #define SKK_KEYSYMS_braille_dot_3 ((guint) 0xfff3) #define SKK_KEYSYMS_braille_dot_4 ((guint) 0xfff4) #define SKK_KEYSYMS_braille_dot_5 ((guint) 0xfff5) #define SKK_KEYSYMS_braille_dot_6 ((guint) 0xfff6) #define SKK_KEYSYMS_braille_dot_7 ((guint) 0xfff7) #define SKK_KEYSYMS_braille_dot_8 ((guint) 0xfff8) #define SKK_KEYSYMS_braille_dot_9 ((guint) 0xfff9) #define SKK_KEYSYMS_braille_dot_10 ((guint) 0xfffa) #define SKK_KEYSYMS_braille_blank ((guint) 0x1002800) #define SKK_KEYSYMS_braille_dots_1 ((guint) 0x1002801) #define SKK_KEYSYMS_braille_dots_2 ((guint) 0x1002802) #define SKK_KEYSYMS_braille_dots_12 ((guint) 0x1002803) #define SKK_KEYSYMS_braille_dots_3 ((guint) 0x1002804) #define SKK_KEYSYMS_braille_dots_13 ((guint) 0x1002805) #define SKK_KEYSYMS_braille_dots_23 ((guint) 0x1002806) #define SKK_KEYSYMS_braille_dots_123 ((guint) 0x1002807) #define SKK_KEYSYMS_braille_dots_4 ((guint) 0x1002808) #define SKK_KEYSYMS_braille_dots_14 ((guint) 0x1002809) #define SKK_KEYSYMS_braille_dots_24 ((guint) 0x100280a) #define SKK_KEYSYMS_braille_dots_124 ((guint) 0x100280b) #define SKK_KEYSYMS_braille_dots_34 ((guint) 0x100280c) #define SKK_KEYSYMS_braille_dots_134 ((guint) 0x100280d) #define SKK_KEYSYMS_braille_dots_234 ((guint) 0x100280e) #define SKK_KEYSYMS_braille_dots_1234 ((guint) 0x100280f) #define SKK_KEYSYMS_braille_dots_5 ((guint) 0x1002810) #define SKK_KEYSYMS_braille_dots_15 ((guint) 0x1002811) #define SKK_KEYSYMS_braille_dots_25 ((guint) 0x1002812) #define SKK_KEYSYMS_braille_dots_125 ((guint) 0x1002813) #define SKK_KEYSYMS_braille_dots_35 ((guint) 0x1002814) #define SKK_KEYSYMS_braille_dots_135 ((guint) 0x1002815) #define SKK_KEYSYMS_braille_dots_235 ((guint) 0x1002816) #define SKK_KEYSYMS_braille_dots_1235 ((guint) 0x1002817) #define SKK_KEYSYMS_braille_dots_45 ((guint) 0x1002818) #define SKK_KEYSYMS_braille_dots_145 ((guint) 0x1002819) #define SKK_KEYSYMS_braille_dots_245 ((guint) 0x100281a) #define SKK_KEYSYMS_braille_dots_1245 ((guint) 0x100281b) #define SKK_KEYSYMS_braille_dots_345 ((guint) 0x100281c) #define SKK_KEYSYMS_braille_dots_1345 ((guint) 0x100281d) #define SKK_KEYSYMS_braille_dots_2345 ((guint) 0x100281e) #define SKK_KEYSYMS_braille_dots_12345 ((guint) 0x100281f) #define SKK_KEYSYMS_braille_dots_6 ((guint) 0x1002820) #define SKK_KEYSYMS_braille_dots_16 ((guint) 0x1002821) #define SKK_KEYSYMS_braille_dots_26 ((guint) 0x1002822) #define SKK_KEYSYMS_braille_dots_126 ((guint) 0x1002823) #define SKK_KEYSYMS_braille_dots_36 ((guint) 0x1002824) #define SKK_KEYSYMS_braille_dots_136 ((guint) 0x1002825) #define SKK_KEYSYMS_braille_dots_236 ((guint) 0x1002826) #define SKK_KEYSYMS_braille_dots_1236 ((guint) 0x1002827) #define SKK_KEYSYMS_braille_dots_46 ((guint) 0x1002828) #define SKK_KEYSYMS_braille_dots_146 ((guint) 0x1002829) #define SKK_KEYSYMS_braille_dots_246 ((guint) 0x100282a) #define SKK_KEYSYMS_braille_dots_1246 ((guint) 0x100282b) #define SKK_KEYSYMS_braille_dots_346 ((guint) 0x100282c) #define SKK_KEYSYMS_braille_dots_1346 ((guint) 0x100282d) #define SKK_KEYSYMS_braille_dots_2346 ((guint) 0x100282e) #define SKK_KEYSYMS_braille_dots_12346 ((guint) 0x100282f) #define SKK_KEYSYMS_braille_dots_56 ((guint) 0x1002830) #define SKK_KEYSYMS_braille_dots_156 ((guint) 0x1002831) #define SKK_KEYSYMS_braille_dots_256 ((guint) 0x1002832) #define SKK_KEYSYMS_braille_dots_1256 ((guint) 0x1002833) #define SKK_KEYSYMS_braille_dots_356 ((guint) 0x1002834) #define SKK_KEYSYMS_braille_dots_1356 ((guint) 0x1002835) #define SKK_KEYSYMS_braille_dots_2356 ((guint) 0x1002836) #define SKK_KEYSYMS_braille_dots_12356 ((guint) 0x1002837) #define SKK_KEYSYMS_braille_dots_456 ((guint) 0x1002838) #define SKK_KEYSYMS_braille_dots_1456 ((guint) 0x1002839) #define SKK_KEYSYMS_braille_dots_2456 ((guint) 0x100283a) #define SKK_KEYSYMS_braille_dots_12456 ((guint) 0x100283b) #define SKK_KEYSYMS_braille_dots_3456 ((guint) 0x100283c) #define SKK_KEYSYMS_braille_dots_13456 ((guint) 0x100283d) #define SKK_KEYSYMS_braille_dots_23456 ((guint) 0x100283e) #define SKK_KEYSYMS_braille_dots_123456 ((guint) 0x100283f) #define SKK_KEYSYMS_braille_dots_7 ((guint) 0x1002840) #define SKK_KEYSYMS_braille_dots_17 ((guint) 0x1002841) #define SKK_KEYSYMS_braille_dots_27 ((guint) 0x1002842) #define SKK_KEYSYMS_braille_dots_127 ((guint) 0x1002843) #define SKK_KEYSYMS_braille_dots_37 ((guint) 0x1002844) #define SKK_KEYSYMS_braille_dots_137 ((guint) 0x1002845) #define SKK_KEYSYMS_braille_dots_237 ((guint) 0x1002846) #define SKK_KEYSYMS_braille_dots_1237 ((guint) 0x1002847) #define SKK_KEYSYMS_braille_dots_47 ((guint) 0x1002848) #define SKK_KEYSYMS_braille_dots_147 ((guint) 0x1002849) #define SKK_KEYSYMS_braille_dots_247 ((guint) 0x100284a) #define SKK_KEYSYMS_braille_dots_1247 ((guint) 0x100284b) #define SKK_KEYSYMS_braille_dots_347 ((guint) 0x100284c) #define SKK_KEYSYMS_braille_dots_1347 ((guint) 0x100284d) #define SKK_KEYSYMS_braille_dots_2347 ((guint) 0x100284e) #define SKK_KEYSYMS_braille_dots_12347 ((guint) 0x100284f) #define SKK_KEYSYMS_braille_dots_57 ((guint) 0x1002850) #define SKK_KEYSYMS_braille_dots_157 ((guint) 0x1002851) #define SKK_KEYSYMS_braille_dots_257 ((guint) 0x1002852) #define SKK_KEYSYMS_braille_dots_1257 ((guint) 0x1002853) #define SKK_KEYSYMS_braille_dots_357 ((guint) 0x1002854) #define SKK_KEYSYMS_braille_dots_1357 ((guint) 0x1002855) #define SKK_KEYSYMS_braille_dots_2357 ((guint) 0x1002856) #define SKK_KEYSYMS_braille_dots_12357 ((guint) 0x1002857) #define SKK_KEYSYMS_braille_dots_457 ((guint) 0x1002858) #define SKK_KEYSYMS_braille_dots_1457 ((guint) 0x1002859) #define SKK_KEYSYMS_braille_dots_2457 ((guint) 0x100285a) #define SKK_KEYSYMS_braille_dots_12457 ((guint) 0x100285b) #define SKK_KEYSYMS_braille_dots_3457 ((guint) 0x100285c) #define SKK_KEYSYMS_braille_dots_13457 ((guint) 0x100285d) #define SKK_KEYSYMS_braille_dots_23457 ((guint) 0x100285e) #define SKK_KEYSYMS_braille_dots_123457 ((guint) 0x100285f) #define SKK_KEYSYMS_braille_dots_67 ((guint) 0x1002860) #define SKK_KEYSYMS_braille_dots_167 ((guint) 0x1002861) #define SKK_KEYSYMS_braille_dots_267 ((guint) 0x1002862) #define SKK_KEYSYMS_braille_dots_1267 ((guint) 0x1002863) #define SKK_KEYSYMS_braille_dots_367 ((guint) 0x1002864) #define SKK_KEYSYMS_braille_dots_1367 ((guint) 0x1002865) #define SKK_KEYSYMS_braille_dots_2367 ((guint) 0x1002866) #define SKK_KEYSYMS_braille_dots_12367 ((guint) 0x1002867) #define SKK_KEYSYMS_braille_dots_467 ((guint) 0x1002868) #define SKK_KEYSYMS_braille_dots_1467 ((guint) 0x1002869) #define SKK_KEYSYMS_braille_dots_2467 ((guint) 0x100286a) #define SKK_KEYSYMS_braille_dots_12467 ((guint) 0x100286b) #define SKK_KEYSYMS_braille_dots_3467 ((guint) 0x100286c) #define SKK_KEYSYMS_braille_dots_13467 ((guint) 0x100286d) #define SKK_KEYSYMS_braille_dots_23467 ((guint) 0x100286e) #define SKK_KEYSYMS_braille_dots_123467 ((guint) 0x100286f) #define SKK_KEYSYMS_braille_dots_567 ((guint) 0x1002870) #define SKK_KEYSYMS_braille_dots_1567 ((guint) 0x1002871) #define SKK_KEYSYMS_braille_dots_2567 ((guint) 0x1002872) #define SKK_KEYSYMS_braille_dots_12567 ((guint) 0x1002873) #define SKK_KEYSYMS_braille_dots_3567 ((guint) 0x1002874) #define SKK_KEYSYMS_braille_dots_13567 ((guint) 0x1002875) #define SKK_KEYSYMS_braille_dots_23567 ((guint) 0x1002876) #define SKK_KEYSYMS_braille_dots_123567 ((guint) 0x1002877) #define SKK_KEYSYMS_braille_dots_4567 ((guint) 0x1002878) #define SKK_KEYSYMS_braille_dots_14567 ((guint) 0x1002879) #define SKK_KEYSYMS_braille_dots_24567 ((guint) 0x100287a) #define SKK_KEYSYMS_braille_dots_124567 ((guint) 0x100287b) #define SKK_KEYSYMS_braille_dots_34567 ((guint) 0x100287c) #define SKK_KEYSYMS_braille_dots_134567 ((guint) 0x100287d) #define SKK_KEYSYMS_braille_dots_234567 ((guint) 0x100287e) #define SKK_KEYSYMS_braille_dots_1234567 ((guint) 0x100287f) #define SKK_KEYSYMS_braille_dots_8 ((guint) 0x1002880) #define SKK_KEYSYMS_braille_dots_18 ((guint) 0x1002881) #define SKK_KEYSYMS_braille_dots_28 ((guint) 0x1002882) #define SKK_KEYSYMS_braille_dots_128 ((guint) 0x1002883) #define SKK_KEYSYMS_braille_dots_38 ((guint) 0x1002884) #define SKK_KEYSYMS_braille_dots_138 ((guint) 0x1002885) #define SKK_KEYSYMS_braille_dots_238 ((guint) 0x1002886) #define SKK_KEYSYMS_braille_dots_1238 ((guint) 0x1002887) #define SKK_KEYSYMS_braille_dots_48 ((guint) 0x1002888) #define SKK_KEYSYMS_braille_dots_148 ((guint) 0x1002889) #define SKK_KEYSYMS_braille_dots_248 ((guint) 0x100288a) #define SKK_KEYSYMS_braille_dots_1248 ((guint) 0x100288b) #define SKK_KEYSYMS_braille_dots_348 ((guint) 0x100288c) #define SKK_KEYSYMS_braille_dots_1348 ((guint) 0x100288d) #define SKK_KEYSYMS_braille_dots_2348 ((guint) 0x100288e) #define SKK_KEYSYMS_braille_dots_12348 ((guint) 0x100288f) #define SKK_KEYSYMS_braille_dots_58 ((guint) 0x1002890) #define SKK_KEYSYMS_braille_dots_158 ((guint) 0x1002891) #define SKK_KEYSYMS_braille_dots_258 ((guint) 0x1002892) #define SKK_KEYSYMS_braille_dots_1258 ((guint) 0x1002893) #define SKK_KEYSYMS_braille_dots_358 ((guint) 0x1002894) #define SKK_KEYSYMS_braille_dots_1358 ((guint) 0x1002895) #define SKK_KEYSYMS_braille_dots_2358 ((guint) 0x1002896) #define SKK_KEYSYMS_braille_dots_12358 ((guint) 0x1002897) #define SKK_KEYSYMS_braille_dots_458 ((guint) 0x1002898) #define SKK_KEYSYMS_braille_dots_1458 ((guint) 0x1002899) #define SKK_KEYSYMS_braille_dots_2458 ((guint) 0x100289a) #define SKK_KEYSYMS_braille_dots_12458 ((guint) 0x100289b) #define SKK_KEYSYMS_braille_dots_3458 ((guint) 0x100289c) #define SKK_KEYSYMS_braille_dots_13458 ((guint) 0x100289d) #define SKK_KEYSYMS_braille_dots_23458 ((guint) 0x100289e) #define SKK_KEYSYMS_braille_dots_123458 ((guint) 0x100289f) #define SKK_KEYSYMS_braille_dots_68 ((guint) 0x10028a0) #define SKK_KEYSYMS_braille_dots_168 ((guint) 0x10028a1) #define SKK_KEYSYMS_braille_dots_268 ((guint) 0x10028a2) #define SKK_KEYSYMS_braille_dots_1268 ((guint) 0x10028a3) #define SKK_KEYSYMS_braille_dots_368 ((guint) 0x10028a4) #define SKK_KEYSYMS_braille_dots_1368 ((guint) 0x10028a5) #define SKK_KEYSYMS_braille_dots_2368 ((guint) 0x10028a6) #define SKK_KEYSYMS_braille_dots_12368 ((guint) 0x10028a7) #define SKK_KEYSYMS_braille_dots_468 ((guint) 0x10028a8) #define SKK_KEYSYMS_braille_dots_1468 ((guint) 0x10028a9) #define SKK_KEYSYMS_braille_dots_2468 ((guint) 0x10028aa) #define SKK_KEYSYMS_braille_dots_12468 ((guint) 0x10028ab) #define SKK_KEYSYMS_braille_dots_3468 ((guint) 0x10028ac) #define SKK_KEYSYMS_braille_dots_13468 ((guint) 0x10028ad) #define SKK_KEYSYMS_braille_dots_23468 ((guint) 0x10028ae) #define SKK_KEYSYMS_braille_dots_123468 ((guint) 0x10028af) #define SKK_KEYSYMS_braille_dots_568 ((guint) 0x10028b0) #define SKK_KEYSYMS_braille_dots_1568 ((guint) 0x10028b1) #define SKK_KEYSYMS_braille_dots_2568 ((guint) 0x10028b2) #define SKK_KEYSYMS_braille_dots_12568 ((guint) 0x10028b3) #define SKK_KEYSYMS_braille_dots_3568 ((guint) 0x10028b4) #define SKK_KEYSYMS_braille_dots_13568 ((guint) 0x10028b5) #define SKK_KEYSYMS_braille_dots_23568 ((guint) 0x10028b6) #define SKK_KEYSYMS_braille_dots_123568 ((guint) 0x10028b7) #define SKK_KEYSYMS_braille_dots_4568 ((guint) 0x10028b8) #define SKK_KEYSYMS_braille_dots_14568 ((guint) 0x10028b9) #define SKK_KEYSYMS_braille_dots_24568 ((guint) 0x10028ba) #define SKK_KEYSYMS_braille_dots_124568 ((guint) 0x10028bb) #define SKK_KEYSYMS_braille_dots_34568 ((guint) 0x10028bc) #define SKK_KEYSYMS_braille_dots_134568 ((guint) 0x10028bd) #define SKK_KEYSYMS_braille_dots_234568 ((guint) 0x10028be) #define SKK_KEYSYMS_braille_dots_1234568 ((guint) 0x10028bf) #define SKK_KEYSYMS_braille_dots_78 ((guint) 0x10028c0) #define SKK_KEYSYMS_braille_dots_178 ((guint) 0x10028c1) #define SKK_KEYSYMS_braille_dots_278 ((guint) 0x10028c2) #define SKK_KEYSYMS_braille_dots_1278 ((guint) 0x10028c3) #define SKK_KEYSYMS_braille_dots_378 ((guint) 0x10028c4) #define SKK_KEYSYMS_braille_dots_1378 ((guint) 0x10028c5) #define SKK_KEYSYMS_braille_dots_2378 ((guint) 0x10028c6) #define SKK_KEYSYMS_braille_dots_12378 ((guint) 0x10028c7) #define SKK_KEYSYMS_braille_dots_478 ((guint) 0x10028c8) #define SKK_KEYSYMS_braille_dots_1478 ((guint) 0x10028c9) #define SKK_KEYSYMS_braille_dots_2478 ((guint) 0x10028ca) #define SKK_KEYSYMS_braille_dots_12478 ((guint) 0x10028cb) #define SKK_KEYSYMS_braille_dots_3478 ((guint) 0x10028cc) #define SKK_KEYSYMS_braille_dots_13478 ((guint) 0x10028cd) #define SKK_KEYSYMS_braille_dots_23478 ((guint) 0x10028ce) #define SKK_KEYSYMS_braille_dots_123478 ((guint) 0x10028cf) #define SKK_KEYSYMS_braille_dots_578 ((guint) 0x10028d0) #define SKK_KEYSYMS_braille_dots_1578 ((guint) 0x10028d1) #define SKK_KEYSYMS_braille_dots_2578 ((guint) 0x10028d2) #define SKK_KEYSYMS_braille_dots_12578 ((guint) 0x10028d3) #define SKK_KEYSYMS_braille_dots_3578 ((guint) 0x10028d4) #define SKK_KEYSYMS_braille_dots_13578 ((guint) 0x10028d5) #define SKK_KEYSYMS_braille_dots_23578 ((guint) 0x10028d6) #define SKK_KEYSYMS_braille_dots_123578 ((guint) 0x10028d7) #define SKK_KEYSYMS_braille_dots_4578 ((guint) 0x10028d8) #define SKK_KEYSYMS_braille_dots_14578 ((guint) 0x10028d9) #define SKK_KEYSYMS_braille_dots_24578 ((guint) 0x10028da) #define SKK_KEYSYMS_braille_dots_124578 ((guint) 0x10028db) #define SKK_KEYSYMS_braille_dots_34578 ((guint) 0x10028dc) #define SKK_KEYSYMS_braille_dots_134578 ((guint) 0x10028dd) #define SKK_KEYSYMS_braille_dots_234578 ((guint) 0x10028de) #define SKK_KEYSYMS_braille_dots_1234578 ((guint) 0x10028df) #define SKK_KEYSYMS_braille_dots_678 ((guint) 0x10028e0) #define SKK_KEYSYMS_braille_dots_1678 ((guint) 0x10028e1) #define SKK_KEYSYMS_braille_dots_2678 ((guint) 0x10028e2) #define SKK_KEYSYMS_braille_dots_12678 ((guint) 0x10028e3) #define SKK_KEYSYMS_braille_dots_3678 ((guint) 0x10028e4) #define SKK_KEYSYMS_braille_dots_13678 ((guint) 0x10028e5) #define SKK_KEYSYMS_braille_dots_23678 ((guint) 0x10028e6) #define SKK_KEYSYMS_braille_dots_123678 ((guint) 0x10028e7) #define SKK_KEYSYMS_braille_dots_4678 ((guint) 0x10028e8) #define SKK_KEYSYMS_braille_dots_14678 ((guint) 0x10028e9) #define SKK_KEYSYMS_braille_dots_24678 ((guint) 0x10028ea) #define SKK_KEYSYMS_braille_dots_124678 ((guint) 0x10028eb) #define SKK_KEYSYMS_braille_dots_34678 ((guint) 0x10028ec) #define SKK_KEYSYMS_braille_dots_134678 ((guint) 0x10028ed) #define SKK_KEYSYMS_braille_dots_234678 ((guint) 0x10028ee) #define SKK_KEYSYMS_braille_dots_1234678 ((guint) 0x10028ef) #define SKK_KEYSYMS_braille_dots_5678 ((guint) 0x10028f0) #define SKK_KEYSYMS_braille_dots_15678 ((guint) 0x10028f1) #define SKK_KEYSYMS_braille_dots_25678 ((guint) 0x10028f2) #define SKK_KEYSYMS_braille_dots_125678 ((guint) 0x10028f3) #define SKK_KEYSYMS_braille_dots_35678 ((guint) 0x10028f4) #define SKK_KEYSYMS_braille_dots_135678 ((guint) 0x10028f5) #define SKK_KEYSYMS_braille_dots_235678 ((guint) 0x10028f6) #define SKK_KEYSYMS_braille_dots_1235678 ((guint) 0x10028f7) #define SKK_KEYSYMS_braille_dots_45678 ((guint) 0x10028f8) #define SKK_KEYSYMS_braille_dots_145678 ((guint) 0x10028f9) #define SKK_KEYSYMS_braille_dots_245678 ((guint) 0x10028fa) #define SKK_KEYSYMS_braille_dots_1245678 ((guint) 0x10028fb) #define SKK_KEYSYMS_braille_dots_345678 ((guint) 0x10028fc) #define SKK_KEYSYMS_braille_dots_1345678 ((guint) 0x10028fd) #define SKK_KEYSYMS_braille_dots_2345678 ((guint) 0x10028fe) #define SKK_KEYSYMS_braille_dots_12345678 ((guint) 0x10028ff) #define SKK_KEYSYMS_Sinh_ng ((guint) 0x1000d82) #define SKK_KEYSYMS_Sinh_h2 ((guint) 0x1000d83) #define SKK_KEYSYMS_Sinh_a ((guint) 0x1000d85) #define SKK_KEYSYMS_Sinh_aa ((guint) 0x1000d86) #define SKK_KEYSYMS_Sinh_ae ((guint) 0x1000d87) #define SKK_KEYSYMS_Sinh_aee ((guint) 0x1000d88) #define SKK_KEYSYMS_Sinh_i ((guint) 0x1000d89) #define SKK_KEYSYMS_Sinh_ii ((guint) 0x1000d8a) #define SKK_KEYSYMS_Sinh_u ((guint) 0x1000d8b) #define SKK_KEYSYMS_Sinh_uu ((guint) 0x1000d8c) #define SKK_KEYSYMS_Sinh_ri ((guint) 0x1000d8d) #define SKK_KEYSYMS_Sinh_rii ((guint) 0x1000d8e) #define SKK_KEYSYMS_Sinh_lu ((guint) 0x1000d8f) #define SKK_KEYSYMS_Sinh_luu ((guint) 0x1000d90) #define SKK_KEYSYMS_Sinh_e ((guint) 0x1000d91) #define SKK_KEYSYMS_Sinh_ee ((guint) 0x1000d92) #define SKK_KEYSYMS_Sinh_ai ((guint) 0x1000d93) #define SKK_KEYSYMS_Sinh_o ((guint) 0x1000d94) #define SKK_KEYSYMS_Sinh_oo ((guint) 0x1000d95) #define SKK_KEYSYMS_Sinh_au ((guint) 0x1000d96) #define SKK_KEYSYMS_Sinh_ka ((guint) 0x1000d9a) #define SKK_KEYSYMS_Sinh_kha ((guint) 0x1000d9b) #define SKK_KEYSYMS_Sinh_ga ((guint) 0x1000d9c) #define SKK_KEYSYMS_Sinh_gha ((guint) 0x1000d9d) #define SKK_KEYSYMS_Sinh_ng2 ((guint) 0x1000d9e) #define SKK_KEYSYMS_Sinh_nga ((guint) 0x1000d9f) #define SKK_KEYSYMS_Sinh_ca ((guint) 0x1000da0) #define SKK_KEYSYMS_Sinh_cha ((guint) 0x1000da1) #define SKK_KEYSYMS_Sinh_ja ((guint) 0x1000da2) #define SKK_KEYSYMS_Sinh_jha ((guint) 0x1000da3) #define SKK_KEYSYMS_Sinh_nya ((guint) 0x1000da4) #define SKK_KEYSYMS_Sinh_jnya ((guint) 0x1000da5) #define SKK_KEYSYMS_Sinh_nja ((guint) 0x1000da6) #define SKK_KEYSYMS_Sinh_tta ((guint) 0x1000da7) #define SKK_KEYSYMS_Sinh_ttha ((guint) 0x1000da8) #define SKK_KEYSYMS_Sinh_dda ((guint) 0x1000da9) #define SKK_KEYSYMS_Sinh_ddha ((guint) 0x1000daa) #define SKK_KEYSYMS_Sinh_nna ((guint) 0x1000dab) #define SKK_KEYSYMS_Sinh_ndda ((guint) 0x1000dac) #define SKK_KEYSYMS_Sinh_tha ((guint) 0x1000dad) #define SKK_KEYSYMS_Sinh_thha ((guint) 0x1000dae) #define SKK_KEYSYMS_Sinh_dha ((guint) 0x1000daf) #define SKK_KEYSYMS_Sinh_dhha ((guint) 0x1000db0) #define SKK_KEYSYMS_Sinh_na ((guint) 0x1000db1) #define SKK_KEYSYMS_Sinh_ndha ((guint) 0x1000db3) #define SKK_KEYSYMS_Sinh_pa ((guint) 0x1000db4) #define SKK_KEYSYMS_Sinh_pha ((guint) 0x1000db5) #define SKK_KEYSYMS_Sinh_ba ((guint) 0x1000db6) #define SKK_KEYSYMS_Sinh_bha ((guint) 0x1000db7) #define SKK_KEYSYMS_Sinh_ma ((guint) 0x1000db8) #define SKK_KEYSYMS_Sinh_mba ((guint) 0x1000db9) #define SKK_KEYSYMS_Sinh_ya ((guint) 0x1000dba) #define SKK_KEYSYMS_Sinh_ra ((guint) 0x1000dbb) #define SKK_KEYSYMS_Sinh_la ((guint) 0x1000dbd) #define SKK_KEYSYMS_Sinh_va ((guint) 0x1000dc0) #define SKK_KEYSYMS_Sinh_sha ((guint) 0x1000dc1) #define SKK_KEYSYMS_Sinh_ssha ((guint) 0x1000dc2) #define SKK_KEYSYMS_Sinh_sa ((guint) 0x1000dc3) #define SKK_KEYSYMS_Sinh_ha ((guint) 0x1000dc4) #define SKK_KEYSYMS_Sinh_lla ((guint) 0x1000dc5) #define SKK_KEYSYMS_Sinh_fa ((guint) 0x1000dc6) #define SKK_KEYSYMS_Sinh_al ((guint) 0x1000dca) #define SKK_KEYSYMS_Sinh_aa2 ((guint) 0x1000dcf) #define SKK_KEYSYMS_Sinh_ae2 ((guint) 0x1000dd0) #define SKK_KEYSYMS_Sinh_aee2 ((guint) 0x1000dd1) #define SKK_KEYSYMS_Sinh_i2 ((guint) 0x1000dd2) #define SKK_KEYSYMS_Sinh_ii2 ((guint) 0x1000dd3) #define SKK_KEYSYMS_Sinh_u2 ((guint) 0x1000dd4) #define SKK_KEYSYMS_Sinh_uu2 ((guint) 0x1000dd6) #define SKK_KEYSYMS_Sinh_ru2 ((guint) 0x1000dd8) #define SKK_KEYSYMS_Sinh_e2 ((guint) 0x1000dd9) #define SKK_KEYSYMS_Sinh_ee2 ((guint) 0x1000dda) #define SKK_KEYSYMS_Sinh_ai2 ((guint) 0x1000ddb) #define SKK_KEYSYMS_Sinh_o2 ((guint) 0x1000ddc) #define SKK_KEYSYMS_Sinh_oo2 ((guint) 0x1000ddd) #define SKK_KEYSYMS_Sinh_au2 ((guint) 0x1000dde) #define SKK_KEYSYMS_Sinh_lu2 ((guint) 0x1000ddf) #define SKK_KEYSYMS_Sinh_ruu2 ((guint) 0x1000df2) #define SKK_KEYSYMS_Sinh_luu2 ((guint) 0x1000df3) #define SKK_KEYSYMS_Sinh_kunddaliya ((guint) 0x1000df4) extern const gchar* SKK_PERIOD_RULE[4]; extern const gchar* SKK_AUTO_START_HENKAN_KEYWORDS[28]; G_END_DECLS #endif libskk-1.0.0/libskk/cdb-dict.vala0000664000076400007640000001236411757566215013544 00000000000000/* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ namespace Skk { /** * CDB based implementation of Dict. */ public class CdbDict : Dict { static uint32 hash (char[] chars) { uint32 h = 5381; foreach (var c in chars) { h = ((h << 5) + h) ^ ((uint8) c); } return h; } /** * {@inheritDoc} */ public override void reload () throws GLib.Error { #if VALA_0_16 string attributes = FileAttribute.ETAG_VALUE; #else string attributes = FILE_ATTRIBUTE_ETAG_VALUE; #endif FileInfo info = file.query_info (attributes, FileQueryInfoFlags.NONE); if (info.get_etag () != etag) { try { mmap.remap (); etag = info.get_etag (); } catch (SkkDictError e) { warning ("error loading file dictionary %s %s", file.get_path (), e.message); } } } static uint32 read_uint32 (uint8 *p) { // Make sure that Q does not stride across 4-byte // alignment on ARM (Debian bug#674471). uint8 q[4] = (uint8[]) p; return uint32.from_little_endian (*((uint32 *) q)); } /** * {@inheritDoc} */ public override Candidate[] lookup (string midasi, bool okuri = false) { if (mmap.memory == null) return new Candidate[0]; string _midasi; try { _midasi = converter.encode (midasi); } catch (GLib.Error e) { warning ("can't encode %s: %s", midasi, e.message); return new Candidate[0]; } uint32 h = hash (_midasi.to_utf8 ()); uint8 *p = (uint8 *) mmap.memory + (h % 256) * 8; uint32 hash_offset = read_uint32 (p); uint32 hash_length = read_uint32 (p + 4); uint32 start = (h >> 8) % hash_length; p = (uint8 *) mmap.memory + hash_offset; for (var i = 0; i < hash_length; i++) { uint8 *q = p + 8 * ((i + start) % hash_length); uint32 _h = read_uint32 (q); uint32 record_offset = read_uint32 (q + 4); if (record_offset == 0) break; if (_h == h) { uint8 *r = (uint8 *) mmap.memory + record_offset; uint32 key_length = read_uint32 (r); uint32 data_length = read_uint32 (r + 4); if (Memory.cmp (r + 8, _midasi, key_length) == 0) { char[] data = new char[data_length + 1]; Memory.copy (data, r + 8 + key_length, data_length); data.length--; string _data; try { _data = converter.decode ((string) data); } catch (GLib.Error e) { warning ("can't decode data %s: %s", (string) data, e.message); break; } return split_candidates (midasi, okuri, _data); } } } return new Candidate[0]; } /** * {@inheritDoc} * * This always returns an empty array since CDB format does * not provide key enumeration. */ public override string[] complete (string midasi) { return new string[0]; } /** * {@inheritDoc} */ public override bool read_only { get { return true; } } File file; MemoryMappedFile mmap; string etag; EncodingConverter converter; /** * Create a new CdbDict. * * @param path a path to the file * @param encoding encoding of the file (default EUC-JP) * * @return a new FileDict * @throws GLib.Error if opening the file is failed */ public CdbDict (string path, string encoding = "EUC-JP") throws GLib.Error { this.file = File.new_for_path (path); this.mmap = new MemoryMappedFile (file); this.etag = ""; this.converter = new EncodingConverter (encoding); reload (); } } } libskk-1.0.0/libskk/util.c0000664000076400007640000020000312016556644012326 00000000000000/* util.c generated by valac 0.16.0, the Vala compiler * generated from util.vala, do not modify */ /* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ #include #include #include #include #include #include #include #include #include #include #include #define SKK_TYPE_ENTRY (skk_entry_get_type ()) typedef struct _SkkEntry SkkEntry; #define SKK_TYPE_NUMERIC_CONVERSION_TYPE (skk_numeric_conversion_type_get_type ()) #define SKK_TYPE_UTIL (skk_util_get_type ()) #define SKK_UTIL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_UTIL, SkkUtil)) #define SKK_UTIL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_UTIL, SkkUtilClass)) #define SKK_IS_UTIL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_UTIL)) #define SKK_IS_UTIL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_UTIL)) #define SKK_UTIL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_UTIL, SkkUtilClass)) typedef struct _SkkUtil SkkUtil; typedef struct _SkkUtilClass SkkUtilClass; typedef struct _SkkUtilPrivate SkkUtilPrivate; #define SKK_UTIL_TYPE_KANA_TABLE_ENTRY (skk_util_kana_table_entry_get_type ()) typedef struct _SkkUtilKanaTableEntry SkkUtilKanaTableEntry; #define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL))) #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) typedef struct _Block1Data Block1Data; typedef struct _Block2Data Block2Data; #define _g_free0(var) (var = (g_free (var), NULL)) typedef struct _Block3Data Block3Data; #define SKK_TYPE_KANA_MODE (skk_kana_mode_get_type ()) #define SKK_TYPE_INPUT_MODE (skk_input_mode_get_type ()) #define SKK_TYPE_UNICODE_STRING (skk_unicode_string_get_type ()) #define SKK_UNICODE_STRING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_UNICODE_STRING, SkkUnicodeString)) #define SKK_UNICODE_STRING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_UNICODE_STRING, SkkUnicodeStringClass)) #define SKK_IS_UNICODE_STRING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_UNICODE_STRING)) #define SKK_IS_UNICODE_STRING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_UNICODE_STRING)) #define SKK_UNICODE_STRING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_UNICODE_STRING, SkkUnicodeStringClass)) typedef struct _SkkUnicodeString SkkUnicodeString; typedef struct _SkkUnicodeStringClass SkkUnicodeStringClass; typedef struct _SkkUnicodeStringPrivate SkkUnicodeStringPrivate; #define SKK_TYPE_MEMORY_MAPPED_FILE (skk_memory_mapped_file_get_type ()) #define SKK_MEMORY_MAPPED_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_MEMORY_MAPPED_FILE, SkkMemoryMappedFile)) #define SKK_MEMORY_MAPPED_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_MEMORY_MAPPED_FILE, SkkMemoryMappedFileClass)) #define SKK_IS_MEMORY_MAPPED_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_MEMORY_MAPPED_FILE)) #define SKK_IS_MEMORY_MAPPED_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_MEMORY_MAPPED_FILE)) #define SKK_MEMORY_MAPPED_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_MEMORY_MAPPED_FILE, SkkMemoryMappedFileClass)) typedef struct _SkkMemoryMappedFile SkkMemoryMappedFile; typedef struct _SkkMemoryMappedFileClass SkkMemoryMappedFileClass; typedef struct _SkkMemoryMappedFilePrivate SkkMemoryMappedFilePrivate; struct _SkkEntry { gpointer key; gpointer value; }; typedef enum { SKK_NUMERIC_CONVERSION_TYPE_LATIN, SKK_NUMERIC_CONVERSION_TYPE_WIDE_LATIN, SKK_NUMERIC_CONVERSION_TYPE_KANJI_NUMERAL, SKK_NUMERIC_CONVERSION_TYPE_KANJI, SKK_NUMERIC_CONVERSION_TYPE_RECONVERT, SKK_NUMERIC_CONVERSION_TYPE_DAIJI, SKK_NUMERIC_CONVERSION_TYPE_SHOGI } SkkNumericConversionType; struct _SkkUtil { GObject parent_instance; SkkUtilPrivate * priv; }; struct _SkkUtilClass { GObjectClass parent_class; }; struct _SkkUtilKanaTableEntry { gunichar katakana; gchar* hiragana; gchar* hankaku_katakana; }; struct _Block1Data { int _ref_count_; GString* builder; }; struct _Block2Data { int _ref_count_; GString* builder; }; struct _Block3Data { int _ref_count_; GString* builder; }; typedef enum { SKK_KANA_MODE_HIRAGANA, SKK_KANA_MODE_KATAKANA, SKK_KANA_MODE_HANKAKU_KATAKANA } SkkKanaMode; typedef enum { SKK_INPUT_MODE_HIRAGANA = SKK_KANA_MODE_HIRAGANA, SKK_INPUT_MODE_KATAKANA = SKK_KANA_MODE_KATAKANA, SKK_INPUT_MODE_HANKAKU_KATAKANA = SKK_KANA_MODE_HANKAKU_KATAKANA, SKK_INPUT_MODE_LATIN, SKK_INPUT_MODE_WIDE_LATIN, SKK_INPUT_MODE_LAST, SKK_INPUT_MODE_DEFAULT = SKK_INPUT_MODE_HIRAGANA } SkkInputMode; struct _SkkUnicodeString { GObject parent_instance; SkkUnicodeStringPrivate * priv; gint length; }; struct _SkkUnicodeStringClass { GObjectClass parent_class; }; struct _SkkUnicodeStringPrivate { gchar* str; }; struct _SkkMemoryMappedFile { GObject parent_instance; SkkMemoryMappedFilePrivate * priv; }; struct _SkkMemoryMappedFileClass { GObjectClass parent_class; }; struct _SkkMemoryMappedFilePrivate { void* _memory; gsize _length; GFile* file; }; typedef enum { SKK_SKK_DICT_ERROR_NOT_READABLE, SKK_SKK_DICT_ERROR_MALFORMED_INPUT } SkkSkkDictError; #define SKK_SKK_DICT_ERROR skk_skk_dict_error_quark () static gpointer skk_util_parent_class = NULL; static GeeMap* skk_util__HiraganaTable; static GeeMap* skk_util__HiraganaTable = NULL; static GeeMap* skk_util__KatakanaTable; static GeeMap* skk_util__KatakanaTable = NULL; static GeeMap* skk_util__HankakuKatakanaTable; static GeeMap* skk_util__HankakuKatakanaTable = NULL; static GeeMap* skk_util__CompositionTable; static GeeMap* skk_util__CompositionTable = NULL; static GeeMap* skk_util__WideLatinToLatinTable; static GeeMap* skk_util__WideLatinToLatinTable = NULL; static gpointer skk_unicode_string_parent_class = NULL; static gpointer skk_memory_mapped_file_parent_class = NULL; GType skk_entry_get_type (void) G_GNUC_CONST; SkkEntry* skk_entry_dup (const SkkEntry* self); void skk_entry_free (SkkEntry* self); void skk_entry_copy (const SkkEntry* self, SkkEntry* dest); void skk_entry_destroy (SkkEntry* self); GType skk_numeric_conversion_type_get_type (void) G_GNUC_CONST; GType skk_util_get_type (void) G_GNUC_CONST; enum { SKK_UTIL_DUMMY_PROPERTY }; static GType skk_util_kana_table_entry_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; static SkkUtilKanaTableEntry* skk_util_kana_table_entry_dup (const SkkUtilKanaTableEntry* self); static void skk_util_kana_table_entry_free (SkkUtilKanaTableEntry* self); static void skk_util_kana_table_entry_copy (const SkkUtilKanaTableEntry* self, SkkUtilKanaTableEntry* dest); static void skk_util_kana_table_entry_destroy (SkkUtilKanaTableEntry* self); static gchar* skk_util_get_okurigana_prefix_for_char (gunichar uc); gchar* skk_util_get_okurigana_prefix (const gchar* okurigana); gunichar skk_util_get_wide_latin_char (gchar c); gchar* skk_util_get_wide_latin (const gchar* latin); static gunichar skk_util_get_katakana_char (gunichar uc); static void skk_util_foreach_katakana (const gchar* kana, GFunc func, void* func_target); gchar* skk_util_get_katakana (const gchar* kana); static Block1Data* block1_data_ref (Block1Data* _data1_); static void block1_data_unref (void * _userdata_); static void __lambda2_ (Block1Data* _data1_, gunichar uc); static void ___lambda2__gfunc (gconstpointer data, gpointer self); gchar* skk_util_get_hiragana (const gchar* kana); static Block2Data* block2_data_ref (Block2Data* _data2_); static void block2_data_unref (void * _userdata_); static void __lambda3_ (Block2Data* _data2_, gunichar uc); static void ___lambda3__gfunc (gconstpointer data, gpointer self); gchar* skk_util_get_hankaku_katakana (const gchar* kana); static Block3Data* block3_data_ref (Block3Data* _data3_); static void block3_data_unref (void * _userdata_); static void __lambda4_ (Block3Data* _data3_, gunichar uc); static void ___lambda4__gfunc (gconstpointer data, gpointer self); GType skk_kana_mode_get_type (void) G_GNUC_CONST; GType skk_input_mode_get_type (void) G_GNUC_CONST; gchar* skk_util_convert_by_input_mode (const gchar* str, SkkInputMode input_mode); static gchar* skk_util_get_kanji_numeric (gint numeric, gchar** num_table, int num_table_length1, gchar** num_pos_table, int num_pos_table_length1); gchar* skk_util_get_numeric (gint numeric, SkkNumericConversionType type); gchar** skk_util_build_data_path (const gchar* subdir, int* result_length1); SkkUtil* skk_util_new (void); SkkUtil* skk_util_construct (GType object_type); static void skk_util_finalize (GObject* obj); GType skk_unicode_string_get_type (void) G_GNUC_CONST; #define SKK_UNICODE_STRING_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SKK_TYPE_UNICODE_STRING, SkkUnicodeStringPrivate)) enum { SKK_UNICODE_STRING_DUMMY_PROPERTY }; SkkUnicodeString* skk_unicode_string_new (const gchar* str); SkkUnicodeString* skk_unicode_string_construct (GType object_type, const gchar* str); gchar* skk_unicode_string_substring (SkkUnicodeString* self, glong offset, glong len); static void skk_unicode_string_finalize (GObject* obj); GType skk_memory_mapped_file_get_type (void) G_GNUC_CONST; #define SKK_MEMORY_MAPPED_FILE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SKK_TYPE_MEMORY_MAPPED_FILE, SkkMemoryMappedFilePrivate)) enum { SKK_MEMORY_MAPPED_FILE_DUMMY_PROPERTY, SKK_MEMORY_MAPPED_FILE_MEMORY, SKK_MEMORY_MAPPED_FILE_LENGTH }; SkkMemoryMappedFile* skk_memory_mapped_file_new (GFile* file); SkkMemoryMappedFile* skk_memory_mapped_file_construct (GType object_type, GFile* file); GQuark skk_skk_dict_error_quark (void); void skk_memory_mapped_file_remap (SkkMemoryMappedFile* self, GError** error); static void skk_memory_mapped_file_map (SkkMemoryMappedFile* self, GError** error); void* skk_memory_mapped_file_get_memory (SkkMemoryMappedFile* self); gsize skk_memory_mapped_file_get_length (SkkMemoryMappedFile* self); static void skk_memory_mapped_file_finalize (GObject* obj); static void _vala_skk_memory_mapped_file_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func); static gint _vala_array_length (gpointer array); static const SkkUtilKanaTableEntry SKK_UTIL_KanaTable[86] = {{12450U, "ã‚", "ï½±"}, {12452U, "ã„", "ï½²"}, {12454U, "ã†", "ï½³"}, {12456U, "ãˆ", "ï½´"}, {12458U, "ãŠ", "ï½µ"}, {12459U, "ã‹", "ï½¶"}, {12461U, "ã", "ï½·"}, {12463U, "ã", "ク"}, {12465U, "ã‘", "ï½¹"}, {12467U, "ã“", "コ"}, {12469U, "ã•", "ï½»"}, {12471U, "ã—", "ï½¼"}, {12473U, "ã™", "ï½½"}, {12475U, "ã›", "ï½¾"}, {12477U, "ã", "ソ"}, {12479U, "ãŸ", "ï¾€"}, {12481U, "ã¡", "ï¾"}, {12484U, "ã¤", "ツ"}, {12486U, "ã¦", "テ"}, {12488U, "ã¨", "ト"}, {12490U, "ãª", "ï¾…"}, {12491U, "ã«", "ニ"}, {12492U, "ã¬", "ヌ"}, {12493U, "ã­", "ネ"}, {12494U, "ã®", "ノ"}, {12495U, "ã¯", "ハ"}, {12498U, "ã²", "ヒ"}, {12501U, "ãµ", "フ"}, {12504U, "ã¸", "ï¾"}, {12507U, "ã»", "ホ"}, {12510U, "ã¾", "ï¾"}, {12511U, "ã¿", "ï¾"}, {12512U, "ã‚€", "ム"}, {12513U, "ã‚", "ï¾’"}, {12514U, "ã‚‚", "モ"}, {12516U, "ã‚„", "ï¾”"}, {12518U, "ゆ", "ユ"}, {12520U, "よ", "ï¾–"}, {12521U, "ら", "ï¾—"}, {12522U, "り", "リ"}, {12523U, "ã‚‹", "ï¾™"}, {12524U, "れ", "レ"}, {12525U, "ã‚", "ï¾›"}, {12527U, "ã‚", "ワ"}, {12528U, "ã‚", "ï½²"}, {12529U, "ã‚‘", "ï½´"}, {12530U, "ã‚’", "ヲ"}, {12531U, "ã‚“", "ï¾"}, {12460U, "ãŒ", "ガ"}, {12462U, "ãŽ", "ギ"}, {12464U, "ã", "グ"}, {12466U, "ã’", "ゲ"}, {12468U, "ã”", "ゴ"}, {12470U, "ã–", "ザ"}, {12472U, "ã˜", "ジ"}, {12474U, "ãš", "ズ"}, {12476U, "ãœ", "ゼ"}, {12478U, "ãž", "ゾ"}, {12480U, "ã ", "ダ"}, {12482U, "ã¢", "ï¾ï¾ž"}, {12485U, "ã¥", "ヅ"}, {12487U, "ã§", "デ"}, {12489U, "ã©", "ド"}, {12496U, "ã°", "バ"}, {12499U, "ã³", "ビ"}, {12502U, "ã¶", "ブ"}, {12505U, "ã¹", "ï¾ï¾ž"}, {12508U, "ã¼", "ボ"}, {12497U, "ã±", "パ"}, {12500U, "ã´", "ピ"}, {12503U, "ã·", "プ"}, {12506U, "ãº", "ï¾ï¾Ÿ"}, {12509U, "ã½", "ポ"}, {12449U, "ã", "ï½§"}, {12451U, "ãƒ", "ィ"}, {12453U, "ã…", "ゥ"}, {12455U, "ã‡", "ェ"}, {12457U, "ã‰", "ォ"}, {12483U, "ã£", "ッ"}, {12515U, "ゃ", "ャ"}, {12517U, "ã‚…", "ï½­"}, {12519U, "ょ", "ï½®"}, {12526U, "ゎ", NULL}, {12532U, "ã†ã‚›", "ヴ"}, {12533U, NULL, NULL}, {12534U, NULL, NULL}}; static const SkkEntry SKK_UTIL_HankakuKatakanaSubstitute[3] = {{12526U, "ワ"}, {12533U, "ï½¶"}, {12534U, "ï½¹"}}; static const gchar* SKK_UTIL_WideLatinTable[95] = {" ", "ï¼", "â€", "#", "$", "ï¼…", "&", "’", "(", ")", "*", "+", ",", "−", ".", "ï¼", "ï¼", "1", "ï¼’", "3", "ï¼”", "5", "ï¼–", "ï¼—", "8", "ï¼™", ":", "ï¼›", "<", "ï¼", ">", "?", "ï¼ ", "A", "ï¼¢", "ï¼£", "D", "ï¼¥", "F", "ï¼§", "H", "I", "J", "K", "L", "ï¼­", "ï¼®", "O", "ï¼°", "ï¼±", "ï¼²", "ï¼³", "ï¼´", "ï¼µ", "ï¼¶", "ï¼·", "X", "ï¼¹", "Z", "ï¼»", "ï¼¼", "ï¼½", "ï¼¾", "_", "‘", "ï½", "b", "c", "d", "ï½…", "f", "g", "h", "i", "j", "k", "l", "ï½", "n", "ï½", "ï½", "q", "ï½’", "s", "ï½”", "u", "ï½–", "ï½—", "x", "ï½™", "z", "ï½›", "|", "ï½", "〜"}; static const gchar* SKK_UTIL_KanaRomTable[83] = {"x", "a", "x", "i", "x", "u", "x", "e", "x", "o", "k", "g", "k", "g", "k", "g", "k", "g", "k", "g", "s", "z", "s", "z", "s", "z", "s", "z", "s", "z", "t", "d", "t", "d", "t", "t", "d", "t", "d", "t", "d", "n", "n", "n", "n", "n", "h", "b", "p", "h", "b", "p", "h", "b", "p", "h", "b", "p", "h", "b", "p", "m", "m", "m", "m", "m", "x", "y", "x", "y", "x", "y", "r", "r", "r", "r", "r", "x", "w", "x", "x", "w", "n"}; static const gchar* SKK_UTIL_KanjiNumericTable[10] = {"〇", "一", "二", "三", "å››", "五", "å…­", "七", "å…«", "ä¹"}; static const gchar* SKK_UTIL_DaijiNumericTable[10] = {"é›¶", "壱", "å¼", "å‚", "å››", "ä¼", "å…­", "七", "å…«", "ä¹"}; static const gchar* SKK_UTIL_KanjiNumericalPositionTable[18] = {NULL, "å", "百", "åƒ", "万", NULL, NULL, NULL, "å„„", NULL, NULL, NULL, "å…†", NULL, NULL, NULL, NULL, "京"}; static const gchar* SKK_UTIL_DaijiNumericalPositionTable[18] = {NULL, "拾", "百", "阡", "è¬", NULL, NULL, NULL, "å„„", NULL, NULL, NULL, "å…†", NULL, NULL, NULL, NULL, "京"}; void skk_entry_copy (const SkkEntry* self, SkkEntry* dest) { gconstpointer _tmp0_; gconstpointer _tmp1_; _tmp0_ = (*self).key; (*dest).key = _tmp0_; _tmp1_ = (*self).value; (*dest).value = _tmp1_; } void skk_entry_destroy (SkkEntry* self) { } SkkEntry* skk_entry_dup (const SkkEntry* self) { SkkEntry* dup; dup = g_new0 (SkkEntry, 1); skk_entry_copy (self, dup); return dup; } void skk_entry_free (SkkEntry* self) { skk_entry_destroy (self); g_free (self); } GType skk_entry_get_type (void) { static volatile gsize skk_entry_type_id__volatile = 0; if (g_once_init_enter (&skk_entry_type_id__volatile)) { GType skk_entry_type_id; skk_entry_type_id = g_boxed_type_register_static ("SkkEntry", (GBoxedCopyFunc) skk_entry_dup, (GBoxedFreeFunc) skk_entry_free); g_once_init_leave (&skk_entry_type_id__volatile, skk_entry_type_id); } return skk_entry_type_id__volatile; } GType skk_numeric_conversion_type_get_type (void) { static volatile gsize skk_numeric_conversion_type_type_id__volatile = 0; if (g_once_init_enter (&skk_numeric_conversion_type_type_id__volatile)) { static const GEnumValue values[] = {{SKK_NUMERIC_CONVERSION_TYPE_LATIN, "SKK_NUMERIC_CONVERSION_TYPE_LATIN", "latin"}, {SKK_NUMERIC_CONVERSION_TYPE_WIDE_LATIN, "SKK_NUMERIC_CONVERSION_TYPE_WIDE_LATIN", "wide-latin"}, {SKK_NUMERIC_CONVERSION_TYPE_KANJI_NUMERAL, "SKK_NUMERIC_CONVERSION_TYPE_KANJI_NUMERAL", "kanji-numeral"}, {SKK_NUMERIC_CONVERSION_TYPE_KANJI, "SKK_NUMERIC_CONVERSION_TYPE_KANJI", "kanji"}, {SKK_NUMERIC_CONVERSION_TYPE_RECONVERT, "SKK_NUMERIC_CONVERSION_TYPE_RECONVERT", "reconvert"}, {SKK_NUMERIC_CONVERSION_TYPE_DAIJI, "SKK_NUMERIC_CONVERSION_TYPE_DAIJI", "daiji"}, {SKK_NUMERIC_CONVERSION_TYPE_SHOGI, "SKK_NUMERIC_CONVERSION_TYPE_SHOGI", "shogi"}, {0, NULL, NULL}}; GType skk_numeric_conversion_type_type_id; skk_numeric_conversion_type_type_id = g_enum_register_static ("SkkNumericConversionType", values); g_once_init_leave (&skk_numeric_conversion_type_type_id__volatile, skk_numeric_conversion_type_type_id); } return skk_numeric_conversion_type_type_id__volatile; } static gchar* skk_util_get_okurigana_prefix_for_char (gunichar uc) { gchar* result = NULL; gunichar _tmp0_; _tmp0_ = uc; if (_tmp0_ == 12435U) { gchar* _tmp1_; _tmp1_ = g_strdup ("n"); result = _tmp1_; return result; } else { gboolean _tmp2_ = FALSE; gunichar _tmp3_; gboolean _tmp5_; _tmp3_ = uc; if (_tmp3_ < 12353U) { _tmp2_ = TRUE; } else { gunichar _tmp4_; _tmp4_ = uc; _tmp2_ = _tmp4_ > 12435U; } _tmp5_ = _tmp2_; if (_tmp5_) { result = NULL; return result; } else { gunichar _tmp6_; const gchar* _tmp7_; gchar* _tmp8_; _tmp6_ = uc; _tmp7_ = SKK_UTIL_KanaRomTable[_tmp6_ - 12353U]; _tmp8_ = g_strdup (_tmp7_); result = _tmp8_; return result; } } } static gunichar string_get_char (const gchar* self, glong index) { gunichar result = 0U; glong _tmp0_; gunichar _tmp1_ = 0U; g_return_val_if_fail (self != NULL, 0U); _tmp0_ = index; _tmp1_ = g_utf8_get_char (((gchar*) self) + _tmp0_); result = _tmp1_; return result; } static gint string_index_of_nth_char (const gchar* self, glong c) { gint result = 0; glong _tmp0_; gchar* _tmp1_ = NULL; g_return_val_if_fail (self != NULL, 0); _tmp0_ = c; _tmp1_ = g_utf8_offset_to_pointer (self, _tmp0_); result = (gint) (_tmp1_ - ((gchar*) self)); return result; } gchar* skk_util_get_okurigana_prefix (const gchar* okurigana) { gchar* result = NULL; const gchar* _tmp0_; gunichar _tmp1_ = 0U; gunichar head; gboolean _tmp2_ = FALSE; gunichar _tmp3_; gboolean _tmp5_; gunichar _tmp11_; gchar* _tmp12_ = NULL; g_return_val_if_fail (okurigana != NULL, NULL); _tmp0_ = okurigana; _tmp1_ = string_get_char (_tmp0_, (glong) 0); head = _tmp1_; _tmp3_ = head; if (_tmp3_ == 12387U) { const gchar* _tmp4_; _tmp4_ = okurigana; _tmp2_ = g_strcmp0 (_tmp4_, "ã£") != 0; } else { _tmp2_ = FALSE; } _tmp5_ = _tmp2_; if (_tmp5_) { const gchar* _tmp6_; gint _tmp7_ = 0; gint index; const gchar* _tmp8_; gint _tmp9_; gunichar _tmp10_ = 0U; _tmp6_ = okurigana; _tmp7_ = string_index_of_nth_char (_tmp6_, (glong) 1); index = _tmp7_; _tmp8_ = okurigana; _tmp9_ = index; _tmp10_ = string_get_char (_tmp8_, (glong) _tmp9_); head = _tmp10_; } _tmp11_ = head; _tmp12_ = skk_util_get_okurigana_prefix_for_char (_tmp11_); result = _tmp12_; return result; } gunichar skk_util_get_wide_latin_char (gchar c) { gunichar result = 0U; gchar _tmp0_; const gchar* _tmp1_; gunichar _tmp2_ = 0U; _tmp0_ = c; _tmp1_ = SKK_UTIL_WideLatinTable[_tmp0_ - 32]; _tmp2_ = string_get_char (_tmp1_, (glong) 0); result = _tmp2_; return result; } static gboolean string_get_next_char (const gchar* self, gint* index, gunichar* c) { gunichar _vala_c = 0U; gboolean result = FALSE; gint _tmp0_; gunichar _tmp1_ = 0U; gunichar _tmp2_; g_return_val_if_fail (self != NULL, FALSE); _tmp0_ = *index; _tmp1_ = g_utf8_get_char (((gchar*) self) + _tmp0_); _vala_c = _tmp1_; _tmp2_ = _vala_c; if (_tmp2_ != ((gunichar) 0)) { gint _tmp3_; gchar* _tmp4_ = NULL; _tmp3_ = *index; _tmp4_ = g_utf8_next_char (((gchar*) self) + _tmp3_); *index = (gint) (_tmp4_ - ((gchar*) self)); result = TRUE; if (c) { *c = _vala_c; } return result; } else { result = FALSE; if (c) { *c = _vala_c; } return result; } if (c) { *c = _vala_c; } } gchar* skk_util_get_wide_latin (const gchar* latin) { gchar* result = NULL; GString* _tmp0_; GString* builder; gint index; gunichar uc = 0U; GString* _tmp13_; const gchar* _tmp14_; gchar* _tmp15_; g_return_val_if_fail (latin != NULL, NULL); _tmp0_ = g_string_new (""); builder = _tmp0_; index = 0; while (TRUE) { const gchar* _tmp1_; gunichar _tmp2_ = 0U; gboolean _tmp3_ = FALSE; gboolean _tmp4_ = FALSE; gunichar _tmp5_; gboolean _tmp7_; _tmp1_ = latin; _tmp3_ = string_get_next_char (_tmp1_, &index, &_tmp2_); uc = _tmp2_; if (!_tmp3_) { break; } _tmp5_ = uc; if (((gunichar) 0x20) <= _tmp5_) { gunichar _tmp6_; _tmp6_ = uc; _tmp4_ = _tmp6_ <= ((gunichar) 0x7E); } else { _tmp4_ = FALSE; } _tmp7_ = _tmp4_; if (_tmp7_) { GString* _tmp8_; gunichar _tmp9_; gunichar _tmp10_ = 0U; _tmp8_ = builder; _tmp9_ = uc; _tmp10_ = skk_util_get_wide_latin_char ((gchar) _tmp9_); g_string_append_unichar (_tmp8_, _tmp10_); } else { GString* _tmp11_; gunichar _tmp12_; _tmp11_ = builder; _tmp12_ = uc; g_string_append_unichar (_tmp11_, _tmp12_); } } _tmp13_ = builder; _tmp14_ = _tmp13_->str; _tmp15_ = g_strdup (_tmp14_); result = _tmp15_; _g_string_free0 (builder); return result; } static gunichar skk_util_get_katakana_char (gunichar uc) { gunichar result = 0U; GeeMap* _tmp0_; gunichar _tmp1_; gboolean _tmp2_ = FALSE; gunichar _tmp6_; _tmp0_ = skk_util__KatakanaTable; _tmp1_ = uc; _tmp2_ = gee_map_has_key (_tmp0_, GINT_TO_POINTER (_tmp1_)); if (_tmp2_) { GeeMap* _tmp3_; gunichar _tmp4_; gpointer _tmp5_ = NULL; _tmp3_ = skk_util__KatakanaTable; _tmp4_ = uc; _tmp5_ = gee_map_get (_tmp3_, GINT_TO_POINTER (_tmp4_)); result = GPOINTER_TO_INT (_tmp5_); return result; } _tmp6_ = uc; result = _tmp6_; return result; } static void skk_util_foreach_katakana (const gchar* kana, GFunc func, void* func_target) { gint index; gunichar uc0 = 0U; g_return_if_fail (kana != NULL); index = 0; while (TRUE) { const gchar* _tmp0_; gunichar _tmp1_ = 0U; gboolean _tmp2_ = FALSE; GeeMap* _tmp3_; gunichar _tmp4_; gboolean _tmp5_ = FALSE; _tmp0_ = kana; _tmp2_ = string_get_next_char (_tmp0_, &index, &_tmp1_); uc0 = _tmp1_; if (!_tmp2_) { break; } _tmp3_ = skk_util__CompositionTable; _tmp4_ = uc0; _tmp5_ = gee_map_has_key (_tmp3_, GINT_TO_POINTER (_tmp4_)); if (_tmp5_) { GeeMap* _tmp6_; gunichar _tmp7_; gpointer _tmp8_ = NULL; GeeMap* composition; gunichar uc1 = 0U; const gchar* _tmp9_; gunichar _tmp10_ = 0U; gboolean _tmp11_ = FALSE; _tmp6_ = skk_util__CompositionTable; _tmp7_ = uc0; _tmp8_ = gee_map_get (_tmp6_, GINT_TO_POINTER (_tmp7_)); composition = (GeeMap*) _tmp8_; _tmp9_ = kana; _tmp11_ = string_get_next_char (_tmp9_, &index, &_tmp10_); uc1 = _tmp10_; if (_tmp11_) { GeeMap* _tmp12_; gunichar _tmp13_; gboolean _tmp14_ = FALSE; _tmp12_ = composition; _tmp13_ = uc1; _tmp14_ = gee_map_has_key (_tmp12_, GINT_TO_POINTER (_tmp13_)); if (_tmp14_) { GFunc _tmp15_; void* _tmp15__target; GeeMap* _tmp16_; gunichar _tmp17_; gpointer _tmp18_ = NULL; _tmp15_ = func; _tmp15__target = func_target; _tmp16_ = composition; _tmp17_ = uc1; _tmp18_ = gee_map_get (_tmp16_, GINT_TO_POINTER (_tmp17_)); _tmp15_ (GINT_TO_POINTER (GPOINTER_TO_INT (_tmp18_)), _tmp15__target); } else { GFunc _tmp19_; void* _tmp19__target; gunichar _tmp20_; gunichar _tmp21_ = 0U; GFunc _tmp22_; void* _tmp22__target; gunichar _tmp23_; gunichar _tmp24_ = 0U; _tmp19_ = func; _tmp19__target = func_target; _tmp20_ = uc0; _tmp21_ = skk_util_get_katakana_char (_tmp20_); _tmp19_ (GINT_TO_POINTER (_tmp21_), _tmp19__target); _tmp22_ = func; _tmp22__target = func_target; _tmp23_ = uc1; _tmp24_ = skk_util_get_katakana_char (_tmp23_); _tmp22_ (GINT_TO_POINTER (_tmp24_), _tmp22__target); } } else { GFunc _tmp25_; void* _tmp25__target; gunichar _tmp26_; gunichar _tmp27_ = 0U; _tmp25_ = func; _tmp25__target = func_target; _tmp26_ = uc0; _tmp27_ = skk_util_get_katakana_char (_tmp26_); _tmp25_ (GINT_TO_POINTER (_tmp27_), _tmp25__target); _g_object_unref0 (composition); break; } _g_object_unref0 (composition); } else { GFunc _tmp28_; void* _tmp28__target; gunichar _tmp29_; gunichar _tmp30_ = 0U; _tmp28_ = func; _tmp28__target = func_target; _tmp29_ = uc0; _tmp30_ = skk_util_get_katakana_char (_tmp29_); _tmp28_ (GINT_TO_POINTER (_tmp30_), _tmp28__target); } } } static Block1Data* block1_data_ref (Block1Data* _data1_) { g_atomic_int_inc (&_data1_->_ref_count_); return _data1_; } static void block1_data_unref (void * _userdata_) { Block1Data* _data1_; _data1_ = (Block1Data*) _userdata_; if (g_atomic_int_dec_and_test (&_data1_->_ref_count_)) { _g_string_free0 (_data1_->builder); g_slice_free (Block1Data, _data1_); } } static void __lambda2_ (Block1Data* _data1_, gunichar uc) { gunichar _tmp0_; _tmp0_ = uc; g_string_append_unichar (_data1_->builder, _tmp0_); } static void ___lambda2__gfunc (gconstpointer data, gpointer self) { __lambda2_ (self, data); } gchar* skk_util_get_katakana (const gchar* kana) { gchar* result = NULL; Block1Data* _data1_; GString* _tmp0_; const gchar* _tmp1_; const gchar* _tmp2_; gchar* _tmp3_; g_return_val_if_fail (kana != NULL, NULL); _data1_ = g_slice_new0 (Block1Data); _data1_->_ref_count_ = 1; _tmp0_ = g_string_new (""); _data1_->builder = _tmp0_; _tmp1_ = kana; skk_util_foreach_katakana (_tmp1_, ___lambda2__gfunc, _data1_); _tmp2_ = _data1_->builder->str; _tmp3_ = g_strdup (_tmp2_); result = _tmp3_; block1_data_unref (_data1_); _data1_ = NULL; return result; } static Block2Data* block2_data_ref (Block2Data* _data2_) { g_atomic_int_inc (&_data2_->_ref_count_); return _data2_; } static void block2_data_unref (void * _userdata_) { Block2Data* _data2_; _data2_ = (Block2Data*) _userdata_; if (g_atomic_int_dec_and_test (&_data2_->_ref_count_)) { _g_string_free0 (_data2_->builder); g_slice_free (Block2Data, _data2_); } } static void __lambda3_ (Block2Data* _data2_, gunichar uc) { GeeMap* _tmp0_; gunichar _tmp1_; gboolean _tmp2_ = FALSE; _tmp0_ = skk_util__HiraganaTable; _tmp1_ = uc; _tmp2_ = gee_map_has_key (_tmp0_, GINT_TO_POINTER (_tmp1_)); if (_tmp2_) { GeeMap* _tmp3_; gunichar _tmp4_; gpointer _tmp5_ = NULL; gchar* _tmp6_; _tmp3_ = skk_util__HiraganaTable; _tmp4_ = uc; _tmp5_ = gee_map_get (_tmp3_, GINT_TO_POINTER (_tmp4_)); _tmp6_ = (gchar*) _tmp5_; g_string_append (_data2_->builder, _tmp6_); _g_free0 (_tmp6_); } else { gunichar _tmp7_; _tmp7_ = uc; g_string_append_unichar (_data2_->builder, _tmp7_); } } static void ___lambda3__gfunc (gconstpointer data, gpointer self) { __lambda3_ (self, data); } gchar* skk_util_get_hiragana (const gchar* kana) { gchar* result = NULL; Block2Data* _data2_; GString* _tmp0_; const gchar* _tmp1_; const gchar* _tmp2_; gchar* _tmp3_; g_return_val_if_fail (kana != NULL, NULL); _data2_ = g_slice_new0 (Block2Data); _data2_->_ref_count_ = 1; _tmp0_ = g_string_new (""); _data2_->builder = _tmp0_; _tmp1_ = kana; skk_util_foreach_katakana (_tmp1_, ___lambda3__gfunc, _data2_); _tmp2_ = _data2_->builder->str; _tmp3_ = g_strdup (_tmp2_); result = _tmp3_; block2_data_unref (_data2_); _data2_ = NULL; return result; } static Block3Data* block3_data_ref (Block3Data* _data3_) { g_atomic_int_inc (&_data3_->_ref_count_); return _data3_; } static void block3_data_unref (void * _userdata_) { Block3Data* _data3_; _data3_ = (Block3Data*) _userdata_; if (g_atomic_int_dec_and_test (&_data3_->_ref_count_)) { _g_string_free0 (_data3_->builder); g_slice_free (Block3Data, _data3_); } } static void __lambda4_ (Block3Data* _data3_, gunichar uc) { GeeMap* _tmp0_; gunichar _tmp1_; gboolean _tmp2_ = FALSE; _tmp0_ = skk_util__HankakuKatakanaTable; _tmp1_ = uc; _tmp2_ = gee_map_has_key (_tmp0_, GINT_TO_POINTER (_tmp1_)); if (_tmp2_) { GeeMap* _tmp3_; gunichar _tmp4_; gpointer _tmp5_ = NULL; gchar* _tmp6_; _tmp3_ = skk_util__HankakuKatakanaTable; _tmp4_ = uc; _tmp5_ = gee_map_get (_tmp3_, GINT_TO_POINTER (_tmp4_)); _tmp6_ = (gchar*) _tmp5_; g_string_append (_data3_->builder, _tmp6_); _g_free0 (_tmp6_); } else { gunichar _tmp7_; _tmp7_ = uc; g_string_append_unichar (_data3_->builder, _tmp7_); } } static void ___lambda4__gfunc (gconstpointer data, gpointer self) { __lambda4_ (self, data); } gchar* skk_util_get_hankaku_katakana (const gchar* kana) { gchar* result = NULL; Block3Data* _data3_; GString* _tmp0_; const gchar* _tmp1_; const gchar* _tmp2_; gchar* _tmp3_; g_return_val_if_fail (kana != NULL, NULL); _data3_ = g_slice_new0 (Block3Data); _data3_->_ref_count_ = 1; _tmp0_ = g_string_new (""); _data3_->builder = _tmp0_; _tmp1_ = kana; skk_util_foreach_katakana (_tmp1_, ___lambda4__gfunc, _data3_); _tmp2_ = _data3_->builder->str; _tmp3_ = g_strdup (_tmp2_); result = _tmp3_; block3_data_unref (_data3_); _data3_ = NULL; return result; } gchar* skk_util_convert_by_input_mode (const gchar* str, SkkInputMode input_mode) { gchar* result = NULL; SkkInputMode _tmp0_; g_return_val_if_fail (str != NULL, NULL); _tmp0_ = input_mode; switch (_tmp0_) { case SKK_INPUT_MODE_HIRAGANA: { const gchar* _tmp1_; gchar* _tmp2_ = NULL; _tmp1_ = str; _tmp2_ = skk_util_get_hiragana (_tmp1_); result = _tmp2_; return result; } case SKK_INPUT_MODE_KATAKANA: { const gchar* _tmp3_; gchar* _tmp4_ = NULL; _tmp3_ = str; _tmp4_ = skk_util_get_katakana (_tmp3_); result = _tmp4_; return result; } case SKK_INPUT_MODE_HANKAKU_KATAKANA: { const gchar* _tmp5_; gchar* _tmp6_ = NULL; _tmp5_ = str; _tmp6_ = skk_util_get_hankaku_katakana (_tmp5_); result = _tmp6_; return result; } case SKK_INPUT_MODE_WIDE_LATIN: { const gchar* _tmp7_; gchar* _tmp8_ = NULL; _tmp7_ = str; _tmp8_ = skk_util_get_wide_latin (_tmp7_); result = _tmp8_; return result; } default: { const gchar* _tmp9_; gchar* _tmp10_; _tmp9_ = str; _tmp10_ = g_strdup (_tmp9_); result = _tmp10_; return result; } } } static gchar* skk_util_get_kanji_numeric (gint numeric, gchar** num_table, int num_table_length1, gchar** num_pos_table, int num_pos_table_length1) { gchar* result = NULL; GString* _tmp0_; GString* builder; gint _tmp1_; gchar* _tmp2_ = NULL; gchar* str; gunichar uc = 0U; gchar** _tmp3_; gint _tmp3__length1; _tmp0_ = g_string_new (""); builder = _tmp0_; _tmp1_ = numeric; _tmp2_ = g_strdup_printf ("%i", _tmp1_); str = _tmp2_; _tmp3_ = num_pos_table; _tmp3__length1 = num_pos_table_length1; if (_tmp3_ == NULL) { GString* _tmp13_; const gchar* _tmp14_; gchar* _tmp15_; { gint index; index = 0; { gboolean _tmp4_; _tmp4_ = TRUE; while (TRUE) { gboolean _tmp5_; const gchar* _tmp6_; gunichar _tmp7_ = 0U; gboolean _tmp8_ = FALSE; GString* _tmp9_; gchar** _tmp10_; gint _tmp10__length1; gunichar _tmp11_; const gchar* _tmp12_; _tmp5_ = _tmp4_; if (!_tmp5_) { } _tmp4_ = FALSE; _tmp6_ = str; _tmp8_ = string_get_next_char (_tmp6_, &index, &_tmp7_); uc = _tmp7_; if (!_tmp8_) { break; } _tmp9_ = builder; _tmp10_ = num_table; _tmp10__length1 = num_table_length1; _tmp11_ = uc; _tmp12_ = _tmp10_[_tmp11_ - '0']; g_string_append (_tmp9_, _tmp12_); } } } _tmp13_ = builder; _tmp14_ = _tmp13_->str; _tmp15_ = g_strdup (_tmp14_); result = _tmp15_; _g_free0 (str); _g_string_free0 (builder); return result; } else { GString* _tmp48_; const gchar* _tmp49_; gchar* _tmp50_; { gint index; index = 0; { gboolean _tmp16_; _tmp16_ = TRUE; while (TRUE) { gboolean _tmp17_; const gchar* _tmp18_; gunichar _tmp19_ = 0U; gboolean _tmp20_ = FALSE; gunichar _tmp21_; _tmp17_ = _tmp16_; if (!_tmp17_) { } _tmp16_ = FALSE; _tmp18_ = str; _tmp20_ = string_get_next_char (_tmp18_, &index, &_tmp19_); uc = _tmp19_; if (!_tmp20_) { break; } _tmp21_ = uc; if (_tmp21_ > ((gunichar) '0')) { const gchar* _tmp22_; gint _tmp23_; gint _tmp24_; gint _tmp25_; gint pos_index; gboolean _tmp26_ = FALSE; gunichar _tmp27_; gboolean _tmp29_; gchar** _tmp33_; gint _tmp33__length1; gint _tmp34_; const gchar* _tmp35_; gchar* _tmp36_; gchar* pos; gboolean _tmp37_ = FALSE; const gchar* _tmp38_; gboolean _tmp40_; const gchar* _tmp45_; _tmp22_ = str; _tmp23_ = strlen (_tmp22_); _tmp24_ = _tmp23_; _tmp25_ = index; pos_index = _tmp24_ - _tmp25_; _tmp27_ = uc; if (_tmp27_ != ((gunichar) '1')) { _tmp26_ = TRUE; } else { gint _tmp28_; _tmp28_ = pos_index; _tmp26_ = (_tmp28_ % 4) == 0; } _tmp29_ = _tmp26_; if (_tmp29_) { GString* _tmp30_; gunichar _tmp31_; const gchar* _tmp32_; _tmp30_ = builder; _tmp31_ = uc; _tmp32_ = SKK_UTIL_KanjiNumericTable[_tmp31_ - '0']; g_string_append (_tmp30_, _tmp32_); } _tmp33_ = num_pos_table; _tmp33__length1 = num_pos_table_length1; _tmp34_ = pos_index; _tmp35_ = _tmp33_[_tmp34_]; _tmp36_ = g_strdup (_tmp35_); pos = _tmp36_; _tmp38_ = pos; if (_tmp38_ == NULL) { gint _tmp39_; _tmp39_ = pos_index; _tmp37_ = (_tmp39_ % 4) > 0; } else { _tmp37_ = FALSE; } _tmp40_ = _tmp37_; if (_tmp40_) { gchar** _tmp41_; gint _tmp41__length1; gint _tmp42_; const gchar* _tmp43_; gchar* _tmp44_; _tmp41_ = num_pos_table; _tmp41__length1 = num_pos_table_length1; _tmp42_ = pos_index; _tmp43_ = _tmp41_[_tmp42_ % 4]; _tmp44_ = g_strdup (_tmp43_); _g_free0 (pos); pos = _tmp44_; } _tmp45_ = pos; if (_tmp45_ != NULL) { GString* _tmp46_; const gchar* _tmp47_; _tmp46_ = builder; _tmp47_ = pos; g_string_append (_tmp46_, _tmp47_); } _g_free0 (pos); } } } } _tmp48_ = builder; _tmp49_ = _tmp48_->str; _tmp50_ = g_strdup (_tmp49_); result = _tmp50_; _g_free0 (str); _g_string_free0 (builder); return result; } _g_free0 (str); _g_string_free0 (builder); } gchar* skk_util_get_numeric (gint numeric, SkkNumericConversionType type) { gchar* result = NULL; SkkNumericConversionType _tmp0_; gchar* _tmp14_; _tmp0_ = type; switch (_tmp0_) { case SKK_NUMERIC_CONVERSION_TYPE_LATIN: { gint _tmp1_; gchar* _tmp2_ = NULL; _tmp1_ = numeric; _tmp2_ = g_strdup_printf ("%i", _tmp1_); result = _tmp2_; return result; } case SKK_NUMERIC_CONVERSION_TYPE_WIDE_LATIN: { gint _tmp3_; gchar* _tmp4_ = NULL; gchar* _tmp5_; gchar* _tmp6_ = NULL; gchar* _tmp7_; _tmp3_ = numeric; _tmp4_ = g_strdup_printf ("%i", _tmp3_); _tmp5_ = _tmp4_; _tmp6_ = skk_util_get_wide_latin (_tmp5_); _tmp7_ = _tmp6_; _g_free0 (_tmp5_); result = _tmp7_; return result; } case SKK_NUMERIC_CONVERSION_TYPE_KANJI_NUMERAL: { gint _tmp8_; gchar* _tmp9_ = NULL; _tmp8_ = numeric; _tmp9_ = skk_util_get_kanji_numeric (_tmp8_, SKK_UTIL_KanjiNumericTable, G_N_ELEMENTS (SKK_UTIL_KanjiNumericTable), NULL, 0); result = _tmp9_; return result; } case SKK_NUMERIC_CONVERSION_TYPE_KANJI: { gint _tmp10_; gchar* _tmp11_ = NULL; _tmp10_ = numeric; _tmp11_ = skk_util_get_kanji_numeric (_tmp10_, SKK_UTIL_KanjiNumericTable, G_N_ELEMENTS (SKK_UTIL_KanjiNumericTable), SKK_UTIL_KanjiNumericalPositionTable, G_N_ELEMENTS (SKK_UTIL_KanjiNumericalPositionTable)); result = _tmp11_; return result; } case SKK_NUMERIC_CONVERSION_TYPE_DAIJI: { gint _tmp12_; gchar* _tmp13_ = NULL; _tmp12_ = numeric; _tmp13_ = skk_util_get_kanji_numeric (_tmp12_, SKK_UTIL_DaijiNumericTable, G_N_ELEMENTS (SKK_UTIL_DaijiNumericTable), SKK_UTIL_DaijiNumericalPositionTable, G_N_ELEMENTS (SKK_UTIL_DaijiNumericalPositionTable)); result = _tmp13_; return result; } default: { break; } } _tmp14_ = g_strdup (""); result = _tmp14_; return result; } gchar** skk_util_build_data_path (const gchar* subdir, int* result_length1) { gchar** result = NULL; GeeArrayList* _tmp0_; GeeArrayList* dirs; const gchar* _tmp1_ = NULL; gchar* _tmp2_; gchar* path; const gchar* _tmp3_; GeeArrayList* _tmp23_; gint _tmp24_ = 0; gpointer* _tmp25_ = NULL; gchar** _tmp26_; gint _tmp26__length1; g_return_val_if_fail (subdir != NULL, NULL); _tmp0_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL); dirs = _tmp0_; _tmp1_ = g_getenv ("LIBSKK_DATA_PATH"); _tmp2_ = g_strdup (_tmp1_); path = _tmp2_; _tmp3_ = path; if (_tmp3_ == NULL) { GeeArrayList* _tmp4_; const gchar* _tmp5_ = NULL; const gchar* _tmp6_; gchar* _tmp7_ = NULL; gchar* _tmp8_; GeeArrayList* _tmp9_; const gchar* _tmp10_; gchar* _tmp11_ = NULL; gchar* _tmp12_; _tmp4_ = dirs; _tmp5_ = g_get_user_config_dir (); _tmp6_ = subdir; _tmp7_ = g_build_filename (_tmp5_, PACKAGE_NAME, _tmp6_, NULL); _tmp8_ = _tmp7_; gee_abstract_collection_add ((GeeAbstractCollection*) _tmp4_, _tmp8_); _g_free0 (_tmp8_); _tmp9_ = dirs; _tmp10_ = subdir; _tmp11_ = g_build_filename (PKGDATADIR, _tmp10_, NULL); _tmp12_ = _tmp11_; gee_abstract_collection_add ((GeeAbstractCollection*) _tmp9_, _tmp12_); _g_free0 (_tmp12_); } else { const gchar* _tmp13_; gchar** _tmp14_; gchar** _tmp15_ = NULL; gchar** elements; gint elements_length1; gint _elements_size_; gchar** _tmp16_; gint _tmp16__length1; _tmp13_ = path; _tmp15_ = _tmp14_ = g_strsplit (_tmp13_, ":", 0); elements = _tmp15_; elements_length1 = _vala_array_length (_tmp14_); _elements_size_ = elements_length1; _tmp16_ = elements; _tmp16__length1 = elements_length1; { gchar** element_collection = NULL; gint element_collection_length1 = 0; gint _element_collection_size_ = 0; gint element_it = 0; element_collection = _tmp16_; element_collection_length1 = _tmp16__length1; for (element_it = 0; element_it < _tmp16__length1; element_it = element_it + 1) { gchar* _tmp17_; gchar* element = NULL; _tmp17_ = g_strdup (element_collection[element_it]); element = _tmp17_; { GeeArrayList* _tmp18_; const gchar* _tmp19_; const gchar* _tmp20_; gchar* _tmp21_ = NULL; gchar* _tmp22_; _tmp18_ = dirs; _tmp19_ = element; _tmp20_ = subdir; _tmp21_ = g_build_filename (_tmp19_, _tmp20_, NULL); _tmp22_ = _tmp21_; gee_abstract_collection_add ((GeeAbstractCollection*) _tmp18_, _tmp22_); _g_free0 (_tmp22_); _g_free0 (element); } } } elements = (_vala_array_free (elements, elements_length1, (GDestroyNotify) g_free), NULL); } _tmp23_ = dirs; _tmp25_ = gee_abstract_collection_to_array ((GeeAbstractCollection*) _tmp23_, &_tmp24_); _tmp26_ = _tmp25_; _tmp26__length1 = _tmp24_; if (result_length1) { *result_length1 = _tmp26__length1; } result = _tmp26_; _g_free0 (path); _g_object_unref0 (dirs); return result; } SkkUtil* skk_util_construct (GType object_type) { SkkUtil * self = NULL; self = (SkkUtil*) g_object_new (object_type, NULL); return self; } SkkUtil* skk_util_new (void) { return skk_util_construct (SKK_TYPE_UTIL); } static void skk_util_kana_table_entry_copy (const SkkUtilKanaTableEntry* self, SkkUtilKanaTableEntry* dest) { gunichar _tmp0_; const gchar* _tmp1_; gchar* _tmp2_; const gchar* _tmp3_; gchar* _tmp4_; _tmp0_ = (*self).katakana; (*dest).katakana = _tmp0_; _tmp1_ = (*self).hiragana; _tmp2_ = g_strdup (_tmp1_); _g_free0 ((*dest).hiragana); (*dest).hiragana = _tmp2_; _tmp3_ = (*self).hankaku_katakana; _tmp4_ = g_strdup (_tmp3_); _g_free0 ((*dest).hankaku_katakana); (*dest).hankaku_katakana = _tmp4_; } static void skk_util_kana_table_entry_destroy (SkkUtilKanaTableEntry* self) { _g_free0 ((*self).hiragana); _g_free0 ((*self).hankaku_katakana); } static SkkUtilKanaTableEntry* skk_util_kana_table_entry_dup (const SkkUtilKanaTableEntry* self) { SkkUtilKanaTableEntry* dup; dup = g_new0 (SkkUtilKanaTableEntry, 1); skk_util_kana_table_entry_copy (self, dup); return dup; } static void skk_util_kana_table_entry_free (SkkUtilKanaTableEntry* self) { skk_util_kana_table_entry_destroy (self); g_free (self); } static GType skk_util_kana_table_entry_get_type (void) { static volatile gsize skk_util_kana_table_entry_type_id__volatile = 0; if (g_once_init_enter (&skk_util_kana_table_entry_type_id__volatile)) { GType skk_util_kana_table_entry_type_id; skk_util_kana_table_entry_type_id = g_boxed_type_register_static ("SkkUtilKanaTableEntry", (GBoxedCopyFunc) skk_util_kana_table_entry_dup, (GBoxedFreeFunc) skk_util_kana_table_entry_free); g_once_init_leave (&skk_util_kana_table_entry_type_id__volatile, skk_util_kana_table_entry_type_id); } return skk_util_kana_table_entry_type_id__volatile; } static void skk_util_class_init (SkkUtilClass * klass) { GeeHashMap* _tmp0_; GeeHashMap* _tmp1_; GeeHashMap* _tmp2_; GeeHashMap* _tmp3_; GeeHashMap* _tmp4_; skk_util_parent_class = g_type_class_peek_parent (klass); G_OBJECT_CLASS (klass)->finalize = skk_util_finalize; _tmp0_ = gee_hash_map_new (G_TYPE_UINT, NULL, NULL, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL); skk_util__HiraganaTable = (GeeMap*) _tmp0_; _tmp1_ = gee_hash_map_new (G_TYPE_UINT, NULL, NULL, G_TYPE_UINT, NULL, NULL, NULL, NULL, NULL); skk_util__KatakanaTable = (GeeMap*) _tmp1_; _tmp2_ = gee_hash_map_new (G_TYPE_UINT, NULL, NULL, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL); skk_util__HankakuKatakanaTable = (GeeMap*) _tmp2_; _tmp3_ = gee_hash_map_new (G_TYPE_UINT, NULL, NULL, GEE_TYPE_HASH_MAP, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL); skk_util__CompositionTable = (GeeMap*) _tmp3_; _tmp4_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, G_TYPE_CHAR, NULL, NULL, NULL, NULL, NULL); skk_util__WideLatinToLatinTable = (GeeMap*) _tmp4_; { SkkUtilKanaTableEntry* entry_collection = NULL; gint entry_collection_length1 = 0; gint _entry_collection_size_ = 0; gint entry_it = 0; entry_collection = SKK_UTIL_KanaTable; entry_collection_length1 = G_N_ELEMENTS (SKK_UTIL_KanaTable); for (entry_it = 0; entry_it < G_N_ELEMENTS (SKK_UTIL_KanaTable); entry_it = entry_it + 1) { SkkUtilKanaTableEntry entry = {0}; entry = entry_collection[entry_it]; { GeeMap* _tmp5_; SkkUtilKanaTableEntry _tmp6_; gunichar _tmp7_; SkkUtilKanaTableEntry _tmp8_; const gchar* _tmp9_; GeeMap* _tmp10_; SkkUtilKanaTableEntry _tmp11_; gunichar _tmp12_; SkkUtilKanaTableEntry _tmp13_; const gchar* _tmp14_; SkkUtilKanaTableEntry _tmp20_; const gchar* _tmp21_; SkkUtilKanaTableEntry _tmp51_; const gchar* _tmp52_; _tmp5_ = skk_util__HiraganaTable; _tmp6_ = entry; _tmp7_ = _tmp6_.katakana; _tmp8_ = entry; _tmp9_ = _tmp8_.hiragana; gee_map_set (_tmp5_, GINT_TO_POINTER (_tmp7_), _tmp9_); _tmp10_ = skk_util__HankakuKatakanaTable; _tmp11_ = entry; _tmp12_ = _tmp11_.katakana; _tmp13_ = entry; _tmp14_ = _tmp13_.hankaku_katakana; gee_map_set (_tmp10_, GINT_TO_POINTER (_tmp12_), _tmp14_); { SkkEntry* substitute_collection = NULL; gint substitute_collection_length1 = 0; gint _substitute_collection_size_ = 0; gint substitute_it = 0; substitute_collection = SKK_UTIL_HankakuKatakanaSubstitute; substitute_collection_length1 = G_N_ELEMENTS (SKK_UTIL_HankakuKatakanaSubstitute); for (substitute_it = 0; substitute_it < G_N_ELEMENTS (SKK_UTIL_HankakuKatakanaSubstitute); substitute_it = substitute_it + 1) { SkkEntry substitute = {0}; substitute = substitute_collection[substitute_it]; { GeeMap* _tmp15_; SkkEntry _tmp16_; gconstpointer _tmp17_; SkkEntry _tmp18_; gconstpointer _tmp19_; _tmp15_ = skk_util__HankakuKatakanaTable; _tmp16_ = substitute; _tmp17_ = _tmp16_.key; _tmp18_ = substitute; _tmp19_ = _tmp18_.value; gee_map_set (_tmp15_, GINT_TO_POINTER (GPOINTER_TO_INT (_tmp17_)), (const gchar*) _tmp19_); } } } _tmp20_ = entry; _tmp21_ = _tmp20_.hiragana; if (_tmp21_ != NULL) { SkkUtilKanaTableEntry _tmp22_; const gchar* _tmp23_; gint _tmp24_ = 0; _tmp22_ = entry; _tmp23_ = _tmp22_.hiragana; _tmp24_ = g_utf8_strlen (_tmp23_, (gssize) (-1)); if (_tmp24_ > 1) { gint index; gunichar uc0 = 0U; gunichar uc1 = 0U; SkkUtilKanaTableEntry _tmp25_; const gchar* _tmp26_; gunichar _tmp27_ = 0U; SkkUtilKanaTableEntry _tmp28_; const gchar* _tmp29_; gunichar _tmp30_ = 0U; GeeMap* _tmp31_; gunichar _tmp32_; gboolean _tmp33_ = FALSE; GeeMap* _tmp38_; gunichar _tmp39_; gpointer _tmp40_ = NULL; GeeMap* composition; GeeMap* _tmp41_; gunichar _tmp42_; SkkUtilKanaTableEntry _tmp43_; gunichar _tmp44_; index = 0; _tmp25_ = entry; _tmp26_ = _tmp25_.hiragana; string_get_next_char (_tmp26_, &index, &_tmp27_); uc0 = _tmp27_; _tmp28_ = entry; _tmp29_ = _tmp28_.hiragana; string_get_next_char (_tmp29_, &index, &_tmp30_); uc1 = _tmp30_; _tmp31_ = skk_util__CompositionTable; _tmp32_ = uc0; _tmp33_ = gee_map_has_key (_tmp31_, GINT_TO_POINTER (_tmp32_)); if (!_tmp33_) { GeeMap* _tmp34_; gunichar _tmp35_; GeeHashMap* _tmp36_; GeeHashMap* _tmp37_; _tmp34_ = skk_util__CompositionTable; _tmp35_ = uc0; _tmp36_ = gee_hash_map_new (G_TYPE_UINT, NULL, NULL, G_TYPE_UINT, NULL, NULL, NULL, NULL, NULL); _tmp37_ = _tmp36_; gee_map_set (_tmp34_, GINT_TO_POINTER (_tmp35_), (GeeMap*) _tmp37_); _g_object_unref0 (_tmp37_); } _tmp38_ = skk_util__CompositionTable; _tmp39_ = uc0; _tmp40_ = gee_map_get (_tmp38_, GINT_TO_POINTER (_tmp39_)); composition = (GeeMap*) _tmp40_; _tmp41_ = composition; _tmp42_ = uc1; _tmp43_ = entry; _tmp44_ = _tmp43_.katakana; gee_map_set (_tmp41_, GINT_TO_POINTER (_tmp42_), GINT_TO_POINTER (_tmp44_)); _g_object_unref0 (composition); } else { GeeMap* _tmp45_; SkkUtilKanaTableEntry _tmp46_; const gchar* _tmp47_; gunichar _tmp48_ = 0U; SkkUtilKanaTableEntry _tmp49_; gunichar _tmp50_; _tmp45_ = skk_util__KatakanaTable; _tmp46_ = entry; _tmp47_ = _tmp46_.hiragana; _tmp48_ = string_get_char (_tmp47_, (glong) 0); _tmp49_ = entry; _tmp50_ = _tmp49_.katakana; gee_map_set (_tmp45_, GINT_TO_POINTER (_tmp48_), GINT_TO_POINTER (_tmp50_)); } } _tmp51_ = entry; _tmp52_ = _tmp51_.hankaku_katakana; if (_tmp52_ != NULL) { SkkUtilKanaTableEntry _tmp53_; const gchar* _tmp54_; gint _tmp55_ = 0; _tmp53_ = entry; _tmp54_ = _tmp53_.hankaku_katakana; _tmp55_ = g_utf8_strlen (_tmp54_, (gssize) (-1)); if (_tmp55_ > 1) { gint index; gunichar uc0 = 0U; gunichar uc1 = 0U; SkkUtilKanaTableEntry _tmp56_; const gchar* _tmp57_; gunichar _tmp58_ = 0U; SkkUtilKanaTableEntry _tmp59_; const gchar* _tmp60_; gunichar _tmp61_ = 0U; GeeMap* _tmp62_; gunichar _tmp63_; gboolean _tmp64_ = FALSE; GeeMap* _tmp69_; gunichar _tmp70_; gpointer _tmp71_ = NULL; GeeMap* composition; GeeMap* _tmp72_; gunichar _tmp73_; SkkUtilKanaTableEntry _tmp74_; gunichar _tmp75_; index = 0; _tmp56_ = entry; _tmp57_ = _tmp56_.hankaku_katakana; string_get_next_char (_tmp57_, &index, &_tmp58_); uc0 = _tmp58_; _tmp59_ = entry; _tmp60_ = _tmp59_.hankaku_katakana; string_get_next_char (_tmp60_, &index, &_tmp61_); uc1 = _tmp61_; _tmp62_ = skk_util__CompositionTable; _tmp63_ = uc0; _tmp64_ = gee_map_has_key (_tmp62_, GINT_TO_POINTER (_tmp63_)); if (!_tmp64_) { GeeMap* _tmp65_; gunichar _tmp66_; GeeHashMap* _tmp67_; GeeHashMap* _tmp68_; _tmp65_ = skk_util__CompositionTable; _tmp66_ = uc0; _tmp67_ = gee_hash_map_new (G_TYPE_UINT, NULL, NULL, G_TYPE_UINT, NULL, NULL, NULL, NULL, NULL); _tmp68_ = _tmp67_; gee_map_set (_tmp65_, GINT_TO_POINTER (_tmp66_), (GeeMap*) _tmp68_); _g_object_unref0 (_tmp68_); } _tmp69_ = skk_util__CompositionTable; _tmp70_ = uc0; _tmp71_ = gee_map_get (_tmp69_, GINT_TO_POINTER (_tmp70_)); composition = (GeeMap*) _tmp71_; _tmp72_ = composition; _tmp73_ = uc1; _tmp74_ = entry; _tmp75_ = _tmp74_.katakana; gee_map_set (_tmp72_, GINT_TO_POINTER (_tmp73_), GINT_TO_POINTER (_tmp75_)); _g_object_unref0 (composition); } else { GeeMap* _tmp76_; SkkUtilKanaTableEntry _tmp77_; const gchar* _tmp78_; gunichar _tmp79_ = 0U; SkkUtilKanaTableEntry _tmp80_; gunichar _tmp81_; _tmp76_ = skk_util__KatakanaTable; _tmp77_ = entry; _tmp78_ = _tmp77_.hankaku_katakana; _tmp79_ = string_get_char (_tmp78_, (glong) 0); _tmp80_ = entry; _tmp81_ = _tmp80_.katakana; gee_map_set (_tmp76_, GINT_TO_POINTER (_tmp79_), GINT_TO_POINTER (_tmp81_)); } } } } } { gint i; i = 0; { gboolean _tmp82_; _tmp82_ = TRUE; while (TRUE) { gboolean _tmp83_; gint _tmp85_; GeeMap* _tmp86_; gint _tmp87_; const gchar* _tmp88_; gint _tmp89_; _tmp83_ = _tmp82_; if (!_tmp83_) { gint _tmp84_; _tmp84_ = i; i = _tmp84_ + 1; } _tmp82_ = FALSE; _tmp85_ = i; if (!(_tmp85_ < G_N_ELEMENTS (SKK_UTIL_WideLatinTable))) { break; } _tmp86_ = skk_util__WideLatinToLatinTable; _tmp87_ = i; _tmp88_ = SKK_UTIL_WideLatinTable[_tmp87_]; _tmp89_ = i; gee_map_set (_tmp86_, _tmp88_, GINT_TO_POINTER ((gchar) (_tmp89_ + 32))); } } } } static void skk_util_instance_init (SkkUtil * self) { } static void skk_util_finalize (GObject* obj) { SkkUtil * self; self = SKK_UTIL (obj); G_OBJECT_CLASS (skk_util_parent_class)->finalize (obj); } GType skk_util_get_type (void) { static volatile gsize skk_util_type_id__volatile = 0; if (g_once_init_enter (&skk_util_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkUtilClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_util_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkUtil), 0, (GInstanceInitFunc) skk_util_instance_init, NULL }; GType skk_util_type_id; skk_util_type_id = g_type_register_static (G_TYPE_OBJECT, "SkkUtil", &g_define_type_info, 0); g_once_init_leave (&skk_util_type_id__volatile, skk_util_type_id); } return skk_util_type_id__volatile; } SkkUnicodeString* skk_unicode_string_construct (GType object_type, const gchar* str) { SkkUnicodeString * self = NULL; const gchar* _tmp0_; gchar* _tmp1_; const gchar* _tmp2_; gint _tmp3_ = 0; g_return_val_if_fail (str != NULL, NULL); self = (SkkUnicodeString*) g_object_new (object_type, NULL); _tmp0_ = str; _tmp1_ = g_strdup (_tmp0_); _g_free0 (self->priv->str); self->priv->str = _tmp1_; _tmp2_ = str; _tmp3_ = g_utf8_strlen (_tmp2_, (gssize) (-1)); self->length = _tmp3_; return self; } SkkUnicodeString* skk_unicode_string_new (const gchar* str) { return skk_unicode_string_construct (SKK_TYPE_UNICODE_STRING, str); } static glong string_strnlen (gchar* str, glong maxlen) { glong result = 0L; gchar* _tmp0_; glong _tmp1_; gchar* _tmp2_ = NULL; gchar* end; gchar* _tmp3_; _tmp0_ = str; _tmp1_ = maxlen; _tmp2_ = memchr (_tmp0_, 0, (gsize) _tmp1_); end = _tmp2_; _tmp3_ = end; if (_tmp3_ == NULL) { glong _tmp4_; _tmp4_ = maxlen; result = _tmp4_; return result; } else { gchar* _tmp5_; gchar* _tmp6_; _tmp5_ = end; _tmp6_ = str; result = (glong) (_tmp5_ - _tmp6_); return result; } } static gchar* string_substring (const gchar* self, glong offset, glong len) { gchar* result = NULL; glong string_length = 0L; gboolean _tmp0_ = FALSE; glong _tmp1_; gboolean _tmp3_; glong _tmp9_; glong _tmp15_; glong _tmp18_; glong _tmp19_; glong _tmp20_; glong _tmp21_; glong _tmp22_; gchar* _tmp23_ = NULL; g_return_val_if_fail (self != NULL, NULL); _tmp1_ = offset; if (_tmp1_ >= ((glong) 0)) { glong _tmp2_; _tmp2_ = len; _tmp0_ = _tmp2_ >= ((glong) 0); } else { _tmp0_ = FALSE; } _tmp3_ = _tmp0_; if (_tmp3_) { glong _tmp4_; glong _tmp5_; glong _tmp6_ = 0L; _tmp4_ = offset; _tmp5_ = len; _tmp6_ = string_strnlen ((gchar*) self, _tmp4_ + _tmp5_); string_length = _tmp6_; } else { gint _tmp7_; gint _tmp8_; _tmp7_ = strlen (self); _tmp8_ = _tmp7_; string_length = (glong) _tmp8_; } _tmp9_ = offset; if (_tmp9_ < ((glong) 0)) { glong _tmp10_; glong _tmp11_; glong _tmp12_; _tmp10_ = string_length; _tmp11_ = offset; offset = _tmp10_ + _tmp11_; _tmp12_ = offset; g_return_val_if_fail (_tmp12_ >= ((glong) 0), NULL); } else { glong _tmp13_; glong _tmp14_; _tmp13_ = offset; _tmp14_ = string_length; g_return_val_if_fail (_tmp13_ <= _tmp14_, NULL); } _tmp15_ = len; if (_tmp15_ < ((glong) 0)) { glong _tmp16_; glong _tmp17_; _tmp16_ = string_length; _tmp17_ = offset; len = _tmp16_ - _tmp17_; } _tmp18_ = offset; _tmp19_ = len; _tmp20_ = string_length; g_return_val_if_fail ((_tmp18_ + _tmp19_) <= _tmp20_, NULL); _tmp21_ = offset; _tmp22_ = len; _tmp23_ = g_strndup (((gchar*) self) + _tmp21_, (gsize) _tmp22_); result = _tmp23_; return result; } gchar* skk_unicode_string_substring (SkkUnicodeString* self, glong offset, glong len) { gchar* result = NULL; const gchar* _tmp0_; glong _tmp1_; gint _tmp2_ = 0; glong byte_offset; glong byte_len = 0L; glong _tmp3_; const gchar* _tmp10_; glong _tmp11_; glong _tmp12_; gchar* _tmp13_ = NULL; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = self->priv->str; _tmp1_ = offset; _tmp2_ = string_index_of_nth_char (_tmp0_, _tmp1_); byte_offset = (glong) _tmp2_; _tmp3_ = len; if (_tmp3_ < ((glong) 0)) { glong _tmp4_; _tmp4_ = len; byte_len = _tmp4_; } else { const gchar* _tmp5_; glong _tmp6_; glong _tmp7_; gint _tmp8_ = 0; glong _tmp9_; _tmp5_ = self->priv->str; _tmp6_ = offset; _tmp7_ = len; _tmp8_ = string_index_of_nth_char (_tmp5_, _tmp6_ + _tmp7_); _tmp9_ = byte_offset; byte_len = _tmp8_ - _tmp9_; } _tmp10_ = self->priv->str; _tmp11_ = byte_offset; _tmp12_ = byte_len; _tmp13_ = string_substring (_tmp10_, _tmp11_, _tmp12_); result = _tmp13_; return result; } static void skk_unicode_string_class_init (SkkUnicodeStringClass * klass) { skk_unicode_string_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (SkkUnicodeStringPrivate)); G_OBJECT_CLASS (klass)->finalize = skk_unicode_string_finalize; } static void skk_unicode_string_instance_init (SkkUnicodeString * self) { self->priv = SKK_UNICODE_STRING_GET_PRIVATE (self); } static void skk_unicode_string_finalize (GObject* obj) { SkkUnicodeString * self; self = SKK_UNICODE_STRING (obj); _g_free0 (self->priv->str); G_OBJECT_CLASS (skk_unicode_string_parent_class)->finalize (obj); } GType skk_unicode_string_get_type (void) { static volatile gsize skk_unicode_string_type_id__volatile = 0; if (g_once_init_enter (&skk_unicode_string_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkUnicodeStringClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_unicode_string_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkUnicodeString), 0, (GInstanceInitFunc) skk_unicode_string_instance_init, NULL }; GType skk_unicode_string_type_id; skk_unicode_string_type_id = g_type_register_static (G_TYPE_OBJECT, "SkkUnicodeString", &g_define_type_info, 0); g_once_init_leave (&skk_unicode_string_type_id__volatile, skk_unicode_string_type_id); } return skk_unicode_string_type_id__volatile; } static gpointer _g_object_ref0 (gpointer self) { return self ? g_object_ref (self) : NULL; } SkkMemoryMappedFile* skk_memory_mapped_file_construct (GType object_type, GFile* file) { SkkMemoryMappedFile * self = NULL; GFile* _tmp0_; GFile* _tmp1_; g_return_val_if_fail (file != NULL, NULL); self = (SkkMemoryMappedFile*) g_object_new (object_type, NULL); _tmp0_ = file; _tmp1_ = _g_object_ref0 (_tmp0_); _g_object_unref0 (self->priv->file); self->priv->file = _tmp1_; return self; } SkkMemoryMappedFile* skk_memory_mapped_file_new (GFile* file) { return skk_memory_mapped_file_construct (SKK_TYPE_MEMORY_MAPPED_FILE, file); } void skk_memory_mapped_file_remap (SkkMemoryMappedFile* self, GError** error) { void* _tmp0_; GError * _inner_error_ = NULL; g_return_if_fail (self != NULL); _tmp0_ = self->priv->_memory; if (_tmp0_ != NULL) { void* _tmp1_; gsize _tmp2_; _tmp1_ = self->priv->_memory; _tmp2_ = self->priv->_length; munmap (_tmp1_, _tmp2_); self->priv->_memory = NULL; } skk_memory_mapped_file_map (self, &_inner_error_); if (_inner_error_ != NULL) { if (_inner_error_->domain == SKK_SKK_DICT_ERROR) { g_propagate_error (error, _inner_error_); return; } else { g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } } } static void skk_memory_mapped_file_map (SkkMemoryMappedFile* self, GError** error) { GFile* _tmp0_; gchar* _tmp1_ = NULL; gchar* _tmp2_; gint _tmp3_ = 0; gint _tmp4_; gint fd; gint _tmp5_; struct stat stat = {0}; gint _tmp11_; struct stat _tmp12_ = {0}; gint _tmp13_ = 0; gint retval; gint _tmp14_; struct stat _tmp16_; gsize _tmp17_; gint _tmp18_; void* _tmp19_ = NULL; void* _tmp20_; void* _tmp21_; struct stat _tmp23_; gsize _tmp24_; GError * _inner_error_ = NULL; g_return_if_fail (self != NULL); _tmp0_ = self->priv->file; _tmp1_ = g_file_get_path (_tmp0_); _tmp2_ = _tmp1_; _tmp3_ = open (_tmp2_, O_RDONLY, (mode_t) 0); _tmp4_ = _tmp3_; _g_free0 (_tmp2_); fd = _tmp4_; _tmp5_ = fd; if (_tmp5_ < 0) { GFile* _tmp6_; gchar* _tmp7_ = NULL; gchar* _tmp8_; GError* _tmp9_; GError* _tmp10_; _tmp6_ = self->priv->file; _tmp7_ = g_file_get_path (_tmp6_); _tmp8_ = _tmp7_; _tmp9_ = g_error_new (SKK_SKK_DICT_ERROR, SKK_SKK_DICT_ERROR_NOT_READABLE, "can't open %s", _tmp8_); _tmp10_ = _tmp9_; _g_free0 (_tmp8_); _inner_error_ = _tmp10_; if (_inner_error_->domain == SKK_SKK_DICT_ERROR) { g_propagate_error (error, _inner_error_); return; } else { g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } } _tmp11_ = fd; _tmp13_ = fstat (_tmp11_, &_tmp12_); stat = _tmp12_; retval = _tmp13_; _tmp14_ = retval; if (_tmp14_ < 0) { GError* _tmp15_; _tmp15_ = g_error_new_literal (SKK_SKK_DICT_ERROR, SKK_SKK_DICT_ERROR_NOT_READABLE, "can't stat fd"); _inner_error_ = _tmp15_; if (_inner_error_->domain == SKK_SKK_DICT_ERROR) { g_propagate_error (error, _inner_error_); return; } else { g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } } _tmp16_ = stat; _tmp17_ = _tmp16_.st_size; _tmp18_ = fd; _tmp19_ = mmap (NULL, _tmp17_, PROT_READ, MAP_SHARED, _tmp18_, (off_t) 0); self->priv->_memory = _tmp19_; _tmp20_ = self->priv->_memory; _tmp21_ = MAP_FAILED; if (_tmp20_ == _tmp21_) { GError* _tmp22_; _tmp22_ = g_error_new_literal (SKK_SKK_DICT_ERROR, SKK_SKK_DICT_ERROR_NOT_READABLE, "mmap failed"); _inner_error_ = _tmp22_; if (_inner_error_->domain == SKK_SKK_DICT_ERROR) { g_propagate_error (error, _inner_error_); return; } else { g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } } _tmp23_ = stat; _tmp24_ = _tmp23_.st_size; self->priv->_length = _tmp24_; } void* skk_memory_mapped_file_get_memory (SkkMemoryMappedFile* self) { void* result; void* _tmp0_; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = self->priv->_memory; result = _tmp0_; return result; } gsize skk_memory_mapped_file_get_length (SkkMemoryMappedFile* self) { gsize result; gsize _tmp0_; g_return_val_if_fail (self != NULL, 0UL); _tmp0_ = self->priv->_length; result = _tmp0_; return result; } static void skk_memory_mapped_file_class_init (SkkMemoryMappedFileClass * klass) { skk_memory_mapped_file_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (SkkMemoryMappedFilePrivate)); G_OBJECT_CLASS (klass)->get_property = _vala_skk_memory_mapped_file_get_property; G_OBJECT_CLASS (klass)->finalize = skk_memory_mapped_file_finalize; g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_MEMORY_MAPPED_FILE_MEMORY, g_param_spec_pointer ("memory", "memory", "memory", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE)); g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_MEMORY_MAPPED_FILE_LENGTH, g_param_spec_ulong ("length", "length", "length", 0, G_MAXULONG, 0UL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE)); } static void skk_memory_mapped_file_instance_init (SkkMemoryMappedFile * self) { self->priv = SKK_MEMORY_MAPPED_FILE_GET_PRIVATE (self); self->priv->_memory = NULL; self->priv->_length = (gsize) 0; } static void skk_memory_mapped_file_finalize (GObject* obj) { SkkMemoryMappedFile * self; self = SKK_MEMORY_MAPPED_FILE (obj); _g_object_unref0 (self->priv->file); G_OBJECT_CLASS (skk_memory_mapped_file_parent_class)->finalize (obj); } GType skk_memory_mapped_file_get_type (void) { static volatile gsize skk_memory_mapped_file_type_id__volatile = 0; if (g_once_init_enter (&skk_memory_mapped_file_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkMemoryMappedFileClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_memory_mapped_file_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkMemoryMappedFile), 0, (GInstanceInitFunc) skk_memory_mapped_file_instance_init, NULL }; GType skk_memory_mapped_file_type_id; skk_memory_mapped_file_type_id = g_type_register_static (G_TYPE_OBJECT, "SkkMemoryMappedFile", &g_define_type_info, 0); g_once_init_leave (&skk_memory_mapped_file_type_id__volatile, skk_memory_mapped_file_type_id); } return skk_memory_mapped_file_type_id__volatile; } static void _vala_skk_memory_mapped_file_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { SkkMemoryMappedFile * self; self = SKK_MEMORY_MAPPED_FILE (object); switch (property_id) { case SKK_MEMORY_MAPPED_FILE_MEMORY: g_value_set_pointer (value, skk_memory_mapped_file_get_memory (self)); break; case SKK_MEMORY_MAPPED_FILE_LENGTH: g_value_set_ulong (value, skk_memory_mapped_file_get_length (self)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { int i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); } } } } static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) { _vala_array_destroy (array, array_length, destroy_func); g_free (array); } static gint _vala_array_length (gpointer array) { int length; length = 0; if (array) { while (((gpointer*) array)[length]) { length++; } } return length; } libskk-1.0.0/libskk/Makefile.in0000664000076400007640000016302512016556763013270 00000000000000# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 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@ # Copyright (C) 2011-2012 Daiki Ueno # Copyright (C) 2011-2012 Red Hat, 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 3 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, see . VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } 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 = libskk DIST_COMMON = $(libskkinclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/Skk-@SKK_API_VERSION@.gir \ $(srcdir)/libskk-internals.h $(srcdir)/libskk.h \ $(srcdir)/libskk.pc.in $(srcdir)/libskk_la_vala.stamp \ $(srcdir)/skk-@SKK_API_VERSION@.vapi \ $(srcdir)/skk-internals-@SKK_API_VERSION@.vapi \ $(top_srcdir)/depcomp candidate-list.c candidate.c cdb-dict.c \ context.c dict.c encoding.c expr.c file-dict.c kana-kan.c \ key-event-filter.c key-event.c keymap.c keysyms.c map-file.c \ nicola.c rom-kana.c rule.c skkserv.c state.c user-dict.c \ util.c ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \ $(top_srcdir)/m4/libtool.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/vala.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = libskk.pc 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__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" \ "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(typelibdir)" \ "$(DESTDIR)$(vapidir)" "$(DESTDIR)$(libskkincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = libskk_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libskk_la_OBJECTS = libskk_la-rom-kana.lo libskk_la-kana-kan.lo \ libskk_la-encoding.lo libskk_la-dict.lo libskk_la-file-dict.lo \ libskk_la-cdb-dict.lo libskk_la-user-dict.lo \ libskk_la-skkserv.lo libskk_la-key-event.lo \ libskk_la-key-event-filter.lo libskk_la-keymap.lo \ libskk_la-rule.lo libskk_la-map-file.lo libskk_la-state.lo \ libskk_la-context.lo libskk_la-candidate.lo \ libskk_la-candidate-list.lo libskk_la-nicola.lo \ libskk_la-expr.lo libskk_la-util.lo libskk_la-keysyms.lo libskk_la_OBJECTS = $(am_libskk_la_OBJECTS) libskk_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libskk_la_CFLAGS) \ $(CFLAGS) $(libskk_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 $@ VALACOMPILE = $(VALAC) $(AM_VALAFLAGS) $(VALAFLAGS) LTVALACOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(VALAC) $(AM_VALAFLAGS) $(VALAFLAGS) SOURCES = $(libskk_la_SOURCES) DIST_SOURCES = $(libskk_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DATA = $(gir_DATA) $(pkgconfig_DATA) $(typelib_DATA) $(vapi_DATA) HEADERS = $(libskkinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CODE_COVERAGE_CFLAGS = @CODE_COVERAGE_CFLAGS@ CODE_COVERAGE_LDFLAGS = @CODE_COVERAGE_LDFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FEP = @FEP@ FGREP = @FGREP@ GEE_CFLAGS = @GEE_CFLAGS@ GEE_LIBS = @GEE_LIBS@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@ INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@ INTROSPECTION_LIBS = @INTROSPECTION_LIBS@ INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@ INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@ INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@ JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@ JSON_GLIB_LIBS = @JSON_GLIB_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBFEP_CFLAGS = @LIBFEP_CFLAGS@ LIBFEP_LIBS = @LIBFEP_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBSKK_CFLAGS = @LIBSKK_CFLAGS@ LIBSKK_LIBS = @LIBSKK_LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ 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@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SKK_API_MAJOR_VERSION = @SKK_API_MAJOR_VERSION@ SKK_API_MINOR_VERSION = @SKK_API_MINOR_VERSION@ SKK_API_PC_VERSION = @SKK_API_PC_VERSION@ SKK_API_VERSION = @SKK_API_VERSION@ SKK_LIBRARY_SUFFIX = @SKK_LIBRARY_SUFFIX@ SKK_LIBRARY_SUFFIX_U = @SKK_LIBRARY_SUFFIX_U@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VALAC = @VALAC@ VALADOC = @VALADOC@ VALADOC_CFLAGS = @VALADOC_CFLAGS@ VALADOC_LIBS = @VALADOC_LIBS@ VALAFLAGS = @VALAFLAGS@ VALGRIND = @VALGRIND@ VALGRIND_OPTS = @VALGRIND_OPTS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ 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@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ 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@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # force include config.h before gi18n.h. AM_CPPFLAGS = -include $(CONFIG_HEADER) lib_LTLIBRARIES = libskk.la libskk_la_VALAFLAGS = \ --includedir=libskk \ -H libskk.h \ --vapi skk-@SKK_API_VERSION@.vapi \ -h libskk-internals.h \ --vapidir=. \ --pkg config \ --pkg glib-2.0 \ --pkg gio-2.0 \ --pkg gee-1.0 \ --pkg posix \ --pkg json-glib-1.0 \ --internal-vapi skk-internals-@SKK_API_VERSION@.vapi \ --library skk-@SKK_API_VERSION@ \ --gir Skk-@SKK_API_VERSION@.gir \ --symbols libskk.symbols \ $(VALAFLAGS) \ $(NULL) libskk_la_CFLAGS = \ $(CODE_COVERAGE_CFLAGS) \ $(LIBSKK_CFLAGS) \ -DPKGDATADIR=\"$(pkgdatadir)\" \ $(NULL) libskk_la_LIBADD = $(LIBSKK_LIBS) libskk_la_LDFLAGS = \ $(CODE_COVERAGE_LDFLAGS) \ -version-info "$(LT_CURRENT)":"$(LT_REVISION)":"$(LT_AGE)" \ -export-dynamic \ -export-symbols $(srcdir)/libskk.symbols \ $(NULL) libskkincludedir = $(includedir)/libskk libskkinclude_HEADERS = libskk.h libskk_la_SOURCES = \ rom-kana.vala \ kana-kan.vala \ encoding.vala \ dict.vala \ file-dict.vala \ cdb-dict.vala \ user-dict.vala \ skkserv.vala \ key-event.vala \ key-event-filter.vala \ keymap.vala \ rule.vala \ map-file.vala \ state.vala \ context.vala \ candidate.vala \ candidate-list.vala \ nicola.vala \ expr.vala \ util.vala \ keysyms.vala \ $(NULL) @HAVE_INTROSPECTION_TRUE@girdir = $(datadir)/gir-1.0 @HAVE_INTROSPECTION_TRUE@gir_DATA = Skk-@SKK_API_VERSION@.gir @HAVE_INTROSPECTION_TRUE@typelibdir = $(libdir)/girepository-1.0 @HAVE_INTROSPECTION_TRUE@typelib_DATA = Skk-@SKK_API_VERSION@.typelib GITIGNOREFILES = \ $(libskk_la_SOURCES:.vala=.c) \ libskk_la_vala.stamp \ libskk.h \ libskk-internals.h \ libskk.symbols \ $(NULL) CLEANFILES = \ skk-@SKK_API_VERSION@.vapi \ skk-internals-@SKK_API_VERSION@.vapi \ Skk-@SKK_API_VERSION@.typelib \ Skk-@SKK_API_VERSION@.gir \ libskk.pc \ $(NULL) pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = libskk.pc vapi_DATA = skk-1.0.vapi skk-1.0.deps vapidir = $(datadir)/vala/vapi EXTRA_DIST = config.vapi skk-1.0.deps libskk.symbols all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(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 libskk/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu libskk/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: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): libskk.pc: $(top_builddir)/config.status $(srcdir)/libskk.pc.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) @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 " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ 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)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libskk.la: $(libskk_la_OBJECTS) $(libskk_la_DEPENDENCIES) $(EXTRA_libskk_la_DEPENDENCIES) $(libskk_la_LINK) -rpath $(libdir) $(libskk_la_OBJECTS) $(libskk_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libskk_la-candidate-list.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libskk_la-candidate.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libskk_la-cdb-dict.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libskk_la-context.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libskk_la-dict.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libskk_la-encoding.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libskk_la-expr.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libskk_la-file-dict.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libskk_la-kana-kan.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libskk_la-key-event-filter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libskk_la-key-event.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libskk_la-keymap.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libskk_la-keysyms.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libskk_la-map-file.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libskk_la-nicola.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libskk_la-rom-kana.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libskk_la-rule.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libskk_la-skkserv.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libskk_la-state.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libskk_la-user-dict.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libskk_la-util.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 $@ $< libskk_la-rom-kana.lo: rom-kana.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libskk_la_CFLAGS) $(CFLAGS) -MT libskk_la-rom-kana.lo -MD -MP -MF $(DEPDIR)/libskk_la-rom-kana.Tpo -c -o libskk_la-rom-kana.lo `test -f 'rom-kana.c' || echo '$(srcdir)/'`rom-kana.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libskk_la-rom-kana.Tpo $(DEPDIR)/libskk_la-rom-kana.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rom-kana.c' object='libskk_la-rom-kana.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) $(libskk_la_CFLAGS) $(CFLAGS) -c -o libskk_la-rom-kana.lo `test -f 'rom-kana.c' || echo '$(srcdir)/'`rom-kana.c libskk_la-kana-kan.lo: kana-kan.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libskk_la_CFLAGS) $(CFLAGS) -MT libskk_la-kana-kan.lo -MD -MP -MF $(DEPDIR)/libskk_la-kana-kan.Tpo -c -o libskk_la-kana-kan.lo `test -f 'kana-kan.c' || echo '$(srcdir)/'`kana-kan.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libskk_la-kana-kan.Tpo $(DEPDIR)/libskk_la-kana-kan.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='kana-kan.c' object='libskk_la-kana-kan.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) $(libskk_la_CFLAGS) $(CFLAGS) -c -o libskk_la-kana-kan.lo `test -f 'kana-kan.c' || echo '$(srcdir)/'`kana-kan.c libskk_la-encoding.lo: encoding.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libskk_la_CFLAGS) $(CFLAGS) -MT libskk_la-encoding.lo -MD -MP -MF $(DEPDIR)/libskk_la-encoding.Tpo -c -o libskk_la-encoding.lo `test -f 'encoding.c' || echo '$(srcdir)/'`encoding.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libskk_la-encoding.Tpo $(DEPDIR)/libskk_la-encoding.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='encoding.c' object='libskk_la-encoding.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) $(libskk_la_CFLAGS) $(CFLAGS) -c -o libskk_la-encoding.lo `test -f 'encoding.c' || echo '$(srcdir)/'`encoding.c libskk_la-dict.lo: dict.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libskk_la_CFLAGS) $(CFLAGS) -MT libskk_la-dict.lo -MD -MP -MF $(DEPDIR)/libskk_la-dict.Tpo -c -o libskk_la-dict.lo `test -f 'dict.c' || echo '$(srcdir)/'`dict.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libskk_la-dict.Tpo $(DEPDIR)/libskk_la-dict.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dict.c' object='libskk_la-dict.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) $(libskk_la_CFLAGS) $(CFLAGS) -c -o libskk_la-dict.lo `test -f 'dict.c' || echo '$(srcdir)/'`dict.c libskk_la-file-dict.lo: file-dict.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libskk_la_CFLAGS) $(CFLAGS) -MT libskk_la-file-dict.lo -MD -MP -MF $(DEPDIR)/libskk_la-file-dict.Tpo -c -o libskk_la-file-dict.lo `test -f 'file-dict.c' || echo '$(srcdir)/'`file-dict.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libskk_la-file-dict.Tpo $(DEPDIR)/libskk_la-file-dict.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='file-dict.c' object='libskk_la-file-dict.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) $(libskk_la_CFLAGS) $(CFLAGS) -c -o libskk_la-file-dict.lo `test -f 'file-dict.c' || echo '$(srcdir)/'`file-dict.c libskk_la-cdb-dict.lo: cdb-dict.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libskk_la_CFLAGS) $(CFLAGS) -MT libskk_la-cdb-dict.lo -MD -MP -MF $(DEPDIR)/libskk_la-cdb-dict.Tpo -c -o libskk_la-cdb-dict.lo `test -f 'cdb-dict.c' || echo '$(srcdir)/'`cdb-dict.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libskk_la-cdb-dict.Tpo $(DEPDIR)/libskk_la-cdb-dict.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cdb-dict.c' object='libskk_la-cdb-dict.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) $(libskk_la_CFLAGS) $(CFLAGS) -c -o libskk_la-cdb-dict.lo `test -f 'cdb-dict.c' || echo '$(srcdir)/'`cdb-dict.c libskk_la-user-dict.lo: user-dict.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libskk_la_CFLAGS) $(CFLAGS) -MT libskk_la-user-dict.lo -MD -MP -MF $(DEPDIR)/libskk_la-user-dict.Tpo -c -o libskk_la-user-dict.lo `test -f 'user-dict.c' || echo '$(srcdir)/'`user-dict.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libskk_la-user-dict.Tpo $(DEPDIR)/libskk_la-user-dict.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='user-dict.c' object='libskk_la-user-dict.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) $(libskk_la_CFLAGS) $(CFLAGS) -c -o libskk_la-user-dict.lo `test -f 'user-dict.c' || echo '$(srcdir)/'`user-dict.c libskk_la-skkserv.lo: skkserv.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libskk_la_CFLAGS) $(CFLAGS) -MT libskk_la-skkserv.lo -MD -MP -MF $(DEPDIR)/libskk_la-skkserv.Tpo -c -o libskk_la-skkserv.lo `test -f 'skkserv.c' || echo '$(srcdir)/'`skkserv.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libskk_la-skkserv.Tpo $(DEPDIR)/libskk_la-skkserv.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='skkserv.c' object='libskk_la-skkserv.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) $(libskk_la_CFLAGS) $(CFLAGS) -c -o libskk_la-skkserv.lo `test -f 'skkserv.c' || echo '$(srcdir)/'`skkserv.c libskk_la-key-event.lo: key-event.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libskk_la_CFLAGS) $(CFLAGS) -MT libskk_la-key-event.lo -MD -MP -MF $(DEPDIR)/libskk_la-key-event.Tpo -c -o libskk_la-key-event.lo `test -f 'key-event.c' || echo '$(srcdir)/'`key-event.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libskk_la-key-event.Tpo $(DEPDIR)/libskk_la-key-event.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='key-event.c' object='libskk_la-key-event.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) $(libskk_la_CFLAGS) $(CFLAGS) -c -o libskk_la-key-event.lo `test -f 'key-event.c' || echo '$(srcdir)/'`key-event.c libskk_la-key-event-filter.lo: key-event-filter.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libskk_la_CFLAGS) $(CFLAGS) -MT libskk_la-key-event-filter.lo -MD -MP -MF $(DEPDIR)/libskk_la-key-event-filter.Tpo -c -o libskk_la-key-event-filter.lo `test -f 'key-event-filter.c' || echo '$(srcdir)/'`key-event-filter.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libskk_la-key-event-filter.Tpo $(DEPDIR)/libskk_la-key-event-filter.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='key-event-filter.c' object='libskk_la-key-event-filter.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) $(libskk_la_CFLAGS) $(CFLAGS) -c -o libskk_la-key-event-filter.lo `test -f 'key-event-filter.c' || echo '$(srcdir)/'`key-event-filter.c libskk_la-keymap.lo: keymap.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libskk_la_CFLAGS) $(CFLAGS) -MT libskk_la-keymap.lo -MD -MP -MF $(DEPDIR)/libskk_la-keymap.Tpo -c -o libskk_la-keymap.lo `test -f 'keymap.c' || echo '$(srcdir)/'`keymap.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libskk_la-keymap.Tpo $(DEPDIR)/libskk_la-keymap.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='keymap.c' object='libskk_la-keymap.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) $(libskk_la_CFLAGS) $(CFLAGS) -c -o libskk_la-keymap.lo `test -f 'keymap.c' || echo '$(srcdir)/'`keymap.c libskk_la-rule.lo: rule.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libskk_la_CFLAGS) $(CFLAGS) -MT libskk_la-rule.lo -MD -MP -MF $(DEPDIR)/libskk_la-rule.Tpo -c -o libskk_la-rule.lo `test -f 'rule.c' || echo '$(srcdir)/'`rule.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libskk_la-rule.Tpo $(DEPDIR)/libskk_la-rule.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rule.c' object='libskk_la-rule.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) $(libskk_la_CFLAGS) $(CFLAGS) -c -o libskk_la-rule.lo `test -f 'rule.c' || echo '$(srcdir)/'`rule.c libskk_la-map-file.lo: map-file.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libskk_la_CFLAGS) $(CFLAGS) -MT libskk_la-map-file.lo -MD -MP -MF $(DEPDIR)/libskk_la-map-file.Tpo -c -o libskk_la-map-file.lo `test -f 'map-file.c' || echo '$(srcdir)/'`map-file.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libskk_la-map-file.Tpo $(DEPDIR)/libskk_la-map-file.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='map-file.c' object='libskk_la-map-file.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) $(libskk_la_CFLAGS) $(CFLAGS) -c -o libskk_la-map-file.lo `test -f 'map-file.c' || echo '$(srcdir)/'`map-file.c libskk_la-state.lo: state.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libskk_la_CFLAGS) $(CFLAGS) -MT libskk_la-state.lo -MD -MP -MF $(DEPDIR)/libskk_la-state.Tpo -c -o libskk_la-state.lo `test -f 'state.c' || echo '$(srcdir)/'`state.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libskk_la-state.Tpo $(DEPDIR)/libskk_la-state.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='state.c' object='libskk_la-state.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) $(libskk_la_CFLAGS) $(CFLAGS) -c -o libskk_la-state.lo `test -f 'state.c' || echo '$(srcdir)/'`state.c libskk_la-context.lo: context.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libskk_la_CFLAGS) $(CFLAGS) -MT libskk_la-context.lo -MD -MP -MF $(DEPDIR)/libskk_la-context.Tpo -c -o libskk_la-context.lo `test -f 'context.c' || echo '$(srcdir)/'`context.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libskk_la-context.Tpo $(DEPDIR)/libskk_la-context.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='context.c' object='libskk_la-context.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) $(libskk_la_CFLAGS) $(CFLAGS) -c -o libskk_la-context.lo `test -f 'context.c' || echo '$(srcdir)/'`context.c libskk_la-candidate.lo: candidate.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libskk_la_CFLAGS) $(CFLAGS) -MT libskk_la-candidate.lo -MD -MP -MF $(DEPDIR)/libskk_la-candidate.Tpo -c -o libskk_la-candidate.lo `test -f 'candidate.c' || echo '$(srcdir)/'`candidate.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libskk_la-candidate.Tpo $(DEPDIR)/libskk_la-candidate.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='candidate.c' object='libskk_la-candidate.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) $(libskk_la_CFLAGS) $(CFLAGS) -c -o libskk_la-candidate.lo `test -f 'candidate.c' || echo '$(srcdir)/'`candidate.c libskk_la-candidate-list.lo: candidate-list.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libskk_la_CFLAGS) $(CFLAGS) -MT libskk_la-candidate-list.lo -MD -MP -MF $(DEPDIR)/libskk_la-candidate-list.Tpo -c -o libskk_la-candidate-list.lo `test -f 'candidate-list.c' || echo '$(srcdir)/'`candidate-list.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libskk_la-candidate-list.Tpo $(DEPDIR)/libskk_la-candidate-list.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='candidate-list.c' object='libskk_la-candidate-list.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) $(libskk_la_CFLAGS) $(CFLAGS) -c -o libskk_la-candidate-list.lo `test -f 'candidate-list.c' || echo '$(srcdir)/'`candidate-list.c libskk_la-nicola.lo: nicola.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libskk_la_CFLAGS) $(CFLAGS) -MT libskk_la-nicola.lo -MD -MP -MF $(DEPDIR)/libskk_la-nicola.Tpo -c -o libskk_la-nicola.lo `test -f 'nicola.c' || echo '$(srcdir)/'`nicola.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libskk_la-nicola.Tpo $(DEPDIR)/libskk_la-nicola.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nicola.c' object='libskk_la-nicola.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) $(libskk_la_CFLAGS) $(CFLAGS) -c -o libskk_la-nicola.lo `test -f 'nicola.c' || echo '$(srcdir)/'`nicola.c libskk_la-expr.lo: expr.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libskk_la_CFLAGS) $(CFLAGS) -MT libskk_la-expr.lo -MD -MP -MF $(DEPDIR)/libskk_la-expr.Tpo -c -o libskk_la-expr.lo `test -f 'expr.c' || echo '$(srcdir)/'`expr.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libskk_la-expr.Tpo $(DEPDIR)/libskk_la-expr.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='expr.c' object='libskk_la-expr.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) $(libskk_la_CFLAGS) $(CFLAGS) -c -o libskk_la-expr.lo `test -f 'expr.c' || echo '$(srcdir)/'`expr.c libskk_la-util.lo: util.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libskk_la_CFLAGS) $(CFLAGS) -MT libskk_la-util.lo -MD -MP -MF $(DEPDIR)/libskk_la-util.Tpo -c -o libskk_la-util.lo `test -f 'util.c' || echo '$(srcdir)/'`util.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libskk_la-util.Tpo $(DEPDIR)/libskk_la-util.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='util.c' object='libskk_la-util.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) $(libskk_la_CFLAGS) $(CFLAGS) -c -o libskk_la-util.lo `test -f 'util.c' || echo '$(srcdir)/'`util.c libskk_la-keysyms.lo: keysyms.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libskk_la_CFLAGS) $(CFLAGS) -MT libskk_la-keysyms.lo -MD -MP -MF $(DEPDIR)/libskk_la-keysyms.Tpo -c -o libskk_la-keysyms.lo `test -f 'keysyms.c' || echo '$(srcdir)/'`keysyms.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libskk_la-keysyms.Tpo $(DEPDIR)/libskk_la-keysyms.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='keysyms.c' object='libskk_la-keysyms.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) $(libskk_la_CFLAGS) $(CFLAGS) -c -o libskk_la-keysyms.lo `test -f 'keysyms.c' || echo '$(srcdir)/'`keysyms.c $(srcdir)/rom-kana.c: $(srcdir)/libskk_la_vala.stamp @if test -f $@; then :; else rm -f $(srcdir)/libskk_la_vala.stamp; fi @if test -f $@; then :; else \ $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/libskk_la_vala.stamp; \ fi $(srcdir)/kana-kan.c: $(srcdir)/libskk_la_vala.stamp @if test -f $@; then :; else rm -f $(srcdir)/libskk_la_vala.stamp; fi @if test -f $@; then :; else \ $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/libskk_la_vala.stamp; \ fi $(srcdir)/encoding.c: $(srcdir)/libskk_la_vala.stamp @if test -f $@; then :; else rm -f $(srcdir)/libskk_la_vala.stamp; fi @if test -f $@; then :; else \ $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/libskk_la_vala.stamp; \ fi $(srcdir)/dict.c: $(srcdir)/libskk_la_vala.stamp @if test -f $@; then :; else rm -f $(srcdir)/libskk_la_vala.stamp; fi @if test -f $@; then :; else \ $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/libskk_la_vala.stamp; \ fi $(srcdir)/file-dict.c: $(srcdir)/libskk_la_vala.stamp @if test -f $@; then :; else rm -f $(srcdir)/libskk_la_vala.stamp; fi @if test -f $@; then :; else \ $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/libskk_la_vala.stamp; \ fi $(srcdir)/cdb-dict.c: $(srcdir)/libskk_la_vala.stamp @if test -f $@; then :; else rm -f $(srcdir)/libskk_la_vala.stamp; fi @if test -f $@; then :; else \ $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/libskk_la_vala.stamp; \ fi $(srcdir)/user-dict.c: $(srcdir)/libskk_la_vala.stamp @if test -f $@; then :; else rm -f $(srcdir)/libskk_la_vala.stamp; fi @if test -f $@; then :; else \ $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/libskk_la_vala.stamp; \ fi $(srcdir)/skkserv.c: $(srcdir)/libskk_la_vala.stamp @if test -f $@; then :; else rm -f $(srcdir)/libskk_la_vala.stamp; fi @if test -f $@; then :; else \ $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/libskk_la_vala.stamp; \ fi $(srcdir)/key-event.c: $(srcdir)/libskk_la_vala.stamp @if test -f $@; then :; else rm -f $(srcdir)/libskk_la_vala.stamp; fi @if test -f $@; then :; else \ $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/libskk_la_vala.stamp; \ fi $(srcdir)/key-event-filter.c: $(srcdir)/libskk_la_vala.stamp @if test -f $@; then :; else rm -f $(srcdir)/libskk_la_vala.stamp; fi @if test -f $@; then :; else \ $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/libskk_la_vala.stamp; \ fi $(srcdir)/keymap.c: $(srcdir)/libskk_la_vala.stamp @if test -f $@; then :; else rm -f $(srcdir)/libskk_la_vala.stamp; fi @if test -f $@; then :; else \ $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/libskk_la_vala.stamp; \ fi $(srcdir)/rule.c: $(srcdir)/libskk_la_vala.stamp @if test -f $@; then :; else rm -f $(srcdir)/libskk_la_vala.stamp; fi @if test -f $@; then :; else \ $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/libskk_la_vala.stamp; \ fi $(srcdir)/map-file.c: $(srcdir)/libskk_la_vala.stamp @if test -f $@; then :; else rm -f $(srcdir)/libskk_la_vala.stamp; fi @if test -f $@; then :; else \ $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/libskk_la_vala.stamp; \ fi $(srcdir)/state.c: $(srcdir)/libskk_la_vala.stamp @if test -f $@; then :; else rm -f $(srcdir)/libskk_la_vala.stamp; fi @if test -f $@; then :; else \ $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/libskk_la_vala.stamp; \ fi $(srcdir)/context.c: $(srcdir)/libskk_la_vala.stamp @if test -f $@; then :; else rm -f $(srcdir)/libskk_la_vala.stamp; fi @if test -f $@; then :; else \ $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/libskk_la_vala.stamp; \ fi $(srcdir)/candidate.c: $(srcdir)/libskk_la_vala.stamp @if test -f $@; then :; else rm -f $(srcdir)/libskk_la_vala.stamp; fi @if test -f $@; then :; else \ $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/libskk_la_vala.stamp; \ fi $(srcdir)/candidate-list.c: $(srcdir)/libskk_la_vala.stamp @if test -f $@; then :; else rm -f $(srcdir)/libskk_la_vala.stamp; fi @if test -f $@; then :; else \ $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/libskk_la_vala.stamp; \ fi $(srcdir)/nicola.c: $(srcdir)/libskk_la_vala.stamp @if test -f $@; then :; else rm -f $(srcdir)/libskk_la_vala.stamp; fi @if test -f $@; then :; else \ $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/libskk_la_vala.stamp; \ fi $(srcdir)/expr.c: $(srcdir)/libskk_la_vala.stamp @if test -f $@; then :; else rm -f $(srcdir)/libskk_la_vala.stamp; fi @if test -f $@; then :; else \ $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/libskk_la_vala.stamp; \ fi $(srcdir)/util.c: $(srcdir)/libskk_la_vala.stamp @if test -f $@; then :; else rm -f $(srcdir)/libskk_la_vala.stamp; fi @if test -f $@; then :; else \ $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/libskk_la_vala.stamp; \ fi $(srcdir)/keysyms.c: $(srcdir)/libskk_la_vala.stamp @if test -f $@; then :; else rm -f $(srcdir)/libskk_la_vala.stamp; fi @if test -f $@; then :; else \ $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/libskk_la_vala.stamp; \ fi $(srcdir)/libskk.h: $(srcdir)/libskk_la_vala.stamp @if test -f $@; then :; else rm -f $(srcdir)/libskk_la_vala.stamp; fi @if test -f $@; then :; else \ $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/libskk_la_vala.stamp; \ fi $(srcdir)/skk-@SKK_API_VERSION@.vapi: $(srcdir)/libskk_la_vala.stamp @if test -f $@; then :; else rm -f $(srcdir)/libskk_la_vala.stamp; fi @if test -f $@; then :; else \ $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/libskk_la_vala.stamp; \ fi $(srcdir)/libskk-internals.h: $(srcdir)/libskk_la_vala.stamp @if test -f $@; then :; else rm -f $(srcdir)/libskk_la_vala.stamp; fi @if test -f $@; then :; else \ $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/libskk_la_vala.stamp; \ fi $(srcdir)/skk-internals-@SKK_API_VERSION@.vapi: $(srcdir)/libskk_la_vala.stamp @if test -f $@; then :; else rm -f $(srcdir)/libskk_la_vala.stamp; fi @if test -f $@; then :; else \ $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/libskk_la_vala.stamp; \ fi $(srcdir)/Skk-@SKK_API_VERSION@.gir: $(srcdir)/libskk_la_vala.stamp @if test -f $@; then :; else rm -f $(srcdir)/libskk_la_vala.stamp; fi @if test -f $@; then :; else \ $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/libskk_la_vala.stamp; \ fi $(srcdir)/libskk_la_vala.stamp: rom-kana.vala kana-kan.vala encoding.vala dict.vala file-dict.vala cdb-dict.vala user-dict.vala skkserv.vala key-event.vala key-event-filter.vala keymap.vala rule.vala map-file.vala state.vala context.vala candidate.vala candidate-list.vala nicola.vala expr.vala util.vala keysyms.vala rm -f $@ && echo stamp > $@-t $(am__cd) $(srcdir) && $(VALAC) $(libskk_la_VALAFLAGS) $(VALAFLAGS) -C rom-kana.vala kana-kan.vala encoding.vala dict.vala file-dict.vala cdb-dict.vala user-dict.vala skkserv.vala key-event.vala key-event-filter.vala keymap.vala rule.vala map-file.vala state.vala context.vala candidate.vala candidate-list.vala nicola.vala expr.vala util.vala keysyms.vala mv -f $@-t $@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-girDATA: $(gir_DATA) @$(NORMAL_INSTALL) @list='$(gir_DATA)'; test -n "$(girdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(girdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(girdir)" || exit 1; \ fi; \ 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)$(girdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(girdir)" || exit $$?; \ done uninstall-girDATA: @$(NORMAL_UNINSTALL) @list='$(gir_DATA)'; test -n "$(girdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir) install-pkgconfigDATA: $(pkgconfig_DATA) @$(NORMAL_INSTALL) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ fi; \ 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|^.*/||'`; \ dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) install-typelibDATA: $(typelib_DATA) @$(NORMAL_INSTALL) @list='$(typelib_DATA)'; test -n "$(typelibdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(typelibdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(typelibdir)" || exit 1; \ fi; \ 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)$(typelibdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(typelibdir)" || exit $$?; \ done uninstall-typelibDATA: @$(NORMAL_UNINSTALL) @list='$(typelib_DATA)'; test -n "$(typelibdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(typelibdir)'; $(am__uninstall_files_from_dir) install-vapiDATA: $(vapi_DATA) @$(NORMAL_INSTALL) @list='$(vapi_DATA)'; test -n "$(vapidir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(vapidir)'"; \ $(MKDIR_P) "$(DESTDIR)$(vapidir)" || exit 1; \ fi; \ 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)$(vapidir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(vapidir)" || exit $$?; \ done uninstall-vapiDATA: @$(NORMAL_UNINSTALL) @list='$(vapi_DATA)'; test -n "$(vapidir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(vapidir)'; $(am__uninstall_files_from_dir) install-libskkincludeHEADERS: $(libskkinclude_HEADERS) @$(NORMAL_INSTALL) @list='$(libskkinclude_HEADERS)'; test -n "$(libskkincludedir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(libskkincludedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(libskkincludedir)" || exit 1; \ fi; \ 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)$(libskkincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(libskkincludedir)" || exit $$?; \ done uninstall-libskkincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(libskkinclude_HEADERS)'; test -n "$(libskkincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(libskkincludedir)'; $(am__uninstall_files_from_dir) 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" cscopelist: $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files 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) $(DATA) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(typelibdir)" "$(DESTDIR)$(vapidir)" "$(DESTDIR)$(libskkincludedir)"; 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: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi 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." -rm -f $(srcdir)/Skk-@SKK_API_VERSION@.gir -rm -f $(srcdir)/candidate-list.c -rm -f $(srcdir)/candidate.c -rm -f $(srcdir)/cdb-dict.c -rm -f $(srcdir)/context.c -rm -f $(srcdir)/dict.c -rm -f $(srcdir)/encoding.c -rm -f $(srcdir)/expr.c -rm -f $(srcdir)/file-dict.c -rm -f $(srcdir)/kana-kan.c -rm -f $(srcdir)/key-event-filter.c -rm -f $(srcdir)/key-event.c -rm -f $(srcdir)/keymap.c -rm -f $(srcdir)/keysyms.c -rm -f $(srcdir)/libskk-internals.h -rm -f $(srcdir)/libskk.h -rm -f $(srcdir)/libskk_la_vala.stamp -rm -f $(srcdir)/map-file.c -rm -f $(srcdir)/nicola.c -rm -f $(srcdir)/rom-kana.c -rm -f $(srcdir)/rule.c -rm -f $(srcdir)/skk-@SKK_API_VERSION@.vapi -rm -f $(srcdir)/skk-internals-@SKK_API_VERSION@.vapi -rm -f $(srcdir)/skkserv.c -rm -f $(srcdir)/state.c -rm -f $(srcdir)/user-dict.c -rm -f $(srcdir)/util.c -rm -f candidate-list.c -rm -f candidate.c -rm -f cdb-dict.c -rm -f context.c -rm -f dict.c -rm -f encoding.c -rm -f expr.c -rm -f file-dict.c -rm -f kana-kan.c -rm -f key-event-filter.c -rm -f key-event.c -rm -f keymap.c -rm -f keysyms.c -rm -f map-file.c -rm -f nicola.c -rm -f rom-kana.c -rm -f rule.c -rm -f skkserv.c -rm -f state.c -rm -f user-dict.c -rm -f util.c clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES 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-girDATA install-libskkincludeHEADERS \ install-pkgconfigDATA install-typelibDATA install-vapiDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-libLTLIBRARIES 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-girDATA uninstall-libLTLIBRARIES \ uninstall-libskkincludeHEADERS uninstall-pkgconfigDATA \ uninstall-typelibDATA uninstall-vapiDATA .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool cscopelist 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-girDATA \ install-html install-html-am install-info install-info-am \ install-libLTLIBRARIES install-libskkincludeHEADERS \ install-man install-pdf install-pdf-am install-pkgconfigDATA \ install-ps install-ps-am install-strip install-typelibDATA \ install-vapiDATA 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-girDATA uninstall-libLTLIBRARIES \ uninstall-libskkincludeHEADERS uninstall-pkgconfigDATA \ uninstall-typelibDATA uninstall-vapiDATA @HAVE_INTROSPECTION_TRUE@Skk-@SKK_API_VERSION@.typelib: Skk-@SKK_API_VERSION@.gir @HAVE_INTROSPECTION_TRUE@ @INTROSPECTION_COMPILER@ --shared-library=libskk -o $@ $^ Skk-@SKK_API_VERSION@.gir skk-internals-@SKK_API_VERSION@.vapi skk-@SKK_API_VERSION@.vapi: libskk.la -include $(top_srcdir)/git.mk # 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: libskk-1.0.0/libskk/skkserv.vala0000664000076400007640000001556311725033707013555 00000000000000/* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ namespace Skk { errordomain SkkServError { NOT_READABLE, INVALID_RESPONSE } /** * Network based Implementation of Dict. */ public class SkkServ : Dict { SocketConnection? connection; uint8 buffer[4096]; string host; uint16 port; void close_connection () { if (connection != null) { try { buffer[0] = '0'; size_t bytes_written; connection.output_stream.write_all (buffer[0:1], out bytes_written); connection.output_stream.flush (); connection.close (); } catch (GLib.Error e) { warning ("can't close skkserv: %s", e.message); } connection = null; } } /** * {@inheritDoc} */ public override void reload () { close_connection (); try { var client = new SocketClient (); connection = client.connect_to_host (host, port); buffer[0] = '2'; size_t bytes_written; connection.output_stream.write_all (buffer[0:1], out bytes_written); connection.output_stream.flush (); ssize_t len = connection.input_stream.read (buffer); if (len <= 0) { close_connection (); } } catch (GLib.Error e) { warning ("can't open skkserv at %s:%u: %s", host, port, e.message); close_connection (); } } string read_response () throws SkkServError, GLib.IOError { StringBuilder builder = new StringBuilder (); // skksearch does not terminate the line with LF on // error (ibus-skk Issue#30) while (builder.str.index_of_char ('\n') < 0) { ssize_t len = connection.input_stream.read (buffer); if (len < 0) { throw new SkkServError.NOT_READABLE ("read error"); } else if (len == 0) { break; } else if (len > 0) { if (buffer[0] != '1') { throw new SkkServError.INVALID_RESPONSE ( "invalid response code"); } // make sure to null terminate the string char[] data = new char[len + 1]; Memory.copy (data, buffer, len); data.length--; builder.append ((string)data); } } var index = builder.str.index_of_char ('\n'); if (index < 0) { throw new SkkServError.INVALID_RESPONSE ("missing newline"); } return builder.str[0:index]; } /** * {@inheritDoc} */ public override Candidate[] lookup (string midasi, bool okuri = false) { if (connection == null) return new Candidate[0]; string _midasi; try { _midasi = converter.encode (midasi); } catch (GLib.Error e) { return new Candidate[0]; } try { size_t bytes_written; connection.output_stream.write_all ( "1%s ".printf (_midasi).data, out bytes_written); connection.output_stream.flush (); var response = read_response (); if (response.length == 0) return new Candidate[0]; return split_candidates (midasi, okuri, converter.decode ( response[1:response.length])); } catch (SkkServError e) { return new Candidate[0]; } catch (GLib.Error e) { return new Candidate[0]; } } /** * {@inheritDoc} */ public override string[] complete (string midasi) { if (connection == null) return new string[0]; string _midasi; try { _midasi = converter.encode (midasi); } catch (GLib.Error e) { return new string[0]; } try { size_t bytes_written; connection.output_stream.write_all ( "4%s ".printf (_midasi).data, out bytes_written); connection.output_stream.flush (); var response = read_response (); if (response.length < 2) return new string[0]; return converter.decode ( response[2:-1]).split ("/"); } catch (SkkServError e) { warning ("server completion failed %s", e.message); return new string[0]; } catch (GLib.Error e) { warning ("server completion failed %s", e.message); return new string[0]; } } /** * {@inheritDoc} */ public override bool read_only { get { return true; } } EncodingConverter converter; /** * Create a new SkkServ. * * @param host host to connect * @param port port at the host * @param encoding encoding to convert text over network traffic * * @return a new SkkServ. * @throws GLib.Error if opening a connection is failed */ public SkkServ (string host, uint16 port = 1178, string encoding = "EUC-JP") throws GLib.Error { this.host = host; this.port = port; this.converter = new EncodingConverter (encoding); reload (); } ~SkkServ () { close_connection (); } } } libskk-1.0.0/libskk/map-file.vala0000664000076400007640000001256411742736076013565 00000000000000/* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ using Gee; namespace Skk { abstract class MapFile : Object { Map> maps = new HashMap> (); void load_map (Map map, Json.Object object) { var keys = object.get_members (); foreach (var key in keys) { var value = object.get_member (key); if (value.get_node_type () == Json.NodeType.NULL) { map.unset (key); } else { map.set (key, value); } } } void load (RuleMetadata metadata, string type, string name, Set included) throws RuleParseError { var filename = metadata.locate_map_file (type, name); if (filename == null) { throw new RuleParseError.FAILED ("no such file %s", filename); } Json.Parser parser = new Json.Parser (); try { if (!parser.load_from_file (filename)) throw new RuleParseError.FAILED (""); } catch (GLib.Error e) { throw new RuleParseError.FAILED ( "can't load %s: %s".printf (filename, e.message)); } var root = parser.get_root (); if (root.get_node_type () != Json.NodeType.OBJECT) { throw new RuleParseError.FAILED ( "root element must be an object"); } var object = root.get_object (); Json.Node member; if (object.has_member ("include")) { member = object.get_member ("include"); if (member.get_node_type () != Json.NodeType.ARRAY) { throw new RuleParseError.FAILED ( "\"include\" element must be an array"); } var include = member.get_array (); var elements = include.get_elements (); foreach (var element in elements) { var parent = element.get_string (); if (parent in included) { throw new RuleParseError.FAILED ( "found circular include of %s", parent); } string parent_rule, parent_name; var index = parent.index_of ("/"); if (index < 0) { parent_rule = metadata.name; parent_name = parent; } else { parent_rule = parent[0:index]; parent_name = parent[index + 1:parent.length]; } var parent_metadata = Rule.find_rule (parent_rule); if (parent_metadata == null) { throw new RuleParseError.FAILED ("can't find rule %s", parent_rule); } load (parent_metadata, type, parent_name, included); included.add (parent); } } if (object.has_member ("define")) { member = object.get_member ("define"); if (member.get_node_type () != Json.NodeType.OBJECT) { throw new RuleParseError.FAILED ( "\"define\" element must be an object"); } var define = member.get_object (); var keys = define.get_members (); foreach (var key in keys) { if (!maps.has_key (key)) { var map = new HashMap (); maps.set (key, map); } member = define.get_member (key); if (member.get_node_type () != Json.NodeType.OBJECT) { throw new RuleParseError.FAILED ( "map element must be an object"); } load_map (maps.get (key), member.get_object ()); } } } internal MapFile (RuleMetadata metadata, string type, string name) throws RuleParseError { Set included = new HashSet (); load (metadata, type, name, included); } internal bool has_map (string name) { return maps.has_key (name); } internal new Map @get (string name) { return maps.get (name); } } } libskk-1.0.0/libskk/nicola.c0000664000076400007640000016643312016556644012640 00000000000000/* nicola.c generated by valac 0.16.0, the Vala compiler * generated from nicola.vala, do not modify */ /* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ #include #include #include #include #include #include #define SKK_TYPE_KEY_EVENT_FILTER (skk_key_event_filter_get_type ()) #define SKK_KEY_EVENT_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KEY_EVENT_FILTER, SkkKeyEventFilter)) #define SKK_KEY_EVENT_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KEY_EVENT_FILTER, SkkKeyEventFilterClass)) #define SKK_IS_KEY_EVENT_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KEY_EVENT_FILTER)) #define SKK_IS_KEY_EVENT_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KEY_EVENT_FILTER)) #define SKK_KEY_EVENT_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KEY_EVENT_FILTER, SkkKeyEventFilterClass)) typedef struct _SkkKeyEventFilter SkkKeyEventFilter; typedef struct _SkkKeyEventFilterClass SkkKeyEventFilterClass; typedef struct _SkkKeyEventFilterPrivate SkkKeyEventFilterPrivate; #define SKK_TYPE_KEY_EVENT (skk_key_event_get_type ()) #define SKK_KEY_EVENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KEY_EVENT, SkkKeyEvent)) #define SKK_KEY_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KEY_EVENT, SkkKeyEventClass)) #define SKK_IS_KEY_EVENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KEY_EVENT)) #define SKK_IS_KEY_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KEY_EVENT)) #define SKK_KEY_EVENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KEY_EVENT, SkkKeyEventClass)) typedef struct _SkkKeyEvent SkkKeyEvent; typedef struct _SkkKeyEventClass SkkKeyEventClass; #define SKK_TYPE_NICOLA_KEY_EVENT_FILTER (skk_nicola_key_event_filter_get_type ()) #define SKK_NICOLA_KEY_EVENT_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_NICOLA_KEY_EVENT_FILTER, SkkNicolaKeyEventFilter)) #define SKK_NICOLA_KEY_EVENT_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_NICOLA_KEY_EVENT_FILTER, SkkNicolaKeyEventFilterClass)) #define SKK_IS_NICOLA_KEY_EVENT_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_NICOLA_KEY_EVENT_FILTER)) #define SKK_IS_NICOLA_KEY_EVENT_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_NICOLA_KEY_EVENT_FILTER)) #define SKK_NICOLA_KEY_EVENT_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_NICOLA_KEY_EVENT_FILTER, SkkNicolaKeyEventFilterClass)) typedef struct _SkkNicolaKeyEventFilter SkkNicolaKeyEventFilter; typedef struct _SkkNicolaKeyEventFilterClass SkkNicolaKeyEventFilterClass; typedef struct _SkkNicolaKeyEventFilterPrivate SkkNicolaKeyEventFilterPrivate; #define SKK_NICOLA_KEY_EVENT_FILTER_TYPE_TIMED_ENTRY (skk_nicola_key_event_filter_timed_entry_get_type ()) #define SKK_NICOLA_KEY_EVENT_FILTER_TIMED_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_NICOLA_KEY_EVENT_FILTER_TYPE_TIMED_ENTRY, SkkNicolaKeyEventFilterTimedEntry)) #define SKK_NICOLA_KEY_EVENT_FILTER_TIMED_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_NICOLA_KEY_EVENT_FILTER_TYPE_TIMED_ENTRY, SkkNicolaKeyEventFilterTimedEntryClass)) #define SKK_NICOLA_KEY_EVENT_FILTER_IS_TIMED_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_NICOLA_KEY_EVENT_FILTER_TYPE_TIMED_ENTRY)) #define SKK_NICOLA_KEY_EVENT_FILTER_IS_TIMED_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_NICOLA_KEY_EVENT_FILTER_TYPE_TIMED_ENTRY)) #define SKK_NICOLA_KEY_EVENT_FILTER_TIMED_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_NICOLA_KEY_EVENT_FILTER_TYPE_TIMED_ENTRY, SkkNicolaKeyEventFilterTimedEntryClass)) typedef struct _SkkNicolaKeyEventFilterTimedEntry SkkNicolaKeyEventFilterTimedEntry; typedef struct _SkkNicolaKeyEventFilterTimedEntryClass SkkNicolaKeyEventFilterTimedEntryClass; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) #define _g_free0(var) (var = (g_free (var), NULL)) #define SKK_TYPE_MODIFIER_TYPE (skk_modifier_type_get_type ()) typedef struct _SkkNicolaKeyEventFilterTimedEntryPrivate SkkNicolaKeyEventFilterTimedEntryPrivate; #define _skk_nicola_key_event_filter_timed_entry_unref0(var) ((var == NULL) ? NULL : (var = (skk_nicola_key_event_filter_timed_entry_unref (var), NULL))) #define _t_destroy_func0(var) (((var == NULL) || (t_destroy_func == NULL)) ? NULL : (var = (t_destroy_func (var), NULL))) typedef struct _SkkNicolaKeyEventFilterParamSpecTimedEntry SkkNicolaKeyEventFilterParamSpecTimedEntry; typedef gint64 (*SkkGetTime) (void* user_data); struct _SkkKeyEventFilter { GObject parent_instance; SkkKeyEventFilterPrivate * priv; }; struct _SkkKeyEventFilterClass { GObjectClass parent_class; SkkKeyEvent* (*filter_key_event) (SkkKeyEventFilter* self, SkkKeyEvent* key); void (*reset) (SkkKeyEventFilter* self); }; struct _SkkNicolaKeyEventFilter { SkkKeyEventFilter parent_instance; SkkNicolaKeyEventFilterPrivate * priv; SkkGetTime get_time_func; gpointer get_time_func_target; GDestroyNotify get_time_func_target_destroy_notify; gint64 timeout; gint64 overlap; gint64 maxwait; gchar** special_doubles; gint special_doubles_length1; }; struct _SkkNicolaKeyEventFilterClass { SkkKeyEventFilterClass parent_class; }; struct _SkkNicolaKeyEventFilterPrivate { GeeLinkedList* pending; guint timeout_id; }; typedef enum { SKK_MODIFIER_TYPE_NONE = 0, SKK_MODIFIER_TYPE_SHIFT_MASK = 1 << 0, SKK_MODIFIER_TYPE_LOCK_MASK = 1 << 1, SKK_MODIFIER_TYPE_CONTROL_MASK = 1 << 2, SKK_MODIFIER_TYPE_MOD1_MASK = 1 << 3, SKK_MODIFIER_TYPE_MOD2_MASK = 1 << 4, SKK_MODIFIER_TYPE_MOD3_MASK = 1 << 5, SKK_MODIFIER_TYPE_MOD4_MASK = 1 << 6, SKK_MODIFIER_TYPE_MOD5_MASK = 1 << 7, SKK_MODIFIER_TYPE_LSHIFT_MASK = 1 << 22, SKK_MODIFIER_TYPE_RSHIFT_MASK = 1 << 23, SKK_MODIFIER_TYPE_USLEEP_MASK = 1 << 24, SKK_MODIFIER_TYPE_SUPER_MASK = 1 << 26, SKK_MODIFIER_TYPE_HYPER_MASK = 1 << 27, SKK_MODIFIER_TYPE_META_MASK = 1 << 28, SKK_MODIFIER_TYPE_RELEASE_MASK = 1 << 30 } SkkModifierType; struct _SkkNicolaKeyEventFilterTimedEntry { GTypeInstance parent_instance; volatile int ref_count; SkkNicolaKeyEventFilterTimedEntryPrivate * priv; gpointer data; gint64 time; }; struct _SkkNicolaKeyEventFilterTimedEntryClass { GTypeClass parent_class; void (*finalize) (SkkNicolaKeyEventFilterTimedEntry *self); }; struct _SkkNicolaKeyEventFilterTimedEntryPrivate { GType t_type; GBoxedCopyFunc t_dup_func; GDestroyNotify t_destroy_func; }; struct _SkkNicolaKeyEventFilterParamSpecTimedEntry { GParamSpec parent_instance; }; static gpointer skk_nicola_key_event_filter_parent_class = NULL; static gpointer skk_nicola_key_event_filter_timed_entry_parent_class = NULL; GType skk_key_event_filter_get_type (void) G_GNUC_CONST; GType skk_key_event_get_type (void) G_GNUC_CONST; GType skk_nicola_key_event_filter_get_type (void) G_GNUC_CONST; static gpointer skk_nicola_key_event_filter_timed_entry_ref (gpointer instance); static void skk_nicola_key_event_filter_timed_entry_unref (gpointer instance); static GParamSpec* skk_nicola_key_event_filter_param_spec_timed_entry (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) G_GNUC_UNUSED; static void skk_nicola_key_event_filter_value_set_timed_entry (GValue* value, gpointer v_object) G_GNUC_UNUSED; static void skk_nicola_key_event_filter_value_take_timed_entry (GValue* value, gpointer v_object) G_GNUC_UNUSED; static gpointer skk_nicola_key_event_filter_value_get_timed_entry (const GValue* value) G_GNUC_UNUSED; static GType skk_nicola_key_event_filter_timed_entry_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; #define SKK_NICOLA_KEY_EVENT_FILTER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SKK_TYPE_NICOLA_KEY_EVENT_FILTER, SkkNicolaKeyEventFilterPrivate)) enum { SKK_NICOLA_KEY_EVENT_FILTER_DUMMY_PROPERTY }; static gint64 skk_nicola_key_event_filter_get_time (void); static gint64 _skk_nicola_key_event_filter_get_time_skk_get_time (gpointer self); static gboolean skk_nicola_key_event_filter_is_char (SkkKeyEvent* key); gunichar skk_key_event_get_code (SkkKeyEvent* self); static gboolean skk_nicola_key_event_filter_is_lshift (SkkKeyEvent* key); const gchar* skk_key_event_get_name (SkkKeyEvent* self); static gboolean skk_nicola_key_event_filter_is_rshift (SkkKeyEvent* key); static gboolean skk_nicola_key_event_filter_is_shift (SkkKeyEvent* key); static gchar* skk_nicola_key_event_filter_get_special_double_name (SkkKeyEvent* a, SkkKeyEvent* b); static SkkKeyEvent* skk_nicola_key_event_filter_queue (SkkNicolaKeyEventFilter* self, SkkKeyEvent* key, gint64 time, gint64* wait); GType skk_modifier_type_get_type (void) G_GNUC_CONST; SkkModifierType skk_key_event_get_modifiers (SkkKeyEvent* self); gboolean skk_key_event_base_equal (SkkKeyEvent* self, SkkKeyEvent* key); static gint64 skk_nicola_key_event_filter_get_next_wait (SkkNicolaKeyEventFilter* self, SkkKeyEvent* key, gint64 time); static SkkNicolaKeyEventFilterTimedEntry* skk_nicola_key_event_filter_timed_entry_new (GType t_type, GBoxedCopyFunc t_dup_func, GDestroyNotify t_destroy_func, gconstpointer data, gint64 time); static SkkNicolaKeyEventFilterTimedEntry* skk_nicola_key_event_filter_timed_entry_construct (GType object_type, GType t_type, GBoxedCopyFunc t_dup_func, GDestroyNotify t_destroy_func, gconstpointer data, gint64 time); static SkkKeyEvent* skk_nicola_key_event_filter_dispatch_single (SkkNicolaKeyEventFilter* self, gint64 time); static void skk_nicola_key_event_filter_apply_shift (SkkNicolaKeyEventFilter* self, SkkKeyEvent* s, SkkKeyEvent* c); void skk_key_event_set_modifiers (SkkKeyEvent* self, SkkModifierType value); static SkkKeyEvent* skk_nicola_key_event_filter_dispatch (SkkNicolaKeyEventFilter* self, gint64 time); static gboolean _vala_string_array_contains (gchar** stack, int stack_length, gchar* needle); SkkKeyEvent* skk_key_event_new (const gchar* name, gunichar code, SkkModifierType modifiers); SkkKeyEvent* skk_key_event_construct (GType object_type, const gchar* name, gunichar code, SkkModifierType modifiers); static gboolean skk_nicola_key_event_filter_timeout_func (SkkNicolaKeyEventFilter* self); static SkkKeyEvent* skk_nicola_key_event_filter_real_filter_key_event (SkkKeyEventFilter* base, SkkKeyEvent* key); static gboolean _skk_nicola_key_event_filter_timeout_func_gsource_func (gpointer self); static void skk_nicola_key_event_filter_real_reset (SkkKeyEventFilter* base); SkkNicolaKeyEventFilter* skk_nicola_key_event_filter_new (void); SkkNicolaKeyEventFilter* skk_nicola_key_event_filter_construct (GType object_type); SkkKeyEventFilter* skk_key_event_filter_construct (GType object_type); static GObject * skk_nicola_key_event_filter_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); static gchar** _vala_array_dup5 (gchar** self, int length); #define SKK_NICOLA_KEY_EVENT_FILTER_TIMED_ENTRY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SKK_NICOLA_KEY_EVENT_FILTER_TYPE_TIMED_ENTRY, SkkNicolaKeyEventFilterTimedEntryPrivate)) enum { SKK_NICOLA_KEY_EVENT_FILTER_TIMED_ENTRY_DUMMY_PROPERTY }; static void skk_nicola_key_event_filter_timed_entry_finalize (SkkNicolaKeyEventFilterTimedEntry* obj); static void skk_nicola_key_event_filter_finalize (GObject* obj); static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func); static const gchar* SKK_NICOLA_KEY_EVENT_FILTER_SPECIAL_DOUBLES[4] = {"[fj]", "[gh]", "[dk]", "[LR]"}; static gint64 _skk_nicola_key_event_filter_get_time_skk_get_time (gpointer self) { gint64 result; result = skk_nicola_key_event_filter_get_time (); return result; } static gint64 skk_nicola_key_event_filter_get_time (void) { gint64 result = 0LL; GTimeVal tv = {0}; GTimeVal _tmp0_; glong _tmp1_; GTimeVal _tmp2_; glong _tmp3_; g_get_current_time (&tv); _tmp0_ = tv; _tmp1_ = _tmp0_.tv_sec; _tmp2_ = tv; _tmp3_ = _tmp2_.tv_usec; result = (((gint64) _tmp1_) * 1000000) + _tmp3_; return result; } static gboolean skk_nicola_key_event_filter_is_char (SkkKeyEvent* key) { gboolean result = FALSE; SkkKeyEvent* _tmp0_; gunichar _tmp1_; gunichar _tmp2_; g_return_val_if_fail (key != NULL, FALSE); _tmp0_ = key; _tmp1_ = skk_key_event_get_code (_tmp0_); _tmp2_ = _tmp1_; result = _tmp2_ != ((gunichar) 0); return result; } static gboolean skk_nicola_key_event_filter_is_lshift (SkkKeyEvent* key) { gboolean result = FALSE; SkkKeyEvent* _tmp0_; const gchar* _tmp1_; const gchar* _tmp2_; g_return_val_if_fail (key != NULL, FALSE); _tmp0_ = key; _tmp1_ = skk_key_event_get_name (_tmp0_); _tmp2_ = _tmp1_; result = g_strcmp0 (_tmp2_, "lshift") == 0; return result; } static gboolean skk_nicola_key_event_filter_is_rshift (SkkKeyEvent* key) { gboolean result = FALSE; SkkKeyEvent* _tmp0_; const gchar* _tmp1_; const gchar* _tmp2_; g_return_val_if_fail (key != NULL, FALSE); _tmp0_ = key; _tmp1_ = skk_key_event_get_name (_tmp0_); _tmp2_ = _tmp1_; result = g_strcmp0 (_tmp2_, "rshift") == 0; return result; } static gboolean skk_nicola_key_event_filter_is_shift (SkkKeyEvent* key) { gboolean result = FALSE; gboolean _tmp0_ = FALSE; SkkKeyEvent* _tmp1_; gboolean _tmp2_ = FALSE; gboolean _tmp5_; g_return_val_if_fail (key != NULL, FALSE); _tmp1_ = key; _tmp2_ = skk_nicola_key_event_filter_is_lshift (_tmp1_); if (_tmp2_) { _tmp0_ = TRUE; } else { SkkKeyEvent* _tmp3_; gboolean _tmp4_ = FALSE; _tmp3_ = key; _tmp4_ = skk_nicola_key_event_filter_is_rshift (_tmp3_); _tmp0_ = _tmp4_; } _tmp5_ = _tmp0_; result = _tmp5_; return result; } static gchar* g_unichar_to_string (gunichar self) { gchar* result = NULL; gchar* _tmp0_ = NULL; gchar* str; const gchar* _tmp1_; _tmp0_ = g_new0 (gchar, 7); str = (gchar*) _tmp0_; _tmp1_ = str; g_unichar_to_utf8 (self, _tmp1_); result = str; return result; } static gchar* skk_nicola_key_event_filter_get_special_double_name (SkkKeyEvent* a, SkkKeyEvent* b) { gchar* result = NULL; gboolean _tmp0_ = FALSE; SkkKeyEvent* _tmp1_; gboolean _tmp2_ = FALSE; gboolean _tmp5_; g_return_val_if_fail (a != NULL, NULL); g_return_val_if_fail (b != NULL, NULL); _tmp1_ = a; _tmp2_ = skk_nicola_key_event_filter_is_shift (_tmp1_); if (_tmp2_) { SkkKeyEvent* _tmp3_; gboolean _tmp4_ = FALSE; _tmp3_ = b; _tmp4_ = skk_nicola_key_event_filter_is_shift (_tmp3_); _tmp0_ = _tmp4_; } else { _tmp0_ = FALSE; } _tmp5_ = _tmp0_; if (_tmp5_) { gchar* _tmp6_; _tmp6_ = g_strdup ("[LR]"); result = _tmp6_; return result; } else { gboolean _tmp7_ = FALSE; SkkKeyEvent* _tmp8_; gboolean _tmp9_ = FALSE; gboolean _tmp12_; _tmp8_ = a; _tmp9_ = skk_nicola_key_event_filter_is_char (_tmp8_); if (_tmp9_) { SkkKeyEvent* _tmp10_; gboolean _tmp11_ = FALSE; _tmp10_ = b; _tmp11_ = skk_nicola_key_event_filter_is_char (_tmp10_); _tmp7_ = _tmp11_; } else { _tmp7_ = FALSE; } _tmp12_ = _tmp7_; if (_tmp12_) { gunichar ac = 0U; gunichar bc = 0U; SkkKeyEvent* _tmp13_; gunichar _tmp14_; gunichar _tmp15_; SkkKeyEvent* _tmp16_; gunichar _tmp17_; gunichar _tmp18_; gunichar _tmp31_; gchar* _tmp32_ = NULL; gchar* _tmp33_; gunichar _tmp34_; gchar* _tmp35_ = NULL; gchar* _tmp36_; gchar* _tmp37_ = NULL; gchar* _tmp38_; _tmp13_ = a; _tmp14_ = skk_key_event_get_code (_tmp13_); _tmp15_ = _tmp14_; _tmp16_ = b; _tmp17_ = skk_key_event_get_code (_tmp16_); _tmp18_ = _tmp17_; if (_tmp15_ < _tmp18_) { SkkKeyEvent* _tmp19_; gunichar _tmp20_; gunichar _tmp21_; SkkKeyEvent* _tmp22_; gunichar _tmp23_; gunichar _tmp24_; _tmp19_ = a; _tmp20_ = skk_key_event_get_code (_tmp19_); _tmp21_ = _tmp20_; ac = _tmp21_; _tmp22_ = b; _tmp23_ = skk_key_event_get_code (_tmp22_); _tmp24_ = _tmp23_; bc = _tmp24_; } else { SkkKeyEvent* _tmp25_; gunichar _tmp26_; gunichar _tmp27_; SkkKeyEvent* _tmp28_; gunichar _tmp29_; gunichar _tmp30_; _tmp25_ = b; _tmp26_ = skk_key_event_get_code (_tmp25_); _tmp27_ = _tmp26_; ac = _tmp27_; _tmp28_ = a; _tmp29_ = skk_key_event_get_code (_tmp28_); _tmp30_ = _tmp29_; bc = _tmp30_; } _tmp31_ = ac; _tmp32_ = g_unichar_to_string (_tmp31_); _tmp33_ = _tmp32_; _tmp34_ = bc; _tmp35_ = g_unichar_to_string (_tmp34_); _tmp36_ = _tmp35_; _tmp37_ = g_strconcat ("[", _tmp33_, _tmp36_, "]", NULL); _tmp38_ = _tmp37_; _g_free0 (_tmp36_); _g_free0 (_tmp33_); result = _tmp38_; return result; } else { g_return_val_if_reached (NULL); } } } static gpointer _g_object_ref0 (gpointer self) { return self ? g_object_ref (self) : NULL; } static SkkKeyEvent* skk_nicola_key_event_filter_queue (SkkNicolaKeyEventFilter* self, SkkKeyEvent* key, gint64 time, gint64* wait) { gint64 _vala_wait = 0LL; SkkKeyEvent* result = NULL; SkkKeyEvent* _tmp0_; SkkModifierType _tmp1_; SkkModifierType _tmp2_; gint64 _tmp64_; g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (key != NULL, NULL); _tmp0_ = key; _tmp1_ = skk_key_event_get_modifiers (_tmp0_); _tmp2_ = _tmp1_; if ((_tmp2_ & SKK_MODIFIER_TYPE_RELEASE_MASK) != 0) { gboolean _tmp3_ = FALSE; GeeLinkedList* _tmp4_; gint _tmp5_; gint _tmp6_; gboolean _tmp13_; _tmp4_ = self->priv->pending; _tmp5_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp4_); _tmp6_ = _tmp5_; if (_tmp6_ > 0) { GeeLinkedList* _tmp7_; gpointer _tmp8_ = NULL; SkkNicolaKeyEventFilterTimedEntry* _tmp9_; gconstpointer _tmp10_; SkkKeyEvent* _tmp11_; gboolean _tmp12_ = FALSE; _tmp7_ = self->priv->pending; _tmp8_ = gee_abstract_list_get ((GeeAbstractList*) _tmp7_, 0); _tmp9_ = (SkkNicolaKeyEventFilterTimedEntry*) _tmp8_; _tmp10_ = _tmp9_->data; _tmp11_ = key; _tmp12_ = skk_key_event_base_equal ((SkkKeyEvent*) _tmp10_, _tmp11_); _tmp3_ = _tmp12_; _skk_nicola_key_event_filter_timed_entry_unref0 (_tmp9_); } else { _tmp3_ = FALSE; } _tmp13_ = _tmp3_; if (_tmp13_) { GeeLinkedList* _tmp14_; gpointer _tmp15_ = NULL; SkkNicolaKeyEventFilterTimedEntry* entry; SkkKeyEvent* _tmp16_; gint64 _tmp17_; gint64 _tmp18_ = 0LL; GeeLinkedList* _tmp19_; SkkNicolaKeyEventFilterTimedEntry* _tmp20_; gconstpointer _tmp21_; SkkKeyEvent* _tmp22_; _tmp14_ = self->priv->pending; _tmp15_ = gee_abstract_list_get ((GeeAbstractList*) _tmp14_, 0); entry = (SkkNicolaKeyEventFilterTimedEntry*) _tmp15_; _tmp16_ = key; _tmp17_ = time; _tmp18_ = skk_nicola_key_event_filter_get_next_wait (self, _tmp16_, _tmp17_); _vala_wait = _tmp18_; _tmp19_ = self->priv->pending; gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp19_); _tmp20_ = entry; _tmp21_ = _tmp20_->data; _tmp22_ = _g_object_ref0 ((SkkKeyEvent*) _tmp21_); result = _tmp22_; _skk_nicola_key_event_filter_timed_entry_unref0 (entry); if (wait) { *wait = _vala_wait; } return result; } } else { gboolean _tmp23_ = FALSE; GeeLinkedList* _tmp24_; gint _tmp25_; gint _tmp26_; gboolean _tmp33_; _tmp24_ = self->priv->pending; _tmp25_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp24_); _tmp26_ = _tmp25_; if (_tmp26_ > 0) { GeeLinkedList* _tmp27_; gpointer _tmp28_ = NULL; SkkNicolaKeyEventFilterTimedEntry* _tmp29_; gconstpointer _tmp30_; SkkKeyEvent* _tmp31_; gboolean _tmp32_ = FALSE; _tmp27_ = self->priv->pending; _tmp28_ = gee_abstract_list_get ((GeeAbstractList*) _tmp27_, 0); _tmp29_ = (SkkNicolaKeyEventFilterTimedEntry*) _tmp28_; _tmp30_ = _tmp29_->data; _tmp31_ = key; _tmp32_ = skk_key_event_base_equal ((SkkKeyEvent*) _tmp30_, _tmp31_); _tmp23_ = _tmp32_; _skk_nicola_key_event_filter_timed_entry_unref0 (_tmp29_); } else { _tmp23_ = FALSE; } _tmp33_ = _tmp23_; if (_tmp33_) { GeeLinkedList* _tmp34_; gpointer _tmp35_ = NULL; SkkNicolaKeyEventFilterTimedEntry* _tmp36_; gint64 _tmp37_; SkkKeyEvent* _tmp38_; gint64 _tmp39_; gint64 _tmp40_ = 0LL; SkkKeyEvent* _tmp41_; SkkKeyEvent* _tmp42_; _tmp34_ = self->priv->pending; _tmp35_ = gee_abstract_list_get ((GeeAbstractList*) _tmp34_, 0); _tmp36_ = (SkkNicolaKeyEventFilterTimedEntry*) _tmp35_; _tmp37_ = time; _tmp36_->time = _tmp37_; _skk_nicola_key_event_filter_timed_entry_unref0 (_tmp36_); _tmp38_ = key; _tmp39_ = time; _tmp40_ = skk_nicola_key_event_filter_get_next_wait (self, _tmp38_, _tmp39_); _vala_wait = _tmp40_; _tmp41_ = key; _tmp42_ = _g_object_ref0 (_tmp41_); result = _tmp42_; if (wait) { *wait = _vala_wait; } return result; } else { GeeLinkedList* _tmp43_; gint _tmp44_; gint _tmp45_; GeeLinkedList* _tmp59_; SkkKeyEvent* _tmp60_; gint64 _tmp61_; SkkNicolaKeyEventFilterTimedEntry* _tmp62_; SkkNicolaKeyEventFilterTimedEntry* _tmp63_; _tmp43_ = self->priv->pending; _tmp44_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp43_); _tmp45_ = _tmp44_; if (_tmp45_ > 2) { GeeLinkedList* _tmp46_; GeeListIterator* _tmp47_ = NULL; GeeListIterator* iter; GeeListIterator* _tmp48_; _tmp46_ = self->priv->pending; _tmp47_ = gee_abstract_list_list_iterator ((GeeAbstractList*) _tmp46_); iter = _tmp47_; _tmp48_ = iter; gee_bidir_iterator_last ((GeeBidirIterator*) _tmp48_); { gboolean _tmp49_; _tmp49_ = TRUE; while (TRUE) { gboolean _tmp50_; GeeListIterator* _tmp58_; _tmp50_ = _tmp49_; if (!_tmp50_) { gboolean _tmp51_ = FALSE; GeeLinkedList* _tmp52_; gint _tmp53_; gint _tmp54_; gboolean _tmp57_; _tmp52_ = self->priv->pending; _tmp53_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp52_); _tmp54_ = _tmp53_; if (_tmp54_ > 2) { GeeListIterator* _tmp55_; gboolean _tmp56_ = FALSE; _tmp55_ = iter; _tmp56_ = gee_bidir_iterator_previous ((GeeBidirIterator*) _tmp55_); _tmp51_ = _tmp56_; } else { _tmp51_ = FALSE; } _tmp57_ = _tmp51_; if (!_tmp57_) { break; } } _tmp49_ = FALSE; _tmp58_ = iter; gee_iterator_remove ((GeeIterator*) _tmp58_); } } _g_object_unref0 (iter); } _tmp59_ = self->priv->pending; _tmp60_ = key; _tmp61_ = time; _tmp62_ = skk_nicola_key_event_filter_timed_entry_new (SKK_TYPE_KEY_EVENT, (GBoxedCopyFunc) g_object_ref, g_object_unref, _tmp60_, _tmp61_); _tmp63_ = _tmp62_; gee_abstract_list_insert ((GeeAbstractList*) _tmp59_, 0, _tmp63_); _skk_nicola_key_event_filter_timed_entry_unref0 (_tmp63_); } } _tmp64_ = self->maxwait; _vala_wait = _tmp64_; result = NULL; if (wait) { *wait = _vala_wait; } return result; } static gint64 skk_nicola_key_event_filter_get_next_wait (SkkNicolaKeyEventFilter* self, SkkKeyEvent* key, gint64 time) { gint64 result = 0LL; GeeLinkedList* _tmp0_; gint _tmp1_; gint _tmp2_; GeeLinkedList* _tmp17_; gint _tmp18_; gint _tmp19_; g_return_val_if_fail (self != NULL, 0LL); g_return_val_if_fail (key != NULL, 0LL); _tmp0_ = self->priv->pending; _tmp1_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp0_); _tmp2_ = _tmp1_; if (_tmp2_ > 0) { GeeLinkedList* _tmp3_; GeeListIterator* _tmp4_ = NULL; GeeListIterator* iter; GeeListIterator* _tmp5_; _tmp3_ = self->priv->pending; _tmp4_ = gee_abstract_list_list_iterator ((GeeAbstractList*) _tmp3_); iter = _tmp4_; _tmp5_ = iter; gee_bidir_iterator_last ((GeeBidirIterator*) _tmp5_); { gboolean _tmp6_; _tmp6_ = TRUE; while (TRUE) { gboolean _tmp7_; GeeListIterator* _tmp10_; gpointer _tmp11_ = NULL; SkkNicolaKeyEventFilterTimedEntry* entry; gint64 _tmp12_; SkkNicolaKeyEventFilterTimedEntry* _tmp13_; gint64 _tmp14_; gint64 _tmp15_; _tmp7_ = _tmp6_; if (!_tmp7_) { GeeListIterator* _tmp8_; gboolean _tmp9_ = FALSE; _tmp8_ = iter; _tmp9_ = gee_bidir_iterator_previous ((GeeBidirIterator*) _tmp8_); if (!_tmp9_) { break; } } _tmp6_ = FALSE; _tmp10_ = iter; _tmp11_ = gee_iterator_get ((GeeIterator*) _tmp10_); entry = (SkkNicolaKeyEventFilterTimedEntry*) _tmp11_; _tmp12_ = time; _tmp13_ = entry; _tmp14_ = _tmp13_->time; _tmp15_ = self->timeout; if ((_tmp12_ - _tmp14_) > _tmp15_) { GeeListIterator* _tmp16_; _tmp16_ = iter; gee_iterator_remove ((GeeIterator*) _tmp16_); } _skk_nicola_key_event_filter_timed_entry_unref0 (entry); } } _g_object_unref0 (iter); } _tmp17_ = self->priv->pending; _tmp18_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp17_); _tmp19_ = _tmp18_; if (_tmp19_ > 0) { gint64 _tmp20_; gint64 _tmp21_; GeeLinkedList* _tmp22_; gpointer _tmp23_ = NULL; SkkNicolaKeyEventFilterTimedEntry* _tmp24_; gint64 _tmp25_; gint64 _tmp26_; _tmp20_ = self->timeout; _tmp21_ = time; _tmp22_ = self->priv->pending; _tmp23_ = gee_abstract_list_last ((GeeAbstractList*) _tmp22_); _tmp24_ = (SkkNicolaKeyEventFilterTimedEntry*) _tmp23_; _tmp25_ = _tmp24_->time; _tmp26_ = _tmp20_ - (_tmp21_ - _tmp25_); _skk_nicola_key_event_filter_timed_entry_unref0 (_tmp24_); result = _tmp26_; return result; } else { gint64 _tmp27_; _tmp27_ = self->maxwait; result = _tmp27_; return result; } } static SkkKeyEvent* skk_nicola_key_event_filter_dispatch_single (SkkNicolaKeyEventFilter* self, gint64 time) { SkkKeyEvent* result = NULL; GeeLinkedList* _tmp0_; gpointer _tmp1_ = NULL; SkkNicolaKeyEventFilterTimedEntry* entry; gint64 _tmp2_; SkkNicolaKeyEventFilterTimedEntry* _tmp3_; gint64 _tmp4_; gint64 _tmp5_; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = self->priv->pending; _tmp1_ = gee_queue_peek ((GeeQueue*) _tmp0_); entry = (SkkNicolaKeyEventFilterTimedEntry*) _tmp1_; _tmp2_ = time; _tmp3_ = entry; _tmp4_ = _tmp3_->time; _tmp5_ = self->timeout; if ((_tmp2_ - _tmp4_) > _tmp5_) { GeeLinkedList* _tmp6_; SkkNicolaKeyEventFilterTimedEntry* _tmp7_; gconstpointer _tmp8_; SkkKeyEvent* _tmp9_; _tmp6_ = self->priv->pending; gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp6_); _tmp7_ = entry; _tmp8_ = _tmp7_->data; _tmp9_ = _g_object_ref0 ((SkkKeyEvent*) _tmp8_); result = _tmp9_; _skk_nicola_key_event_filter_timed_entry_unref0 (entry); return result; } result = NULL; _skk_nicola_key_event_filter_timed_entry_unref0 (entry); return result; } static void skk_nicola_key_event_filter_apply_shift (SkkNicolaKeyEventFilter* self, SkkKeyEvent* s, SkkKeyEvent* c) { SkkKeyEvent* _tmp0_; const gchar* _tmp1_; const gchar* _tmp2_; g_return_if_fail (self != NULL); g_return_if_fail (s != NULL); g_return_if_fail (c != NULL); _tmp0_ = s; _tmp1_ = skk_key_event_get_name (_tmp0_); _tmp2_ = _tmp1_; if (g_strcmp0 (_tmp2_, "lshift") == 0) { SkkKeyEvent* _tmp3_; SkkKeyEvent* _tmp4_; SkkModifierType _tmp5_; SkkModifierType _tmp6_; _tmp3_ = c; _tmp4_ = c; _tmp5_ = skk_key_event_get_modifiers (_tmp4_); _tmp6_ = _tmp5_; skk_key_event_set_modifiers (_tmp4_, _tmp6_ | SKK_MODIFIER_TYPE_LSHIFT_MASK); } else { SkkKeyEvent* _tmp7_; const gchar* _tmp8_; const gchar* _tmp9_; _tmp7_ = s; _tmp8_ = skk_key_event_get_name (_tmp7_); _tmp9_ = _tmp8_; if (g_strcmp0 (_tmp9_, "rshift") == 0) { SkkKeyEvent* _tmp10_; SkkKeyEvent* _tmp11_; SkkModifierType _tmp12_; SkkModifierType _tmp13_; _tmp10_ = c; _tmp11_ = c; _tmp12_ = skk_key_event_get_modifiers (_tmp11_); _tmp13_ = _tmp12_; skk_key_event_set_modifiers (_tmp11_, _tmp13_ | SKK_MODIFIER_TYPE_RSHIFT_MASK); } } } static gboolean _vala_string_array_contains (gchar** stack, int stack_length, gchar* needle) { int i; for (i = 0; i < stack_length; i++) { if (g_strcmp0 (stack[i], needle) == 0) { return TRUE; } } return FALSE; } static SkkKeyEvent* skk_nicola_key_event_filter_dispatch (SkkNicolaKeyEventFilter* self, gint64 time) { SkkKeyEvent* result = NULL; GeeLinkedList* _tmp0_; gint _tmp1_; gint _tmp2_; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = self->priv->pending; _tmp1_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp0_); _tmp2_ = _tmp1_; if (_tmp2_ == 3) { GeeLinkedList* _tmp3_; gpointer _tmp4_ = NULL; SkkNicolaKeyEventFilterTimedEntry* b; GeeLinkedList* _tmp5_; gpointer _tmp6_ = NULL; SkkNicolaKeyEventFilterTimedEntry* s; GeeLinkedList* _tmp7_; gpointer _tmp8_ = NULL; SkkNicolaKeyEventFilterTimedEntry* a; SkkNicolaKeyEventFilterTimedEntry* _tmp9_; gint64 _tmp10_; SkkNicolaKeyEventFilterTimedEntry* _tmp11_; gint64 _tmp12_; gint64 t1; SkkNicolaKeyEventFilterTimedEntry* _tmp13_; gint64 _tmp14_; SkkNicolaKeyEventFilterTimedEntry* _tmp15_; gint64 _tmp16_; gint64 t2; gint64 _tmp17_; gint64 _tmp18_; _tmp3_ = self->priv->pending; _tmp4_ = gee_abstract_list_get ((GeeAbstractList*) _tmp3_, 0); b = (SkkNicolaKeyEventFilterTimedEntry*) _tmp4_; _tmp5_ = self->priv->pending; _tmp6_ = gee_abstract_list_get ((GeeAbstractList*) _tmp5_, 1); s = (SkkNicolaKeyEventFilterTimedEntry*) _tmp6_; _tmp7_ = self->priv->pending; _tmp8_ = gee_abstract_list_get ((GeeAbstractList*) _tmp7_, 2); a = (SkkNicolaKeyEventFilterTimedEntry*) _tmp8_; _tmp9_ = s; _tmp10_ = _tmp9_->time; _tmp11_ = a; _tmp12_ = _tmp11_->time; t1 = _tmp10_ - _tmp12_; _tmp13_ = b; _tmp14_ = _tmp13_->time; _tmp15_ = s; _tmp16_ = _tmp15_->time; t2 = _tmp14_ - _tmp16_; _tmp17_ = t1; _tmp18_ = t2; if (_tmp17_ <= _tmp18_) { GeeLinkedList* _tmp19_; GeeLinkedList* _tmp20_; SkkNicolaKeyEventFilterTimedEntry* _tmp21_; gint64 _tmp22_; SkkKeyEvent* _tmp23_ = NULL; SkkKeyEvent* r; SkkNicolaKeyEventFilterTimedEntry* _tmp24_; gconstpointer _tmp25_; SkkNicolaKeyEventFilterTimedEntry* _tmp26_; gconstpointer _tmp27_; SkkNicolaKeyEventFilterTimedEntry* _tmp28_; gconstpointer _tmp29_; _tmp19_ = self->priv->pending; gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp19_); _tmp20_ = self->priv->pending; _tmp21_ = b; gee_deque_offer_head ((GeeDeque*) _tmp20_, _tmp21_); _tmp22_ = time; _tmp23_ = skk_nicola_key_event_filter_dispatch_single (self, _tmp22_); r = _tmp23_; _tmp24_ = s; _tmp25_ = _tmp24_->data; _tmp26_ = a; _tmp27_ = _tmp26_->data; skk_nicola_key_event_filter_apply_shift (self, (SkkKeyEvent*) _tmp25_, (SkkKeyEvent*) _tmp27_); _tmp28_ = a; _tmp29_ = _tmp28_->data; g_signal_emit_by_name ((SkkKeyEventFilter*) self, "forwarded", (SkkKeyEvent*) _tmp29_); result = r; _skk_nicola_key_event_filter_timed_entry_unref0 (a); _skk_nicola_key_event_filter_timed_entry_unref0 (s); _skk_nicola_key_event_filter_timed_entry_unref0 (b); return result; } else { GeeLinkedList* _tmp30_; SkkNicolaKeyEventFilterTimedEntry* _tmp31_; gconstpointer _tmp32_; SkkNicolaKeyEventFilterTimedEntry* _tmp33_; gconstpointer _tmp34_; SkkNicolaKeyEventFilterTimedEntry* _tmp35_; gconstpointer _tmp36_; SkkNicolaKeyEventFilterTimedEntry* _tmp37_; gconstpointer _tmp38_; SkkKeyEvent* _tmp39_; _tmp30_ = self->priv->pending; gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp30_); _tmp31_ = s; _tmp32_ = _tmp31_->data; _tmp33_ = b; _tmp34_ = _tmp33_->data; skk_nicola_key_event_filter_apply_shift (self, (SkkKeyEvent*) _tmp32_, (SkkKeyEvent*) _tmp34_); _tmp35_ = a; _tmp36_ = _tmp35_->data; g_signal_emit_by_name ((SkkKeyEventFilter*) self, "forwarded", (SkkKeyEvent*) _tmp36_); _tmp37_ = b; _tmp38_ = _tmp37_->data; _tmp39_ = _g_object_ref0 ((SkkKeyEvent*) _tmp38_); result = _tmp39_; _skk_nicola_key_event_filter_timed_entry_unref0 (a); _skk_nicola_key_event_filter_timed_entry_unref0 (s); _skk_nicola_key_event_filter_timed_entry_unref0 (b); return result; } _skk_nicola_key_event_filter_timed_entry_unref0 (a); _skk_nicola_key_event_filter_timed_entry_unref0 (s); _skk_nicola_key_event_filter_timed_entry_unref0 (b); } else { GeeLinkedList* _tmp40_; gint _tmp41_; gint _tmp42_; _tmp40_ = self->priv->pending; _tmp41_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp40_); _tmp42_ = _tmp41_; if (_tmp42_ == 2) { GeeLinkedList* _tmp43_; gpointer _tmp44_ = NULL; SkkNicolaKeyEventFilterTimedEntry* b; GeeLinkedList* _tmp45_; gpointer _tmp46_ = NULL; SkkNicolaKeyEventFilterTimedEntry* a; SkkNicolaKeyEventFilterTimedEntry* _tmp47_; gint64 _tmp48_; SkkNicolaKeyEventFilterTimedEntry* _tmp49_; gint64 _tmp50_; gint64 _tmp51_; _tmp43_ = self->priv->pending; _tmp44_ = gee_abstract_list_get ((GeeAbstractList*) _tmp43_, 0); b = (SkkNicolaKeyEventFilterTimedEntry*) _tmp44_; _tmp45_ = self->priv->pending; _tmp46_ = gee_abstract_list_get ((GeeAbstractList*) _tmp45_, 1); a = (SkkNicolaKeyEventFilterTimedEntry*) _tmp46_; _tmp47_ = b; _tmp48_ = _tmp47_->time; _tmp49_ = a; _tmp50_ = _tmp49_->time; _tmp51_ = self->overlap; if ((_tmp48_ - _tmp50_) > _tmp51_) { GeeLinkedList* _tmp52_; GeeLinkedList* _tmp53_; SkkNicolaKeyEventFilterTimedEntry* _tmp54_; gint64 _tmp55_; SkkKeyEvent* _tmp56_ = NULL; SkkKeyEvent* r; SkkNicolaKeyEventFilterTimedEntry* _tmp57_; gconstpointer _tmp58_; _tmp52_ = self->priv->pending; gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp52_); _tmp53_ = self->priv->pending; _tmp54_ = b; gee_deque_offer_head ((GeeDeque*) _tmp53_, _tmp54_); _tmp55_ = time; _tmp56_ = skk_nicola_key_event_filter_dispatch_single (self, _tmp55_); r = _tmp56_; _tmp57_ = a; _tmp58_ = _tmp57_->data; g_signal_emit_by_name ((SkkKeyEventFilter*) self, "forwarded", (SkkKeyEvent*) _tmp58_); result = r; _skk_nicola_key_event_filter_timed_entry_unref0 (a); _skk_nicola_key_event_filter_timed_entry_unref0 (b); return result; } else { gboolean _tmp59_ = FALSE; gboolean _tmp60_ = FALSE; SkkNicolaKeyEventFilterTimedEntry* _tmp61_; gconstpointer _tmp62_; gboolean _tmp63_ = FALSE; gboolean _tmp67_; gboolean _tmp76_; _tmp61_ = a; _tmp62_ = _tmp61_->data; _tmp63_ = skk_nicola_key_event_filter_is_char ((SkkKeyEvent*) _tmp62_); if (_tmp63_) { SkkNicolaKeyEventFilterTimedEntry* _tmp64_; gconstpointer _tmp65_; gboolean _tmp66_ = FALSE; _tmp64_ = b; _tmp65_ = _tmp64_->data; _tmp66_ = skk_nicola_key_event_filter_is_char ((SkkKeyEvent*) _tmp65_); _tmp60_ = _tmp66_; } else { _tmp60_ = FALSE; } _tmp67_ = _tmp60_; if (_tmp67_) { _tmp59_ = TRUE; } else { gboolean _tmp68_ = FALSE; SkkNicolaKeyEventFilterTimedEntry* _tmp69_; gconstpointer _tmp70_; gboolean _tmp71_ = FALSE; gboolean _tmp75_; _tmp69_ = a; _tmp70_ = _tmp69_->data; _tmp71_ = skk_nicola_key_event_filter_is_shift ((SkkKeyEvent*) _tmp70_); if (_tmp71_) { SkkNicolaKeyEventFilterTimedEntry* _tmp72_; gconstpointer _tmp73_; gboolean _tmp74_ = FALSE; _tmp72_ = b; _tmp73_ = _tmp72_->data; _tmp74_ = skk_nicola_key_event_filter_is_shift ((SkkKeyEvent*) _tmp73_); _tmp68_ = _tmp74_; } else { _tmp68_ = FALSE; } _tmp75_ = _tmp68_; _tmp59_ = _tmp75_; } _tmp76_ = _tmp59_; if (_tmp76_) { SkkNicolaKeyEventFilterTimedEntry* _tmp77_; gconstpointer _tmp78_; SkkNicolaKeyEventFilterTimedEntry* _tmp79_; gconstpointer _tmp80_; gchar* _tmp81_ = NULL; gchar* name; const gchar* _tmp82_; gchar** _tmp83_; gint _tmp83__length1; _tmp77_ = b; _tmp78_ = _tmp77_->data; _tmp79_ = a; _tmp80_ = _tmp79_->data; _tmp81_ = skk_nicola_key_event_filter_get_special_double_name ((SkkKeyEvent*) _tmp78_, (SkkKeyEvent*) _tmp80_); name = _tmp81_; _tmp82_ = name; _tmp83_ = self->special_doubles; _tmp83__length1 = self->special_doubles_length1; if (_vala_string_array_contains (_tmp83_, _tmp83__length1, _tmp82_)) { GeeLinkedList* _tmp84_; const gchar* _tmp85_; SkkKeyEvent* _tmp86_; _tmp84_ = self->priv->pending; gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp84_); _tmp85_ = name; _tmp86_ = skk_key_event_new (_tmp85_, (gunichar) 0, SKK_MODIFIER_TYPE_NONE); result = _tmp86_; _g_free0 (name); _skk_nicola_key_event_filter_timed_entry_unref0 (a); _skk_nicola_key_event_filter_timed_entry_unref0 (b); return result; } else { GeeLinkedList* _tmp87_; GeeLinkedList* _tmp88_; SkkNicolaKeyEventFilterTimedEntry* _tmp89_; gint64 _tmp90_; SkkKeyEvent* _tmp91_ = NULL; SkkKeyEvent* r; SkkNicolaKeyEventFilterTimedEntry* _tmp92_; gconstpointer _tmp93_; _tmp87_ = self->priv->pending; gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp87_); _tmp88_ = self->priv->pending; _tmp89_ = b; gee_deque_offer_head ((GeeDeque*) _tmp88_, _tmp89_); _tmp90_ = time; _tmp91_ = skk_nicola_key_event_filter_dispatch_single (self, _tmp90_); r = _tmp91_; _tmp92_ = a; _tmp93_ = _tmp92_->data; g_signal_emit_by_name ((SkkKeyEventFilter*) self, "forwarded", (SkkKeyEvent*) _tmp93_); result = r; _g_free0 (name); _skk_nicola_key_event_filter_timed_entry_unref0 (a); _skk_nicola_key_event_filter_timed_entry_unref0 (b); return result; } _g_free0 (name); } else { gint64 _tmp94_; SkkNicolaKeyEventFilterTimedEntry* _tmp95_; gint64 _tmp96_; gint64 _tmp97_; _tmp94_ = time; _tmp95_ = a; _tmp96_ = _tmp95_->time; _tmp97_ = self->timeout; if ((_tmp94_ - _tmp96_) > _tmp97_) { GeeLinkedList* _tmp98_; SkkNicolaKeyEventFilterTimedEntry* _tmp99_; gconstpointer _tmp100_; gboolean _tmp101_ = FALSE; _tmp98_ = self->priv->pending; gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp98_); _tmp99_ = b; _tmp100_ = _tmp99_->data; _tmp101_ = skk_nicola_key_event_filter_is_shift ((SkkKeyEvent*) _tmp100_); if (_tmp101_) { SkkNicolaKeyEventFilterTimedEntry* _tmp102_; gconstpointer _tmp103_; SkkNicolaKeyEventFilterTimedEntry* _tmp104_; gconstpointer _tmp105_; SkkNicolaKeyEventFilterTimedEntry* _tmp106_; gconstpointer _tmp107_; SkkKeyEvent* _tmp108_; _tmp102_ = b; _tmp103_ = _tmp102_->data; _tmp104_ = a; _tmp105_ = _tmp104_->data; skk_nicola_key_event_filter_apply_shift (self, (SkkKeyEvent*) _tmp103_, (SkkKeyEvent*) _tmp105_); _tmp106_ = a; _tmp107_ = _tmp106_->data; _tmp108_ = _g_object_ref0 ((SkkKeyEvent*) _tmp107_); result = _tmp108_; _skk_nicola_key_event_filter_timed_entry_unref0 (a); _skk_nicola_key_event_filter_timed_entry_unref0 (b); return result; } else { SkkNicolaKeyEventFilterTimedEntry* _tmp109_; gconstpointer _tmp110_; SkkNicolaKeyEventFilterTimedEntry* _tmp111_; gconstpointer _tmp112_; SkkNicolaKeyEventFilterTimedEntry* _tmp113_; gconstpointer _tmp114_; SkkKeyEvent* _tmp115_; _tmp109_ = a; _tmp110_ = _tmp109_->data; _tmp111_ = b; _tmp112_ = _tmp111_->data; skk_nicola_key_event_filter_apply_shift (self, (SkkKeyEvent*) _tmp110_, (SkkKeyEvent*) _tmp112_); _tmp113_ = b; _tmp114_ = _tmp113_->data; _tmp115_ = _g_object_ref0 ((SkkKeyEvent*) _tmp114_); result = _tmp115_; _skk_nicola_key_event_filter_timed_entry_unref0 (a); _skk_nicola_key_event_filter_timed_entry_unref0 (b); return result; } } } } _skk_nicola_key_event_filter_timed_entry_unref0 (a); _skk_nicola_key_event_filter_timed_entry_unref0 (b); } else { GeeLinkedList* _tmp116_; gint _tmp117_; gint _tmp118_; _tmp116_ = self->priv->pending; _tmp117_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp116_); _tmp118_ = _tmp117_; if (_tmp118_ == 1) { gint64 _tmp119_; SkkKeyEvent* _tmp120_ = NULL; _tmp119_ = time; _tmp120_ = skk_nicola_key_event_filter_dispatch_single (self, _tmp119_); result = _tmp120_; return result; } } } result = NULL; return result; } static gboolean skk_nicola_key_event_filter_timeout_func (SkkNicolaKeyEventFilter* self) { gboolean result = FALSE; SkkGetTime _tmp0_; void* _tmp0__target; gint64 _tmp1_ = 0LL; gint64 time; gint64 _tmp2_; SkkKeyEvent* _tmp3_ = NULL; SkkKeyEvent* r; SkkKeyEvent* _tmp4_; g_return_val_if_fail (self != NULL, FALSE); _tmp0_ = self->get_time_func; _tmp0__target = self->get_time_func_target; _tmp1_ = _tmp0_ (_tmp0__target); time = _tmp1_; _tmp2_ = time; _tmp3_ = skk_nicola_key_event_filter_dispatch (self, _tmp2_); r = _tmp3_; _tmp4_ = r; if (_tmp4_ != NULL) { SkkKeyEvent* _tmp5_; _tmp5_ = r; g_signal_emit_by_name ((SkkKeyEventFilter*) self, "forwarded", _tmp5_); } result = FALSE; _g_object_unref0 (r); return result; } /** * {@inheritDoc} */ static gboolean _skk_nicola_key_event_filter_timeout_func_gsource_func (gpointer self) { gboolean result; result = skk_nicola_key_event_filter_timeout_func (self); return result; } static SkkKeyEvent* skk_nicola_key_event_filter_real_filter_key_event (SkkKeyEventFilter* base, SkkKeyEvent* key) { SkkNicolaKeyEventFilter * self; SkkKeyEvent* result = NULL; SkkKeyEvent* _tmp0_; SkkKeyEvent* _tmp1_; SkkModifierType _tmp2_; SkkModifierType _tmp3_; SkkKeyEvent* output; gint64 time = 0LL; SkkKeyEvent* _tmp4_; SkkModifierType _tmp5_; SkkModifierType _tmp6_; SkkKeyEvent* _tmp46_; self = (SkkNicolaKeyEventFilter*) base; g_return_val_if_fail (key != NULL, NULL); _tmp0_ = key; _tmp1_ = key; _tmp2_ = skk_key_event_get_modifiers (_tmp1_); _tmp3_ = _tmp2_; skk_key_event_set_modifiers (_tmp1_, _tmp3_ & (~SKK_MODIFIER_TYPE_SHIFT_MASK)); output = NULL; _tmp4_ = key; _tmp5_ = skk_key_event_get_modifiers (_tmp4_); _tmp6_ = _tmp5_; if ((_tmp6_ & SKK_MODIFIER_TYPE_USLEEP_MASK) != 0) { SkkKeyEvent* _tmp7_; const gchar* _tmp8_; const gchar* _tmp9_; gint _tmp10_ = 0; SkkGetTime _tmp11_; void* _tmp11__target; gint64 _tmp12_ = 0LL; _tmp7_ = key; _tmp8_ = skk_key_event_get_name (_tmp7_); _tmp9_ = _tmp8_; _tmp10_ = atoi (_tmp9_); g_usleep ((gulong) ((glong) _tmp10_)); _tmp11_ = self->get_time_func; _tmp11__target = self->get_time_func_target; _tmp12_ = _tmp11_ (_tmp11__target); time = _tmp12_; } else { gboolean _tmp13_ = FALSE; SkkKeyEvent* _tmp14_; SkkModifierType _tmp15_; SkkModifierType _tmp16_; gboolean _tmp29_; _tmp14_ = key; _tmp15_ = skk_key_event_get_modifiers (_tmp14_); _tmp16_ = _tmp15_; if ((_tmp16_ & (~SKK_MODIFIER_TYPE_RELEASE_MASK)) == 0) { gboolean _tmp17_ = FALSE; SkkKeyEvent* _tmp18_; gboolean _tmp19_ = FALSE; gboolean _tmp28_; _tmp18_ = key; _tmp19_ = skk_nicola_key_event_filter_is_shift (_tmp18_); if (_tmp19_) { _tmp17_ = TRUE; } else { gboolean _tmp20_ = FALSE; SkkKeyEvent* _tmp21_; gunichar _tmp22_; gunichar _tmp23_; gboolean _tmp27_; _tmp21_ = key; _tmp22_ = skk_key_event_get_code (_tmp21_); _tmp23_ = _tmp22_; if (((gunichar) 0x20) <= _tmp23_) { SkkKeyEvent* _tmp24_; gunichar _tmp25_; gunichar _tmp26_; _tmp24_ = key; _tmp25_ = skk_key_event_get_code (_tmp24_); _tmp26_ = _tmp25_; _tmp20_ = _tmp26_ <= ((gunichar) 0x7E); } else { _tmp20_ = FALSE; } _tmp27_ = _tmp20_; _tmp17_ = _tmp27_; } _tmp28_ = _tmp17_; _tmp13_ = _tmp28_; } else { _tmp13_ = FALSE; } _tmp29_ = _tmp13_; if (_tmp29_) { SkkGetTime _tmp30_; void* _tmp30__target; gint64 _tmp31_ = 0LL; gint64 wait = 0LL; SkkKeyEvent* _tmp32_; gint64 _tmp33_; gint64 _tmp34_ = 0LL; SkkKeyEvent* _tmp35_ = NULL; gint64 _tmp36_; _tmp30_ = self->get_time_func; _tmp30__target = self->get_time_func_target; _tmp31_ = _tmp30_ (_tmp30__target); time = _tmp31_; _tmp32_ = key; _tmp33_ = time; _tmp35_ = skk_nicola_key_event_filter_queue (self, _tmp32_, _tmp33_, &_tmp34_); wait = _tmp34_; _g_object_unref0 (output); output = _tmp35_; _tmp36_ = wait; if (_tmp36_ > ((gint64) 0)) { guint _tmp37_; gint64 _tmp39_; guint _tmp40_ = 0U; _tmp37_ = self->priv->timeout_id; if (_tmp37_ > ((guint) 0)) { guint _tmp38_; _tmp38_ = self->priv->timeout_id; g_source_remove (_tmp38_); } _tmp39_ = wait; _tmp40_ = g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) _tmp39_, _skk_nicola_key_event_filter_timeout_func_gsource_func, g_object_ref (self), g_object_unref); self->priv->timeout_id = _tmp40_; } } else { SkkKeyEvent* _tmp41_; SkkModifierType _tmp42_; SkkModifierType _tmp43_; _tmp41_ = key; _tmp42_ = skk_key_event_get_modifiers (_tmp41_); _tmp43_ = _tmp42_; if ((_tmp43_ & SKK_MODIFIER_TYPE_RELEASE_MASK) == 0) { SkkKeyEvent* _tmp44_; SkkKeyEvent* _tmp45_; _tmp44_ = key; _tmp45_ = _g_object_ref0 (_tmp44_); result = _tmp45_; _g_object_unref0 (output); return result; } result = NULL; _g_object_unref0 (output); return result; } } _tmp46_ = output; if (_tmp46_ == NULL) { gint64 _tmp47_; SkkKeyEvent* _tmp48_ = NULL; _tmp47_ = time; _tmp48_ = skk_nicola_key_event_filter_dispatch (self, _tmp47_); _g_object_unref0 (output); output = _tmp48_; } result = output; return result; } /** * {@inheritDoc} */ static void skk_nicola_key_event_filter_real_reset (SkkKeyEventFilter* base) { SkkNicolaKeyEventFilter * self; GeeLinkedList* _tmp0_; self = (SkkNicolaKeyEventFilter*) base; _tmp0_ = self->priv->pending; gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp0_); } SkkNicolaKeyEventFilter* skk_nicola_key_event_filter_construct (GType object_type) { SkkNicolaKeyEventFilter * self = NULL; self = (SkkNicolaKeyEventFilter*) skk_key_event_filter_construct (object_type); return self; } SkkNicolaKeyEventFilter* skk_nicola_key_event_filter_new (void) { return skk_nicola_key_event_filter_construct (SKK_TYPE_NICOLA_KEY_EVENT_FILTER); } static gchar** _vala_array_dup5 (gchar** self, int length) { gchar** result; int i; result = g_new0 (gchar*, length + 1); for (i = 0; i < length; i++) { gchar* _tmp0_; _tmp0_ = g_strdup (self[i]); result[i] = _tmp0_; } return result; } static GObject * skk_nicola_key_event_filter_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) { GObject * obj; GObjectClass * parent_class; SkkNicolaKeyEventFilter * self; gchar** _tmp0_; gint _tmp0__length1; parent_class = G_OBJECT_CLASS (skk_nicola_key_event_filter_parent_class); obj = parent_class->constructor (type, n_construct_properties, construct_properties); self = SKK_NICOLA_KEY_EVENT_FILTER (obj); _tmp0_ = (SKK_NICOLA_KEY_EVENT_FILTER_SPECIAL_DOUBLES != NULL) ? _vala_array_dup5 (SKK_NICOLA_KEY_EVENT_FILTER_SPECIAL_DOUBLES, G_N_ELEMENTS (SKK_NICOLA_KEY_EVENT_FILTER_SPECIAL_DOUBLES)) : ((gpointer) SKK_NICOLA_KEY_EVENT_FILTER_SPECIAL_DOUBLES); _tmp0__length1 = G_N_ELEMENTS (SKK_NICOLA_KEY_EVENT_FILTER_SPECIAL_DOUBLES); self->special_doubles = (_vala_array_free (self->special_doubles, self->special_doubles_length1, (GDestroyNotify) g_free), NULL); self->special_doubles = _tmp0_; self->special_doubles_length1 = _tmp0__length1; return obj; } static SkkNicolaKeyEventFilterTimedEntry* skk_nicola_key_event_filter_timed_entry_construct (GType object_type, GType t_type, GBoxedCopyFunc t_dup_func, GDestroyNotify t_destroy_func, gconstpointer data, gint64 time) { SkkNicolaKeyEventFilterTimedEntry* self = NULL; gconstpointer _tmp0_; gpointer _tmp1_; gint64 _tmp2_; self = (SkkNicolaKeyEventFilterTimedEntry*) g_type_create_instance (object_type); self->priv->t_type = t_type; self->priv->t_dup_func = t_dup_func; self->priv->t_destroy_func = t_destroy_func; _tmp0_ = data; _tmp1_ = ((_tmp0_ != NULL) && (t_dup_func != NULL)) ? t_dup_func ((gpointer) _tmp0_) : ((gpointer) _tmp0_); _t_destroy_func0 (self->data); self->data = _tmp1_; _tmp2_ = time; self->time = _tmp2_; return self; } static SkkNicolaKeyEventFilterTimedEntry* skk_nicola_key_event_filter_timed_entry_new (GType t_type, GBoxedCopyFunc t_dup_func, GDestroyNotify t_destroy_func, gconstpointer data, gint64 time) { return skk_nicola_key_event_filter_timed_entry_construct (SKK_NICOLA_KEY_EVENT_FILTER_TYPE_TIMED_ENTRY, t_type, t_dup_func, t_destroy_func, data, time); } static void skk_nicola_key_event_filter_value_timed_entry_init (GValue* value) { value->data[0].v_pointer = NULL; } static void skk_nicola_key_event_filter_value_timed_entry_free_value (GValue* value) { if (value->data[0].v_pointer) { skk_nicola_key_event_filter_timed_entry_unref (value->data[0].v_pointer); } } static void skk_nicola_key_event_filter_value_timed_entry_copy_value (const GValue* src_value, GValue* dest_value) { if (src_value->data[0].v_pointer) { dest_value->data[0].v_pointer = skk_nicola_key_event_filter_timed_entry_ref (src_value->data[0].v_pointer); } else { dest_value->data[0].v_pointer = NULL; } } static gpointer skk_nicola_key_event_filter_value_timed_entry_peek_pointer (const GValue* value) { return value->data[0].v_pointer; } static gchar* skk_nicola_key_event_filter_value_timed_entry_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) { if (collect_values[0].v_pointer) { SkkNicolaKeyEventFilterTimedEntry* object; object = collect_values[0].v_pointer; if (object->parent_instance.g_class == NULL) { return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) { return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); } value->data[0].v_pointer = skk_nicola_key_event_filter_timed_entry_ref (object); } else { value->data[0].v_pointer = NULL; } return NULL; } static gchar* skk_nicola_key_event_filter_value_timed_entry_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) { SkkNicolaKeyEventFilterTimedEntry** object_p; object_p = collect_values[0].v_pointer; if (!object_p) { return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value)); } if (!value->data[0].v_pointer) { *object_p = NULL; } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) { *object_p = value->data[0].v_pointer; } else { *object_p = skk_nicola_key_event_filter_timed_entry_ref (value->data[0].v_pointer); } return NULL; } static GParamSpec* skk_nicola_key_event_filter_param_spec_timed_entry (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) { SkkNicolaKeyEventFilterParamSpecTimedEntry* spec; g_return_val_if_fail (g_type_is_a (object_type, SKK_NICOLA_KEY_EVENT_FILTER_TYPE_TIMED_ENTRY), NULL); spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags); G_PARAM_SPEC (spec)->value_type = object_type; return G_PARAM_SPEC (spec); } static gpointer skk_nicola_key_event_filter_value_get_timed_entry (const GValue* value) { g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, SKK_NICOLA_KEY_EVENT_FILTER_TYPE_TIMED_ENTRY), NULL); return value->data[0].v_pointer; } static void skk_nicola_key_event_filter_value_set_timed_entry (GValue* value, gpointer v_object) { SkkNicolaKeyEventFilterTimedEntry* old; g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, SKK_NICOLA_KEY_EVENT_FILTER_TYPE_TIMED_ENTRY)); old = value->data[0].v_pointer; if (v_object) { g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, SKK_NICOLA_KEY_EVENT_FILTER_TYPE_TIMED_ENTRY)); g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); value->data[0].v_pointer = v_object; skk_nicola_key_event_filter_timed_entry_ref (value->data[0].v_pointer); } else { value->data[0].v_pointer = NULL; } if (old) { skk_nicola_key_event_filter_timed_entry_unref (old); } } static void skk_nicola_key_event_filter_value_take_timed_entry (GValue* value, gpointer v_object) { SkkNicolaKeyEventFilterTimedEntry* old; g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, SKK_NICOLA_KEY_EVENT_FILTER_TYPE_TIMED_ENTRY)); old = value->data[0].v_pointer; if (v_object) { g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, SKK_NICOLA_KEY_EVENT_FILTER_TYPE_TIMED_ENTRY)); g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); value->data[0].v_pointer = v_object; } else { value->data[0].v_pointer = NULL; } if (old) { skk_nicola_key_event_filter_timed_entry_unref (old); } } static void skk_nicola_key_event_filter_timed_entry_class_init (SkkNicolaKeyEventFilterTimedEntryClass * klass) { skk_nicola_key_event_filter_timed_entry_parent_class = g_type_class_peek_parent (klass); SKK_NICOLA_KEY_EVENT_FILTER_TIMED_ENTRY_CLASS (klass)->finalize = skk_nicola_key_event_filter_timed_entry_finalize; g_type_class_add_private (klass, sizeof (SkkNicolaKeyEventFilterTimedEntryPrivate)); } static void skk_nicola_key_event_filter_timed_entry_instance_init (SkkNicolaKeyEventFilterTimedEntry * self) { self->priv = SKK_NICOLA_KEY_EVENT_FILTER_TIMED_ENTRY_GET_PRIVATE (self); self->ref_count = 1; } static void skk_nicola_key_event_filter_timed_entry_finalize (SkkNicolaKeyEventFilterTimedEntry* obj) { SkkNicolaKeyEventFilterTimedEntry * self; self = SKK_NICOLA_KEY_EVENT_FILTER_TIMED_ENTRY (obj); ((self->data == NULL) || (self->priv->t_destroy_func == NULL)) ? NULL : (self->data = (self->priv->t_destroy_func (self->data), NULL)); } static GType skk_nicola_key_event_filter_timed_entry_get_type (void) { static volatile gsize skk_nicola_key_event_filter_timed_entry_type_id__volatile = 0; if (g_once_init_enter (&skk_nicola_key_event_filter_timed_entry_type_id__volatile)) { static const GTypeValueTable g_define_type_value_table = { skk_nicola_key_event_filter_value_timed_entry_init, skk_nicola_key_event_filter_value_timed_entry_free_value, skk_nicola_key_event_filter_value_timed_entry_copy_value, skk_nicola_key_event_filter_value_timed_entry_peek_pointer, "p", skk_nicola_key_event_filter_value_timed_entry_collect_value, "p", skk_nicola_key_event_filter_value_timed_entry_lcopy_value }; static const GTypeInfo g_define_type_info = { sizeof (SkkNicolaKeyEventFilterTimedEntryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_nicola_key_event_filter_timed_entry_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkNicolaKeyEventFilterTimedEntry), 0, (GInstanceInitFunc) skk_nicola_key_event_filter_timed_entry_instance_init, &g_define_type_value_table }; static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; GType skk_nicola_key_event_filter_timed_entry_type_id; skk_nicola_key_event_filter_timed_entry_type_id = g_type_register_fundamental (g_type_fundamental_next (), "SkkNicolaKeyEventFilterTimedEntry", &g_define_type_info, &g_define_type_fundamental_info, 0); g_once_init_leave (&skk_nicola_key_event_filter_timed_entry_type_id__volatile, skk_nicola_key_event_filter_timed_entry_type_id); } return skk_nicola_key_event_filter_timed_entry_type_id__volatile; } static gpointer skk_nicola_key_event_filter_timed_entry_ref (gpointer instance) { SkkNicolaKeyEventFilterTimedEntry* self; self = instance; g_atomic_int_inc (&self->ref_count); return instance; } static void skk_nicola_key_event_filter_timed_entry_unref (gpointer instance) { SkkNicolaKeyEventFilterTimedEntry* self; self = instance; if (g_atomic_int_dec_and_test (&self->ref_count)) { SKK_NICOLA_KEY_EVENT_FILTER_TIMED_ENTRY_GET_CLASS (self)->finalize (self); g_type_free_instance ((GTypeInstance *) self); } } static void skk_nicola_key_event_filter_class_init (SkkNicolaKeyEventFilterClass * klass) { skk_nicola_key_event_filter_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (SkkNicolaKeyEventFilterPrivate)); SKK_KEY_EVENT_FILTER_CLASS (klass)->filter_key_event = skk_nicola_key_event_filter_real_filter_key_event; SKK_KEY_EVENT_FILTER_CLASS (klass)->reset = skk_nicola_key_event_filter_real_reset; G_OBJECT_CLASS (klass)->constructor = skk_nicola_key_event_filter_constructor; G_OBJECT_CLASS (klass)->finalize = skk_nicola_key_event_filter_finalize; } static void skk_nicola_key_event_filter_instance_init (SkkNicolaKeyEventFilter * self) { GeeLinkedList* _tmp0_; self->priv = SKK_NICOLA_KEY_EVENT_FILTER_GET_PRIVATE (self); self->get_time_func = _skk_nicola_key_event_filter_get_time_skk_get_time; self->timeout = (gint64) 100000; self->overlap = (gint64) 50000; self->maxwait = (gint64) 10000000; _tmp0_ = gee_linked_list_new (SKK_NICOLA_KEY_EVENT_FILTER_TYPE_TIMED_ENTRY, (GBoxedCopyFunc) skk_nicola_key_event_filter_timed_entry_ref, skk_nicola_key_event_filter_timed_entry_unref, NULL); self->priv->pending = _tmp0_; self->priv->timeout_id = (guint) 0; } static void skk_nicola_key_event_filter_finalize (GObject* obj) { SkkNicolaKeyEventFilter * self; self = SKK_NICOLA_KEY_EVENT_FILTER (obj); (self->get_time_func_target_destroy_notify == NULL) ? NULL : (self->get_time_func_target_destroy_notify (self->get_time_func_target), NULL); self->get_time_func = NULL; self->get_time_func_target = NULL; self->get_time_func_target_destroy_notify = NULL; self->special_doubles = (_vala_array_free (self->special_doubles, self->special_doubles_length1, (GDestroyNotify) g_free), NULL); _g_object_unref0 (self->priv->pending); G_OBJECT_CLASS (skk_nicola_key_event_filter_parent_class)->finalize (obj); } /** * Key event filter implementing NICOLA (thumb shift) input * * This class is rarely used in programs but specified as "filter" * property in rule metadata. * * @see Rule */ GType skk_nicola_key_event_filter_get_type (void) { static volatile gsize skk_nicola_key_event_filter_type_id__volatile = 0; if (g_once_init_enter (&skk_nicola_key_event_filter_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkNicolaKeyEventFilterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_nicola_key_event_filter_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkNicolaKeyEventFilter), 0, (GInstanceInitFunc) skk_nicola_key_event_filter_instance_init, NULL }; GType skk_nicola_key_event_filter_type_id; skk_nicola_key_event_filter_type_id = g_type_register_static (SKK_TYPE_KEY_EVENT_FILTER, "SkkNicolaKeyEventFilter", &g_define_type_info, 0); g_once_init_leave (&skk_nicola_key_event_filter_type_id__volatile, skk_nicola_key_event_filter_type_id); } return skk_nicola_key_event_filter_type_id__volatile; } static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { int i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); } } } } static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) { _vala_array_destroy (array, array_length, destroy_func); g_free (array); } libskk-1.0.0/libskk/key-event.c0000664000076400007640000012161712016556644013275 00000000000000/* key-event.c generated by valac 0.16.0, the Vala compiler * generated from key-event.vala, do not modify */ /* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ #include #include #include #include #include #define SKK_TYPE_MODIFIER_TYPE (skk_modifier_type_get_type ()) #define SKK_TYPE_KEY_EVENT (skk_key_event_get_type ()) #define SKK_KEY_EVENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KEY_EVENT, SkkKeyEvent)) #define SKK_KEY_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KEY_EVENT, SkkKeyEventClass)) #define SKK_IS_KEY_EVENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KEY_EVENT)) #define SKK_IS_KEY_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KEY_EVENT)) #define SKK_KEY_EVENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KEY_EVENT, SkkKeyEventClass)) typedef struct _SkkKeyEvent SkkKeyEvent; typedef struct _SkkKeyEventClass SkkKeyEventClass; typedef struct _SkkKeyEventPrivate SkkKeyEventPrivate; #define _g_free0(var) (var = (g_free (var), NULL)) #define SKK_TYPE_ENTRY (skk_entry_get_type ()) typedef struct _SkkEntry SkkEntry; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) typedef enum { SKK_KEY_EVENT_FORMAT_ERROR_PARSE_FAILED, SKK_KEY_EVENT_FORMAT_ERROR_KEYSYM_NOT_FOUND } SkkKeyEventFormatError; #define SKK_KEY_EVENT_FORMAT_ERROR skk_key_event_format_error_quark () typedef enum { SKK_MODIFIER_TYPE_NONE = 0, SKK_MODIFIER_TYPE_SHIFT_MASK = 1 << 0, SKK_MODIFIER_TYPE_LOCK_MASK = 1 << 1, SKK_MODIFIER_TYPE_CONTROL_MASK = 1 << 2, SKK_MODIFIER_TYPE_MOD1_MASK = 1 << 3, SKK_MODIFIER_TYPE_MOD2_MASK = 1 << 4, SKK_MODIFIER_TYPE_MOD3_MASK = 1 << 5, SKK_MODIFIER_TYPE_MOD4_MASK = 1 << 6, SKK_MODIFIER_TYPE_MOD5_MASK = 1 << 7, SKK_MODIFIER_TYPE_LSHIFT_MASK = 1 << 22, SKK_MODIFIER_TYPE_RSHIFT_MASK = 1 << 23, SKK_MODIFIER_TYPE_USLEEP_MASK = 1 << 24, SKK_MODIFIER_TYPE_SUPER_MASK = 1 << 26, SKK_MODIFIER_TYPE_HYPER_MASK = 1 << 27, SKK_MODIFIER_TYPE_META_MASK = 1 << 28, SKK_MODIFIER_TYPE_RELEASE_MASK = 1 << 30 } SkkModifierType; struct _SkkKeyEvent { GObject parent_instance; SkkKeyEventPrivate * priv; }; struct _SkkKeyEventClass { GObjectClass parent_class; }; struct _SkkKeyEventPrivate { gchar* _name; gunichar _code; SkkModifierType _modifiers; }; struct _SkkEntry { gpointer key; gpointer value; }; static gpointer skk_key_event_parent_class = NULL; GQuark skk_key_event_format_error_quark (void); GType skk_modifier_type_get_type (void) G_GNUC_CONST; GType skk_key_event_get_type (void) G_GNUC_CONST; #define SKK_KEY_EVENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SKK_TYPE_KEY_EVENT, SkkKeyEventPrivate)) enum { SKK_KEY_EVENT_DUMMY_PROPERTY, SKK_KEY_EVENT_NAME, SKK_KEY_EVENT_CODE, SKK_KEY_EVENT_MODIFIERS }; GType skk_entry_get_type (void) G_GNUC_CONST; SkkEntry* skk_entry_dup (const SkkEntry* self); void skk_entry_free (SkkEntry* self); void skk_entry_copy (const SkkEntry* self, SkkEntry* dest); void skk_entry_destroy (SkkEntry* self); #define SKK_KEYSYMS_Tab ((guint) 0xff09) #define SKK_KEYSYMS_Return ((guint) 0xff0d) #define SKK_KEYSYMS_BackSpace ((guint) 0xff08) #define SKK_KEYSYMS_Up ((guint) 0xff52) #define SKK_KEYSYMS_Down ((guint) 0xff54) #define SKK_KEYSYMS_Left ((guint) 0xff51) #define SKK_KEYSYMS_Right ((guint) 0xff53) #define SKK_KEYSYMS_Page_Up ((guint) 0xff55) #define SKK_KEYSYMS_KP_Page_Up ((guint) 0xff9a) #define SKK_KEYSYMS_Page_Down ((guint) 0xff56) #define SKK_KEYSYMS_KP_Page_Down ((guint) 0xff9b) #define SKK_KEYSYMS_Muhenkan ((guint) 0xff22) #define SKK_KEYSYMS_Henkan ((guint) 0xff23) SkkKeyEvent* skk_key_event_new (const gchar* name, gunichar code, SkkModifierType modifiers); SkkKeyEvent* skk_key_event_construct (GType object_type, const gchar* name, gunichar code, SkkModifierType modifiers); static void skk_key_event_set_name (SkkKeyEvent* self, const gchar* value); static void skk_key_event_set_code (SkkKeyEvent* self, gunichar value); void skk_key_event_set_modifiers (SkkKeyEvent* self, SkkModifierType value); SkkKeyEvent* skk_key_event_copy (SkkKeyEvent* self); const gchar* skk_key_event_get_name (SkkKeyEvent* self); gunichar skk_key_event_get_code (SkkKeyEvent* self); SkkModifierType skk_key_event_get_modifiers (SkkKeyEvent* self); SkkKeyEvent* skk_key_event_new_from_string (const gchar* key, GError** error); SkkKeyEvent* skk_key_event_construct_from_string (GType object_type, const gchar* key, GError** error); gchar* skk_key_event_to_string (SkkKeyEvent* self); SkkKeyEvent* skk_key_event_new_from_x_keysym (guint keyval, SkkModifierType modifiers, GError** error); SkkKeyEvent* skk_key_event_construct_from_x_keysym (GType object_type, guint keyval, SkkModifierType modifiers, GError** error); gboolean skk_key_event_base_equal (SkkKeyEvent* self, SkkKeyEvent* key); static void skk_key_event_finalize (GObject* obj); static void _vala_skk_key_event_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); static void _vala_skk_key_event_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec); static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func); static gint _vala_array_length (gpointer array); static const SkkEntry SKK_KEY_EVENT_CODE_KEYVALS[3] = {{SKK_KEYSYMS_Tab, '\t'}, {SKK_KEYSYMS_Return, '\n'}, {SKK_KEYSYMS_BackSpace, '\b'}}; static const SkkEntry SKK_KEY_EVENT_NAME_KEYVALS[10] = {{SKK_KEYSYMS_Up, "Up"}, {SKK_KEYSYMS_Down, "Down"}, {SKK_KEYSYMS_Left, "Left"}, {SKK_KEYSYMS_Right, "Right"}, {SKK_KEYSYMS_Page_Up, "Page_Up"}, {SKK_KEYSYMS_KP_Page_Up, "Page_Up"}, {SKK_KEYSYMS_Page_Down, "Page_Down"}, {SKK_KEYSYMS_KP_Page_Down, "Page_Down"}, {SKK_KEYSYMS_Muhenkan, "lshift"}, {SKK_KEYSYMS_Henkan, "rshift"}}; GQuark skk_key_event_format_error_quark (void) { return g_quark_from_static_string ("skk_key_event_format_error-quark"); } /** * A set of bit-flags to indicate the state of modifier keys. */ GType skk_modifier_type_get_type (void) { static volatile gsize skk_modifier_type_type_id__volatile = 0; if (g_once_init_enter (&skk_modifier_type_type_id__volatile)) { static const GEnumValue values[] = {{SKK_MODIFIER_TYPE_NONE, "SKK_MODIFIER_TYPE_NONE", "none"}, {SKK_MODIFIER_TYPE_SHIFT_MASK, "SKK_MODIFIER_TYPE_SHIFT_MASK", "shift-mask"}, {SKK_MODIFIER_TYPE_LOCK_MASK, "SKK_MODIFIER_TYPE_LOCK_MASK", "lock-mask"}, {SKK_MODIFIER_TYPE_CONTROL_MASK, "SKK_MODIFIER_TYPE_CONTROL_MASK", "control-mask"}, {SKK_MODIFIER_TYPE_MOD1_MASK, "SKK_MODIFIER_TYPE_MOD1_MASK", "mod1-mask"}, {SKK_MODIFIER_TYPE_MOD2_MASK, "SKK_MODIFIER_TYPE_MOD2_MASK", "mod2-mask"}, {SKK_MODIFIER_TYPE_MOD3_MASK, "SKK_MODIFIER_TYPE_MOD3_MASK", "mod3-mask"}, {SKK_MODIFIER_TYPE_MOD4_MASK, "SKK_MODIFIER_TYPE_MOD4_MASK", "mod4-mask"}, {SKK_MODIFIER_TYPE_MOD5_MASK, "SKK_MODIFIER_TYPE_MOD5_MASK", "mod5-mask"}, {SKK_MODIFIER_TYPE_LSHIFT_MASK, "SKK_MODIFIER_TYPE_LSHIFT_MASK", "lshift-mask"}, {SKK_MODIFIER_TYPE_RSHIFT_MASK, "SKK_MODIFIER_TYPE_RSHIFT_MASK", "rshift-mask"}, {SKK_MODIFIER_TYPE_USLEEP_MASK, "SKK_MODIFIER_TYPE_USLEEP_MASK", "usleep-mask"}, {SKK_MODIFIER_TYPE_SUPER_MASK, "SKK_MODIFIER_TYPE_SUPER_MASK", "super-mask"}, {SKK_MODIFIER_TYPE_HYPER_MASK, "SKK_MODIFIER_TYPE_HYPER_MASK", "hyper-mask"}, {SKK_MODIFIER_TYPE_META_MASK, "SKK_MODIFIER_TYPE_META_MASK", "meta-mask"}, {SKK_MODIFIER_TYPE_RELEASE_MASK, "SKK_MODIFIER_TYPE_RELEASE_MASK", "release-mask"}, {0, NULL, NULL}}; GType skk_modifier_type_type_id; skk_modifier_type_type_id = g_enum_register_static ("SkkModifierType", values); g_once_init_leave (&skk_modifier_type_type_id__volatile, skk_modifier_type_type_id); } return skk_modifier_type_type_id__volatile; } /** * Create a key event. * * @param name a key name * @param code a character code * @param modifiers state of modifier keys * * @return a new KeyEvent */ SkkKeyEvent* skk_key_event_construct (GType object_type, const gchar* name, gunichar code, SkkModifierType modifiers) { SkkKeyEvent * self = NULL; const gchar* _tmp0_; gunichar _tmp1_; SkkModifierType _tmp2_; self = (SkkKeyEvent*) g_object_new (object_type, NULL); _tmp0_ = name; skk_key_event_set_name (self, _tmp0_); _tmp1_ = code; skk_key_event_set_code (self, _tmp1_); _tmp2_ = modifiers; skk_key_event_set_modifiers (self, _tmp2_); return self; } SkkKeyEvent* skk_key_event_new (const gchar* name, gunichar code, SkkModifierType modifiers) { return skk_key_event_construct (SKK_TYPE_KEY_EVENT, name, code, modifiers); } /** * Create a copy of the key event. * * @return a new KeyEvent */ SkkKeyEvent* skk_key_event_copy (SkkKeyEvent* self) { SkkKeyEvent* result = NULL; const gchar* _tmp0_; gunichar _tmp1_; SkkModifierType _tmp2_; SkkKeyEvent* _tmp3_; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = self->priv->_name; _tmp1_ = self->priv->_code; _tmp2_ = self->priv->_modifiers; _tmp3_ = skk_key_event_new (_tmp0_, _tmp1_, _tmp2_); result = _tmp3_; return result; } /** * Create a key event from string. * * @param key a string representation of a key event * * @return a new KeyEvent */ static gchar* string_slice (const gchar* self, glong start, glong end) { gchar* result = NULL; gint _tmp0_; gint _tmp1_; glong string_length; glong _tmp2_; glong _tmp5_; gboolean _tmp8_ = FALSE; glong _tmp9_; gboolean _tmp12_; gboolean _tmp13_ = FALSE; glong _tmp14_; gboolean _tmp17_; glong _tmp18_; glong _tmp19_; glong _tmp20_; glong _tmp21_; glong _tmp22_; gchar* _tmp23_ = NULL; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = strlen (self); _tmp1_ = _tmp0_; string_length = (glong) _tmp1_; _tmp2_ = start; if (_tmp2_ < ((glong) 0)) { glong _tmp3_; glong _tmp4_; _tmp3_ = string_length; _tmp4_ = start; start = _tmp3_ + _tmp4_; } _tmp5_ = end; if (_tmp5_ < ((glong) 0)) { glong _tmp6_; glong _tmp7_; _tmp6_ = string_length; _tmp7_ = end; end = _tmp6_ + _tmp7_; } _tmp9_ = start; if (_tmp9_ >= ((glong) 0)) { glong _tmp10_; glong _tmp11_; _tmp10_ = start; _tmp11_ = string_length; _tmp8_ = _tmp10_ <= _tmp11_; } else { _tmp8_ = FALSE; } _tmp12_ = _tmp8_; g_return_val_if_fail (_tmp12_, NULL); _tmp14_ = end; if (_tmp14_ >= ((glong) 0)) { glong _tmp15_; glong _tmp16_; _tmp15_ = end; _tmp16_ = string_length; _tmp13_ = _tmp15_ <= _tmp16_; } else { _tmp13_ = FALSE; } _tmp17_ = _tmp13_; g_return_val_if_fail (_tmp17_, NULL); _tmp18_ = start; _tmp19_ = end; g_return_val_if_fail (_tmp18_ <= _tmp19_, NULL); _tmp20_ = start; _tmp21_ = end; _tmp22_ = start; _tmp23_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) (_tmp21_ - _tmp22_)); result = _tmp23_; return result; } static gunichar string_get_char (const gchar* self, glong index) { gunichar result = 0U; glong _tmp0_; gunichar _tmp1_ = 0U; g_return_val_if_fail (self != NULL, 0U); _tmp0_ = index; _tmp1_ = g_utf8_get_char (((gchar*) self) + _tmp0_); result = _tmp1_; return result; } static gint string_last_index_of (const gchar* self, const gchar* needle, gint start_index) { gint result = 0; gint _tmp0_; const gchar* _tmp1_; gchar* _tmp2_ = NULL; gchar* _result_; gchar* _tmp3_; g_return_val_if_fail (self != NULL, 0); g_return_val_if_fail (needle != NULL, 0); _tmp0_ = start_index; _tmp1_ = needle; _tmp2_ = g_strrstr (((gchar*) self) + _tmp0_, (gchar*) _tmp1_); _result_ = _tmp2_; _tmp3_ = _result_; if (_tmp3_ != NULL) { gchar* _tmp4_; _tmp4_ = _result_; result = (gint) (_tmp4_ - ((gchar*) self)); return result; } else { result = -1; return result; } } static glong string_strnlen (gchar* str, glong maxlen) { glong result = 0L; gchar* _tmp0_; glong _tmp1_; gchar* _tmp2_ = NULL; gchar* end; gchar* _tmp3_; _tmp0_ = str; _tmp1_ = maxlen; _tmp2_ = memchr (_tmp0_, 0, (gsize) _tmp1_); end = _tmp2_; _tmp3_ = end; if (_tmp3_ == NULL) { glong _tmp4_; _tmp4_ = maxlen; result = _tmp4_; return result; } else { gchar* _tmp5_; gchar* _tmp6_; _tmp5_ = end; _tmp6_ = str; result = (glong) (_tmp5_ - _tmp6_); return result; } } static gchar* string_substring (const gchar* self, glong offset, glong len) { gchar* result = NULL; glong string_length = 0L; gboolean _tmp0_ = FALSE; glong _tmp1_; gboolean _tmp3_; glong _tmp9_; glong _tmp15_; glong _tmp18_; glong _tmp19_; glong _tmp20_; glong _tmp21_; glong _tmp22_; gchar* _tmp23_ = NULL; g_return_val_if_fail (self != NULL, NULL); _tmp1_ = offset; if (_tmp1_ >= ((glong) 0)) { glong _tmp2_; _tmp2_ = len; _tmp0_ = _tmp2_ >= ((glong) 0); } else { _tmp0_ = FALSE; } _tmp3_ = _tmp0_; if (_tmp3_) { glong _tmp4_; glong _tmp5_; glong _tmp6_ = 0L; _tmp4_ = offset; _tmp5_ = len; _tmp6_ = string_strnlen ((gchar*) self, _tmp4_ + _tmp5_); string_length = _tmp6_; } else { gint _tmp7_; gint _tmp8_; _tmp7_ = strlen (self); _tmp8_ = _tmp7_; string_length = (glong) _tmp8_; } _tmp9_ = offset; if (_tmp9_ < ((glong) 0)) { glong _tmp10_; glong _tmp11_; glong _tmp12_; _tmp10_ = string_length; _tmp11_ = offset; offset = _tmp10_ + _tmp11_; _tmp12_ = offset; g_return_val_if_fail (_tmp12_ >= ((glong) 0), NULL); } else { glong _tmp13_; glong _tmp14_; _tmp13_ = offset; _tmp14_ = string_length; g_return_val_if_fail (_tmp13_ <= _tmp14_, NULL); } _tmp15_ = len; if (_tmp15_ < ((glong) 0)) { glong _tmp16_; glong _tmp17_; _tmp16_ = string_length; _tmp17_ = offset; len = _tmp16_ - _tmp17_; } _tmp18_ = offset; _tmp19_ = len; _tmp20_ = string_length; g_return_val_if_fail ((_tmp18_ + _tmp19_) <= _tmp20_, NULL); _tmp21_ = offset; _tmp22_ = len; _tmp23_ = g_strndup (((gchar*) self) + _tmp21_, (gsize) _tmp22_); result = _tmp23_; return result; } SkkKeyEvent* skk_key_event_construct_from_string (GType object_type, const gchar* key, GError** error) { SkkKeyEvent * self = NULL; gboolean _tmp0_ = FALSE; const gchar* _tmp1_; gboolean _tmp2_ = FALSE; gboolean _tmp5_; GError * _inner_error_ = NULL; g_return_val_if_fail (key != NULL, NULL); self = (SkkKeyEvent*) g_object_new (object_type, NULL); _tmp1_ = key; _tmp2_ = g_str_has_prefix (_tmp1_, "("); if (_tmp2_) { const gchar* _tmp3_; gboolean _tmp4_ = FALSE; _tmp3_ = key; _tmp4_ = g_str_has_suffix (_tmp3_, ")"); _tmp0_ = _tmp4_; } else { _tmp0_ = FALSE; } _tmp5_ = _tmp0_; if (_tmp5_) { const gchar* _tmp6_; gchar* _tmp7_ = NULL; gchar* _tmp8_; gchar** _tmp9_; gchar** _tmp10_ = NULL; gchar** _tmp11_; gint _tmp11__length1; gchar** strv; gint strv_length1; gint _strv_size_; gint index; gchar** _tmp57_; gint _tmp57__length1; gint _tmp58_; const gchar* _tmp59_; gunichar _tmp60_ = 0U; const gchar* _tmp61_; gint _tmp62_ = 0; gunichar _tmp65_; _tmp6_ = key; _tmp7_ = string_slice (_tmp6_, (glong) 1, (glong) (-1)); _tmp8_ = _tmp7_; _tmp10_ = _tmp9_ = g_strsplit (_tmp8_, " ", 0); _tmp11_ = _tmp10_; _tmp11__length1 = _vala_array_length (_tmp9_); _g_free0 (_tmp8_); strv = _tmp11_; strv_length1 = _tmp11__length1; _strv_size_ = strv_length1; index = 0; { gboolean _tmp12_; _tmp12_ = TRUE; while (TRUE) { gboolean _tmp13_; gint _tmp15_; gchar** _tmp16_; gint _tmp16__length1; gchar** _tmp17_; gint _tmp17__length1; gint _tmp18_; const gchar* _tmp19_; _tmp13_ = _tmp12_; if (!_tmp13_) { gint _tmp14_; _tmp14_ = index; index = _tmp14_ + 1; } _tmp12_ = FALSE; _tmp15_ = index; _tmp16_ = strv; _tmp16__length1 = strv_length1; if (!(_tmp15_ < (_tmp16__length1 - 1))) { break; } _tmp17_ = strv; _tmp17__length1 = strv_length1; _tmp18_ = index; _tmp19_ = _tmp17_[_tmp18_]; if (g_strcmp0 (_tmp19_, "control") == 0) { SkkModifierType _tmp20_; _tmp20_ = self->priv->_modifiers; skk_key_event_set_modifiers (self, _tmp20_ | SKK_MODIFIER_TYPE_CONTROL_MASK); } else { gchar** _tmp21_; gint _tmp21__length1; gint _tmp22_; const gchar* _tmp23_; _tmp21_ = strv; _tmp21__length1 = strv_length1; _tmp22_ = index; _tmp23_ = _tmp21_[_tmp22_]; if (g_strcmp0 (_tmp23_, "meta") == 0) { SkkModifierType _tmp24_; _tmp24_ = self->priv->_modifiers; skk_key_event_set_modifiers (self, _tmp24_ | SKK_MODIFIER_TYPE_META_MASK); } else { gchar** _tmp25_; gint _tmp25__length1; gint _tmp26_; const gchar* _tmp27_; _tmp25_ = strv; _tmp25__length1 = strv_length1; _tmp26_ = index; _tmp27_ = _tmp25_[_tmp26_]; if (g_strcmp0 (_tmp27_, "hyper") == 0) { SkkModifierType _tmp28_; _tmp28_ = self->priv->_modifiers; skk_key_event_set_modifiers (self, _tmp28_ | SKK_MODIFIER_TYPE_HYPER_MASK); } else { gchar** _tmp29_; gint _tmp29__length1; gint _tmp30_; const gchar* _tmp31_; _tmp29_ = strv; _tmp29__length1 = strv_length1; _tmp30_ = index; _tmp31_ = _tmp29_[_tmp30_]; if (g_strcmp0 (_tmp31_, "super") == 0) { SkkModifierType _tmp32_; _tmp32_ = self->priv->_modifiers; skk_key_event_set_modifiers (self, _tmp32_ | SKK_MODIFIER_TYPE_SUPER_MASK); } else { gchar** _tmp33_; gint _tmp33__length1; gint _tmp34_; const gchar* _tmp35_; _tmp33_ = strv; _tmp33__length1 = strv_length1; _tmp34_ = index; _tmp35_ = _tmp33_[_tmp34_]; if (g_strcmp0 (_tmp35_, "alt") == 0) { SkkModifierType _tmp36_; _tmp36_ = self->priv->_modifiers; skk_key_event_set_modifiers (self, _tmp36_ | SKK_MODIFIER_TYPE_MOD1_MASK); } else { gchar** _tmp37_; gint _tmp37__length1; gint _tmp38_; const gchar* _tmp39_; _tmp37_ = strv; _tmp37__length1 = strv_length1; _tmp38_ = index; _tmp39_ = _tmp37_[_tmp38_]; if (g_strcmp0 (_tmp39_, "lshift") == 0) { SkkModifierType _tmp40_; _tmp40_ = self->priv->_modifiers; skk_key_event_set_modifiers (self, _tmp40_ | SKK_MODIFIER_TYPE_LSHIFT_MASK); } else { gchar** _tmp41_; gint _tmp41__length1; gint _tmp42_; const gchar* _tmp43_; _tmp41_ = strv; _tmp41__length1 = strv_length1; _tmp42_ = index; _tmp43_ = _tmp41_[_tmp42_]; if (g_strcmp0 (_tmp43_, "rshift") == 0) { SkkModifierType _tmp44_; _tmp44_ = self->priv->_modifiers; skk_key_event_set_modifiers (self, _tmp44_ | SKK_MODIFIER_TYPE_RSHIFT_MASK); } else { gchar** _tmp45_; gint _tmp45__length1; gint _tmp46_; const gchar* _tmp47_; _tmp45_ = strv; _tmp45__length1 = strv_length1; _tmp46_ = index; _tmp47_ = _tmp45_[_tmp46_]; if (g_strcmp0 (_tmp47_, "usleep") == 0) { SkkModifierType _tmp48_; _tmp48_ = self->priv->_modifiers; skk_key_event_set_modifiers (self, _tmp48_ | SKK_MODIFIER_TYPE_USLEEP_MASK); } else { gchar** _tmp49_; gint _tmp49__length1; gint _tmp50_; const gchar* _tmp51_; _tmp49_ = strv; _tmp49__length1 = strv_length1; _tmp50_ = index; _tmp51_ = _tmp49_[_tmp50_]; if (g_strcmp0 (_tmp51_, "release") == 0) { SkkModifierType _tmp52_; _tmp52_ = self->priv->_modifiers; skk_key_event_set_modifiers (self, _tmp52_ | SKK_MODIFIER_TYPE_RELEASE_MASK); } else { gchar** _tmp53_; gint _tmp53__length1; gint _tmp54_; const gchar* _tmp55_; GError* _tmp56_; _tmp53_ = strv; _tmp53__length1 = strv_length1; _tmp54_ = index; _tmp55_ = _tmp53_[_tmp54_]; _tmp56_ = g_error_new (SKK_KEY_EVENT_FORMAT_ERROR, SKK_KEY_EVENT_FORMAT_ERROR_PARSE_FAILED, "unknown modifier %s", _tmp55_); _inner_error_ = _tmp56_; if (_inner_error_->domain == SKK_KEY_EVENT_FORMAT_ERROR) { g_propagate_error (error, _inner_error_); strv = (_vala_array_free (strv, strv_length1, (GDestroyNotify) g_free), NULL); _g_object_unref0 (self); return NULL; } else { strv = (_vala_array_free (strv, strv_length1, (GDestroyNotify) g_free), NULL); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } } } } } } } } } } } } _tmp57_ = strv; _tmp57__length1 = strv_length1; _tmp58_ = index; _tmp59_ = _tmp57_[_tmp58_]; skk_key_event_set_name (self, _tmp59_); _tmp61_ = self->priv->_name; _tmp62_ = g_utf8_strlen (_tmp61_, (gssize) (-1)); if (_tmp62_ == 1) { const gchar* _tmp63_; gunichar _tmp64_ = 0U; _tmp63_ = self->priv->_name; _tmp64_ = string_get_char (_tmp63_, (glong) 0); _tmp60_ = _tmp64_; } else { _tmp60_ = (gunichar) '\0'; } _tmp65_ = _tmp60_; skk_key_event_set_code (self, _tmp65_); strv = (_vala_array_free (strv, strv_length1, (GDestroyNotify) g_free), NULL); } else { const gchar* _tmp66_; gint _tmp67_ = 0; gint index; gint _tmp68_; _tmp66_ = key; _tmp67_ = string_last_index_of (_tmp66_, "-", 0); index = _tmp67_; _tmp68_ = index; if (_tmp68_ > 0) { const gchar* _tmp69_; gint _tmp70_; gchar* _tmp71_ = NULL; gchar* _tmp72_; gchar** _tmp73_; gchar** _tmp74_ = NULL; gchar** _tmp75_; gint _tmp75__length1; gchar** mods; gint mods_length1; gint _mods_size_; gchar** _tmp76_; gint _tmp76__length1; const gchar* _tmp86_; gint _tmp87_; gchar* _tmp88_ = NULL; gchar* _tmp89_; gunichar _tmp90_ = 0U; const gchar* _tmp91_; gint _tmp92_ = 0; gunichar _tmp95_; _tmp69_ = key; _tmp70_ = index; _tmp71_ = string_substring (_tmp69_, (glong) 0, (glong) _tmp70_); _tmp72_ = _tmp71_; _tmp74_ = _tmp73_ = g_strsplit (_tmp72_, "-", 0); _tmp75_ = _tmp74_; _tmp75__length1 = _vala_array_length (_tmp73_); _g_free0 (_tmp72_); mods = _tmp75_; mods_length1 = _tmp75__length1; _mods_size_ = mods_length1; _tmp76_ = mods; _tmp76__length1 = mods_length1; { gchar** mod_collection = NULL; gint mod_collection_length1 = 0; gint _mod_collection_size_ = 0; gint mod_it = 0; mod_collection = _tmp76_; mod_collection_length1 = _tmp76__length1; for (mod_it = 0; mod_it < _tmp76__length1; mod_it = mod_it + 1) { gchar* _tmp77_; gchar* mod = NULL; _tmp77_ = g_strdup (mod_collection[mod_it]); mod = _tmp77_; { const gchar* _tmp78_; _tmp78_ = mod; if (g_strcmp0 (_tmp78_, "C") == 0) { SkkModifierType _tmp79_; _tmp79_ = self->priv->_modifiers; skk_key_event_set_modifiers (self, _tmp79_ | SKK_MODIFIER_TYPE_CONTROL_MASK); } else { const gchar* _tmp80_; _tmp80_ = mod; if (g_strcmp0 (_tmp80_, "A") == 0) { SkkModifierType _tmp81_; _tmp81_ = self->priv->_modifiers; skk_key_event_set_modifiers (self, _tmp81_ | SKK_MODIFIER_TYPE_MOD1_MASK); } else { const gchar* _tmp82_; _tmp82_ = mod; if (g_strcmp0 (_tmp82_, "M") == 0) { SkkModifierType _tmp83_; _tmp83_ = self->priv->_modifiers; skk_key_event_set_modifiers (self, _tmp83_ | SKK_MODIFIER_TYPE_META_MASK); } else { const gchar* _tmp84_; _tmp84_ = mod; if (g_strcmp0 (_tmp84_, "G") == 0) { SkkModifierType _tmp85_; _tmp85_ = self->priv->_modifiers; skk_key_event_set_modifiers (self, _tmp85_ | SKK_MODIFIER_TYPE_MOD5_MASK); } } } } _g_free0 (mod); } } } _tmp86_ = key; _tmp87_ = index; _tmp88_ = string_substring (_tmp86_, (glong) (_tmp87_ + 1), (glong) (-1)); _tmp89_ = _tmp88_; skk_key_event_set_name (self, _tmp89_); _g_free0 (_tmp89_); _tmp91_ = self->priv->_name; _tmp92_ = g_utf8_strlen (_tmp91_, (gssize) (-1)); if (_tmp92_ == 1) { const gchar* _tmp93_; gunichar _tmp94_ = 0U; _tmp93_ = self->priv->_name; _tmp94_ = string_get_char (_tmp93_, (glong) 0); _tmp90_ = _tmp94_; } else { _tmp90_ = (gunichar) '\0'; } _tmp95_ = _tmp90_; skk_key_event_set_code (self, _tmp95_); mods = (_vala_array_free (mods, mods_length1, (GDestroyNotify) g_free), NULL); } else { const gchar* _tmp96_; gunichar _tmp97_ = 0U; const gchar* _tmp98_; gint _tmp99_ = 0; gunichar _tmp102_; skk_key_event_set_modifiers (self, SKK_MODIFIER_TYPE_NONE); _tmp96_ = key; skk_key_event_set_name (self, _tmp96_); _tmp98_ = self->priv->_name; _tmp99_ = g_utf8_strlen (_tmp98_, (gssize) (-1)); if (_tmp99_ == 1) { const gchar* _tmp100_; gunichar _tmp101_ = 0U; _tmp100_ = self->priv->_name; _tmp101_ = string_get_char (_tmp100_, (glong) 0); _tmp97_ = _tmp101_; } else { _tmp97_ = (gunichar) '\0'; } _tmp102_ = _tmp97_; skk_key_event_set_code (self, _tmp102_); } } return self; } SkkKeyEvent* skk_key_event_new_from_string (const gchar* key, GError** error) { return skk_key_event_construct_from_string (SKK_TYPE_KEY_EVENT, key, error); } /** * Convert the KeyEvent to string. * * @return a string representing the KeyEvent */ static gchar* g_unichar_to_string (gunichar self) { gchar* result = NULL; gchar* _tmp0_ = NULL; gchar* str; const gchar* _tmp1_; _tmp0_ = g_new0 (gchar, 7); str = (gchar*) _tmp0_; _tmp1_ = str; g_unichar_to_utf8 (self, _tmp1_); result = str; return result; } gchar* skk_key_event_to_string (SkkKeyEvent* self) { gchar* result = NULL; gchar* _tmp0_ = NULL; const gchar* _tmp1_; const gchar* _tmp6_; gchar* _tmp7_; gchar* _base; SkkModifierType _tmp8_; g_return_val_if_fail (self != NULL, NULL); _tmp1_ = self->priv->_name; if (_tmp1_ != NULL) { const gchar* _tmp2_; gchar* _tmp3_; _tmp2_ = self->priv->_name; _tmp3_ = g_strdup (_tmp2_); _g_free0 (_tmp0_); _tmp0_ = _tmp3_; } else { gunichar _tmp4_; gchar* _tmp5_ = NULL; _tmp4_ = self->priv->_code; _tmp5_ = g_unichar_to_string (_tmp4_); _g_free0 (_tmp0_); _tmp0_ = _tmp5_; } _tmp6_ = _tmp0_; _tmp7_ = g_strdup (_tmp6_); _base = _tmp7_; _tmp8_ = self->priv->_modifiers; if (_tmp8_ != 0) { GeeArrayList* _tmp9_; GeeArrayList* elements; SkkModifierType _tmp10_; SkkModifierType _tmp12_; SkkModifierType _tmp14_; SkkModifierType _tmp16_; SkkModifierType _tmp18_; SkkModifierType _tmp20_; SkkModifierType _tmp22_; SkkModifierType _tmp24_; SkkModifierType _tmp26_; GeeArrayList* _tmp28_; const gchar* _tmp29_; GeeArrayList* _tmp30_; GeeArrayList* _tmp31_; gint _tmp32_ = 0; gpointer* _tmp33_ = NULL; gchar** _tmp34_; gint _tmp34__length1; gchar* _tmp35_ = NULL; gchar* _tmp36_; gchar* _tmp37_; gchar* _tmp38_; gchar* _tmp39_; gchar* _tmp40_; _tmp9_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL); elements = _tmp9_; _tmp10_ = self->priv->_modifiers; if ((_tmp10_ & SKK_MODIFIER_TYPE_CONTROL_MASK) != 0) { GeeArrayList* _tmp11_; _tmp11_ = elements; gee_abstract_collection_add ((GeeAbstractCollection*) _tmp11_, "control"); } _tmp12_ = self->priv->_modifiers; if ((_tmp12_ & SKK_MODIFIER_TYPE_META_MASK) != 0) { GeeArrayList* _tmp13_; _tmp13_ = elements; gee_abstract_collection_add ((GeeAbstractCollection*) _tmp13_, "meta"); } _tmp14_ = self->priv->_modifiers; if ((_tmp14_ & SKK_MODIFIER_TYPE_HYPER_MASK) != 0) { GeeArrayList* _tmp15_; _tmp15_ = elements; gee_abstract_collection_add ((GeeAbstractCollection*) _tmp15_, "hyper"); } _tmp16_ = self->priv->_modifiers; if ((_tmp16_ & SKK_MODIFIER_TYPE_SUPER_MASK) != 0) { GeeArrayList* _tmp17_; _tmp17_ = elements; gee_abstract_collection_add ((GeeAbstractCollection*) _tmp17_, "super"); } _tmp18_ = self->priv->_modifiers; if ((_tmp18_ & SKK_MODIFIER_TYPE_MOD1_MASK) != 0) { GeeArrayList* _tmp19_; _tmp19_ = elements; gee_abstract_collection_add ((GeeAbstractCollection*) _tmp19_, "alt"); } _tmp20_ = self->priv->_modifiers; if ((_tmp20_ & SKK_MODIFIER_TYPE_LSHIFT_MASK) != 0) { GeeArrayList* _tmp21_; _tmp21_ = elements; gee_abstract_collection_add ((GeeAbstractCollection*) _tmp21_, "lshift"); } _tmp22_ = self->priv->_modifiers; if ((_tmp22_ & SKK_MODIFIER_TYPE_RSHIFT_MASK) != 0) { GeeArrayList* _tmp23_; _tmp23_ = elements; gee_abstract_collection_add ((GeeAbstractCollection*) _tmp23_, "rshift"); } _tmp24_ = self->priv->_modifiers; if ((_tmp24_ & SKK_MODIFIER_TYPE_USLEEP_MASK) != 0) { GeeArrayList* _tmp25_; _tmp25_ = elements; gee_abstract_collection_add ((GeeAbstractCollection*) _tmp25_, "usleep"); } _tmp26_ = self->priv->_modifiers; if ((_tmp26_ & SKK_MODIFIER_TYPE_RELEASE_MASK) != 0) { GeeArrayList* _tmp27_; _tmp27_ = elements; gee_abstract_collection_add ((GeeAbstractCollection*) _tmp27_, "release"); } _tmp28_ = elements; _tmp29_ = _base; gee_abstract_collection_add ((GeeAbstractCollection*) _tmp28_, _tmp29_); _tmp30_ = elements; gee_abstract_collection_add ((GeeAbstractCollection*) _tmp30_, NULL); _tmp31_ = elements; _tmp33_ = gee_abstract_collection_to_array ((GeeAbstractCollection*) _tmp31_, &_tmp32_); _tmp34_ = _tmp33_; _tmp34__length1 = _tmp32_; _tmp35_ = g_strjoinv (" ", _tmp34_); _tmp36_ = _tmp35_; _tmp37_ = g_strconcat ("(", _tmp36_, NULL); _tmp38_ = _tmp37_; _tmp39_ = g_strconcat (_tmp38_, ")", NULL); _tmp40_ = _tmp39_; _g_free0 (_tmp38_); _g_free0 (_tmp36_); _tmp34_ = (_vala_array_free (_tmp34_, _tmp34__length1, (GDestroyNotify) g_free), NULL); result = _tmp40_; _g_object_unref0 (elements); _g_free0 (_base); _g_free0 (_tmp0_); return result; } else { result = _base; _g_free0 (_tmp0_); return result; } _g_free0 (_base); _g_free0 (_tmp0_); } /** * Create a key event from an X keysym and modifiers. * * @param keyval an X keysym * @param modifiers modifier mask * * @return a new KeyEvent */ SkkKeyEvent* skk_key_event_construct_from_x_keysym (GType object_type, guint keyval, SkkModifierType modifiers, GError** error) { SkkKeyEvent * self = NULL; gboolean _tmp10_ = FALSE; const gchar* _tmp11_; gboolean _tmp13_; gboolean _tmp14_ = FALSE; const gchar* _tmp15_; gboolean _tmp17_; SkkModifierType _tmp25_; GError * _inner_error_ = NULL; self = (SkkKeyEvent*) g_object_new (object_type, NULL); { SkkEntry* entry_collection = NULL; gint entry_collection_length1 = 0; gint _entry_collection_size_ = 0; gint entry_it = 0; entry_collection = SKK_KEY_EVENT_NAME_KEYVALS; entry_collection_length1 = G_N_ELEMENTS (SKK_KEY_EVENT_NAME_KEYVALS); for (entry_it = 0; entry_it < G_N_ELEMENTS (SKK_KEY_EVENT_NAME_KEYVALS); entry_it = entry_it + 1) { SkkEntry entry = {0}; entry = entry_collection[entry_it]; { SkkEntry _tmp0_; gconstpointer _tmp1_; guint _tmp2_; _tmp0_ = entry; _tmp1_ = _tmp0_.key; _tmp2_ = keyval; if (GPOINTER_TO_UINT (_tmp1_) == _tmp2_) { SkkEntry _tmp3_; gconstpointer _tmp4_; _tmp3_ = entry; _tmp4_ = _tmp3_.value; skk_key_event_set_name (self, (const gchar*) _tmp4_); break; } } } } { SkkEntry* entry_collection = NULL; gint entry_collection_length1 = 0; gint _entry_collection_size_ = 0; gint entry_it = 0; entry_collection = SKK_KEY_EVENT_CODE_KEYVALS; entry_collection_length1 = G_N_ELEMENTS (SKK_KEY_EVENT_CODE_KEYVALS); for (entry_it = 0; entry_it < G_N_ELEMENTS (SKK_KEY_EVENT_CODE_KEYVALS); entry_it = entry_it + 1) { SkkEntry entry = {0}; entry = entry_collection[entry_it]; { SkkEntry _tmp5_; gconstpointer _tmp6_; guint _tmp7_; _tmp5_ = entry; _tmp6_ = _tmp5_.key; _tmp7_ = keyval; if (GPOINTER_TO_UINT (_tmp6_) == _tmp7_) { SkkEntry _tmp8_; gconstpointer _tmp9_; _tmp8_ = entry; _tmp9_ = _tmp8_.value; skk_key_event_set_code (self, GPOINTER_TO_INT (_tmp9_)); break; } } } } _tmp11_ = self->priv->_name; if (_tmp11_ == NULL) { _tmp10_ = TRUE; } else { gunichar _tmp12_; _tmp12_ = self->priv->_code; _tmp10_ = _tmp12_ == ((gunichar) '\0'); } _tmp13_ = _tmp10_; g_assert (_tmp13_); _tmp15_ = self->priv->_name; if (_tmp15_ == NULL) { gunichar _tmp16_; _tmp16_ = self->priv->_code; _tmp14_ = _tmp16_ == ((gunichar) '\0'); } else { _tmp14_ = FALSE; } _tmp17_ = _tmp14_; if (_tmp17_) { gboolean _tmp18_ = FALSE; guint _tmp19_; gboolean _tmp21_; _tmp19_ = keyval; if (((guint) 0x20) <= _tmp19_) { guint _tmp20_; _tmp20_ = keyval; _tmp18_ = _tmp20_ < ((guint) 0x7F); } else { _tmp18_ = FALSE; } _tmp21_ = _tmp18_; if (_tmp21_) { guint _tmp22_; _tmp22_ = keyval; skk_key_event_set_code (self, (gunichar) _tmp22_); } else { guint _tmp23_; GError* _tmp24_; _tmp23_ = keyval; _tmp24_ = g_error_new (SKK_KEY_EVENT_FORMAT_ERROR, SKK_KEY_EVENT_FORMAT_ERROR_KEYSYM_NOT_FOUND, "unknown keysym %u", _tmp23_); _inner_error_ = _tmp24_; if (_inner_error_->domain == SKK_KEY_EVENT_FORMAT_ERROR) { g_propagate_error (error, _inner_error_); _g_object_unref0 (self); return NULL; } else { g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } } } _tmp25_ = modifiers; skk_key_event_set_modifiers (self, _tmp25_); return self; } SkkKeyEvent* skk_key_event_new_from_x_keysym (guint keyval, SkkModifierType modifiers, GError** error) { return skk_key_event_construct_from_x_keysym (SKK_TYPE_KEY_EVENT, keyval, modifiers, error); } /** * Compare two key events ignoring modifiers. * * @param key a KeyEvent * * @return `true` if those base components are equal, `false` otherwise */ gboolean skk_key_event_base_equal (SkkKeyEvent* self, SkkKeyEvent* key) { gboolean result = FALSE; gboolean _tmp0_ = FALSE; gunichar _tmp1_; SkkKeyEvent* _tmp2_; gunichar _tmp3_; gboolean _tmp7_; g_return_val_if_fail (self != NULL, FALSE); g_return_val_if_fail (key != NULL, FALSE); _tmp1_ = self->priv->_code; _tmp2_ = key; _tmp3_ = _tmp2_->priv->_code; if (_tmp1_ == _tmp3_) { const gchar* _tmp4_; SkkKeyEvent* _tmp5_; const gchar* _tmp6_; _tmp4_ = self->priv->_name; _tmp5_ = key; _tmp6_ = _tmp5_->priv->_name; _tmp0_ = g_strcmp0 (_tmp4_, _tmp6_) == 0; } else { _tmp0_ = FALSE; } _tmp7_ = _tmp0_; result = _tmp7_; return result; } const gchar* skk_key_event_get_name (SkkKeyEvent* self) { const gchar* result; const gchar* _tmp0_; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = self->priv->_name; result = _tmp0_; return result; } static void skk_key_event_set_name (SkkKeyEvent* self, const gchar* value) { const gchar* _tmp0_; gchar* _tmp1_; g_return_if_fail (self != NULL); _tmp0_ = value; _tmp1_ = g_strdup (_tmp0_); _g_free0 (self->priv->_name); self->priv->_name = _tmp1_; g_object_notify ((GObject *) self, "name"); } gunichar skk_key_event_get_code (SkkKeyEvent* self) { gunichar result; gunichar _tmp0_; g_return_val_if_fail (self != NULL, 0U); _tmp0_ = self->priv->_code; result = _tmp0_; return result; } static void skk_key_event_set_code (SkkKeyEvent* self, gunichar value) { gunichar _tmp0_; g_return_if_fail (self != NULL); _tmp0_ = value; self->priv->_code = _tmp0_; g_object_notify ((GObject *) self, "code"); } SkkModifierType skk_key_event_get_modifiers (SkkKeyEvent* self) { SkkModifierType result; SkkModifierType _tmp0_; g_return_val_if_fail (self != NULL, 0); _tmp0_ = self->priv->_modifiers; result = _tmp0_; return result; } void skk_key_event_set_modifiers (SkkKeyEvent* self, SkkModifierType value) { SkkModifierType _tmp0_; g_return_if_fail (self != NULL); _tmp0_ = value; self->priv->_modifiers = _tmp0_; g_object_notify ((GObject *) self, "modifiers"); } static void skk_key_event_class_init (SkkKeyEventClass * klass) { skk_key_event_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (SkkKeyEventPrivate)); G_OBJECT_CLASS (klass)->get_property = _vala_skk_key_event_get_property; G_OBJECT_CLASS (klass)->set_property = _vala_skk_key_event_set_property; G_OBJECT_CLASS (klass)->finalize = skk_key_event_finalize; /** * The base name of the KeyEvent. * * This is exclusive to {@link code}. */ g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_KEY_EVENT_NAME, g_param_spec_string ("name", "name", "name", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE)); /** * The base code of the KeyEvent. * * This is exclusive to {@link name}. */ g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_KEY_EVENT_CODE, g_param_spec_uint ("code", "code", "code", 0, G_MAXUINT, 0U, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE)); /** * Modifier mask. */ g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_KEY_EVENT_MODIFIERS, g_param_spec_enum ("modifiers", "modifiers", "modifiers", SKK_TYPE_MODIFIER_TYPE, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); } static void skk_key_event_instance_init (SkkKeyEvent * self) { self->priv = SKK_KEY_EVENT_GET_PRIVATE (self); } static void skk_key_event_finalize (GObject* obj) { SkkKeyEvent * self; self = SKK_KEY_EVENT (obj); _g_free0 (self->priv->_name); G_OBJECT_CLASS (skk_key_event_parent_class)->finalize (obj); } /** * Object representing a key event. */ GType skk_key_event_get_type (void) { static volatile gsize skk_key_event_type_id__volatile = 0; if (g_once_init_enter (&skk_key_event_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkKeyEventClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_key_event_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkKeyEvent), 0, (GInstanceInitFunc) skk_key_event_instance_init, NULL }; GType skk_key_event_type_id; skk_key_event_type_id = g_type_register_static (G_TYPE_OBJECT, "SkkKeyEvent", &g_define_type_info, 0); g_once_init_leave (&skk_key_event_type_id__volatile, skk_key_event_type_id); } return skk_key_event_type_id__volatile; } static void _vala_skk_key_event_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { SkkKeyEvent * self; self = SKK_KEY_EVENT (object); switch (property_id) { case SKK_KEY_EVENT_NAME: g_value_set_string (value, skk_key_event_get_name (self)); break; case SKK_KEY_EVENT_CODE: g_value_set_uint (value, skk_key_event_get_code (self)); break; case SKK_KEY_EVENT_MODIFIERS: g_value_set_enum (value, skk_key_event_get_modifiers (self)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } static void _vala_skk_key_event_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { SkkKeyEvent * self; self = SKK_KEY_EVENT (object); switch (property_id) { case SKK_KEY_EVENT_NAME: skk_key_event_set_name (self, g_value_get_string (value)); break; case SKK_KEY_EVENT_CODE: skk_key_event_set_code (self, g_value_get_uint (value)); break; case SKK_KEY_EVENT_MODIFIERS: skk_key_event_set_modifiers (self, g_value_get_enum (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { int i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); } } } } static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) { _vala_array_destroy (array, array_length, destroy_func); g_free (array); } static gint _vala_array_length (gpointer array) { int length; length = 0; if (array) { while (((gpointer*) array)[length]) { length++; } } return length; } libskk-1.0.0/libskk/candidate.vala0000664000076400007640000000555111703506543013774 00000000000000/* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ using Gee; namespace Skk { /** * Object representing a candidate in dictionaries. */ public class Candidate : Object { /** * Midasi word which generated this candidate. */ public string midasi { get; private set; } /** * Flag to indicate whether this candidate is generated as a * result of okuri-ari conversion. */ public bool okuri { get; private set; } /** * Base string value of the candidate. */ public string text { get; set; } /** * Optional annotation text associated with the candidate. */ public string? annotation { get; set; } /** * Output string shown instead of text. * * This is particularly useful to display a candidate of * numeric conversion. */ public string output { get; set; } /** * Convert the candidate to string. * @return a string representing the candidate */ public string to_string () { if (annotation != null) { return text + ";" + annotation; } else { return text; } } /** * Create a new Candidate. * * @param midasi midasi (index) word which generate the candidate * @param okuri whether the candidate is a result of okuri-ari conversion * @param text base string value of the candidate * @param annotation optional annotation text to the candidate * @param output optional output text used instead of text * * @return a new SkkCandidate */ public Candidate (string midasi, bool okuri, string text, string? annotation = null, string? output = null) { this.midasi = midasi; this.okuri = okuri; this.text = text; this.annotation = annotation; this.output = output == null ? text : output; } } } libskk-1.0.0/libskk/cdb-dict.c0000664000076400007640000006227012016556643013035 00000000000000/* cdb-dict.c generated by valac 0.16.0, the Vala compiler * generated from cdb-dict.vala, do not modify */ /* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ #include #include #include #include #include #define SKK_TYPE_DICT (skk_dict_get_type ()) #define SKK_DICT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_DICT, SkkDict)) #define SKK_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_DICT, SkkDictClass)) #define SKK_IS_DICT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_DICT)) #define SKK_IS_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_DICT)) #define SKK_DICT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_DICT, SkkDictClass)) typedef struct _SkkDict SkkDict; typedef struct _SkkDictClass SkkDictClass; typedef struct _SkkDictPrivate SkkDictPrivate; #define SKK_TYPE_CANDIDATE (skk_candidate_get_type ()) #define SKK_CANDIDATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_CANDIDATE, SkkCandidate)) #define SKK_CANDIDATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_CANDIDATE, SkkCandidateClass)) #define SKK_IS_CANDIDATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_CANDIDATE)) #define SKK_IS_CANDIDATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_CANDIDATE)) #define SKK_CANDIDATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_CANDIDATE, SkkCandidateClass)) typedef struct _SkkCandidate SkkCandidate; typedef struct _SkkCandidateClass SkkCandidateClass; #define SKK_TYPE_CDB_DICT (skk_cdb_dict_get_type ()) #define SKK_CDB_DICT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_CDB_DICT, SkkCdbDict)) #define SKK_CDB_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_CDB_DICT, SkkCdbDictClass)) #define SKK_IS_CDB_DICT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_CDB_DICT)) #define SKK_IS_CDB_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_CDB_DICT)) #define SKK_CDB_DICT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_CDB_DICT, SkkCdbDictClass)) typedef struct _SkkCdbDict SkkCdbDict; typedef struct _SkkCdbDictClass SkkCdbDictClass; typedef struct _SkkCdbDictPrivate SkkCdbDictPrivate; #define SKK_TYPE_MEMORY_MAPPED_FILE (skk_memory_mapped_file_get_type ()) #define SKK_MEMORY_MAPPED_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_MEMORY_MAPPED_FILE, SkkMemoryMappedFile)) #define SKK_MEMORY_MAPPED_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_MEMORY_MAPPED_FILE, SkkMemoryMappedFileClass)) #define SKK_IS_MEMORY_MAPPED_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_MEMORY_MAPPED_FILE)) #define SKK_IS_MEMORY_MAPPED_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_MEMORY_MAPPED_FILE)) #define SKK_MEMORY_MAPPED_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_MEMORY_MAPPED_FILE, SkkMemoryMappedFileClass)) typedef struct _SkkMemoryMappedFile SkkMemoryMappedFile; typedef struct _SkkMemoryMappedFileClass SkkMemoryMappedFileClass; #define SKK_TYPE_ENCODING_CONVERTER (skk_encoding_converter_get_type ()) #define SKK_ENCODING_CONVERTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_ENCODING_CONVERTER, SkkEncodingConverter)) #define SKK_ENCODING_CONVERTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_ENCODING_CONVERTER, SkkEncodingConverterClass)) #define SKK_IS_ENCODING_CONVERTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_ENCODING_CONVERTER)) #define SKK_IS_ENCODING_CONVERTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_ENCODING_CONVERTER)) #define SKK_ENCODING_CONVERTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_ENCODING_CONVERTER, SkkEncodingConverterClass)) typedef struct _SkkEncodingConverter SkkEncodingConverter; typedef struct _SkkEncodingConverterClass SkkEncodingConverterClass; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) #define _g_free0(var) (var = (g_free (var), NULL)) #define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL))) struct _SkkDict { GObject parent_instance; SkkDictPrivate * priv; }; struct _SkkDictClass { GObjectClass parent_class; void (*reload) (SkkDict* self, GError** error); SkkCandidate** (*lookup) (SkkDict* self, const gchar* midasi, gboolean okuri, int* result_length1); gchar** (*complete) (SkkDict* self, const gchar* midasi, int* result_length1); gboolean (*select_candidate) (SkkDict* self, SkkCandidate* candidate); gboolean (*purge_candidate) (SkkDict* self, SkkCandidate* candidate); void (*save) (SkkDict* self, GError** error); gboolean (*get_read_only) (SkkDict* self); }; struct _SkkCdbDict { SkkDict parent_instance; SkkCdbDictPrivate * priv; }; struct _SkkCdbDictClass { SkkDictClass parent_class; }; struct _SkkCdbDictPrivate { GFile* file; SkkMemoryMappedFile* mmap; gchar* etag; SkkEncodingConverter* converter; }; typedef enum { SKK_SKK_DICT_ERROR_NOT_READABLE, SKK_SKK_DICT_ERROR_MALFORMED_INPUT } SkkSkkDictError; #define SKK_SKK_DICT_ERROR skk_skk_dict_error_quark () static gpointer skk_cdb_dict_parent_class = NULL; GType skk_dict_get_type (void) G_GNUC_CONST; GType skk_candidate_get_type (void) G_GNUC_CONST; GType skk_cdb_dict_get_type (void) G_GNUC_CONST; GType skk_memory_mapped_file_get_type (void) G_GNUC_CONST; GType skk_encoding_converter_get_type (void) G_GNUC_CONST; #define SKK_CDB_DICT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SKK_TYPE_CDB_DICT, SkkCdbDictPrivate)) enum { SKK_CDB_DICT_DUMMY_PROPERTY, SKK_CDB_DICT_READ_ONLY }; static guint32 skk_cdb_dict_hash (gchar* chars, int chars_length1); static void skk_cdb_dict_real_reload (SkkDict* base, GError** error); GQuark skk_skk_dict_error_quark (void); void skk_memory_mapped_file_remap (SkkMemoryMappedFile* self, GError** error); static guint32 skk_cdb_dict_read_uint32 (guint8* p); static SkkCandidate** skk_cdb_dict_real_lookup (SkkDict* base, const gchar* midasi, gboolean okuri, int* result_length1); void* skk_memory_mapped_file_get_memory (SkkMemoryMappedFile* self); gchar* skk_encoding_converter_encode (SkkEncodingConverter* self, const gchar* internal_str, GError** error); gchar* skk_encoding_converter_decode (SkkEncodingConverter* self, const gchar* external_str, GError** error); SkkCandidate** skk_dict_split_candidates (SkkDict* self, const gchar* midasi, gboolean okuri, const gchar* line, int* result_length1); static gchar** skk_cdb_dict_real_complete (SkkDict* base, const gchar* midasi, int* result_length1); SkkCdbDict* skk_cdb_dict_new (const gchar* path, const gchar* encoding, GError** error); SkkCdbDict* skk_cdb_dict_construct (GType object_type, const gchar* path, const gchar* encoding, GError** error); SkkDict* skk_dict_construct (GType object_type); SkkMemoryMappedFile* skk_memory_mapped_file_new (GFile* file); SkkMemoryMappedFile* skk_memory_mapped_file_construct (GType object_type, GFile* file); SkkEncodingConverter* skk_encoding_converter_new (const gchar* encoding, GError** error); SkkEncodingConverter* skk_encoding_converter_construct (GType object_type, const gchar* encoding, GError** error); void skk_dict_reload (SkkDict* self, GError** error); static void skk_cdb_dict_finalize (GObject* obj); gboolean skk_dict_get_read_only (SkkDict* self); static void _vala_skk_cdb_dict_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); static guint32 skk_cdb_dict_hash (gchar* chars, int chars_length1) { guint32 result = 0U; guint32 h; gchar* _tmp0_; gint _tmp0__length1; h = (guint32) 5381; _tmp0_ = chars; _tmp0__length1 = chars_length1; { gchar* c_collection = NULL; gint c_collection_length1 = 0; gint _c_collection_size_ = 0; gint c_it = 0; c_collection = _tmp0_; c_collection_length1 = _tmp0__length1; for (c_it = 0; c_it < _tmp0__length1; c_it = c_it + 1) { gchar c = '\0'; c = c_collection[c_it]; { guint32 _tmp1_; guint32 _tmp2_; gchar _tmp3_; _tmp1_ = h; _tmp2_ = h; _tmp3_ = c; h = ((_tmp1_ << 5) + _tmp2_) ^ ((guint8) _tmp3_); } } } result = h; return result; } /** * {@inheritDoc} */ static void skk_cdb_dict_real_reload (SkkDict* base, GError** error) { SkkCdbDict * self; gchar* _tmp0_; gchar* attributes; GFile* _tmp1_; GFileInfo* _tmp2_ = NULL; GFileInfo* info; const gchar* _tmp3_ = NULL; const gchar* _tmp4_; GError * _inner_error_ = NULL; self = (SkkCdbDict*) base; _tmp0_ = g_strdup (G_FILE_ATTRIBUTE_ETAG_VALUE); attributes = _tmp0_; _tmp1_ = self->priv->file; _tmp2_ = g_file_query_info (_tmp1_, attributes, G_FILE_QUERY_INFO_NONE, NULL, &_inner_error_); info = _tmp2_; if (_inner_error_ != NULL) { g_propagate_error (error, _inner_error_); _g_free0 (attributes); return; } _tmp3_ = g_file_info_get_etag (info); _tmp4_ = self->priv->etag; if (g_strcmp0 (_tmp3_, _tmp4_) != 0) { { SkkMemoryMappedFile* _tmp5_; const gchar* _tmp6_ = NULL; gchar* _tmp7_; _tmp5_ = self->priv->mmap; skk_memory_mapped_file_remap (_tmp5_, &_inner_error_); if (_inner_error_ != NULL) { if (_inner_error_->domain == SKK_SKK_DICT_ERROR) { goto __catch9_skk_skk_dict_error; } _g_object_unref0 (info); _g_free0 (attributes); g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } _tmp6_ = g_file_info_get_etag (info); _tmp7_ = g_strdup (_tmp6_); _g_free0 (self->priv->etag); self->priv->etag = _tmp7_; } goto __finally9; __catch9_skk_skk_dict_error: { GError* e = NULL; GFile* _tmp8_; gchar* _tmp9_ = NULL; gchar* _tmp10_; GError* _tmp11_; const gchar* _tmp12_; e = _inner_error_; _inner_error_ = NULL; _tmp8_ = self->priv->file; _tmp9_ = g_file_get_path (_tmp8_); _tmp10_ = _tmp9_; _tmp11_ = e; _tmp12_ = _tmp11_->message; g_warning ("cdb-dict.vala:47: error loading file dictionary %s %s", _tmp10_, _tmp12_); _g_free0 (_tmp10_); _g_error_free0 (e); } __finally9: if (_inner_error_ != NULL) { g_propagate_error (error, _inner_error_); _g_object_unref0 (info); _g_free0 (attributes); return; } } _g_object_unref0 (info); _g_free0 (attributes); } static guint32 skk_cdb_dict_read_uint32 (guint8* p) { guint32 result = 0U; guint8* _tmp0_; guint8 q[4]; guint32 _tmp1_ = 0U; _tmp0_ = p; memcpy (q, (guint8*) _tmp0_, 4 * sizeof (guint8)); _tmp1_ = GUINT32_FROM_LE (*((guint32*) q)); result = _tmp1_; return result; } /** * {@inheritDoc} */ static gchar* string_to_utf8 (const gchar* self, int* result_length1) { gchar* result = NULL; gint _tmp0_; gint _tmp1_; gchar* _tmp2_ = NULL; gchar* _result_; gint _result__length1; gint __result__size_; gint _tmp3_; gchar* _tmp4_; gint _tmp4__length1; gint _tmp5_; gint _tmp6_; gchar* _tmp7_; gint _tmp7__length1; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = strlen (self); _tmp1_ = _tmp0_; _tmp2_ = g_new0 (gchar, _tmp1_ + 1); _result_ = _tmp2_; _result__length1 = _tmp1_ + 1; __result__size_ = _result__length1; _tmp3_ = _result__length1; _result__length1 = _tmp3_ - 1; _tmp4_ = _result_; _tmp4__length1 = _result__length1; _tmp5_ = strlen (self); _tmp6_ = _tmp5_; memcpy (_tmp4_, self, (gsize) _tmp6_); _tmp7_ = _result_; _tmp7__length1 = _result__length1; if (result_length1) { *result_length1 = _tmp7__length1; } result = _tmp7_; return result; } static SkkCandidate** skk_cdb_dict_real_lookup (SkkDict* base, const gchar* midasi, gboolean okuri, int* result_length1) { SkkCdbDict * self; SkkCandidate** result = NULL; SkkMemoryMappedFile* _tmp0_; void* _tmp1_; void* _tmp2_; gchar* _midasi = NULL; const gchar* _tmp14_; gint _tmp15_ = 0; gchar* _tmp16_ = NULL; gchar* _tmp17_; gint _tmp17__length1; guint32 _tmp18_ = 0U; guint32 _tmp19_; guint32 h; SkkMemoryMappedFile* _tmp20_; void* _tmp21_; void* _tmp22_; guint32 _tmp23_; guint8* p; guint8* _tmp24_; guint32 _tmp25_ = 0U; guint32 hash_offset; guint8* _tmp26_; guint32 _tmp27_ = 0U; guint32 hash_length; guint32 _tmp28_; guint32 _tmp29_; guint32 start; SkkMemoryMappedFile* _tmp30_; void* _tmp31_; void* _tmp32_; guint32 _tmp33_; SkkCandidate** _tmp82_ = NULL; SkkCandidate** _tmp83_; gint _tmp83__length1; GError * _inner_error_ = NULL; self = (SkkCdbDict*) base; g_return_val_if_fail (midasi != NULL, NULL); _tmp0_ = self->priv->mmap; _tmp1_ = skk_memory_mapped_file_get_memory (_tmp0_); _tmp2_ = _tmp1_; if (_tmp2_ == NULL) { SkkCandidate** _tmp3_ = NULL; SkkCandidate** _tmp4_; gint _tmp4__length1; _tmp3_ = g_new0 (SkkCandidate*, 0 + 1); _tmp4_ = _tmp3_; _tmp4__length1 = 0; if (result_length1) { *result_length1 = _tmp4__length1; } result = _tmp4_; return result; } { SkkEncodingConverter* _tmp5_; const gchar* _tmp6_; gchar* _tmp7_ = NULL; gchar* _tmp8_; _tmp5_ = self->priv->converter; _tmp6_ = midasi; _tmp7_ = skk_encoding_converter_encode (_tmp5_, _tmp6_, &_inner_error_); _tmp8_ = _tmp7_; if (_inner_error_ != NULL) { goto __catch10_g_error; } _g_free0 (_midasi); _midasi = _tmp8_; } goto __finally10; __catch10_g_error: { GError* e = NULL; const gchar* _tmp9_; GError* _tmp10_; const gchar* _tmp11_; SkkCandidate** _tmp12_ = NULL; SkkCandidate** _tmp13_; gint _tmp13__length1; e = _inner_error_; _inner_error_ = NULL; _tmp9_ = midasi; _tmp10_ = e; _tmp11_ = _tmp10_->message; g_warning ("cdb-dict.vala:71: can't encode %s: %s", _tmp9_, _tmp11_); _tmp12_ = g_new0 (SkkCandidate*, 0 + 1); _tmp13_ = _tmp12_; _tmp13__length1 = 0; if (result_length1) { *result_length1 = _tmp13__length1; } result = _tmp13_; _g_error_free0 (e); _g_free0 (_midasi); return result; } __finally10: if (_inner_error_ != NULL) { _g_free0 (_midasi); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } _tmp14_ = _midasi; _tmp16_ = string_to_utf8 (_tmp14_, &_tmp15_); _tmp17_ = _tmp16_; _tmp17__length1 = _tmp15_; _tmp18_ = skk_cdb_dict_hash (_tmp17_, _tmp15_); _tmp19_ = _tmp18_; _tmp17_ = (g_free (_tmp17_), NULL); h = _tmp19_; _tmp20_ = self->priv->mmap; _tmp21_ = skk_memory_mapped_file_get_memory (_tmp20_); _tmp22_ = _tmp21_; _tmp23_ = h; p = ((guint8*) _tmp22_) + ((_tmp23_ % 256) * 8); _tmp24_ = p; _tmp25_ = skk_cdb_dict_read_uint32 (_tmp24_); hash_offset = _tmp25_; _tmp26_ = p; _tmp27_ = skk_cdb_dict_read_uint32 (_tmp26_ + 4); hash_length = _tmp27_; _tmp28_ = h; _tmp29_ = hash_length; start = (_tmp28_ >> 8) % _tmp29_; _tmp30_ = self->priv->mmap; _tmp31_ = skk_memory_mapped_file_get_memory (_tmp30_); _tmp32_ = _tmp31_; _tmp33_ = hash_offset; p = ((guint8*) _tmp32_) + _tmp33_; { gint i; i = 0; { gboolean _tmp34_; _tmp34_ = TRUE; while (TRUE) { gboolean _tmp35_; gint _tmp37_; guint32 _tmp38_; guint8* _tmp39_; gint _tmp40_; guint32 _tmp41_; guint32 _tmp42_; guint8* q; guint8* _tmp43_; guint32 _tmp44_ = 0U; guint32 _h; guint8* _tmp45_; guint32 _tmp46_ = 0U; guint32 record_offset; guint32 _tmp47_; guint32 _tmp48_; guint32 _tmp49_; _tmp35_ = _tmp34_; if (!_tmp35_) { gint _tmp36_; _tmp36_ = i; i = _tmp36_ + 1; } _tmp34_ = FALSE; _tmp37_ = i; _tmp38_ = hash_length; if (!(((guint32) _tmp37_) < _tmp38_)) { break; } _tmp39_ = p; _tmp40_ = i; _tmp41_ = start; _tmp42_ = hash_length; q = _tmp39_ + (8 * ((_tmp40_ + _tmp41_) % _tmp42_)); _tmp43_ = q; _tmp44_ = skk_cdb_dict_read_uint32 (_tmp43_); _h = _tmp44_; _tmp45_ = q; _tmp46_ = skk_cdb_dict_read_uint32 (_tmp45_ + 4); record_offset = _tmp46_; _tmp47_ = record_offset; if (_tmp47_ == ((guint32) 0)) { break; } _tmp48_ = _h; _tmp49_ = h; if (_tmp48_ == _tmp49_) { SkkMemoryMappedFile* _tmp50_; void* _tmp51_; void* _tmp52_; guint32 _tmp53_; guint8* r; guint8* _tmp54_; guint32 _tmp55_ = 0U; guint32 key_length; guint8* _tmp56_; guint32 _tmp57_ = 0U; guint32 data_length; guint8* _tmp58_; const gchar* _tmp59_; guint32 _tmp60_; gint _tmp61_ = 0; _tmp50_ = self->priv->mmap; _tmp51_ = skk_memory_mapped_file_get_memory (_tmp50_); _tmp52_ = _tmp51_; _tmp53_ = record_offset; r = ((guint8*) _tmp52_) + _tmp53_; _tmp54_ = r; _tmp55_ = skk_cdb_dict_read_uint32 (_tmp54_); key_length = _tmp55_; _tmp56_ = r; _tmp57_ = skk_cdb_dict_read_uint32 (_tmp56_ + 4); data_length = _tmp57_; _tmp58_ = r; _tmp59_ = _midasi; _tmp60_ = key_length; _tmp61_ = memcmp (_tmp58_ + 8, _tmp59_, (gsize) _tmp60_); if (_tmp61_ == 0) { guint32 _tmp62_; gchar* _tmp63_ = NULL; gchar* data; gint data_length1; gint _data_size_; gchar* _tmp64_; gint _tmp64__length1; guint8* _tmp65_; guint32 _tmp66_; guint32 _tmp67_; gint _tmp68_; gchar* _data = NULL; const gchar* _tmp76_; gboolean _tmp77_; const gchar* _tmp78_; gint _tmp79_ = 0; SkkCandidate** _tmp80_ = NULL; SkkCandidate** _tmp81_; gint _tmp81__length1; _tmp62_ = data_length; _tmp63_ = g_new0 (gchar, _tmp62_ + 1); data = _tmp63_; data_length1 = _tmp62_ + 1; _data_size_ = data_length1; _tmp64_ = data; _tmp64__length1 = data_length1; _tmp65_ = r; _tmp66_ = key_length; _tmp67_ = data_length; memcpy (_tmp64_, (_tmp65_ + 8) + _tmp66_, (gsize) _tmp67_); _tmp68_ = data_length1; data_length1 = _tmp68_ - 1; { SkkEncodingConverter* _tmp69_; gchar* _tmp70_; gint _tmp70__length1; gchar* _tmp71_ = NULL; gchar* _tmp72_; _tmp69_ = self->priv->converter; _tmp70_ = data; _tmp70__length1 = data_length1; _tmp71_ = skk_encoding_converter_decode (_tmp69_, (const gchar*) _tmp70_, &_inner_error_); _tmp72_ = _tmp71_; if (_inner_error_ != NULL) { goto __catch11_g_error; } _g_free0 (_data); _data = _tmp72_; } goto __finally11; __catch11_g_error: { GError* e = NULL; gchar* _tmp73_; gint _tmp73__length1; GError* _tmp74_; const gchar* _tmp75_; e = _inner_error_; _inner_error_ = NULL; _tmp73_ = data; _tmp73__length1 = data_length1; _tmp74_ = e; _tmp75_ = _tmp74_->message; g_warning ("cdb-dict.vala:100: can't decode data %s: %s", (const gchar*) _tmp73_, _tmp75_); _g_error_free0 (e); _g_free0 (_data); data = (g_free (data), NULL); break; } __finally11: if (_inner_error_ != NULL) { _g_free0 (_data); data = (g_free (data), NULL); _g_free0 (_midasi); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } _tmp76_ = midasi; _tmp77_ = okuri; _tmp78_ = _data; _tmp80_ = skk_dict_split_candidates ((SkkDict*) self, _tmp76_, _tmp77_, _tmp78_, &_tmp79_); _tmp81_ = _tmp80_; _tmp81__length1 = _tmp79_; if (result_length1) { *result_length1 = _tmp81__length1; } result = _tmp81_; _g_free0 (_data); data = (g_free (data), NULL); _g_free0 (_midasi); return result; } } } } } _tmp82_ = g_new0 (SkkCandidate*, 0 + 1); _tmp83_ = _tmp82_; _tmp83__length1 = 0; if (result_length1) { *result_length1 = _tmp83__length1; } result = _tmp83_; _g_free0 (_midasi); return result; } /** * {@inheritDoc} * * This always returns an empty array since CDB format does * not provide key enumeration. */ static gchar** skk_cdb_dict_real_complete (SkkDict* base, const gchar* midasi, int* result_length1) { SkkCdbDict * self; gchar** result = NULL; gchar** _tmp0_ = NULL; gchar** _tmp1_; gint _tmp1__length1; self = (SkkCdbDict*) base; g_return_val_if_fail (midasi != NULL, NULL); _tmp0_ = g_new0 (gchar*, 0 + 1); _tmp1_ = _tmp0_; _tmp1__length1 = 0; if (result_length1) { *result_length1 = _tmp1__length1; } result = _tmp1_; return result; } /** * Create a new CdbDict. * * @param path a path to the file * @param encoding encoding of the file (default EUC-JP) * * @return a new FileDict * @throws GLib.Error if opening the file is failed */ SkkCdbDict* skk_cdb_dict_construct (GType object_type, const gchar* path, const gchar* encoding, GError** error) { SkkCdbDict * self = NULL; const gchar* _tmp0_; GFile* _tmp1_ = NULL; GFile* _tmp2_; SkkMemoryMappedFile* _tmp3_; gchar* _tmp4_; const gchar* _tmp5_; SkkEncodingConverter* _tmp6_; SkkEncodingConverter* _tmp7_; GError * _inner_error_ = NULL; g_return_val_if_fail (path != NULL, NULL); g_return_val_if_fail (encoding != NULL, NULL); self = (SkkCdbDict*) skk_dict_construct (object_type); _tmp0_ = path; _tmp1_ = g_file_new_for_path (_tmp0_); _g_object_unref0 (self->priv->file); self->priv->file = _tmp1_; _tmp2_ = self->priv->file; _tmp3_ = skk_memory_mapped_file_new (_tmp2_); _g_object_unref0 (self->priv->mmap); self->priv->mmap = _tmp3_; _tmp4_ = g_strdup (""); _g_free0 (self->priv->etag); self->priv->etag = _tmp4_; _tmp5_ = encoding; _tmp6_ = skk_encoding_converter_new (_tmp5_, &_inner_error_); _tmp7_ = _tmp6_; if (_inner_error_ != NULL) { g_propagate_error (error, _inner_error_); _g_object_unref0 (self); return NULL; } _g_object_unref0 (self->priv->converter); self->priv->converter = _tmp7_; skk_dict_reload ((SkkDict*) self, &_inner_error_); if (_inner_error_ != NULL) { g_propagate_error (error, _inner_error_); _g_object_unref0 (self); return NULL; } return self; } SkkCdbDict* skk_cdb_dict_new (const gchar* path, const gchar* encoding, GError** error) { return skk_cdb_dict_construct (SKK_TYPE_CDB_DICT, path, encoding, error); } static gboolean skk_cdb_dict_real_get_read_only (SkkDict* base) { gboolean result; SkkCdbDict* self; self = (SkkCdbDict*) base; result = TRUE; return result; } static void skk_cdb_dict_class_init (SkkCdbDictClass * klass) { skk_cdb_dict_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (SkkCdbDictPrivate)); SKK_DICT_CLASS (klass)->reload = skk_cdb_dict_real_reload; SKK_DICT_CLASS (klass)->lookup = skk_cdb_dict_real_lookup; SKK_DICT_CLASS (klass)->complete = skk_cdb_dict_real_complete; SKK_DICT_CLASS (klass)->get_read_only = skk_cdb_dict_real_get_read_only; G_OBJECT_CLASS (klass)->get_property = _vala_skk_cdb_dict_get_property; G_OBJECT_CLASS (klass)->finalize = skk_cdb_dict_finalize; /** * {@inheritDoc} */ g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_CDB_DICT_READ_ONLY, g_param_spec_boolean ("read-only", "read-only", "read-only", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE)); } static void skk_cdb_dict_instance_init (SkkCdbDict * self) { self->priv = SKK_CDB_DICT_GET_PRIVATE (self); } static void skk_cdb_dict_finalize (GObject* obj) { SkkCdbDict * self; self = SKK_CDB_DICT (obj); _g_object_unref0 (self->priv->file); _g_object_unref0 (self->priv->mmap); _g_free0 (self->priv->etag); _g_object_unref0 (self->priv->converter); G_OBJECT_CLASS (skk_cdb_dict_parent_class)->finalize (obj); } /** * CDB based implementation of Dict. */ GType skk_cdb_dict_get_type (void) { static volatile gsize skk_cdb_dict_type_id__volatile = 0; if (g_once_init_enter (&skk_cdb_dict_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkCdbDictClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_cdb_dict_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkCdbDict), 0, (GInstanceInitFunc) skk_cdb_dict_instance_init, NULL }; GType skk_cdb_dict_type_id; skk_cdb_dict_type_id = g_type_register_static (SKK_TYPE_DICT, "SkkCdbDict", &g_define_type_info, 0); g_once_init_leave (&skk_cdb_dict_type_id__volatile, skk_cdb_dict_type_id); } return skk_cdb_dict_type_id__volatile; } static void _vala_skk_cdb_dict_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { SkkCdbDict * self; self = SKK_CDB_DICT (object); switch (property_id) { case SKK_CDB_DICT_READ_ONLY: g_value_set_boolean (value, skk_dict_get_read_only ((SkkDict*) self)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } libskk-1.0.0/libskk/skk-internals-1.0.vapi0000664000076400007640000064237412016556644015174 00000000000000/* skk-internals-1.0.vapi generated by valac 0.16.0, do not modify. */ namespace Skk { namespace Keysyms { [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint VoidSymbol; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint BackSpace; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Tab; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Linefeed; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Clear; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Return; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Pause; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Scroll_Lock; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sys_Req; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Escape; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Delete; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Multi_key; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Codeinput; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint SingleCandidate; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint MultipleCandidate; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint PreviousCandidate; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Kanji; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Muhenkan; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Henkan_Mode; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Henkan; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Romaji; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hiragana; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Katakana; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hiragana_Katakana; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Zenkaku; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hankaku; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Zenkaku_Hankaku; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Touroku; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Massyo; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Kana_Lock; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Kana_Shift; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Eisu_Shift; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Eisu_toggle; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Kanji_Bangou; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Zen_Koho; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Mae_Koho; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Home; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Left; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Up; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Right; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Down; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Prior; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Page_Up; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Next; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Page_Down; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint End; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Begin; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Select; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Print; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Execute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Insert; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Undo; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Redo; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Menu; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Find; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cancel; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Help; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Break; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Mode_switch; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint script_switch; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Num_Lock; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint KP_Space; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint KP_Tab; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint KP_Enter; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint KP_F1; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint KP_F2; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint KP_F3; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint KP_F4; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint KP_Home; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint KP_Left; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint KP_Up; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint KP_Right; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint KP_Down; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint KP_Prior; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint KP_Page_Up; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint KP_Next; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint KP_Page_Down; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint KP_End; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint KP_Begin; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint KP_Insert; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint KP_Delete; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint KP_Equal; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint KP_Multiply; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint KP_Add; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint KP_Separator; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint KP_Subtract; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint KP_Decimal; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint KP_Divide; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint KP_0; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint KP_1; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint KP_2; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint KP_3; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint KP_4; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint KP_5; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint KP_6; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint KP_7; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint KP_8; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint KP_9; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint F1; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint F2; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint F3; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint F4; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint F5; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint F6; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint F7; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint F8; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint F9; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint F10; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint F11; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint L1; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint F12; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint L2; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint F13; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint L3; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint F14; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint L4; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint F15; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint L5; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint F16; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint L6; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint F17; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint L7; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint F18; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint L8; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint F19; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint L9; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint F20; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint L10; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint F21; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint R1; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint F22; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint R2; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint F23; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint R3; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint F24; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint R4; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint F25; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint R5; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint F26; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint R6; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint F27; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint R7; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint F28; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint R8; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint F29; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint R9; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint F30; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint R10; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint F31; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint R11; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint F32; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint R12; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint F33; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint R13; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint F34; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint R14; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint F35; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint R15; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Shift_L; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Shift_R; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Control_L; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Control_R; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Caps_Lock; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Shift_Lock; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Meta_L; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Meta_R; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Alt_L; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Alt_R; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Super_L; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Super_R; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hyper_L; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hyper_R; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_Lock; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_Level2_Latch; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_Level3_Shift; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_Level3_Latch; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_Level3_Lock; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_Level5_Shift; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_Level5_Latch; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_Level5_Lock; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_Group_Shift; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_Group_Latch; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_Group_Lock; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_Next_Group; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_Next_Group_Lock; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_Prev_Group; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_Prev_Group_Lock; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_First_Group; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_First_Group_Lock; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_Last_Group; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_Last_Group_Lock; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_Left_Tab; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_Move_Line_Up; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_Move_Line_Down; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_Partial_Line_Up; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_Partial_Line_Down; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_Partial_Space_Left; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_Partial_Space_Right; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_Set_Margin_Left; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_Set_Margin_Right; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_Release_Margin_Left; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_Release_Margin_Right; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_Release_Both_Margins; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_Fast_Cursor_Left; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_Fast_Cursor_Right; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_Fast_Cursor_Up; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_Fast_Cursor_Down; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_Continuous_Underline; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_Discontinuous_Underline; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_Emphasize; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_Center_Object; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ISO_Enter; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_grave; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_acute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_circumflex; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_tilde; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_perispomeni; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_macron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_breve; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_abovedot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_diaeresis; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_abovering; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_doubleacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_caron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_cedilla; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_ogonek; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_iota; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_voiced_sound; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_semivoiced_sound; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_belowdot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_hook; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_horn; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_stroke; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_abovecomma; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_psili; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_abovereversedcomma; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_dasia; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_doublegrave; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_belowring; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_belowmacron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_belowcircumflex; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_belowtilde; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_belowbreve; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_belowdiaeresis; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_invertedbreve; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_belowcomma; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_currency; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_a; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_A; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_e; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_E; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_i; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_I; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_o; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_O; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_u; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_U; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_small_schwa; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dead_capital_schwa; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint First_Virtual_Screen; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Prev_Virtual_Screen; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Next_Virtual_Screen; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Last_Virtual_Screen; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Terminate_Server; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint AccessX_Enable; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint AccessX_Feedback_Enable; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint RepeatKeys_Enable; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint SlowKeys_Enable; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint BounceKeys_Enable; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint StickyKeys_Enable; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint MouseKeys_Enable; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint MouseKeys_Accel_Enable; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Overlay1_Enable; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Overlay2_Enable; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint AudibleBell_Enable; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Pointer_Left; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Pointer_Right; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Pointer_Up; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Pointer_Down; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Pointer_UpLeft; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Pointer_UpRight; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Pointer_DownLeft; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Pointer_DownRight; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Pointer_Button_Dflt; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Pointer_Button1; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Pointer_Button2; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Pointer_Button3; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Pointer_Button4; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Pointer_Button5; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Pointer_DblClick_Dflt; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Pointer_DblClick1; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Pointer_DblClick2; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Pointer_DblClick3; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Pointer_DblClick4; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Pointer_DblClick5; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Pointer_Drag_Dflt; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Pointer_Drag1; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Pointer_Drag2; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Pointer_Drag3; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Pointer_Drag4; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Pointer_Drag5; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Pointer_EnableKeys; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Pointer_Accelerate; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Pointer_DfltBtnNext; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Pointer_DfltBtnPrev; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @3270_Duplicate; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @3270_FieldMark; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @3270_Right2; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @3270_Left2; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @3270_BackTab; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @3270_EraseEOF; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @3270_EraseInput; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @3270_Reset; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @3270_Quit; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @3270_PA1; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @3270_PA2; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @3270_PA3; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @3270_Test; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @3270_Attn; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @3270_CursorBlink; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @3270_AltCursor; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @3270_KeyClick; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @3270_Jump; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @3270_Ident; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @3270_Rule; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @3270_Copy; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @3270_Play; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @3270_Setup; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @3270_Record; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @3270_ChangeScreen; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @3270_DeleteWord; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @3270_ExSelect; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @3270_CursorSelect; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @3270_PrintScreen; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @3270_Enter; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint space; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint exclam; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint quotedbl; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint numbersign; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dollar; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint percent; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ampersand; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint apostrophe; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint quoteright; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint parenleft; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint parenright; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint asterisk; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint plus; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint comma; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint minus; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint period; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint slash; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @0; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @1; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @2; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @3; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @4; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @5; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @6; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @7; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @8; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint @9; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint colon; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint semicolon; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint less; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint equal; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint greater; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint question; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint at; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint A; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint B; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint C; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint D; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint E; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint F; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint G; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint H; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint I; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint J; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint K; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint L; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint M; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint N; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint O; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint P; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Q; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint R; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint S; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint T; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint U; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint V; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint W; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint X; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Y; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Z; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint bracketleft; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint backslash; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint bracketright; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint asciicircum; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint underscore; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint grave; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint quoteleft; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint a; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint b; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint c; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint d; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint e; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint f; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint g; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint h; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint i; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint j; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint k; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint l; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint m; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint n; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint o; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint p; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint q; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint r; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint s; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint t; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint u; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint v; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint w; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint x; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint y; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint z; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braceleft; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint bar; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braceright; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint asciitilde; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint nobreakspace; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint exclamdown; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint cent; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint sterling; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint currency; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint yen; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint brokenbar; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint section; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint diaeresis; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint copyright; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ordfeminine; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint guillemotleft; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint notsign; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hyphen; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint registered; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint macron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint degree; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint plusminus; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint twosuperior; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint threesuperior; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint acute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint mu; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint paragraph; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint periodcentered; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint cedilla; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint onesuperior; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint masculine; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint guillemotright; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint onequarter; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint onehalf; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint threequarters; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint questiondown; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Agrave; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Aacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Acircumflex; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Atilde; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Adiaeresis; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Aring; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint AE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ccedilla; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Egrave; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Eacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ecircumflex; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ediaeresis; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Igrave; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Iacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Icircumflex; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Idiaeresis; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ETH; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Eth; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ntilde; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ograve; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Oacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ocircumflex; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Otilde; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Odiaeresis; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint multiply; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Oslash; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ooblique; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ugrave; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Uacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ucircumflex; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Udiaeresis; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Yacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint THORN; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thorn; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ssharp; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint agrave; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint aacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint acircumflex; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint atilde; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint adiaeresis; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint aring; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ae; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ccedilla; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint egrave; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint eacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ecircumflex; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ediaeresis; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint igrave; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint iacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint icircumflex; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint idiaeresis; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint eth; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ntilde; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ograve; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint oacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ocircumflex; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint otilde; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint odiaeresis; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint division; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint oslash; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ooblique; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ugrave; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint uacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ucircumflex; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint udiaeresis; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint yacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint thorn; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ydiaeresis; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Aogonek; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint breve; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Lstroke; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Lcaron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Scaron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Scedilla; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Tcaron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Zacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Zcaron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Zabovedot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint aogonek; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ogonek; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint lstroke; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint lcaron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint sacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint caron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint scaron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint scedilla; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint tcaron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint zacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint doubleacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint zcaron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint zabovedot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Racute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Abreve; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Lacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ccaron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Eogonek; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ecaron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Dcaron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Dstroke; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Nacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ncaron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Odoubleacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Rcaron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Uring; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Udoubleacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Tcedilla; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint racute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint abreve; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint lacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint cacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ccaron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint eogonek; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ecaron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dcaron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dstroke; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint nacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ncaron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint odoubleacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint rcaron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint uring; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint udoubleacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint tcedilla; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint abovedot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hstroke; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hcircumflex; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Iabovedot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Gbreve; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Jcircumflex; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hstroke; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hcircumflex; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint idotless; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint gbreve; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint jcircumflex; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cabovedot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ccircumflex; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Gabovedot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Gcircumflex; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ubreve; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Scircumflex; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint cabovedot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ccircumflex; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint gabovedot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint gcircumflex; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ubreve; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint scircumflex; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kra; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kappa; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Rcedilla; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Itilde; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Lcedilla; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Emacron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Gcedilla; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Tslash; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint rcedilla; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint itilde; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint lcedilla; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint emacron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint gcedilla; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint tslash; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ENG; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint eng; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Amacron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Iogonek; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Eabovedot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Imacron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ncedilla; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Omacron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Kcedilla; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Uogonek; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Utilde; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Umacron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint amacron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint iogonek; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint eabovedot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint imacron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ncedilla; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint omacron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kcedilla; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint uogonek; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint utilde; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint umacron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Wcircumflex; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint wcircumflex; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ycircumflex; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ycircumflex; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Babovedot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint babovedot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Dabovedot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dabovedot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Fabovedot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint fabovedot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Mabovedot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint mabovedot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Pabovedot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint pabovedot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sabovedot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint sabovedot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Tabovedot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint tabovedot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Wgrave; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint wgrave; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Wacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint wacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Wdiaeresis; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint wdiaeresis; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ygrave; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ygrave; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint OE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint oe; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ydiaeresis; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint overline; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_fullstop; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_openingbracket; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_closingbracket; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_comma; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_conjunctive; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_middledot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_WO; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_a; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_i; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_u; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_e; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_o; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_ya; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_yu; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_yo; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_tsu; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_tu; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint prolongedsound; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_A; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_I; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_U; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_E; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_O; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_KA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_KI; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_KU; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_KE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_KO; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_SA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_SHI; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_SU; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_SE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_SO; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_TA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_CHI; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_TI; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_TSU; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_TU; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_TE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_TO; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_NA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_NI; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_NU; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_NE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_NO; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_HA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_HI; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_FU; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_HU; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_HE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_HO; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_MA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_MI; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_MU; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_ME; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_MO; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_YA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_YU; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_YO; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_RA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_RI; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_RU; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_RE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_RO; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_WA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_N; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint voicedsound; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint semivoicedsound; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint kana_switch; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Farsi_0; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Farsi_1; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Farsi_2; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Farsi_3; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Farsi_4; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Farsi_5; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Farsi_6; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Farsi_7; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Farsi_8; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Farsi_9; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_percent; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_superscript_alef; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_tteh; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_peh; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_tcheh; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_ddal; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_rreh; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_comma; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_fullstop; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_0; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_1; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_2; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_3; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_4; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_5; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_6; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_7; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_8; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_9; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_semicolon; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_question_mark; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_hamza; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_maddaonalef; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_hamzaonalef; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_hamzaonwaw; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_hamzaunderalef; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_hamzaonyeh; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_alef; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_beh; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_tehmarbuta; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_teh; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_theh; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_jeem; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_hah; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_khah; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_dal; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_thal; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_ra; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_zain; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_seen; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_sheen; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_sad; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_dad; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_tah; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_zah; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_ain; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_ghain; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_tatweel; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_feh; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_qaf; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_kaf; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_lam; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_meem; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_noon; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_ha; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_heh; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_waw; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_alefmaksura; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_yeh; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_fathatan; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_dammatan; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_kasratan; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_fatha; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_damma; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_kasra; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_shadda; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_sukun; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_madda_above; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_hamza_above; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_hamza_below; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_jeh; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_veh; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_keheh; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_gaf; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_noon_ghunna; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_heh_doachashmee; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Farsi_yeh; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_farsi_yeh; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_yeh_baree; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_heh_goal; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Arabic_switch; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_GHE_bar; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_ghe_bar; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_ZHE_descender; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_zhe_descender; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_KA_descender; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_ka_descender; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_KA_vertstroke; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_ka_vertstroke; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_EN_descender; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_en_descender; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_U_straight; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_u_straight; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_U_straight_bar; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_u_straight_bar; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_HA_descender; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_ha_descender; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_CHE_descender; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_che_descender; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_CHE_vertstroke; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_che_vertstroke; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_SHHA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_shha; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_SCHWA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_schwa; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_I_macron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_i_macron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_O_bar; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_o_bar; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_U_macron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_u_macron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Serbian_dje; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Macedonia_gje; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_io; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ukrainian_ie; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ukranian_je; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Macedonia_dse; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ukrainian_i; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ukranian_i; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ukrainian_yi; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ukranian_yi; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_je; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Serbian_je; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_lje; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Serbian_lje; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_nje; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Serbian_nje; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Serbian_tshe; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Macedonia_kje; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ukrainian_ghe_with_upturn; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Byelorussian_shortu; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_dzhe; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Serbian_dze; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint numerosign; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Serbian_DJE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Macedonia_GJE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_IO; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ukrainian_IE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ukranian_JE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Macedonia_DSE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ukrainian_I; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ukranian_I; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ukrainian_YI; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ukranian_YI; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_JE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Serbian_JE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_LJE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Serbian_LJE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_NJE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Serbian_NJE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Serbian_TSHE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Macedonia_KJE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ukrainian_GHE_WITH_UPTURN; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Byelorussian_SHORTU; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_DZHE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Serbian_DZE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_yu; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_a; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_be; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_tse; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_de; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_ie; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_ef; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_ghe; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_ha; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_i; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_shorti; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_ka; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_el; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_em; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_en; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_o; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_pe; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_ya; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_er; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_es; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_te; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_u; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_zhe; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_ve; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_softsign; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_yeru; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_ze; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_sha; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_e; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_shcha; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_che; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_hardsign; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_YU; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_A; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_BE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_TSE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_DE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_IE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_EF; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_GHE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_HA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_I; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_SHORTI; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_KA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_EL; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_EM; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_EN; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_O; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_PE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_YA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_ER; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_ES; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_TE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_U; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_ZHE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_VE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_SOFTSIGN; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_YERU; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_ZE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_SHA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_E; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_SHCHA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_CHE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Cyrillic_HARDSIGN; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_ALPHAaccent; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_EPSILONaccent; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_ETAaccent; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_IOTAaccent; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_IOTAdieresis; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_IOTAdiaeresis; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_OMICRONaccent; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_UPSILONaccent; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_UPSILONdieresis; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_OMEGAaccent; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_accentdieresis; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_horizbar; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_alphaaccent; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_epsilonaccent; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_etaaccent; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_iotaaccent; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_iotadieresis; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_iotaaccentdieresis; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_omicronaccent; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_upsilonaccent; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_upsilondieresis; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_upsilonaccentdieresis; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_omegaaccent; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_ALPHA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_BETA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_GAMMA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_DELTA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_EPSILON; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_ZETA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_ETA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_THETA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_IOTA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_KAPPA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_LAMDA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_LAMBDA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_MU; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_NU; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_XI; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_OMICRON; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_PI; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_RHO; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_SIGMA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_TAU; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_UPSILON; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_PHI; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_CHI; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_PSI; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_OMEGA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_alpha; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_beta; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_gamma; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_delta; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_epsilon; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_zeta; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_eta; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_theta; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_iota; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_kappa; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_lamda; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_lambda; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_mu; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_nu; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_xi; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_omicron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_pi; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_rho; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_sigma; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_finalsmallsigma; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_tau; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_upsilon; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_phi; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_chi; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_psi; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_omega; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Greek_switch; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint leftradical; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint topleftradical; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint horizconnector; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint topintegral; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint botintegral; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint vertconnector; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint topleftsqbracket; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint botleftsqbracket; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint toprightsqbracket; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint botrightsqbracket; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint topleftparens; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint botleftparens; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint toprightparens; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint botrightparens; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint leftmiddlecurlybrace; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint rightmiddlecurlybrace; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint topleftsummation; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint botleftsummation; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint topvertsummationconnector; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint botvertsummationconnector; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint toprightsummation; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint botrightsummation; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint rightmiddlesummation; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint lessthanequal; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint notequal; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint greaterthanequal; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint integral; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint therefore; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint variation; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint infinity; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint nabla; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint approximate; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint similarequal; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ifonlyif; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint implies; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint identical; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint radical; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint includedin; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint includes; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint intersection; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint union; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint logicaland; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint logicalor; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint partialderivative; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint function; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint leftarrow; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint uparrow; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint rightarrow; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint downarrow; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint blank; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint soliddiamond; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint checkerboard; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ht; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ff; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint cr; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint lf; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint nl; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint vt; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint lowrightcorner; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint uprightcorner; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint upleftcorner; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint lowleftcorner; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint crossinglines; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint horizlinescan1; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint horizlinescan3; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint horizlinescan5; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint horizlinescan7; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint horizlinescan9; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint leftt; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint rightt; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint bott; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint topt; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint vertbar; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint emspace; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint enspace; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint em3space; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint em4space; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint digitspace; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint punctspace; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint thinspace; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hairspace; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint emdash; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint endash; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint signifblank; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ellipsis; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint doubbaselinedot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint onethird; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint twothirds; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint onefifth; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint twofifths; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint threefifths; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint fourfifths; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint onesixth; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint fivesixths; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint careof; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint figdash; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint leftanglebracket; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint decimalpoint; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint rightanglebracket; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint marker; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint oneeighth; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint threeeighths; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint fiveeighths; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint seveneighths; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint trademark; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint signaturemark; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint trademarkincircle; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint leftopentriangle; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint rightopentriangle; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint emopencircle; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint emopenrectangle; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint leftsinglequotemark; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint rightsinglequotemark; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint leftdoublequotemark; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint rightdoublequotemark; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint prescription; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint minutes; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint seconds; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint latincross; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hexagram; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint filledrectbullet; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint filledlefttribullet; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint filledrighttribullet; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint emfilledcircle; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint emfilledrect; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint enopencircbullet; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint enopensquarebullet; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint openrectbullet; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint opentribulletup; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint opentribulletdown; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint openstar; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint enfilledcircbullet; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint enfilledsqbullet; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint filledtribulletup; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint filledtribulletdown; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint leftpointer; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint rightpointer; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint club; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint diamond; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint heart; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint maltesecross; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dagger; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint doubledagger; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint checkmark; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ballotcross; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint musicalsharp; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint musicalflat; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint malesymbol; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint femalesymbol; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint telephone; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint telephonerecorder; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint phonographcopyright; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint caret; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint singlelowquotemark; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint doublelowquotemark; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint cursor; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint leftcaret; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint rightcaret; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint downcaret; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint upcaret; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint overbar; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint downtack; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint upshoe; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint downstile; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint underbar; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint jot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint quad; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint uptack; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint circle; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint upstile; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint downshoe; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint rightshoe; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint leftshoe; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint lefttack; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint righttack; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_doublelowline; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_aleph; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_bet; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_beth; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_gimel; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_gimmel; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_dalet; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_daleth; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_he; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_waw; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_zain; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_zayin; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_chet; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_het; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_tet; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_teth; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_yod; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_finalkaph; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_kaph; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_lamed; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_finalmem; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_mem; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_finalnun; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_nun; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_samech; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_samekh; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_ayin; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_finalpe; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_pe; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_finalzade; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_finalzadi; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_zade; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_zadi; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_qoph; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_kuf; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_resh; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_shin; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_taw; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint hebrew_taf; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hebrew_switch; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_kokai; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_khokhai; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_khokhuat; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_khokhwai; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_khokhon; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_khorakhang; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_ngongu; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_chochan; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_choching; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_chochang; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_soso; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_chochoe; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_yoying; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_dochada; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_topatak; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_thothan; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_thonangmontho; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_thophuthao; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_nonen; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_dodek; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_totao; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_thothung; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_thothahan; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_thothong; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_nonu; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_bobaimai; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_popla; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_phophung; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_fofa; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_phophan; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_fofan; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_phosamphao; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_moma; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_yoyak; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_rorua; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_ru; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_loling; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_lu; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_wowaen; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_sosala; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_sorusi; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_sosua; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_hohip; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_lochula; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_oang; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_honokhuk; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_paiyannoi; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_saraa; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_maihanakat; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_saraaa; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_saraam; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_sarai; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_saraii; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_saraue; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_sarauee; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_sarau; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_sarauu; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_phinthu; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_maihanakat_maitho; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_baht; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_sarae; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_saraae; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_sarao; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_saraaimaimuan; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_saraaimaimalai; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_lakkhangyao; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_maiyamok; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_maitaikhu; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_maiek; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_maitho; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_maitri; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_maichattawa; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_thanthakhat; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_nikhahit; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_leksun; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_leknung; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_leksong; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_leksam; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_leksi; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_lekha; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_lekhok; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_lekchet; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_lekpaet; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Thai_lekkao; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_Start; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_End; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_Hanja; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_Jamo; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_Romaja; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_Codeinput; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_Jeonja; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_Banja; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_PreHanja; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_PostHanja; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_SingleCandidate; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_MultipleCandidate; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_PreviousCandidate; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_Special; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_switch; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_Kiyeog; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_SsangKiyeog; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_KiyeogSios; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_Nieun; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_NieunJieuj; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_NieunHieuh; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_Dikeud; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_SsangDikeud; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_Rieul; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_RieulKiyeog; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_RieulMieum; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_RieulPieub; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_RieulSios; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_RieulTieut; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_RieulPhieuf; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_RieulHieuh; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_Mieum; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_Pieub; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_SsangPieub; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_PieubSios; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_Sios; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_SsangSios; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_Ieung; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_Jieuj; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_SsangJieuj; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_Cieuc; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_Khieuq; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_Tieut; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_Phieuf; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_Hieuh; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_A; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_AE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_YA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_YAE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_EO; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_E; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_YEO; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_YE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_O; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_WA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_WAE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_OE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_YO; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_U; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_WEO; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_WE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_WI; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_YU; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_EU; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_YI; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_I; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_J_Kiyeog; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_J_SsangKiyeog; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_J_KiyeogSios; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_J_Nieun; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_J_NieunJieuj; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_J_NieunHieuh; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_J_Dikeud; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_J_Rieul; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_J_RieulKiyeog; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_J_RieulMieum; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_J_RieulPieub; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_J_RieulSios; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_J_RieulTieut; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_J_RieulPhieuf; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_J_RieulHieuh; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_J_Mieum; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_J_Pieub; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_J_PieubSios; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_J_Sios; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_J_SsangSios; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_J_Ieung; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_J_Jieuj; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_J_Cieuc; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_J_Khieuq; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_J_Tieut; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_J_Phieuf; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_J_Hieuh; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_RieulYeorinHieuh; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_SunkyeongeumMieum; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_SunkyeongeumPieub; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_PanSios; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_KkogjiDalrinIeung; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_SunkyeongeumPhieuf; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_YeorinHieuh; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_AraeA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_AraeAE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_J_PanSios; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_J_KkogjiDalrinIeung; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Hangul_J_YeorinHieuh; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Korean_Won; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_ligature_ew; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_full_stop; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_verjaket; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_separation_mark; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_but; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_hyphen; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_yentamna; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_exclam; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_amanak; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_accent; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_shesht; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_question; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_paruyk; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_AYB; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_ayb; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_BEN; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_ben; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_GIM; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_gim; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_DA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_da; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_YECH; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_yech; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_ZA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_za; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_E; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_e; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_AT; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_at; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_TO; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_to; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_ZHE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_zhe; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_INI; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_ini; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_LYUN; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_lyun; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_KHE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_khe; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_TSA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_tsa; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_KEN; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_ken; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_HO; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_ho; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_DZA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_dza; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_GHAT; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_ghat; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_TCHE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_tche; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_MEN; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_men; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_HI; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_hi; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_NU; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_nu; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_SHA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_sha; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_VO; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_vo; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_CHA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_cha; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_PE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_pe; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_JE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_je; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_RA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_ra; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_SE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_se; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_VEV; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_vev; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_TYUN; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_tyun; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_RE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_re; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_TSO; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_tso; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_VYUN; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_vyun; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_PYUR; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_pyur; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_KE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_ke; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_O; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_o; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_FE; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_fe; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Armenian_apostrophe; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_an; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_ban; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_gan; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_don; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_en; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_vin; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_zen; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_tan; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_in; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_kan; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_las; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_man; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_nar; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_on; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_par; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_zhar; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_rae; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_san; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_tar; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_un; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_phar; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_khar; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_ghan; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_qar; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_shin; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_chin; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_can; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_jil; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_cil; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_char; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_xan; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_jhan; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_hae; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_he; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_hie; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_we; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_har; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_hoe; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Georgian_fi; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Xabovedot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ibreve; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Zstroke; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Gcaron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ocaron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Obarred; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint xabovedot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ibreve; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint zstroke; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint gcaron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ocaron; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint obarred; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint SCHWA; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint schwa; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Lbelowdot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint lbelowdot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Abelowdot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint abelowdot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ahook; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ahook; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Acircumflexacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint acircumflexacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Acircumflexgrave; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint acircumflexgrave; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Acircumflexhook; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint acircumflexhook; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Acircumflextilde; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint acircumflextilde; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Acircumflexbelowdot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint acircumflexbelowdot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Abreveacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint abreveacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Abrevegrave; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint abrevegrave; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Abrevehook; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint abrevehook; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Abrevetilde; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint abrevetilde; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Abrevebelowdot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint abrevebelowdot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ebelowdot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ebelowdot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ehook; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ehook; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Etilde; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint etilde; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ecircumflexacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ecircumflexacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ecircumflexgrave; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ecircumflexgrave; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ecircumflexhook; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ecircumflexhook; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ecircumflextilde; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ecircumflextilde; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ecircumflexbelowdot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ecircumflexbelowdot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ihook; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ihook; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ibelowdot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ibelowdot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Obelowdot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint obelowdot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ohook; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ohook; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ocircumflexacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ocircumflexacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ocircumflexgrave; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ocircumflexgrave; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ocircumflexhook; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ocircumflexhook; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ocircumflextilde; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ocircumflextilde; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ocircumflexbelowdot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ocircumflexbelowdot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ohornacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ohornacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ohorngrave; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ohorngrave; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ohornhook; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ohornhook; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ohorntilde; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ohorntilde; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ohornbelowdot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ohornbelowdot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ubelowdot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ubelowdot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Uhook; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint uhook; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Uhornacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint uhornacute; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Uhorngrave; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint uhorngrave; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Uhornhook; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint uhornhook; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Uhorntilde; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint uhorntilde; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Uhornbelowdot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint uhornbelowdot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ybelowdot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ybelowdot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Yhook; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint yhook; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ytilde; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ytilde; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Ohorn; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ohorn; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Uhorn; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint uhorn; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint EcuSign; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ColonSign; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint CruzeiroSign; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint FFrancSign; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint LiraSign; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint MillSign; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint NairaSign; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint PesetaSign; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint RupeeSign; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint WonSign; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint NewSheqelSign; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint DongSign; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint EuroSign; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint zerosuperior; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint foursuperior; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint fivesuperior; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint sixsuperior; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint sevensuperior; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint eightsuperior; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ninesuperior; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint zerosubscript; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint onesubscript; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint twosubscript; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint threesubscript; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint foursubscript; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint fivesubscript; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint sixsubscript; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint sevensubscript; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint eightsubscript; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint ninesubscript; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint partdifferential; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint emptyset; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint elementof; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint notelementof; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint containsas; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint squareroot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint cuberoot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint fourthroot; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint dintegral; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint tintegral; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint because; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint approxeq; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint notapproxeq; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint notidentical; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint stricteq; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dot_1; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dot_2; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dot_3; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dot_4; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dot_5; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dot_6; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dot_7; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dot_8; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dot_9; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dot_10; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_blank; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_2; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_12; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_3; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_13; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_23; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_123; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_4; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_14; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_24; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_124; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_34; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_134; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_234; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1234; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_5; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_15; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_25; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_125; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_35; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_135; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_235; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1235; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_45; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_145; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_245; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1245; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_345; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1345; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_2345; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_12345; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_6; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_16; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_26; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_126; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_36; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_136; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_236; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1236; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_46; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_146; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_246; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1246; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_346; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1346; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_2346; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_12346; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_56; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_156; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_256; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1256; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_356; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1356; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_2356; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_12356; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_456; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1456; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_2456; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_12456; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_3456; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_13456; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_23456; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_123456; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_7; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_17; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_27; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_127; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_37; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_137; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_237; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1237; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_47; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_147; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_247; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1247; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_347; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1347; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_2347; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_12347; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_57; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_157; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_257; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1257; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_357; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1357; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_2357; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_12357; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_457; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1457; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_2457; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_12457; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_3457; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_13457; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_23457; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_123457; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_67; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_167; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_267; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1267; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_367; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1367; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_2367; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_12367; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_467; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1467; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_2467; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_12467; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_3467; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_13467; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_23467; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_123467; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_567; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1567; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_2567; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_12567; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_3567; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_13567; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_23567; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_123567; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_4567; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_14567; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_24567; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_124567; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_34567; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_134567; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_234567; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1234567; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_8; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_18; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_28; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_128; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_38; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_138; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_238; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1238; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_48; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_148; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_248; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1248; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_348; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1348; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_2348; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_12348; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_58; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_158; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_258; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1258; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_358; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1358; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_2358; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_12358; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_458; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1458; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_2458; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_12458; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_3458; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_13458; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_23458; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_123458; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_68; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_168; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_268; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1268; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_368; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1368; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_2368; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_12368; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_468; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1468; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_2468; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_12468; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_3468; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_13468; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_23468; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_123468; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_568; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1568; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_2568; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_12568; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_3568; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_13568; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_23568; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_123568; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_4568; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_14568; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_24568; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_124568; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_34568; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_134568; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_234568; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1234568; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_78; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_178; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_278; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1278; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_378; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1378; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_2378; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_12378; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_478; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1478; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_2478; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_12478; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_3478; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_13478; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_23478; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_123478; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_578; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1578; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_2578; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_12578; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_3578; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_13578; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_23578; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_123578; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_4578; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_14578; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_24578; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_124578; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_34578; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_134578; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_234578; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1234578; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_678; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1678; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_2678; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_12678; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_3678; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_13678; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_23678; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_123678; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_4678; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_14678; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_24678; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_124678; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_34678; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_134678; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_234678; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1234678; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_5678; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_15678; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_25678; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_125678; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_35678; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_135678; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_235678; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1235678; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_45678; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_145678; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_245678; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1245678; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_345678; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_1345678; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_2345678; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint braille_dots_12345678; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_ng; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_h2; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_a; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_aa; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_ae; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_aee; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_i; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_ii; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_u; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_uu; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_ri; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_rii; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_lu; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_luu; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_e; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_ee; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_ai; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_o; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_oo; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_au; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_ka; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_kha; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_ga; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_gha; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_ng2; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_nga; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_ca; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_cha; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_ja; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_jha; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_nya; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_jnya; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_nja; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_tta; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_ttha; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_dda; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_ddha; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_nna; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_ndda; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_tha; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_thha; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_dha; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_dhha; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_na; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_ndha; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_pa; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_pha; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_ba; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_bha; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_ma; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_mba; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_ya; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_ra; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_la; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_va; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_sha; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_ssha; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_sa; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_ha; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_lla; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_fa; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_al; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_aa2; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_ae2; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_aee2; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_i2; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_ii2; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_u2; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_uu2; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_ru2; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_e2; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_ee2; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_ai2; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_o2; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_oo2; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_au2; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_lu2; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_ruu2; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_luu2; [CCode (cheader_filename = "libskk/libskk-internals.h")] public const uint Sinh_kunddaliya; } [CCode (cheader_filename = "libskk/libskk-internals.h")] internal class RomKanaNode : GLib.Object { internal Skk.RomKanaEntry? entry; internal weak Skk.RomKanaNode parent; internal Skk.RomKanaNode[] children; internal char c; internal uint n_children; internal bool[] valid; internal RomKanaNode (Skk.RomKanaEntry? entry); internal void insert (string key, Skk.RomKanaEntry entry); } [CCode (cheader_filename = "libskk/libskk-internals.h")] public class RomKanaConverter : GLib.Object { public RomKanaConverter (); public bool is_valid (unichar uc); public bool output_nn_if_any (); public void append_text (string text); public bool append (unichar uc); public bool can_consume (unichar uc, bool preedit_only = false, bool no_carryover = true); public void reset (); public bool @delete (); internal Skk.RomKanaMapFile rule { get; set; } public Skk.KanaMode kana_mode { get; set; } public Skk.PeriodStyle period_style { get; set; } public string output { get; internal set; } public string preedit { get; } } [CCode (cheader_filename = "libskk/libskk-internals.h")] public class KanaKanConverter : GLib.Object { public KanaKanConverter (Skk.KanaKanDict dict, Skk.KanaKanScoreMap map); public string convert (string kana); } [CCode (cheader_filename = "libskk/libskk-internals.h")] public class KanaKanDict : GLib.Object { public KanaKanDict (string path) throws GLib.Error, GLib.IOError; public void add (string pron, string word); internal Gee.Set lookup (string pron); } [CCode (cheader_filename = "libskk/libskk-internals.h")] public class KanaKanScoreMap : GLib.Object { public KanaKanScoreMap (string path, Skk.KanaKanDict dict) throws GLib.Error, GLib.IOError; internal double get_node_score (Skk.KanaKanNode node); internal double get_edge_score (Skk.KanaKanNode prev_node, Skk.KanaKanNode node); } [CCode (cheader_filename = "libskk/libskk-internals.h")] internal class KanaKanNode : GLib.Object { internal string word; internal string pron; internal int endpos; internal double score; internal Skk.KanaKanNode? prev; internal KanaKanNode (string word, string pron, int endpos); internal bool is_bos (); internal bool is_eos (); internal int length { get; } } [CCode (cheader_filename = "libskk/libskk-internals.h")] internal class KanaKanGraph : GLib.Object { internal Gee.ArrayList[] nodes; internal Skk.KanaKanNode bos; internal Skk.KanaKanNode eos; internal KanaKanGraph (Skk.KanaKanDict dict, string str); internal Gee.ArrayList get_prev_nodes (Skk.KanaKanNode node); } [CCode (cheader_filename = "libskk/libskk-internals.h")] internal class EncodingConverter : GLib.Object { internal static string? extract_coding_system (string line); internal string? get_coding_system (); internal EncodingConverter (string encoding) throws GLib.Error; internal EncodingConverter.from_coding_system (string coding) throws GLib.Error; internal string encode (string internal_str) throws GLib.Error; internal string decode (string external_str) throws GLib.Error; internal string encoding { get; private set; } } [CCode (cheader_filename = "libskk/libskk-internals.h")] public abstract class Dict : GLib.Object { protected Skk.Candidate[] split_candidates (string midasi, bool okuri, string line); protected string join_candidates (Skk.Candidate[] candidates); public abstract void reload () throws GLib.Error; public abstract Skk.Candidate[] lookup (string midasi, bool okuri = false); public abstract string[] complete (string midasi); public virtual bool select_candidate (Skk.Candidate candidate); public virtual bool purge_candidate (Skk.Candidate candidate); public virtual void save () throws GLib.Error; public Dict (); public abstract bool read_only { get; } } [CCode (cheader_filename = "libskk/libskk-internals.h")] public class EmptyDict : Skk.Dict { public override void reload () throws GLib.Error; public override Skk.Candidate[] lookup (string midasi, bool okuri = false); public override string[] complete (string midasi); public EmptyDict (); public override bool read_only { get; } } [CCode (cheader_filename = "libskk/libskk-internals.h")] public class FileDict : Skk.Dict { public override void reload () throws GLib.Error; public override Skk.Candidate[] lookup (string midasi, bool okuri = false); public override string[] complete (string midasi); public FileDict (string path, string encoding = "EUC-JP") throws GLib.Error; public override bool read_only { get; } } [CCode (cheader_filename = "libskk/libskk-internals.h")] public class CdbDict : Skk.Dict { public override void reload () throws GLib.Error; public override Skk.Candidate[] lookup (string midasi, bool okuri = false); public override string[] complete (string midasi); public CdbDict (string path, string encoding = "EUC-JP") throws GLib.Error; public override bool read_only { get; } } [CCode (cheader_filename = "libskk/libskk-internals.h")] public class UserDict : Skk.Dict { public override void reload () throws GLib.Error; public override void save () throws GLib.Error; public override Skk.Candidate[] lookup (string midasi, bool okuri = false); public override string[] complete (string midasi); public override bool select_candidate (Skk.Candidate candidate); public override bool purge_candidate (Skk.Candidate candidate); public UserDict (string path, string encoding = "UTF-8") throws GLib.Error; public override bool read_only { get; } } [CCode (cheader_filename = "libskk/libskk-internals.h")] public class SkkServ : Skk.Dict { public override void reload (); public override Skk.Candidate[] lookup (string midasi, bool okuri = false); public override string[] complete (string midasi); public SkkServ (string host, uint16 port = 1178, string encoding = "EUC-JP") throws GLib.Error; public override bool read_only { get; } } [CCode (cheader_filename = "libskk/libskk-internals.h")] public class KeyEvent : GLib.Object { public KeyEvent (string? name, unichar code, Skk.ModifierType modifiers); public Skk.KeyEvent copy (); public KeyEvent.from_string (string key) throws Skk.KeyEventFormatError; public string to_string (); public KeyEvent.from_x_keysym (uint keyval, Skk.ModifierType modifiers) throws Skk.KeyEventFormatError; public bool base_equal (Skk.KeyEvent key); public string? name { get; private set; } public unichar code { get; private set; } public Skk.ModifierType modifiers { get; set; } } [CCode (cheader_filename = "libskk/libskk-internals.h")] public abstract class KeyEventFilter : GLib.Object { public abstract Skk.KeyEvent? filter_key_event (Skk.KeyEvent key); public virtual void reset (); public KeyEventFilter (); public signal void forwarded (Skk.KeyEvent key); } [CCode (cheader_filename = "libskk/libskk-internals.h")] internal class SimpleKeyEventFilter : Skk.KeyEventFilter { public override Skk.KeyEvent? filter_key_event (Skk.KeyEvent key); public SimpleKeyEventFilter (); } [CCode (cheader_filename = "libskk/libskk-internals.h")] internal class Keymap : GLib.Object { public new void @set (string key, string command); public string? lookup_key (Skk.KeyEvent key); public Skk.KeyEvent? where_is (string command); public Keymap (); } [CCode (cheader_filename = "libskk/libskk-internals.h")] internal class KeymapMapFile : Skk.MapFile { internal Skk.Keymap keymap; internal KeymapMapFile (Skk.RuleMetadata metadata, string mode) throws Skk.RuleParseError; } [CCode (cheader_filename = "libskk/libskk-internals.h")] internal class RomKanaMapFile : Skk.MapFile { internal Skk.RomKanaNode root_node; public RomKanaMapFile (Skk.RuleMetadata metadata) throws Skk.RuleParseError; } [CCode (cheader_filename = "libskk/libskk-internals.h")] public class Rule : GLib.Object { internal Skk.KeymapMapFile[] keymaps; internal Skk.RomKanaMapFile rom_kana; internal Skk.KeyEventFilter get_filter (); public Rule (string name) throws Skk.RuleParseError; public static Skk.RuleMetadata? find_rule (string name); public static Skk.RuleMetadata[] list (); public Skk.RuleMetadata metadata { get; private set; } } [CCode (cheader_filename = "libskk/libskk-internals.h")] internal abstract class MapFile : GLib.Object { internal MapFile (Skk.RuleMetadata metadata, string type, string name) throws Skk.RuleParseError; internal bool has_map (string name); internal new Gee.Map @get (string name); } [CCode (cheader_filename = "libskk/libskk-internals.h")] internal class State : GLib.Object { internal GLib.Type handler_type; internal Gee.List dictionaries; internal Skk.CandidateList candidates; internal Skk.RomKanaConverter rom_kana_converter; internal Skk.RomKanaConverter okuri_rom_kana_converter; internal bool okuri; internal string midasi; internal GLib.StringBuilder output; internal GLib.StringBuilder abbrev; internal GLib.StringBuilder kuten; internal Gee.Iterator completion_iterator; internal string[] auto_start_henkan_keywords; internal string? auto_start_henkan_keyword; internal bool egg_like_newline; internal Skk.UnicodeString? surrounding_text; internal uint surrounding_end; internal string? lookup_key (Skk.KeyEvent key); internal Skk.KeyEvent? where_is (string command); internal bool isupper (Skk.KeyEvent key, out unichar lower_code); internal State (Gee.List dictionaries); internal void output_surrounding_text (); internal void reset (); internal void cancel_okuri (); internal void lookup (string midasi, bool okuri = false); internal void purge_candidate (Skk.Candidate candidate); internal void completion_start (string midasi); internal string get_yomi (); [CCode (notify = false)] internal Skk.InputMode input_mode { get; set; } internal Skk.PeriodStyle period_style { get; set; } internal Skk.Rule typing_rule { get; set; } internal signal bool recursive_edit_abort (); internal signal bool recursive_edit_end (string text); internal signal void recursive_edit_start (string midasi, bool okuri); internal signal bool retrieve_surrounding_text (out string text, out uint cursor_pos); internal signal bool delete_surrounding_text (int offset, uint nchars); } [CCode (cheader_filename = "libskk/libskk-internals.h")] internal abstract class StateHandler : GLib.Object { internal abstract bool process_key_event (Skk.State state, ref Skk.KeyEvent key); internal abstract string get_preedit (Skk.State state, out uint underline_offset, out uint underline_nchars); internal virtual string get_output (Skk.State state); public StateHandler (); } [CCode (cheader_filename = "libskk/libskk-internals.h")] internal class NoneStateHandler : Skk.StateHandler { internal override bool process_key_event (Skk.State state, ref Skk.KeyEvent key); internal override string get_preedit (Skk.State state, out uint underline_offset, out uint underline_nchars); public NoneStateHandler (); } [CCode (cheader_filename = "libskk/libskk-internals.h")] internal class KutenStateHandler : Skk.StateHandler { internal KutenStateHandler (); internal override bool process_key_event (Skk.State state, ref Skk.KeyEvent key); internal override string get_preedit (Skk.State state, out uint underline_offset, out uint underline_nchars); } [CCode (cheader_filename = "libskk/libskk-internals.h")] internal class AbbrevStateHandler : Skk.StateHandler { internal override bool process_key_event (Skk.State state, ref Skk.KeyEvent key); internal override string get_preedit (Skk.State state, out uint underline_offset, out uint underline_nchars); public AbbrevStateHandler (); } [CCode (cheader_filename = "libskk/libskk-internals.h")] internal class StartStateHandler : Skk.StateHandler { internal override bool process_key_event (Skk.State state, ref Skk.KeyEvent key); internal override string get_preedit (Skk.State state, out uint underline_offset, out uint underline_nchars); public StartStateHandler (); } [CCode (cheader_filename = "libskk/libskk-internals.h")] internal class SelectStateHandler : Skk.StateHandler { internal override bool process_key_event (Skk.State state, ref Skk.KeyEvent key); internal override string get_preedit (Skk.State state, out uint underline_offset, out uint underline_nchars); public SelectStateHandler (); } [CCode (cheader_filename = "libskk/libskk-internals.h")] public class Context : GLib.Object { public void add_dictionary (Skk.Dict dict); public void remove_dictionary (Skk.Dict dict); public Context (Skk.Dict[] dictionaries); public bool process_key_events (string keyseq); public bool process_key_event (Skk.KeyEvent key); public void reset (); public string get_output (); public string peek_output (); public string poll_output (); public void clear_output (); public void get_preedit_underline (out uint offset, out uint nchars); public void save_dictionaries () throws GLib.Error; public Skk.Dict[] dictionaries { owned get; set; } public Skk.CandidateList candidates { get; } public Skk.InputMode input_mode { get; set; } public string[] auto_start_henkan_keywords { get; set; } public bool egg_like_newline { get; set; } public Skk.PeriodStyle period_style { get; set; } public Skk.Rule typing_rule { get; set; } public Skk.KeyEventFilter key_event_filter { owned get; } [CCode (notify = false)] public string preedit { get; private set; } public signal bool retrieve_surrounding_text (out string text, out uint cursor_pos); public signal bool delete_surrounding_text (int offset, uint nchars); } [CCode (cheader_filename = "libskk/libskk-internals.h")] public class Candidate : GLib.Object { public string to_string (); public Candidate (string midasi, bool okuri, string text, string? annotation = null, string? output = null); public string midasi { get; private set; } public bool okuri { get; private set; } public string text { get; set; } public string? annotation { get; set; } public string output { get; set; } } [CCode (cheader_filename = "libskk/libskk-internals.h")] public abstract class CandidateList : GLib.Object { public abstract new Skk.Candidate @get (int index = -1); internal abstract void clear (); internal abstract void add_candidates (Skk.Candidate[] array); internal abstract void add_candidates_end (); public abstract bool cursor_up (); public abstract bool cursor_down (); public abstract bool page_up (); public abstract bool page_down (); public virtual bool next (); public virtual bool previous (); protected uint get_page_start_cursor_pos (); public abstract bool select_at (uint index_in_page); public abstract void select (); public CandidateList (); public abstract int cursor_pos { get; } public abstract int size { get; } public abstract uint page_start { get; set; } public abstract uint page_size { get; set; } public abstract bool page_visible { get; } public signal void populated (); public signal void selected (Skk.Candidate candidate); } [CCode (cheader_filename = "libskk/libskk-internals.h")] internal class SimpleCandidateList : Skk.CandidateList { public override Skk.Candidate @get (int index = -1); internal override void clear (); internal override void add_candidates (Skk.Candidate[] array); internal override void add_candidates_end (); public override bool select_at (uint index_in_page); public override void select (); public SimpleCandidateList (uint page_start = 4, uint page_size = 7); public override bool cursor_up (); public override bool cursor_down (); public override bool page_up (); public override bool page_down (); public override int cursor_pos { get; } public override int size { get; } public override uint page_start { get; set; } public override uint page_size { get; set; } public override bool page_visible { get; } } [CCode (cheader_filename = "libskk/libskk-internals.h")] internal class ProxyCandidateList : Skk.CandidateList { public override Skk.Candidate @get (int index = -1); internal override void clear (); internal override void add_candidates (Skk.Candidate[] array); internal override void add_candidates_end (); public override bool select_at (uint index_in_page); public override void select (); public ProxyCandidateList (Skk.CandidateList candidates); public override bool cursor_up (); public override bool cursor_down (); public override bool page_up (); public override bool page_down (); public Skk.CandidateList candidates { get; set; } public override int cursor_pos { get; } public override int size { get; } public override uint page_start { get; set; } public override uint page_size { get; set; } public override bool page_visible { get; } } [CCode (cheader_filename = "libskk/libskk-internals.h")] public class NicolaKeyEventFilter : Skk.KeyEventFilter { public Skk.GetTime get_time_func; public int64 timeout; public int64 overlap; public int64 maxwait; public string[] special_doubles; public override Skk.KeyEvent? filter_key_event (Skk.KeyEvent key); public override void reset (); public NicolaKeyEventFilter (); } [CCode (cheader_filename = "libskk/libskk-internals.h")] internal class ExprReader : GLib.Object { public Skk.ExprNode read_symbol (string expr, ref int index); public Skk.ExprNode read_string (string expr, ref int index); public Skk.ExprNode? read_expr (string expr, ref int index); public ExprReader (); } [CCode (cheader_filename = "libskk/libskk-internals.h")] internal class ExprEvaluator : GLib.Object { public string? eval (Skk.ExprNode node); public ExprEvaluator (); } [CCode (cheader_filename = "libskk/libskk-internals.h")] internal class Util : GLib.Object { internal static string? get_okurigana_prefix (string okurigana); internal static unichar get_wide_latin_char (char c); internal static string get_wide_latin (string latin); internal static string get_katakana (string kana); internal static string get_hiragana (string kana); internal static string get_hankaku_katakana (string kana); internal static string convert_by_input_mode (string str, Skk.InputMode input_mode); internal static string get_numeric (int numeric, Skk.NumericConversionType type); internal static string[] build_data_path (string subdir); public Util (); } [CCode (cheader_filename = "libskk/libskk-internals.h")] internal class UnicodeString : GLib.Object { internal int length; internal UnicodeString (string str); internal string substring (long offset, long len = -1); } [CCode (cheader_filename = "libskk/libskk-internals.h")] internal class MemoryMappedFile : GLib.Object { public MemoryMappedFile (GLib.File file); public void remap () throws Skk.SkkDictError; public void* memory { get; } public size_t length { get; } } [CCode (cheader_filename = "libskk/libskk-internals.h")] internal struct RomKanaEntry { public string rom; public string carryover; public string hiragana; public string katakana; public string hankaku_katakana; internal string get_kana (Skk.KanaMode kana_mode); } [CCode (cheader_filename = "libskk/libskk-internals.h")] public struct RuleMetadata { public string base_dir; public string name; public string label; public string description; public string filter; public string? locate_map_file (string type, string name); } [CCode (cheader_filename = "libskk/libskk-internals.h")] internal struct ExprNode { public Skk.ExprNodeType type; public Gee.LinkedList nodes; public string data; public ExprNode (Skk.ExprNodeType type); } [CCode (cheader_filename = "libskk/libskk-internals.h")] internal struct Entry { public K key; public V value; } [CCode (cheader_filename = "libskk/libskk-internals.h")] public enum KanaMode { HIRAGANA, KATAKANA, HANKAKU_KATAKANA } [CCode (cheader_filename = "libskk/libskk-internals.h")] public enum PeriodStyle { JA_JA, EN_EN, JA_EN, EN_JA } [CCode (cheader_filename = "libskk/libskk-internals.h")] public enum ModifierType { NONE, SHIFT_MASK, LOCK_MASK, CONTROL_MASK, MOD1_MASK, MOD2_MASK, MOD3_MASK, MOD4_MASK, MOD5_MASK, LSHIFT_MASK, RSHIFT_MASK, USLEEP_MASK, SUPER_MASK, HYPER_MASK, META_MASK, RELEASE_MASK } [CCode (cheader_filename = "libskk/libskk-internals.h")] public enum InputMode { HIRAGANA, KATAKANA, HANKAKU_KATAKANA, LATIN, WIDE_LATIN, LAST, DEFAULT } [CCode (cheader_filename = "libskk/libskk-internals.h")] internal enum ExprNodeType { ARRAY, SYMBOL, STRING } [CCode (cheader_filename = "libskk/libskk-internals.h")] internal enum NumericConversionType { LATIN, WIDE_LATIN, KANJI_NUMERAL, KANJI, RECONVERT, DAIJI, SHOGI } [CCode (cheader_filename = "libskk/libskk-internals.h")] internal errordomain SkkDictError { NOT_READABLE, MALFORMED_INPUT } [CCode (cheader_filename = "libskk/libskk-internals.h")] internal errordomain SkkServError { NOT_READABLE, INVALID_RESPONSE } [CCode (cheader_filename = "libskk/libskk-internals.h")] public errordomain KeyEventFormatError { PARSE_FAILED, KEYSYM_NOT_FOUND } [CCode (cheader_filename = "libskk/libskk-internals.h")] public errordomain RuleParseError { FAILED } [CCode (cheader_filename = "libskk/libskk-internals.h")] internal delegate bool CommandHandler (Skk.State state); [CCode (cheader_filename = "libskk/libskk-internals.h")] public delegate int64 GetTime (); [CCode (cheader_filename = "libskk/libskk-internals.h")] internal const string[] PERIOD_RULE; [CCode (cheader_filename = "libskk/libskk-internals.h")] internal const string[] AUTO_START_HENKAN_KEYWORDS; [CCode (cheader_filename = "libskk/libskk-internals.h")] public static void init (); } libskk-1.0.0/libskk/state.vala0000664000076400007640000012164011737514240013176 00000000000000// -*- coding: utf-8 -*- /* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ using Gee; namespace Skk { static const string[] AUTO_START_HENKAN_KEYWORDS = { "ã‚’", "ã€", "。", ".", ",", "?", "ã€", "ï¼", "ï¼›", ":", ")", ";", ":", ")", "â€", "】", "ã€", "》", "〉", "ï½", "ï¼½", "〕", "}", "]", "?", ".", ",", "!" }; class State : Object { internal Type handler_type; InputMode _input_mode; [CCode(notify = false)] internal InputMode input_mode { get { return _input_mode; } set { output.append (rom_kana_converter.output); var last_input_mode = _input_mode; reset (); _input_mode = value; switch (_input_mode) { case InputMode.HIRAGANA: case InputMode.KATAKANA: case InputMode.HANKAKU_KATAKANA: rom_kana_converter.kana_mode = (KanaMode) value; okuri_rom_kana_converter.kana_mode = (KanaMode) value; break; default: break; } if (_input_mode != last_input_mode) { notify_property ("input-mode"); } } } internal Gee.List dictionaries; internal CandidateList candidates; // These two RomKanaConverters are needed to track delete/undo // operation. internal RomKanaConverter rom_kana_converter; internal RomKanaConverter okuri_rom_kana_converter; internal bool okuri; // Used by Context for dict edit. internal string midasi; internal StringBuilder output = new StringBuilder (); internal StringBuilder abbrev = new StringBuilder (); internal StringBuilder kuten = new StringBuilder (); ArrayList completion = new ArrayList (); internal Iterator completion_iterator; internal string[] auto_start_henkan_keywords; internal string? auto_start_henkan_keyword = null; internal bool egg_like_newline = false; internal PeriodStyle period_style { get { return rom_kana_converter.period_style; } set { rom_kana_converter.period_style = value; okuri_rom_kana_converter.period_style = value; } } Rule _typing_rule; internal Rule typing_rule { get { return _typing_rule; } set { _typing_rule = value; rom_kana_converter.rule = _typing_rule.rom_kana; okuri_rom_kana_converter.rule = _typing_rule.rom_kana; } } internal string? lookup_key (KeyEvent key) { var keymap = _typing_rule.keymaps[input_mode].keymap; return_val_if_fail (keymap != null, null); return keymap.lookup_key (key); } internal KeyEvent? where_is (string command) { var keymap = _typing_rule.keymaps[input_mode].keymap; return_val_if_fail (keymap != null, null); return keymap.where_is (command); } internal bool isupper (KeyEvent key, out unichar lower_code) { var command = lookup_key (key); if (command != null && command.has_prefix ("upper-")) { lower_code = (unichar) command[6]; return true; } else if (key.code.isupper()) { lower_code = key.code.tolower(); return true; } lower_code = key.code; return false; } Regex numeric_regex; Regex numeric_ref_regex; internal State (Gee.List dictionaries) { this.dictionaries = dictionaries; this.candidates = new SimpleCandidateList (); this.candidates.selected.connect (candidate_selected); rom_kana_converter = new RomKanaConverter (); okuri_rom_kana_converter = new RomKanaConverter (); auto_start_henkan_keywords = AUTO_START_HENKAN_KEYWORDS; try { _typing_rule = new Rule ("default"); } catch (RuleParseError e) { assert_not_reached (); } try { numeric_regex = new Regex ("[0-9]+"); } catch (GLib.RegexError e) { assert_not_reached (); } try { numeric_ref_regex = new Regex ("#([0-9])"); } catch (GLib.RegexError e) { assert_not_reached (); } reset (); } ~State () { reset (); } void candidate_selected (Candidate c) { output.append (c.output); if (auto_start_henkan_keyword != null) { output.append (auto_start_henkan_keyword); } else if (okuri) { output.append (okuri_rom_kana_converter.output); } var _mode = input_mode; reset (); _input_mode = _mode; } internal void output_surrounding_text () { if (surrounding_text != null) { output.append (surrounding_text.substring (0)); } } internal void reset () { // output and input_mode won't change handler_type = typeof (NoneStateHandler); rom_kana_converter.reset (); okuri_rom_kana_converter.reset (); okuri = false; _typing_rule.get_filter ().reset (); completion_iterator = null; completion.clear (); candidates.clear (); abbrev.erase (); kuten.erase (); auto_start_henkan_keyword = null; surrounding_text = null; surrounding_end = 0; } internal void cancel_okuri () { rom_kana_converter.output += okuri_rom_kana_converter.output; okuri_rom_kana_converter.reset (); okuri = false; } string extract_numerics (string midasi, out int[] numerics) { MatchInfo info = null; int start_pos = 0; var numeric_list = new ArrayList (); var builder = new StringBuilder (); while (true) { try { if (!numeric_regex.match_full (midasi, -1, start_pos, 0, out info)) { break; } } catch (GLib.RegexError e) { return_val_if_reached (midasi); } string numeric = info.fetch (0); int match_start_pos, match_end_pos; info.fetch_pos (0, out match_start_pos, out match_end_pos); numeric_list.add (int.parse (numeric)); builder.append (midasi[start_pos:match_start_pos]); builder.append ("#"); start_pos = match_end_pos; } numerics = numeric_list.to_array (); builder.append (midasi[start_pos:midasi.length]); return builder.str; } string expand_expr (string text) { if (text.has_prefix ("(")) { var reader = new ExprReader (); int index = 0; var node = reader.read_expr (text, ref index); var evaluator = new ExprEvaluator (); var _text = evaluator.eval (node); if (_text != null) { return _text; } } return text; } string expand_numeric_references (string text, int[] numerics) { var builder = new StringBuilder (); MatchInfo info = null; int start_pos = 0; for (int numeric_index = 0; numeric_index < numerics.length; numeric_index++) { try { if (!numeric_ref_regex.match_full (text, -1, start_pos, 0, out info)) { break; } } catch (GLib.RegexError e) { return_if_reached (); } int match_start_pos, match_end_pos; info.fetch_pos (0, out match_start_pos, out match_end_pos); builder.append (text[start_pos:match_start_pos]); string type = info.fetch (1); switch (type[0]) { case '0': case '1': case '2': case '3': case '5': builder.append ( Util.get_numeric ( numerics[numeric_index], (NumericConversionType) (type[0] - '0'))); break; case '4': case '9': // not supported yet break; default: warning ("unknown numeric conversion type: %s", type); break; } start_pos = match_end_pos; } builder.append (text[start_pos:text.length]); return builder.str; } internal void lookup (string midasi, bool okuri = false) { candidates.clear (); int[] numerics = new int[0]; lookup_internal (midasi, numerics, okuri); var numeric_midasi = extract_numerics (midasi, out numerics); lookup_internal (numeric_midasi, numerics, okuri); candidates.add_candidates_end (); } void lookup_internal (string midasi, int[] numerics, bool okuri = false) { foreach (var dict in dictionaries) { var _candidates = dict.lookup (midasi, okuri); foreach (var candidate in _candidates) { var text = candidate.text; text = expand_expr (text); text = expand_numeric_references (text, numerics); candidate.output = text; // annotation may be an expression if (candidate.annotation != null) { candidate.annotation = expand_expr ( candidate.annotation); } } candidates.add_candidates (_candidates); } } internal void purge_candidate (Candidate candidate) { foreach (var dict in dictionaries) { if (!dict.read_only) { dict.purge_candidate (candidate); } } } internal void completion_start (string midasi) { foreach (var dict in dictionaries) { string[] _completion = dict.complete (midasi); foreach (var word in _completion) { completion.add (word); } completion.sort (); } completion_iterator = completion.iterator (); if (!completion_iterator.first ()) { completion_iterator = null; } } internal signal bool recursive_edit_abort (); internal signal bool recursive_edit_end (string text); internal signal void recursive_edit_start (string midasi, bool okuri); internal UnicodeString? surrounding_text; internal uint surrounding_end; internal signal bool retrieve_surrounding_text (out string text, out uint cursor_pos); internal signal bool delete_surrounding_text (int offset, uint nchars); internal string get_yomi () { StringBuilder builder = new StringBuilder (); if (abbrev.len > 0) { builder.append (abbrev.str); } else if (okuri) { builder.append (rom_kana_converter.output); builder.append ("*"); builder.append (okuri_rom_kana_converter.output); builder.append (okuri_rom_kana_converter.preedit); } else { builder.append (rom_kana_converter.output); builder.append (rom_kana_converter.preedit); } return builder.str; } } delegate bool CommandHandler (State state); abstract class StateHandler : Object { internal abstract bool process_key_event (State state, ref KeyEvent key); internal abstract string get_preedit (State state, out uint underline_offset, out uint underline_nchars); internal virtual string get_output (State state) { return state.output.str; } } class NoneStateHandler : StateHandler { static const Entry[] input_mode_commands = { { "set-input-mode-hiragana", InputMode.HIRAGANA }, { "set-input-mode-katakana", InputMode.KATAKANA }, { "set-input-mode-hankaku-katakana", InputMode.HANKAKU_KATAKANA }, { "set-input-mode-latin", InputMode.LATIN }, { "set-input-mode-wide-latin", InputMode.WIDE_LATIN } }; internal override bool process_key_event (State state, ref KeyEvent key) { var command = state.lookup_key (key); // check abort and commit event if (command == "abort") { bool retval; if (state.rom_kana_converter.preedit.length > 0) { retval = true; } else { retval = state.recursive_edit_abort (); } state.reset (); return retval; } else if (command == "commit" || command == "commit-unhandled") { bool retval; if (state.rom_kana_converter.preedit.length > 0) { retval = true; } else if (state.output.str.length == 0) { retval = state.recursive_edit_abort (); } else { retval = state.recursive_edit_end (state.output.str); } state.reset (); return retval; } else if (command == "start-preedit" || command == "start-preedit-kana") { string? text; uint cursor_pos; if (state.retrieve_surrounding_text (out text, out cursor_pos)) { state.surrounding_text = new UnicodeString ( text[text.index_of_nth_char (cursor_pos):text.length]); state.surrounding_end = 0; state.delete_surrounding_text ( 0, state.surrounding_text.length); } state.handler_type = typeof (StartStateHandler); return true; } // check mode switch events if (command != null && command.has_prefix ("set-input-mode-") && !((state.input_mode == InputMode.HIRAGANA || state.input_mode == InputMode.KATAKANA || state.input_mode == InputMode.HANKAKU_KATAKANA) && key.modifiers == 0 && state.rom_kana_converter.can_consume (key.code))) { foreach (var entry in input_mode_commands) { if (entry.key == command) { state.rom_kana_converter.output_nn_if_any (); state.input_mode = entry.value; return true; } } } // check editing events if (command == "delete") { if (state.rom_kana_converter.delete ()) { return true; } if (state.output.len > 0) { state.output.truncate ( state.output.str.index_of_nth_char ( state.output.str.char_count () - 1)); return true; } return false; } switch (state.input_mode) { case InputMode.HIRAGANA: case InputMode.KATAKANA: case InputMode.HANKAKU_KATAKANA: unichar lower_code; if (state.isupper (key, out lower_code) && state.rom_kana_converter.is_valid (lower_code)) { state.rom_kana_converter.output_nn_if_any (); state.output.append (state.rom_kana_converter.output); state.rom_kana_converter.output = ""; state.handler_type = typeof (StartStateHandler); return false; } else if (key.modifiers == 0 && !state.rom_kana_converter.can_consume (key.code, true)) { if (command == "abbrev") { state.handler_type = typeof (AbbrevStateHandler); return true; } else if (command == "kuten") { state.handler_type = typeof (KutenStateHandler); return true; } } if (command != null && command.has_prefix ("insert-kana-")) { var kana = Util.convert_by_input_mode ( command["insert-kana-".length:command.length], state.input_mode); state.output.append (kana); return true; } if (key.modifiers == 0) { if (state.rom_kana_converter.append (key.code)) { state.output.append (state.rom_kana_converter.output); state.rom_kana_converter.output = ""; return true; } else if (0x20 <= key.code && key.code <= 0x7F) { state.output.append_c ((char) key.code); state.rom_kana_converter.output = ""; return true; } else { state.rom_kana_converter.output = ""; return false; } } break; case InputMode.LATIN: if (key.modifiers == 0 && 0x20 <= key.code && key.code <= 0x7F) { state.output.append_c ((char) key.code); return true; } break; case InputMode.WIDE_LATIN: if (key.modifiers == 0 && 0x20 <= key.code && key.code <= 0x7F) { state.output.append_unichar ( Util.get_wide_latin_char ((char) key.code)); return true; } break; } return false; } internal override string get_preedit (State state, out uint underline_offset, out uint underline_nchars) { StringBuilder builder = new StringBuilder (); builder.append (state.rom_kana_converter.preedit); underline_offset = underline_nchars = 0; return builder.str; } } class KutenStateHandler : StateHandler { EncodingConverter converter; internal KutenStateHandler () { try { // use EUC-JP to get JISX0208 characters by code // point, this works because EUC-JP maps JISX0208 // characters to equivalent bytes. See: // https://en.wikipedia.org/wiki/EUC-JP // this is generally a wrong approach though converter = new EncodingConverter ("EUC-JP"); } catch (GLib.Error e) { converter = null; assert_not_reached (); } } int hex_char_to_int (char hex) { if ('0' <= hex && hex <= '9') { return hex - '0'; } else if ('a' <= hex.tolower () && hex.tolower () <= 'f') { return hex - 'a' + 10; } return -1; } string parse_hex (string hex) { var builder = new StringBuilder (); for (var i = 0; i < hex.length - 1; i += 2) { int c = (hex_char_to_int (hex[i]) << 4) | hex_char_to_int (hex[i + 1]); builder.append_c ((char)c); } return builder.str; } internal override bool process_key_event (State state, ref KeyEvent key) { var command = state.lookup_key (key); if (command == "abort") { state.reset (); return true; } else if (command == "commit-unhandled" && (state.kuten.len == 4 || state.kuten.len == 6)) { if (converter != null) { var euc = parse_hex (state.kuten.str); try { state.output.append (converter.decode (euc)); } catch (GLib.Error e) { warning ("can't decode %s in EUC-JP: %s", euc, e.message); } } state.reset (); return true; } else if (command == "delete" && state.kuten.len > 0) { state.kuten.truncate (state.kuten.len - 1); return true; } else if (key.modifiers == 0 && (('a' <= key.code && key.code <= 'f') || ('A' <= key.code && key.code <= 'F') || ('0' <= key.code && key.code <= '9')) && state.kuten.len < 6) { state.kuten.append_unichar (key.code); return true; } return true; } internal override string get_preedit (State state, out uint underline_offset, out uint underline_nchars) { underline_offset = underline_nchars = 0; return _("Kuten([MM]KKTT) ") + state.kuten.str; } } class AbbrevStateHandler : StateHandler { internal override bool process_key_event (State state, ref KeyEvent key) { var command = state.lookup_key (key); if (command == "abort") { state.reset (); return true; } else if (command == "next-candidate") { state.handler_type = typeof (SelectStateHandler); return false; } else if ((key.modifiers & ModifierType.CONTROL_MASK) != 0 && key.code == 'q') { state.output.assign ( Util.get_wide_latin (state.abbrev.str)); state.reset (); return true; } else if (command == "delete") { if (state.abbrev.len > 0) { state.abbrev.truncate (state.abbrev.len - 1); } else { state.reset (); } return true; } else if (key.modifiers == 0 && 0x20 <= key.code && key.code <= 0x7E) { state.abbrev.append_unichar (key.code); return true; } return true; } internal override string get_preedit (State state, out uint underline_offset, out uint underline_nchars) { underline_offset = underline_nchars = 0; return "â–½" + state.abbrev.str; } } class StartStateHandler : StateHandler { static const Entry[] end_preedit_commands = { { "set-input-mode-hiragana", InputMode.HIRAGANA }, { "set-input-mode-katakana", InputMode.KATAKANA }, { "set-input-mode-hankaku-katakana", InputMode.HANKAKU_KATAKANA } }; internal override bool process_key_event (State state, ref KeyEvent key) { var command = state.lookup_key (key); if (command == "abort") { state.reset (); return true; } // â–½ã²ã‚‰ãŒãª + 'q' => ヒラガナ // which should not change input mode (Issue#8) foreach (var entry in end_preedit_commands) { if (entry.key == command) { state.rom_kana_converter.output_nn_if_any (); state.output.assign ( Util.convert_by_input_mode ( state.rom_kana_converter.output, entry.value)); if (state.surrounding_text != null) { state.output.append (state.surrounding_text.substring ( state.surrounding_end)); } state.rom_kana_converter.reset (); state.handler_type = typeof (NoneStateHandler); return true; } } if (command == "next-candidate") { if (state.rom_kana_converter.output.length == 0) { if (state.surrounding_text != null) { state.output.append (state.surrounding_text.substring ( state.surrounding_end)); } state.reset (); return true; } state.handler_type = typeof (SelectStateHandler); return false; } else if (command == "commit") { state.output.append (state.rom_kana_converter.output); if (state.surrounding_text != null) { state.output.append (state.surrounding_text.substring ( state.surrounding_end)); } state.reset (); return true; } else if (command == "commit-unhandled") { state.output.append (state.rom_kana_converter.output); if (state.surrounding_text != null) { state.output.append (state.surrounding_text.substring ( state.surrounding_end)); } state.reset (); return state.egg_like_newline; } else if (command == "delete") { if (state.okuri_rom_kana_converter.delete ()) { if (state.okuri_rom_kana_converter.preedit.length == 0) { state.okuri = false; } return true; } else if (state.rom_kana_converter.delete ()) { return true; } else if (state.output.len > 0) { state.output.truncate ( state.output.str.index_of_nth_char ( state.output.str.char_count () - 1)); return true; } state.handler_type = typeof (NoneStateHandler); return true; } else if (command == "complete") { if (state.completion_iterator == null) { state.completion_start (state.rom_kana_converter.output); } if (state.completion_iterator != null) { string midasi = state.completion_iterator.get (); state.rom_kana_converter.reset (); state.rom_kana_converter.output = midasi; if (state.completion_iterator.has_next ()) { state.completion_iterator.next (); } } return true; } else if (command == "special-midasi") { if (state.rom_kana_converter.output.length > 0) { state.rom_kana_converter.append (key.code.tolower ()); state.handler_type = typeof (SelectStateHandler); key = state.where_is ("next-candidate"); return false; } else { state.rom_kana_converter.append (key.code); return true; } } else if (command != null && command.has_prefix ("insert-kana-")) { var kana = Util.convert_by_input_mode ( command["insert-kana-".length:command.length], state.input_mode); if (state.okuri) { state.okuri_rom_kana_converter.output = kana; state.handler_type = typeof (SelectStateHandler); key = state.where_is ("next-candidate"); return false; } else { state.rom_kana_converter.output = kana; return true; } } else if (command == "start-preedit") { return true; } else if (command == "start-preedit-kana") { if (state.rom_kana_converter.output.length > 0) { state.okuri = true; } return true; } else if (command == "expand-preedit") { if (state.surrounding_text != null && state.surrounding_end < state.surrounding_text.length) { state.surrounding_end++; state.rom_kana_converter.output = state.surrounding_text.substring ( 0, state.surrounding_end); return true; } } else if (command == "shrink-preedit") { if (state.surrounding_text != null && state.surrounding_end > 0) { state.surrounding_end--; state.rom_kana_converter.output = state.surrounding_text.substring ( 0, state.surrounding_end); return true; } } unichar lower_code; bool is_upper = state.isupper (key, out lower_code); if (state.rom_kana_converter.is_valid (lower_code)) { // okuri_rom_kana_converter is started or being started if (state.okuri || (is_upper && state.rom_kana_converter.output.length > 0 && !state.rom_kana_converter.can_consume ( lower_code, true))) { if (!state.okuri && state.rom_kana_converter.can_consume ( lower_code, true, false)) { state.rom_kana_converter.append (lower_code); } state.rom_kana_converter.output_nn_if_any (); state.okuri = true; // when okuri-kana is "N [AIUEO]", flush "nn" first if (is_upper) state.okuri_rom_kana_converter.output_nn_if_any (); state.okuri_rom_kana_converter.append (lower_code); if (state.okuri_rom_kana_converter.preedit.length == 0) { state.handler_type = typeof (SelectStateHandler); key = state.where_is ("next-candidate"); return false; } return true; } else { state.rom_kana_converter.append (lower_code); if (check_auto_conversion (state, key)) { state.handler_type = typeof (SelectStateHandler); key = state.where_is ("next-candidate"); return false; } return true; } } else if (key.modifiers == 0) { state.rom_kana_converter.append (lower_code); if (check_auto_conversion (state, key)) { state.handler_type = typeof (SelectStateHandler); key = state.where_is ("next-candidate"); return false; } return true; } // mark any other key events are consumed here return true; } internal override string get_preedit (State state, out uint underline_offset, out uint underline_nchars) { StringBuilder builder = new StringBuilder ("â–½"); underline_offset = underline_nchars = 0; builder.append (state.get_yomi ()); if (state.surrounding_text != null) { underline_offset = 1; underline_nchars = builder.str.char_count () - 1; builder.append (state.surrounding_text.substring ( state.surrounding_end, -1)); } return builder.str; } bool check_auto_conversion (State state, KeyEvent key) { foreach (var keyword in state.auto_start_henkan_keywords) { if (state.rom_kana_converter.output.length > keyword.length && state.rom_kana_converter.output.has_suffix (keyword)) { state.auto_start_henkan_keyword = keyword; state.rom_kana_converter.output = state.rom_kana_converter.output[0:-keyword.length]; state.handler_type = typeof (SelectStateHandler); return true; } } return false; } } class SelectStateHandler : StateHandler { internal override bool process_key_event (State state, ref KeyEvent key) { var command = state.lookup_key (key); if (command == "previous-candidate") { if (!state.candidates.previous ()) { state.candidates.clear (); state.handler_type = typeof (StartStateHandler); } return true; } else if (command == "purge-candidate") { var candidate = state.candidates.get (); state.purge_candidate (candidate); state.reset (); return true; } else if (command == "next-candidate") { if (state.candidates.cursor_pos < 0) { string midasi; bool okuri = false; if (state.abbrev.len > 0) { midasi = state.abbrev.str; } else { StringBuilder builder = new StringBuilder (); state.rom_kana_converter.output_nn_if_any (); builder.append (state.rom_kana_converter.output); if (state.okuri) { var prefix = Util.get_okurigana_prefix ( Util.get_hiragana ( state.okuri_rom_kana_converter.output)); if (prefix != null) { builder.append (prefix); okuri = true; } } midasi = Util.get_hiragana (builder.str); } state.lookup (midasi, okuri); if (state.candidates.size > 0) { return true; } } else if (state.candidates.next ()) { return true; } // no more candidates state.recursive_edit_start (state.get_yomi (), state.okuri); if (state.candidates.size == 0) { state.candidates.clear (); state.handler_type = typeof (StartStateHandler); } return true; } else if (command == "abort") { state.candidates.clear (); state.cancel_okuri (); state.handler_type = typeof (StartStateHandler); return true; } else { string surrounding_after = ""; if (state.surrounding_text != null) { surrounding_after = state.surrounding_text.substring ( state.surrounding_end); } state.candidates.select (); state.output.append (surrounding_after); if (command == "special-midasi") { state.candidates.clear (); state.handler_type = typeof (StartStateHandler); return false; } else { state.reset (); if ((key.modifiers == 0 && 0x20 <= key.code && key.code <= 0x7E) || command == "delete" || (!state.egg_like_newline && command == "commit-unhandled")) { return false; } else { // mark any other key events are consumed here return true; } } } } internal override string get_preedit (State state, out uint underline_offset, out uint underline_nchars) { StringBuilder builder = new StringBuilder ("â–¼"); underline_offset = underline_nchars = 0; if (state.candidates.cursor_pos >= 0) { var c = state.candidates.get (); builder.append (c.output); } else { builder.append (state.rom_kana_converter.output); } if (state.auto_start_henkan_keyword != null) { builder.append (state.auto_start_henkan_keyword); } else if (state.okuri) { builder.append (state.okuri_rom_kana_converter.output); } else if (state.surrounding_text != null) { underline_offset = 1; underline_nchars = builder.str.char_count () - 1; builder.append (state.surrounding_text.substring ( state.surrounding_end, -1)); } return builder.str; } } } libskk-1.0.0/libskk/kana-kan.c0000664000076400007640000015475612016556643013060 00000000000000/* kana-kan.c generated by valac 0.16.0, the Vala compiler * generated from kana-kan.vala, do not modify */ /* A naive kana-kanji converter based on:*/ /* http://gihyo.jp/magazine/wdpress/archive/2011/vol64 (Japanese)*/ /* dictionary and score map generation scripts can be found at:*/ /* http://gihyo.jp/assets/files/magazine/wdpress/2011/64/WDB64-toku3-kanakan.zip*/ /* See tests/kana-kan.c for example.*/ #include #include #include #include #include #include #include #include #define SKK_TYPE_KANA_KAN_CONVERTER (skk_kana_kan_converter_get_type ()) #define SKK_KANA_KAN_CONVERTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KANA_KAN_CONVERTER, SkkKanaKanConverter)) #define SKK_KANA_KAN_CONVERTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KANA_KAN_CONVERTER, SkkKanaKanConverterClass)) #define SKK_IS_KANA_KAN_CONVERTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KANA_KAN_CONVERTER)) #define SKK_IS_KANA_KAN_CONVERTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KANA_KAN_CONVERTER)) #define SKK_KANA_KAN_CONVERTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KANA_KAN_CONVERTER, SkkKanaKanConverterClass)) typedef struct _SkkKanaKanConverter SkkKanaKanConverter; typedef struct _SkkKanaKanConverterClass SkkKanaKanConverterClass; typedef struct _SkkKanaKanConverterPrivate SkkKanaKanConverterPrivate; #define SKK_TYPE_KANA_KAN_DICT (skk_kana_kan_dict_get_type ()) #define SKK_KANA_KAN_DICT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KANA_KAN_DICT, SkkKanaKanDict)) #define SKK_KANA_KAN_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KANA_KAN_DICT, SkkKanaKanDictClass)) #define SKK_IS_KANA_KAN_DICT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KANA_KAN_DICT)) #define SKK_IS_KANA_KAN_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KANA_KAN_DICT)) #define SKK_KANA_KAN_DICT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KANA_KAN_DICT, SkkKanaKanDictClass)) typedef struct _SkkKanaKanDict SkkKanaKanDict; typedef struct _SkkKanaKanDictClass SkkKanaKanDictClass; #define SKK_TYPE_KANA_KAN_SCORE_MAP (skk_kana_kan_score_map_get_type ()) #define SKK_KANA_KAN_SCORE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KANA_KAN_SCORE_MAP, SkkKanaKanScoreMap)) #define SKK_KANA_KAN_SCORE_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KANA_KAN_SCORE_MAP, SkkKanaKanScoreMapClass)) #define SKK_IS_KANA_KAN_SCORE_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KANA_KAN_SCORE_MAP)) #define SKK_IS_KANA_KAN_SCORE_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KANA_KAN_SCORE_MAP)) #define SKK_KANA_KAN_SCORE_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KANA_KAN_SCORE_MAP, SkkKanaKanScoreMapClass)) typedef struct _SkkKanaKanScoreMap SkkKanaKanScoreMap; typedef struct _SkkKanaKanScoreMapClass SkkKanaKanScoreMapClass; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) #define SKK_TYPE_KANA_KAN_GRAPH (skk_kana_kan_graph_get_type ()) #define SKK_KANA_KAN_GRAPH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KANA_KAN_GRAPH, SkkKanaKanGraph)) #define SKK_KANA_KAN_GRAPH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KANA_KAN_GRAPH, SkkKanaKanGraphClass)) #define SKK_IS_KANA_KAN_GRAPH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KANA_KAN_GRAPH)) #define SKK_IS_KANA_KAN_GRAPH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KANA_KAN_GRAPH)) #define SKK_KANA_KAN_GRAPH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KANA_KAN_GRAPH, SkkKanaKanGraphClass)) typedef struct _SkkKanaKanGraph SkkKanaKanGraph; typedef struct _SkkKanaKanGraphClass SkkKanaKanGraphClass; #define _g_free0(var) (var = (g_free (var), NULL)) #define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL))) typedef struct _SkkKanaKanGraphPrivate SkkKanaKanGraphPrivate; #define SKK_TYPE_KANA_KAN_NODE (skk_kana_kan_node_get_type ()) #define SKK_KANA_KAN_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KANA_KAN_NODE, SkkKanaKanNode)) #define SKK_KANA_KAN_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KANA_KAN_NODE, SkkKanaKanNodeClass)) #define SKK_IS_KANA_KAN_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KANA_KAN_NODE)) #define SKK_IS_KANA_KAN_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KANA_KAN_NODE)) #define SKK_KANA_KAN_NODE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KANA_KAN_NODE, SkkKanaKanNodeClass)) typedef struct _SkkKanaKanNode SkkKanaKanNode; typedef struct _SkkKanaKanNodeClass SkkKanaKanNodeClass; typedef struct _SkkKanaKanNodePrivate SkkKanaKanNodePrivate; typedef struct _SkkKanaKanDictPrivate SkkKanaKanDictPrivate; typedef struct _SkkKanaKanScoreMapPrivate SkkKanaKanScoreMapPrivate; #define SKK_TYPE_UNICODE_STRING (skk_unicode_string_get_type ()) #define SKK_UNICODE_STRING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_UNICODE_STRING, SkkUnicodeString)) #define SKK_UNICODE_STRING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_UNICODE_STRING, SkkUnicodeStringClass)) #define SKK_IS_UNICODE_STRING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_UNICODE_STRING)) #define SKK_IS_UNICODE_STRING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_UNICODE_STRING)) #define SKK_UNICODE_STRING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_UNICODE_STRING, SkkUnicodeStringClass)) typedef struct _SkkUnicodeString SkkUnicodeString; typedef struct _SkkUnicodeStringClass SkkUnicodeStringClass; typedef struct _SkkUnicodeStringPrivate SkkUnicodeStringPrivate; struct _SkkKanaKanConverter { GObject parent_instance; SkkKanaKanConverterPrivate * priv; }; struct _SkkKanaKanConverterClass { GObjectClass parent_class; }; struct _SkkKanaKanConverterPrivate { SkkKanaKanDict* dict; SkkKanaKanScoreMap* map; }; struct _SkkKanaKanGraph { GObject parent_instance; SkkKanaKanGraphPrivate * priv; GeeArrayList** nodes; gint nodes_length1; gint _nodes_size_; SkkKanaKanNode* bos; SkkKanaKanNode* eos; }; struct _SkkKanaKanGraphClass { GObjectClass parent_class; }; struct _SkkKanaKanNode { GObject parent_instance; SkkKanaKanNodePrivate * priv; gchar* word; gchar* pron; gint endpos; gdouble score; SkkKanaKanNode* prev; }; struct _SkkKanaKanNodeClass { GObjectClass parent_class; }; struct _SkkKanaKanDict { GObject parent_instance; SkkKanaKanDictPrivate * priv; }; struct _SkkKanaKanDictClass { GObjectClass parent_class; }; struct _SkkKanaKanDictPrivate { GeeHashMap* dict; }; struct _SkkKanaKanScoreMap { GObject parent_instance; SkkKanaKanScoreMapPrivate * priv; }; struct _SkkKanaKanScoreMapClass { GObjectClass parent_class; }; struct _SkkKanaKanScoreMapPrivate { GeeMap* map; }; struct _SkkKanaKanGraphPrivate { SkkKanaKanDict* dict; }; struct _SkkUnicodeString { GObject parent_instance; SkkUnicodeStringPrivate * priv; gint length; }; struct _SkkUnicodeStringClass { GObjectClass parent_class; }; static gpointer skk_kana_kan_converter_parent_class = NULL; static gpointer skk_kana_kan_dict_parent_class = NULL; static gpointer skk_kana_kan_score_map_parent_class = NULL; static gpointer skk_kana_kan_node_parent_class = NULL; static gpointer skk_kana_kan_graph_parent_class = NULL; GType skk_kana_kan_converter_get_type (void) G_GNUC_CONST; GType skk_kana_kan_dict_get_type (void) G_GNUC_CONST; GType skk_kana_kan_score_map_get_type (void) G_GNUC_CONST; #define SKK_KANA_KAN_CONVERTER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SKK_TYPE_KANA_KAN_CONVERTER, SkkKanaKanConverterPrivate)) enum { SKK_KANA_KAN_CONVERTER_DUMMY_PROPERTY }; SkkKanaKanConverter* skk_kana_kan_converter_new (SkkKanaKanDict* dict, SkkKanaKanScoreMap* map); SkkKanaKanConverter* skk_kana_kan_converter_construct (GType object_type, SkkKanaKanDict* dict, SkkKanaKanScoreMap* map); gchar* skk_kana_kan_converter_convert (SkkKanaKanConverter* self, const gchar* kana); SkkKanaKanGraph* skk_kana_kan_graph_new (SkkKanaKanDict* dict, const gchar* str); SkkKanaKanGraph* skk_kana_kan_graph_construct (GType object_type, SkkKanaKanDict* dict, const gchar* str); GType skk_kana_kan_graph_get_type (void) G_GNUC_CONST; static gchar** skk_kana_kan_converter_viterbi (SkkKanaKanGraph* graph, SkkKanaKanScoreMap* map, int* result_length1); GType skk_kana_kan_node_get_type (void) G_GNUC_CONST; gboolean skk_kana_kan_node_is_bos (SkkKanaKanNode* self); gdouble skk_kana_kan_score_map_get_node_score (SkkKanaKanScoreMap* self, SkkKanaKanNode* node); GeeArrayList* skk_kana_kan_graph_get_prev_nodes (SkkKanaKanGraph* self, SkkKanaKanNode* node); gdouble skk_kana_kan_score_map_get_edge_score (SkkKanaKanScoreMap* self, SkkKanaKanNode* prev_node, SkkKanaKanNode* node); static void skk_kana_kan_converter_finalize (GObject* obj); #define SKK_KANA_KAN_DICT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SKK_TYPE_KANA_KAN_DICT, SkkKanaKanDictPrivate)) enum { SKK_KANA_KAN_DICT_DUMMY_PROPERTY }; SkkKanaKanDict* skk_kana_kan_dict_new (const gchar* path, GError** error); SkkKanaKanDict* skk_kana_kan_dict_construct (GType object_type, const gchar* path, GError** error); void skk_kana_kan_dict_add (SkkKanaKanDict* self, const gchar* pron, const gchar* word); GeeSet* skk_kana_kan_dict_lookup (SkkKanaKanDict* self, const gchar* pron); static void skk_kana_kan_dict_finalize (GObject* obj); #define SKK_KANA_KAN_SCORE_MAP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SKK_TYPE_KANA_KAN_SCORE_MAP, SkkKanaKanScoreMapPrivate)) enum { SKK_KANA_KAN_SCORE_MAP_DUMMY_PROPERTY }; static gdouble* _double_dup (gdouble* self); SkkKanaKanScoreMap* skk_kana_kan_score_map_new (const gchar* path, SkkKanaKanDict* dict, GError** error); SkkKanaKanScoreMap* skk_kana_kan_score_map_construct (GType object_type, const gchar* path, SkkKanaKanDict* dict, GError** error); static gdouble skk_kana_kan_score_map_get_score (SkkKanaKanScoreMap* self, const gchar* feature); static void skk_kana_kan_score_map_finalize (GObject* obj); enum { SKK_KANA_KAN_NODE_DUMMY_PROPERTY, SKK_KANA_KAN_NODE_LENGTH }; SkkKanaKanNode* skk_kana_kan_node_new (const gchar* word, const gchar* pron, gint endpos); SkkKanaKanNode* skk_kana_kan_node_construct (GType object_type, const gchar* word, const gchar* pron, gint endpos); gboolean skk_kana_kan_node_is_eos (SkkKanaKanNode* self); gint skk_kana_kan_node_get_length (SkkKanaKanNode* self); static void skk_kana_kan_node_finalize (GObject* obj); static void _vala_skk_kana_kan_node_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); #define SKK_KANA_KAN_GRAPH_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SKK_TYPE_KANA_KAN_GRAPH, SkkKanaKanGraphPrivate)) enum { SKK_KANA_KAN_GRAPH_DUMMY_PROPERTY }; SkkUnicodeString* skk_unicode_string_new (const gchar* str); SkkUnicodeString* skk_unicode_string_construct (GType object_type, const gchar* str); GType skk_unicode_string_get_type (void) G_GNUC_CONST; gchar* skk_unicode_string_substring (SkkUnicodeString* self, glong offset, glong len); static void skk_kana_kan_graph_finalize (GObject* obj); static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func); static gint _vala_array_length (gpointer array); static gpointer _g_object_ref0 (gpointer self) { return self ? g_object_ref (self) : NULL; } SkkKanaKanConverter* skk_kana_kan_converter_construct (GType object_type, SkkKanaKanDict* dict, SkkKanaKanScoreMap* map) { SkkKanaKanConverter * self = NULL; SkkKanaKanDict* _tmp0_; SkkKanaKanDict* _tmp1_; SkkKanaKanScoreMap* _tmp2_; SkkKanaKanScoreMap* _tmp3_; g_return_val_if_fail (dict != NULL, NULL); g_return_val_if_fail (map != NULL, NULL); self = (SkkKanaKanConverter*) g_object_new (object_type, NULL); _tmp0_ = dict; _tmp1_ = _g_object_ref0 (_tmp0_); _g_object_unref0 (self->priv->dict); self->priv->dict = _tmp1_; _tmp2_ = map; _tmp3_ = _g_object_ref0 (_tmp2_); _g_object_unref0 (self->priv->map); self->priv->map = _tmp3_; return self; } SkkKanaKanConverter* skk_kana_kan_converter_new (SkkKanaKanDict* dict, SkkKanaKanScoreMap* map) { return skk_kana_kan_converter_construct (SKK_TYPE_KANA_KAN_CONVERTER, dict, map); } gchar* skk_kana_kan_converter_convert (SkkKanaKanConverter* self, const gchar* kana) { gchar* result = NULL; SkkKanaKanDict* _tmp0_; const gchar* _tmp1_; SkkKanaKanGraph* _tmp2_; SkkKanaKanGraph* graph; GString* _tmp3_; GString* builder; SkkKanaKanGraph* _tmp4_; SkkKanaKanScoreMap* _tmp5_; gint _tmp6_ = 0; gchar** _tmp7_ = NULL; gchar** words; gint words_length1; gint _words_size_; gchar** _tmp8_; gint _tmp8__length1; GString* _tmp12_; const gchar* _tmp13_; gchar* _tmp14_; g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (kana != NULL, NULL); _tmp0_ = self->priv->dict; _tmp1_ = kana; _tmp2_ = skk_kana_kan_graph_new (_tmp0_, _tmp1_); graph = _tmp2_; _tmp3_ = g_string_new (""); builder = _tmp3_; _tmp4_ = graph; _tmp5_ = self->priv->map; _tmp7_ = skk_kana_kan_converter_viterbi (_tmp4_, _tmp5_, &_tmp6_); words = _tmp7_; words_length1 = _tmp6_; _words_size_ = words_length1; _tmp8_ = words; _tmp8__length1 = words_length1; { gchar** word_collection = NULL; gint word_collection_length1 = 0; gint _word_collection_size_ = 0; gint word_it = 0; word_collection = _tmp8_; word_collection_length1 = _tmp8__length1; for (word_it = 0; word_it < _tmp8__length1; word_it = word_it + 1) { gchar* _tmp9_; gchar* word = NULL; _tmp9_ = g_strdup (word_collection[word_it]); word = _tmp9_; { GString* _tmp10_; const gchar* _tmp11_; _tmp10_ = builder; _tmp11_ = word; g_string_append (_tmp10_, _tmp11_); _g_free0 (word); } } } _tmp12_ = builder; _tmp13_ = _tmp12_->str; _tmp14_ = g_strdup (_tmp13_); result = _tmp14_; words = (_vala_array_free (words, words_length1, (GDestroyNotify) g_free), NULL); _g_string_free0 (builder); _g_object_unref0 (graph); return result; } static gchar** skk_kana_kan_converter_viterbi (SkkKanaKanGraph* graph, SkkKanaKanScoreMap* map, int* result_length1) { gchar** result = NULL; SkkKanaKanGraph* _tmp0_; GeeArrayList** _tmp1_; gint _tmp1__length1; GeeArrayList* _tmp49_; GeeArrayList* _result_; SkkKanaKanGraph* _tmp50_; SkkKanaKanNode* _tmp51_; SkkKanaKanNode* _tmp52_; SkkKanaKanNode* _tmp53_; SkkKanaKanNode* node; GeeArrayList* _tmp62_; gint _tmp63_ = 0; gpointer* _tmp64_ = NULL; gchar** _tmp65_; gint _tmp65__length1; g_return_val_if_fail (graph != NULL, NULL); g_return_val_if_fail (map != NULL, NULL); _tmp0_ = graph; _tmp1_ = _tmp0_->nodes; _tmp1__length1 = _tmp0_->nodes_length1; { GeeArrayList** nodes_collection = NULL; gint nodes_collection_length1 = 0; gint _nodes_collection_size_ = 0; gint nodes_it = 0; nodes_collection = _tmp1_; nodes_collection_length1 = _tmp1__length1; for (nodes_it = 0; nodes_it < _tmp1__length1; nodes_it = nodes_it + 1) { GeeArrayList* _tmp2_; GeeArrayList* nodes = NULL; _tmp2_ = _g_object_ref0 (nodes_collection[nodes_it]); nodes = _tmp2_; { { GeeArrayList* _tmp3_; GeeArrayList* _tmp4_; GeeArrayList* _node_list; GeeArrayList* _tmp5_; gint _tmp6_; gint _tmp7_; gint _node_size; gint _node_index; _tmp3_ = nodes; _tmp4_ = _g_object_ref0 (_tmp3_); _node_list = _tmp4_; _tmp5_ = _node_list; _tmp6_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp5_); _tmp7_ = _tmp6_; _node_size = _tmp7_; _node_index = -1; while (TRUE) { gint _tmp8_; gint _tmp9_; gint _tmp10_; GeeArrayList* _tmp11_; gint _tmp12_; gpointer _tmp13_ = NULL; SkkKanaKanNode* node; SkkKanaKanNode* _tmp14_; gboolean _tmp15_ = FALSE; SkkKanaKanNode* _tmp16_; SkkKanaKanScoreMap* _tmp17_; SkkKanaKanNode* _tmp18_; gdouble _tmp19_ = 0.0; gdouble node_score; SkkKanaKanGraph* _tmp20_; SkkKanaKanNode* _tmp21_; GeeArrayList* _tmp22_ = NULL; GeeArrayList* prev_nodes; _tmp8_ = _node_index; _node_index = _tmp8_ + 1; _tmp9_ = _node_index; _tmp10_ = _node_size; if (!(_tmp9_ < _tmp10_)) { break; } _tmp11_ = _node_list; _tmp12_ = _node_index; _tmp13_ = gee_abstract_list_get ((GeeAbstractList*) _tmp11_, _tmp12_); node = (SkkKanaKanNode*) _tmp13_; _tmp14_ = node; _tmp15_ = skk_kana_kan_node_is_bos (_tmp14_); if (_tmp15_) { _g_object_unref0 (node); continue; } _tmp16_ = node; _tmp16_->score = -1000000.0; _tmp17_ = map; _tmp18_ = node; _tmp19_ = skk_kana_kan_score_map_get_node_score (_tmp17_, _tmp18_); node_score = _tmp19_; _tmp20_ = graph; _tmp21_ = node; _tmp22_ = skk_kana_kan_graph_get_prev_nodes (_tmp20_, _tmp21_); prev_nodes = _tmp22_; { GeeArrayList* _tmp23_; GeeArrayList* _tmp24_; GeeArrayList* _prev_node_list; GeeArrayList* _tmp25_; gint _tmp26_; gint _tmp27_; gint _prev_node_size; gint _prev_node_index; _tmp23_ = prev_nodes; _tmp24_ = _g_object_ref0 (_tmp23_); _prev_node_list = _tmp24_; _tmp25_ = _prev_node_list; _tmp26_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp25_); _tmp27_ = _tmp26_; _prev_node_size = _tmp27_; _prev_node_index = -1; while (TRUE) { gint _tmp28_; gint _tmp29_; gint _tmp30_; GeeArrayList* _tmp31_; gint _tmp32_; gpointer _tmp33_ = NULL; SkkKanaKanNode* prev_node; SkkKanaKanNode* _tmp34_; gdouble _tmp35_; SkkKanaKanScoreMap* _tmp36_; SkkKanaKanNode* _tmp37_; SkkKanaKanNode* _tmp38_; gdouble _tmp39_ = 0.0; gdouble _tmp40_; gdouble score; gdouble _tmp41_; SkkKanaKanNode* _tmp42_; gdouble _tmp43_; _tmp28_ = _prev_node_index; _prev_node_index = _tmp28_ + 1; _tmp29_ = _prev_node_index; _tmp30_ = _prev_node_size; if (!(_tmp29_ < _tmp30_)) { break; } _tmp31_ = _prev_node_list; _tmp32_ = _prev_node_index; _tmp33_ = gee_abstract_list_get ((GeeAbstractList*) _tmp31_, _tmp32_); prev_node = (SkkKanaKanNode*) _tmp33_; _tmp34_ = prev_node; _tmp35_ = _tmp34_->score; _tmp36_ = map; _tmp37_ = prev_node; _tmp38_ = node; _tmp39_ = skk_kana_kan_score_map_get_edge_score (_tmp36_, _tmp37_, _tmp38_); _tmp40_ = node_score; score = (_tmp35_ + _tmp39_) + _tmp40_; _tmp41_ = score; _tmp42_ = node; _tmp43_ = _tmp42_->score; if (_tmp41_ >= _tmp43_) { SkkKanaKanNode* _tmp44_; gdouble _tmp45_; SkkKanaKanNode* _tmp46_; SkkKanaKanNode* _tmp47_; SkkKanaKanNode* _tmp48_; _tmp44_ = node; _tmp45_ = score; _tmp44_->score = _tmp45_; _tmp46_ = node; _tmp47_ = prev_node; _tmp48_ = _g_object_ref0 (_tmp47_); _g_object_unref0 (_tmp46_->prev); _tmp46_->prev = _tmp48_; } _g_object_unref0 (prev_node); } _g_object_unref0 (_prev_node_list); } _g_object_unref0 (prev_nodes); _g_object_unref0 (node); } _g_object_unref0 (_node_list); } _g_object_unref0 (nodes); } } } _tmp49_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL); _result_ = _tmp49_; _tmp50_ = graph; _tmp51_ = _tmp50_->eos; _tmp52_ = _tmp51_->prev; _tmp53_ = _g_object_ref0 (_tmp52_); node = _tmp53_; while (TRUE) { SkkKanaKanNode* _tmp54_; gboolean _tmp55_ = FALSE; GeeArrayList* _tmp56_; SkkKanaKanNode* _tmp57_; const gchar* _tmp58_; SkkKanaKanNode* _tmp59_; SkkKanaKanNode* _tmp60_; SkkKanaKanNode* _tmp61_; _tmp54_ = node; _tmp55_ = skk_kana_kan_node_is_bos (_tmp54_); if (!(!_tmp55_)) { break; } _tmp56_ = _result_; _tmp57_ = node; _tmp58_ = _tmp57_->word; gee_abstract_list_insert ((GeeAbstractList*) _tmp56_, 0, _tmp58_); _tmp59_ = node; _tmp60_ = _tmp59_->prev; _tmp61_ = _g_object_ref0 (_tmp60_); _g_object_unref0 (node); node = _tmp61_; } _tmp62_ = _result_; _tmp64_ = gee_abstract_collection_to_array ((GeeAbstractCollection*) _tmp62_, &_tmp63_); _tmp65_ = _tmp64_; _tmp65__length1 = _tmp63_; if (result_length1) { *result_length1 = _tmp65__length1; } result = _tmp65_; _g_object_unref0 (node); _g_object_unref0 (_result_); return result; } static void skk_kana_kan_converter_class_init (SkkKanaKanConverterClass * klass) { skk_kana_kan_converter_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (SkkKanaKanConverterPrivate)); G_OBJECT_CLASS (klass)->finalize = skk_kana_kan_converter_finalize; } static void skk_kana_kan_converter_instance_init (SkkKanaKanConverter * self) { self->priv = SKK_KANA_KAN_CONVERTER_GET_PRIVATE (self); } static void skk_kana_kan_converter_finalize (GObject* obj) { SkkKanaKanConverter * self; self = SKK_KANA_KAN_CONVERTER (obj); _g_object_unref0 (self->priv->dict); _g_object_unref0 (self->priv->map); G_OBJECT_CLASS (skk_kana_kan_converter_parent_class)->finalize (obj); } /** * Experimental kana-to-kanji converter using Viterbi algorithm. */ GType skk_kana_kan_converter_get_type (void) { static volatile gsize skk_kana_kan_converter_type_id__volatile = 0; if (g_once_init_enter (&skk_kana_kan_converter_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkKanaKanConverterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_kana_kan_converter_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkKanaKanConverter), 0, (GInstanceInitFunc) skk_kana_kan_converter_instance_init, NULL }; GType skk_kana_kan_converter_type_id; skk_kana_kan_converter_type_id = g_type_register_static (G_TYPE_OBJECT, "SkkKanaKanConverter", &g_define_type_info, 0); g_once_init_leave (&skk_kana_kan_converter_type_id__volatile, skk_kana_kan_converter_type_id); } return skk_kana_kan_converter_type_id__volatile; } static gchar* string_chomp (const gchar* self) { gchar* result = NULL; gchar* _tmp0_ = NULL; gchar* _result_; const gchar* _tmp1_; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = g_strdup (self); _result_ = _tmp0_; _tmp1_ = _result_; g_strchomp (_tmp1_); result = _result_; return result; } SkkKanaKanDict* skk_kana_kan_dict_construct (GType object_type, const gchar* path, GError** error) { SkkKanaKanDict * self = NULL; const gchar* _tmp0_; GFile* _tmp1_ = NULL; GFile* file; GFile* _tmp2_; GFileInputStream* _tmp3_ = NULL; GFileInputStream* _tmp4_; GFileInputStream* _tmp5_; GDataInputStream* _tmp6_; GDataInputStream* _tmp7_; GDataInputStream* input; GError * _inner_error_ = NULL; g_return_val_if_fail (path != NULL, NULL); self = (SkkKanaKanDict*) g_object_new (object_type, NULL); _tmp0_ = path; _tmp1_ = g_file_new_for_path (_tmp0_); file = _tmp1_; _tmp2_ = file; _tmp3_ = g_file_read (_tmp2_, NULL, &_inner_error_); _tmp4_ = _tmp3_; if (_inner_error_ != NULL) { g_propagate_error (error, _inner_error_); _g_object_unref0 (file); _g_object_unref0 (self); return NULL; } _tmp5_ = _tmp4_; _tmp6_ = g_data_input_stream_new ((GInputStream*) _tmp5_); _tmp7_ = _tmp6_; _g_object_unref0 (_tmp5_); input = _tmp7_; while (TRUE) { gsize length = 0UL; GDataInputStream* _tmp8_; gsize _tmp9_ = 0UL; gchar* _tmp10_ = NULL; gchar* line; const gchar* _tmp11_; const gchar* _tmp12_; gchar* _tmp13_ = NULL; gchar* _tmp14_; gchar** _tmp15_; gchar** _tmp16_ = NULL; gchar** _tmp17_; gint _tmp17__length1; gchar** a; gint a_length1; gint _a_size_; gchar** _tmp18_; gint _tmp18__length1; const gchar* _tmp19_; gchar** _tmp20_; gint _tmp20__length1; const gchar* _tmp21_; _tmp8_ = input; _tmp10_ = g_data_input_stream_read_line (_tmp8_, &_tmp9_, NULL, &_inner_error_); length = _tmp9_; line = _tmp10_; if (_inner_error_ != NULL) { g_propagate_error (error, _inner_error_); _g_object_unref0 (input); _g_object_unref0 (file); _g_object_unref0 (self); return NULL; } _tmp11_ = line; if (_tmp11_ == NULL) { _g_free0 (line); break; } _tmp12_ = line; _tmp13_ = string_chomp (_tmp12_); _tmp14_ = _tmp13_; _tmp16_ = _tmp15_ = g_strsplit (_tmp14_, "\t", 0); _tmp17_ = _tmp16_; _tmp17__length1 = _vala_array_length (_tmp15_); _g_free0 (_tmp14_); a = _tmp17_; a_length1 = _tmp17__length1; _a_size_ = a_length1; _tmp18_ = a; _tmp18__length1 = a_length1; _tmp19_ = _tmp18_[0]; _tmp20_ = a; _tmp20__length1 = a_length1; _tmp21_ = _tmp20_[1]; skk_kana_kan_dict_add (self, _tmp19_, _tmp21_); a = (_vala_array_free (a, a_length1, (GDestroyNotify) g_free), NULL); _g_free0 (line); } _g_object_unref0 (input); _g_object_unref0 (file); return self; } SkkKanaKanDict* skk_kana_kan_dict_new (const gchar* path, GError** error) { return skk_kana_kan_dict_construct (SKK_TYPE_KANA_KAN_DICT, path, error); } void skk_kana_kan_dict_add (SkkKanaKanDict* self, const gchar* pron, const gchar* word) { GeeHashMap* _tmp0_; const gchar* _tmp1_; gboolean _tmp2_ = FALSE; GeeHashMap* _tmp7_; const gchar* _tmp8_; gpointer _tmp9_ = NULL; GeeSet* _tmp10_; const gchar* _tmp11_; g_return_if_fail (self != NULL); g_return_if_fail (pron != NULL); g_return_if_fail (word != NULL); _tmp0_ = self->priv->dict; _tmp1_ = pron; _tmp2_ = gee_abstract_map_has_key ((GeeAbstractMap*) _tmp0_, _tmp1_); if (!_tmp2_) { GeeHashMap* _tmp3_; const gchar* _tmp4_; GeeHashSet* _tmp5_; GeeHashSet* _tmp6_; _tmp3_ = self->priv->dict; _tmp4_ = pron; _tmp5_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL); _tmp6_ = _tmp5_; gee_abstract_map_set ((GeeAbstractMap*) _tmp3_, _tmp4_, (GeeSet*) _tmp6_); _g_object_unref0 (_tmp6_); } _tmp7_ = self->priv->dict; _tmp8_ = pron; _tmp9_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp7_, _tmp8_); _tmp10_ = (GeeSet*) _tmp9_; _tmp11_ = word; gee_collection_add ((GeeCollection*) _tmp10_, _tmp11_); _g_object_unref0 (_tmp10_); } GeeSet* skk_kana_kan_dict_lookup (SkkKanaKanDict* self, const gchar* pron) { GeeSet* result = NULL; GeeHashMap* _tmp0_; const gchar* _tmp1_; gboolean _tmp2_ = FALSE; GeeHashMap* _tmp4_; const gchar* _tmp5_; gpointer _tmp6_ = NULL; g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (pron != NULL, NULL); _tmp0_ = self->priv->dict; _tmp1_ = pron; _tmp2_ = gee_abstract_map_has_key ((GeeAbstractMap*) _tmp0_, _tmp1_); if (!_tmp2_) { GeeHashSet* _tmp3_; _tmp3_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL); result = (GeeSet*) _tmp3_; return result; } _tmp4_ = self->priv->dict; _tmp5_ = pron; _tmp6_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp4_, _tmp5_); result = (GeeSet*) _tmp6_; return result; } static void skk_kana_kan_dict_class_init (SkkKanaKanDictClass * klass) { skk_kana_kan_dict_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (SkkKanaKanDictPrivate)); G_OBJECT_CLASS (klass)->finalize = skk_kana_kan_dict_finalize; } static void skk_kana_kan_dict_instance_init (SkkKanaKanDict * self) { GeeHashMap* _tmp0_; self->priv = SKK_KANA_KAN_DICT_GET_PRIVATE (self); _tmp0_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, GEE_TYPE_SET, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL); self->priv->dict = _tmp0_; } static void skk_kana_kan_dict_finalize (GObject* obj) { SkkKanaKanDict * self; self = SKK_KANA_KAN_DICT (obj); _g_object_unref0 (self->priv->dict); G_OBJECT_CLASS (skk_kana_kan_dict_parent_class)->finalize (obj); } GType skk_kana_kan_dict_get_type (void) { static volatile gsize skk_kana_kan_dict_type_id__volatile = 0; if (g_once_init_enter (&skk_kana_kan_dict_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkKanaKanDictClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_kana_kan_dict_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkKanaKanDict), 0, (GInstanceInitFunc) skk_kana_kan_dict_instance_init, NULL }; GType skk_kana_kan_dict_type_id; skk_kana_kan_dict_type_id = g_type_register_static (G_TYPE_OBJECT, "SkkKanaKanDict", &g_define_type_info, 0); g_once_init_leave (&skk_kana_kan_dict_type_id__volatile, skk_kana_kan_dict_type_id); } return skk_kana_kan_dict_type_id__volatile; } static gdouble* _double_dup (gdouble* self) { gdouble* dup; dup = g_new0 (gdouble, 1); memcpy (dup, self, sizeof (gdouble)); return dup; } static gdouble double_parse (const gchar* str) { gdouble result = 0.0; const gchar* _tmp0_; gdouble _tmp1_ = 0.0; g_return_val_if_fail (str != NULL, 0.0); _tmp0_ = str; _tmp1_ = g_ascii_strtod (_tmp0_, NULL); result = _tmp1_; return result; } static glong string_strnlen (gchar* str, glong maxlen) { glong result = 0L; gchar* _tmp0_; glong _tmp1_; gchar* _tmp2_ = NULL; gchar* end; gchar* _tmp3_; _tmp0_ = str; _tmp1_ = maxlen; _tmp2_ = memchr (_tmp0_, 0, (gsize) _tmp1_); end = _tmp2_; _tmp3_ = end; if (_tmp3_ == NULL) { glong _tmp4_; _tmp4_ = maxlen; result = _tmp4_; return result; } else { gchar* _tmp5_; gchar* _tmp6_; _tmp5_ = end; _tmp6_ = str; result = (glong) (_tmp5_ - _tmp6_); return result; } } static gchar* string_substring (const gchar* self, glong offset, glong len) { gchar* result = NULL; glong string_length = 0L; gboolean _tmp0_ = FALSE; glong _tmp1_; gboolean _tmp3_; glong _tmp9_; glong _tmp15_; glong _tmp18_; glong _tmp19_; glong _tmp20_; glong _tmp21_; glong _tmp22_; gchar* _tmp23_ = NULL; g_return_val_if_fail (self != NULL, NULL); _tmp1_ = offset; if (_tmp1_ >= ((glong) 0)) { glong _tmp2_; _tmp2_ = len; _tmp0_ = _tmp2_ >= ((glong) 0); } else { _tmp0_ = FALSE; } _tmp3_ = _tmp0_; if (_tmp3_) { glong _tmp4_; glong _tmp5_; glong _tmp6_ = 0L; _tmp4_ = offset; _tmp5_ = len; _tmp6_ = string_strnlen ((gchar*) self, _tmp4_ + _tmp5_); string_length = _tmp6_; } else { gint _tmp7_; gint _tmp8_; _tmp7_ = strlen (self); _tmp8_ = _tmp7_; string_length = (glong) _tmp8_; } _tmp9_ = offset; if (_tmp9_ < ((glong) 0)) { glong _tmp10_; glong _tmp11_; glong _tmp12_; _tmp10_ = string_length; _tmp11_ = offset; offset = _tmp10_ + _tmp11_; _tmp12_ = offset; g_return_val_if_fail (_tmp12_ >= ((glong) 0), NULL); } else { glong _tmp13_; glong _tmp14_; _tmp13_ = offset; _tmp14_ = string_length; g_return_val_if_fail (_tmp13_ <= _tmp14_, NULL); } _tmp15_ = len; if (_tmp15_ < ((glong) 0)) { glong _tmp16_; glong _tmp17_; _tmp16_ = string_length; _tmp17_ = offset; len = _tmp16_ - _tmp17_; } _tmp18_ = offset; _tmp19_ = len; _tmp20_ = string_length; g_return_val_if_fail ((_tmp18_ + _tmp19_) <= _tmp20_, NULL); _tmp21_ = offset; _tmp22_ = len; _tmp23_ = g_strndup (((gchar*) self) + _tmp21_, (gsize) _tmp22_); result = _tmp23_; return result; } SkkKanaKanScoreMap* skk_kana_kan_score_map_construct (GType object_type, const gchar* path, SkkKanaKanDict* dict, GError** error) { SkkKanaKanScoreMap * self = NULL; const gchar* _tmp0_; GFile* _tmp1_ = NULL; GFile* file; GFile* _tmp2_; GFileInputStream* _tmp3_ = NULL; GFileInputStream* _tmp4_; GFileInputStream* _tmp5_; GDataInputStream* _tmp6_; GDataInputStream* _tmp7_; GDataInputStream* input; GError * _inner_error_ = NULL; g_return_val_if_fail (path != NULL, NULL); g_return_val_if_fail (dict != NULL, NULL); self = (SkkKanaKanScoreMap*) g_object_new (object_type, NULL); _tmp0_ = path; _tmp1_ = g_file_new_for_path (_tmp0_); file = _tmp1_; _tmp2_ = file; _tmp3_ = g_file_read (_tmp2_, NULL, &_inner_error_); _tmp4_ = _tmp3_; if (_inner_error_ != NULL) { g_propagate_error (error, _inner_error_); _g_object_unref0 (file); _g_object_unref0 (self); return NULL; } _tmp5_ = _tmp4_; _tmp6_ = g_data_input_stream_new ((GInputStream*) _tmp5_); _tmp7_ = _tmp6_; _g_object_unref0 (_tmp5_); input = _tmp7_; while (TRUE) { gsize length = 0UL; GDataInputStream* _tmp8_; gsize _tmp9_ = 0UL; gchar* _tmp10_ = NULL; gchar* line; const gchar* _tmp11_; const gchar* _tmp12_; gchar* _tmp13_ = NULL; gchar* _tmp14_; gchar** _tmp15_; gchar** _tmp16_ = NULL; gchar** _tmp17_; gint _tmp17__length1; gchar** a; gint a_length1; gint _a_size_; GeeMap* _tmp18_; gchar** _tmp19_; gint _tmp19__length1; const gchar* _tmp20_; gchar** _tmp21_; gint _tmp21__length1; const gchar* _tmp22_; gdouble _tmp23_ = 0.0; gchar** _tmp24_; gint _tmp24__length1; const gchar* _tmp25_; gchar** _tmp26_; gchar** _tmp27_ = NULL; gchar** b; gint b_length1; gint _b_size_; gboolean _tmp28_ = FALSE; gboolean _tmp29_ = FALSE; gchar** _tmp30_; gint _tmp30__length1; gboolean _tmp34_; gboolean _tmp38_; _tmp8_ = input; _tmp10_ = g_data_input_stream_read_line (_tmp8_, &_tmp9_, NULL, &_inner_error_); length = _tmp9_; line = _tmp10_; if (_inner_error_ != NULL) { g_propagate_error (error, _inner_error_); _g_object_unref0 (input); _g_object_unref0 (file); _g_object_unref0 (self); return NULL; } _tmp11_ = line; if (_tmp11_ == NULL) { _g_free0 (line); break; } _tmp12_ = line; _tmp13_ = string_chomp (_tmp12_); _tmp14_ = _tmp13_; _tmp16_ = _tmp15_ = g_strsplit (_tmp14_, "\t\t", 0); _tmp17_ = _tmp16_; _tmp17__length1 = _vala_array_length (_tmp15_); _g_free0 (_tmp14_); a = _tmp17_; a_length1 = _tmp17__length1; _a_size_ = a_length1; _tmp18_ = self->priv->map; _tmp19_ = a; _tmp19__length1 = a_length1; _tmp20_ = _tmp19_[0]; _tmp21_ = a; _tmp21__length1 = a_length1; _tmp22_ = _tmp21_[1]; _tmp23_ = double_parse (_tmp22_); gee_map_set (_tmp18_, _tmp20_, &_tmp23_); _tmp24_ = a; _tmp24__length1 = a_length1; _tmp25_ = _tmp24_[0]; _tmp27_ = _tmp26_ = g_strsplit (_tmp25_, "\t", 0); b = _tmp27_; b_length1 = _vala_array_length (_tmp26_); _b_size_ = b_length1; _tmp30_ = b; _tmp30__length1 = b_length1; if (_tmp30__length1 == 2) { gchar** _tmp31_; gint _tmp31__length1; const gchar* _tmp32_; gboolean _tmp33_ = FALSE; _tmp31_ = b; _tmp31__length1 = b_length1; _tmp32_ = _tmp31_[0]; _tmp33_ = g_str_has_prefix (_tmp32_, "S"); _tmp29_ = _tmp33_; } else { _tmp29_ = FALSE; } _tmp34_ = _tmp29_; if (_tmp34_) { gchar** _tmp35_; gint _tmp35__length1; const gchar* _tmp36_; gboolean _tmp37_ = FALSE; _tmp35_ = b; _tmp35__length1 = b_length1; _tmp36_ = _tmp35_[1]; _tmp37_ = g_str_has_prefix (_tmp36_, "R"); _tmp28_ = _tmp37_; } else { _tmp28_ = FALSE; } _tmp38_ = _tmp28_; if (_tmp38_) { gchar** _tmp39_; gint _tmp39__length1; const gchar* _tmp40_; gchar* _tmp41_ = NULL; gchar* word; gchar** _tmp42_; gint _tmp42__length1; const gchar* _tmp43_; gchar* _tmp44_ = NULL; gchar* pron; SkkKanaKanDict* _tmp45_; const gchar* _tmp46_; const gchar* _tmp47_; _tmp39_ = b; _tmp39__length1 = b_length1; _tmp40_ = _tmp39_[0]; _tmp41_ = string_substring (_tmp40_, (glong) 1, (glong) (-1)); word = _tmp41_; _tmp42_ = b; _tmp42__length1 = b_length1; _tmp43_ = _tmp42_[1]; _tmp44_ = string_substring (_tmp43_, (glong) 1, (glong) (-1)); pron = _tmp44_; _tmp45_ = dict; _tmp46_ = pron; _tmp47_ = word; skk_kana_kan_dict_add (_tmp45_, _tmp46_, _tmp47_); _g_free0 (pron); _g_free0 (word); } b = (_vala_array_free (b, b_length1, (GDestroyNotify) g_free), NULL); a = (_vala_array_free (a, a_length1, (GDestroyNotify) g_free), NULL); _g_free0 (line); } _g_object_unref0 (input); _g_object_unref0 (file); return self; } SkkKanaKanScoreMap* skk_kana_kan_score_map_new (const gchar* path, SkkKanaKanDict* dict, GError** error) { return skk_kana_kan_score_map_construct (SKK_TYPE_KANA_KAN_SCORE_MAP, path, dict, error); } static gdouble skk_kana_kan_score_map_get_score (SkkKanaKanScoreMap* self, const gchar* feature) { gdouble result = 0.0; GeeMap* _tmp0_; const gchar* _tmp1_; gboolean _tmp2_ = FALSE; g_return_val_if_fail (self != NULL, 0.0); g_return_val_if_fail (feature != NULL, 0.0); _tmp0_ = self->priv->map; _tmp1_ = feature; _tmp2_ = gee_map_has_key (_tmp0_, _tmp1_); if (_tmp2_) { GeeMap* _tmp3_; const gchar* _tmp4_; gpointer _tmp5_ = NULL; gdouble* _tmp6_; gdouble _tmp7_; _tmp3_ = self->priv->map; _tmp4_ = feature; _tmp5_ = gee_map_get (_tmp3_, _tmp4_); _tmp6_ = (gdouble*) _tmp5_; _tmp7_ = *_tmp6_; _g_free0 (_tmp6_); result = _tmp7_; return result; } result = 0.0; return result; } gdouble skk_kana_kan_score_map_get_node_score (SkkKanaKanScoreMap* self, SkkKanaKanNode* node) { gdouble result = 0.0; gdouble score; gchar* feature = NULL; SkkKanaKanNode* _tmp0_; const gchar* _tmp1_; SkkKanaKanNode* _tmp2_; const gchar* _tmp3_; gchar* _tmp4_ = NULL; gdouble _tmp5_; const gchar* _tmp6_; gdouble _tmp7_ = 0.0; SkkKanaKanNode* _tmp8_; const gchar* _tmp9_; gchar* _tmp10_ = NULL; gdouble _tmp11_; const gchar* _tmp12_; gdouble _tmp13_ = 0.0; g_return_val_if_fail (self != NULL, 0.0); g_return_val_if_fail (node != NULL, 0.0); score = 0.0; _tmp0_ = node; _tmp1_ = _tmp0_->word; _tmp2_ = node; _tmp3_ = _tmp2_->pron; _tmp4_ = g_strdup_printf ("S%s\tR%s", _tmp1_, _tmp3_); _g_free0 (feature); feature = _tmp4_; _tmp5_ = score; _tmp6_ = feature; _tmp7_ = skk_kana_kan_score_map_get_score (self, _tmp6_); score = _tmp5_ + _tmp7_; _tmp8_ = node; _tmp9_ = _tmp8_->word; _tmp10_ = g_strdup_printf ("S%s", _tmp9_); _g_free0 (feature); feature = _tmp10_; _tmp11_ = score; _tmp12_ = feature; _tmp13_ = skk_kana_kan_score_map_get_score (self, _tmp12_); score = _tmp11_ + _tmp13_; result = score; _g_free0 (feature); return result; } gdouble skk_kana_kan_score_map_get_edge_score (SkkKanaKanScoreMap* self, SkkKanaKanNode* prev_node, SkkKanaKanNode* node) { gdouble result = 0.0; SkkKanaKanNode* _tmp0_; const gchar* _tmp1_; SkkKanaKanNode* _tmp2_; const gchar* _tmp3_; gchar* _tmp4_ = NULL; gchar* feature; gdouble _tmp5_ = 0.0; g_return_val_if_fail (self != NULL, 0.0); g_return_val_if_fail (prev_node != NULL, 0.0); g_return_val_if_fail (node != NULL, 0.0); _tmp0_ = prev_node; _tmp1_ = _tmp0_->word; _tmp2_ = node; _tmp3_ = _tmp2_->word; _tmp4_ = g_strdup_printf ("S%s\tS%s", _tmp1_, _tmp3_); feature = _tmp4_; _tmp5_ = skk_kana_kan_score_map_get_score (self, feature); result = _tmp5_; _g_free0 (feature); return result; } static void skk_kana_kan_score_map_class_init (SkkKanaKanScoreMapClass * klass) { skk_kana_kan_score_map_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (SkkKanaKanScoreMapPrivate)); G_OBJECT_CLASS (klass)->finalize = skk_kana_kan_score_map_finalize; } static void skk_kana_kan_score_map_instance_init (SkkKanaKanScoreMap * self) { GeeHashMap* _tmp0_; self->priv = SKK_KANA_KAN_SCORE_MAP_GET_PRIVATE (self); _tmp0_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, G_TYPE_DOUBLE, (GBoxedCopyFunc) _double_dup, g_free, NULL, NULL, NULL); self->priv->map = (GeeMap*) _tmp0_; } static void skk_kana_kan_score_map_finalize (GObject* obj) { SkkKanaKanScoreMap * self; self = SKK_KANA_KAN_SCORE_MAP (obj); _g_object_unref0 (self->priv->map); G_OBJECT_CLASS (skk_kana_kan_score_map_parent_class)->finalize (obj); } GType skk_kana_kan_score_map_get_type (void) { static volatile gsize skk_kana_kan_score_map_type_id__volatile = 0; if (g_once_init_enter (&skk_kana_kan_score_map_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkKanaKanScoreMapClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_kana_kan_score_map_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkKanaKanScoreMap), 0, (GInstanceInitFunc) skk_kana_kan_score_map_instance_init, NULL }; GType skk_kana_kan_score_map_type_id; skk_kana_kan_score_map_type_id = g_type_register_static (G_TYPE_OBJECT, "SkkKanaKanScoreMap", &g_define_type_info, 0); g_once_init_leave (&skk_kana_kan_score_map_type_id__volatile, skk_kana_kan_score_map_type_id); } return skk_kana_kan_score_map_type_id__volatile; } SkkKanaKanNode* skk_kana_kan_node_construct (GType object_type, const gchar* word, const gchar* pron, gint endpos) { SkkKanaKanNode * self = NULL; const gchar* _tmp0_; gchar* _tmp1_; const gchar* _tmp2_; gchar* _tmp3_; gint _tmp4_; g_return_val_if_fail (word != NULL, NULL); g_return_val_if_fail (pron != NULL, NULL); self = (SkkKanaKanNode*) g_object_new (object_type, NULL); _tmp0_ = word; _tmp1_ = g_strdup (_tmp0_); _g_free0 (self->word); self->word = _tmp1_; _tmp2_ = pron; _tmp3_ = g_strdup (_tmp2_); _g_free0 (self->pron); self->pron = _tmp3_; _tmp4_ = endpos; self->endpos = _tmp4_; return self; } SkkKanaKanNode* skk_kana_kan_node_new (const gchar* word, const gchar* pron, gint endpos) { return skk_kana_kan_node_construct (SKK_TYPE_KANA_KAN_NODE, word, pron, endpos); } gboolean skk_kana_kan_node_is_bos (SkkKanaKanNode* self) { gboolean result = FALSE; gint _tmp0_; g_return_val_if_fail (self != NULL, FALSE); _tmp0_ = self->endpos; result = _tmp0_ == 0; return result; } gboolean skk_kana_kan_node_is_eos (SkkKanaKanNode* self) { gboolean result = FALSE; gboolean _tmp0_ = FALSE; gint _tmp1_; gint _tmp2_; gboolean _tmp4_; g_return_val_if_fail (self != NULL, FALSE); _tmp1_ = skk_kana_kan_node_get_length (self); _tmp2_ = _tmp1_; if (_tmp2_ == 0) { gint _tmp3_; _tmp3_ = self->endpos; _tmp0_ = _tmp3_ != 0; } else { _tmp0_ = FALSE; } _tmp4_ = _tmp0_; result = _tmp4_; return result; } gint skk_kana_kan_node_get_length (SkkKanaKanNode* self) { gint result; const gchar* _tmp0_; gint _tmp1_ = 0; g_return_val_if_fail (self != NULL, 0); _tmp0_ = self->pron; _tmp1_ = g_utf8_strlen (_tmp0_, (gssize) (-1)); result = _tmp1_; return result; } static void skk_kana_kan_node_class_init (SkkKanaKanNodeClass * klass) { skk_kana_kan_node_parent_class = g_type_class_peek_parent (klass); G_OBJECT_CLASS (klass)->get_property = _vala_skk_kana_kan_node_get_property; G_OBJECT_CLASS (klass)->finalize = skk_kana_kan_node_finalize; g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_KANA_KAN_NODE_LENGTH, g_param_spec_int ("length", "length", "length", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE)); } static void skk_kana_kan_node_instance_init (SkkKanaKanNode * self) { self->score = 0.0; self->prev = NULL; } static void skk_kana_kan_node_finalize (GObject* obj) { SkkKanaKanNode * self; self = SKK_KANA_KAN_NODE (obj); _g_free0 (self->word); _g_free0 (self->pron); _g_object_unref0 (self->prev); G_OBJECT_CLASS (skk_kana_kan_node_parent_class)->finalize (obj); } GType skk_kana_kan_node_get_type (void) { static volatile gsize skk_kana_kan_node_type_id__volatile = 0; if (g_once_init_enter (&skk_kana_kan_node_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkKanaKanNodeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_kana_kan_node_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkKanaKanNode), 0, (GInstanceInitFunc) skk_kana_kan_node_instance_init, NULL }; GType skk_kana_kan_node_type_id; skk_kana_kan_node_type_id = g_type_register_static (G_TYPE_OBJECT, "SkkKanaKanNode", &g_define_type_info, 0); g_once_init_leave (&skk_kana_kan_node_type_id__volatile, skk_kana_kan_node_type_id); } return skk_kana_kan_node_type_id__volatile; } static void _vala_skk_kana_kan_node_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { SkkKanaKanNode * self; self = SKK_KANA_KAN_NODE (object); switch (property_id) { case SKK_KANA_KAN_NODE_LENGTH: g_value_set_int (value, skk_kana_kan_node_get_length (self)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } SkkKanaKanGraph* skk_kana_kan_graph_construct (GType object_type, SkkKanaKanDict* dict, const gchar* str) { SkkKanaKanGraph * self = NULL; SkkKanaKanDict* _tmp0_; SkkKanaKanDict* _tmp1_; const gchar* _tmp2_; SkkUnicodeString* _tmp3_; SkkUnicodeString* ustr; SkkUnicodeString* _tmp4_; gint _tmp5_; GeeArrayList** _tmp6_ = NULL; SkkKanaKanNode* _tmp17_; GeeArrayList** _tmp18_; gint _tmp18__length1; GeeArrayList* _tmp19_; SkkKanaKanNode* _tmp20_; SkkUnicodeString* _tmp21_; gint _tmp22_; SkkKanaKanNode* _tmp23_; GeeArrayList** _tmp24_; gint _tmp24__length1; SkkUnicodeString* _tmp25_; gint _tmp26_; GeeArrayList* _tmp27_; SkkKanaKanNode* _tmp28_; g_return_val_if_fail (dict != NULL, NULL); g_return_val_if_fail (str != NULL, NULL); self = (SkkKanaKanGraph*) g_object_new (object_type, NULL); _tmp0_ = dict; _tmp1_ = _g_object_ref0 (_tmp0_); _g_object_unref0 (self->priv->dict); self->priv->dict = _tmp1_; _tmp2_ = str; _tmp3_ = skk_unicode_string_new (_tmp2_); ustr = _tmp3_; _tmp4_ = ustr; _tmp5_ = _tmp4_->length; _tmp6_ = g_new0 (GeeArrayList*, (_tmp5_ + 2) + 1); self->nodes = (_vala_array_free (self->nodes, self->nodes_length1, (GDestroyNotify) g_object_unref), NULL); self->nodes = _tmp6_; self->nodes_length1 = _tmp5_ + 2; self->_nodes_size_ = self->nodes_length1; { gint i; i = 0; { gboolean _tmp7_; _tmp7_ = TRUE; while (TRUE) { gboolean _tmp8_; gint _tmp10_; SkkUnicodeString* _tmp11_; gint _tmp12_; GeeArrayList** _tmp13_; gint _tmp13__length1; gint _tmp14_; GeeArrayList* _tmp15_; GeeArrayList* _tmp16_; _tmp8_ = _tmp7_; if (!_tmp8_) { gint _tmp9_; _tmp9_ = i; i = _tmp9_ + 1; } _tmp7_ = FALSE; _tmp10_ = i; _tmp11_ = ustr; _tmp12_ = _tmp11_->length; if (!(_tmp10_ < (_tmp12_ + 2))) { break; } _tmp13_ = self->nodes; _tmp13__length1 = self->nodes_length1; _tmp14_ = i; _tmp15_ = gee_array_list_new (SKK_TYPE_KANA_KAN_NODE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL); _g_object_unref0 (_tmp13_[_tmp14_]); _tmp13_[_tmp14_] = _tmp15_; _tmp16_ = _tmp13_[_tmp14_]; } } } _tmp17_ = skk_kana_kan_node_new ("", "", 0); _g_object_unref0 (self->bos); self->bos = _tmp17_; _tmp18_ = self->nodes; _tmp18__length1 = self->nodes_length1; _tmp19_ = _tmp18_[0]; _tmp20_ = self->bos; gee_abstract_collection_add ((GeeAbstractCollection*) _tmp19_, _tmp20_); _tmp21_ = ustr; _tmp22_ = _tmp21_->length; _tmp23_ = skk_kana_kan_node_new ("", "", _tmp22_ + 1); _g_object_unref0 (self->eos); self->eos = _tmp23_; _tmp24_ = self->nodes; _tmp24__length1 = self->nodes_length1; _tmp25_ = ustr; _tmp26_ = _tmp25_->length; _tmp27_ = _tmp24_[_tmp26_ + 1]; _tmp28_ = self->eos; gee_abstract_collection_add ((GeeAbstractCollection*) _tmp27_, _tmp28_); { gint i; i = 0; { gboolean _tmp29_; _tmp29_ = TRUE; while (TRUE) { gboolean _tmp30_; gint _tmp32_; SkkUnicodeString* _tmp33_; gint _tmp34_; gint _tmp66_; SkkUnicodeString* _tmp67_; gint _tmp68_; _tmp30_ = _tmp29_; if (!_tmp30_) { gint _tmp31_; _tmp31_ = i; i = _tmp31_ + 1; } _tmp29_ = FALSE; _tmp32_ = i; _tmp33_ = ustr; _tmp34_ = _tmp33_->length; if (!(_tmp32_ < _tmp34_)) { break; } { gint _tmp35_; gint j; _tmp35_ = i; j = _tmp35_ + 1; { gboolean _tmp36_; _tmp36_ = TRUE; while (TRUE) { gboolean _tmp37_; gint _tmp39_; SkkUnicodeString* _tmp40_; gint _tmp41_; gint _tmp42_; gint _tmp43_ = 0; SkkUnicodeString* _tmp44_; gint _tmp45_; gint _tmp46_; gint _tmp47_; gchar* _tmp48_ = NULL; gchar* pron; SkkKanaKanDict* _tmp49_; const gchar* _tmp50_; GeeSet* _tmp51_ = NULL; GeeSet* words; _tmp37_ = _tmp36_; if (!_tmp37_) { gint _tmp38_; _tmp38_ = j; j = _tmp38_ + 1; } _tmp36_ = FALSE; _tmp39_ = j; _tmp40_ = ustr; _tmp41_ = _tmp40_->length; _tmp42_ = i; _tmp43_ = MIN (_tmp41_, _tmp42_ + 16); if (!(_tmp39_ <= _tmp43_)) { break; } _tmp44_ = ustr; _tmp45_ = i; _tmp46_ = j; _tmp47_ = i; _tmp48_ = skk_unicode_string_substring (_tmp44_, (glong) _tmp45_, (glong) (_tmp46_ - _tmp47_)); pron = _tmp48_; _tmp49_ = dict; _tmp50_ = pron; _tmp51_ = skk_kana_kan_dict_lookup (_tmp49_, _tmp50_); words = _tmp51_; { GeeSet* _tmp52_; GeeIterator* _tmp53_ = NULL; GeeIterator* _word_it; _tmp52_ = words; _tmp53_ = gee_iterable_iterator ((GeeIterable*) _tmp52_); _word_it = _tmp53_; while (TRUE) { GeeIterator* _tmp54_; gboolean _tmp55_ = FALSE; GeeIterator* _tmp56_; gpointer _tmp57_ = NULL; gchar* word; const gchar* _tmp58_; const gchar* _tmp59_; gint _tmp60_; SkkKanaKanNode* _tmp61_; SkkKanaKanNode* node; GeeArrayList** _tmp62_; gint _tmp62__length1; gint _tmp63_; GeeArrayList* _tmp64_; SkkKanaKanNode* _tmp65_; _tmp54_ = _word_it; _tmp55_ = gee_iterator_next (_tmp54_); if (!_tmp55_) { break; } _tmp56_ = _word_it; _tmp57_ = gee_iterator_get (_tmp56_); word = (gchar*) _tmp57_; _tmp58_ = word; _tmp59_ = pron; _tmp60_ = j; _tmp61_ = skk_kana_kan_node_new (_tmp58_, _tmp59_, _tmp60_); node = _tmp61_; _tmp62_ = self->nodes; _tmp62__length1 = self->nodes_length1; _tmp63_ = j; _tmp64_ = _tmp62_[_tmp63_]; _tmp65_ = node; gee_abstract_collection_add ((GeeAbstractCollection*) _tmp64_, _tmp65_); _g_object_unref0 (node); _g_free0 (word); } _g_object_unref0 (_word_it); } _g_object_unref0 (words); _g_free0 (pron); } } } _tmp66_ = i; _tmp67_ = ustr; _tmp68_ = _tmp67_->length; if (_tmp66_ < _tmp68_) { SkkUnicodeString* _tmp69_; gint _tmp70_; gchar* _tmp71_ = NULL; gchar* pron; const gchar* _tmp72_; const gchar* _tmp73_; gint _tmp74_; SkkKanaKanNode* _tmp75_; SkkKanaKanNode* node; GeeArrayList** _tmp76_; gint _tmp76__length1; gint _tmp77_; GeeArrayList* _tmp78_; SkkKanaKanNode* _tmp79_; _tmp69_ = ustr; _tmp70_ = i; _tmp71_ = skk_unicode_string_substring (_tmp69_, (glong) _tmp70_, (glong) 1); pron = _tmp71_; _tmp72_ = pron; _tmp73_ = pron; _tmp74_ = i; _tmp75_ = skk_kana_kan_node_new (_tmp72_, _tmp73_, _tmp74_ + 1); node = _tmp75_; _tmp76_ = self->nodes; _tmp76__length1 = self->nodes_length1; _tmp77_ = i; _tmp78_ = _tmp76_[_tmp77_ + 1]; _tmp79_ = node; gee_abstract_collection_add ((GeeAbstractCollection*) _tmp78_, _tmp79_); _g_object_unref0 (node); _g_free0 (pron); } } } } _g_object_unref0 (ustr); return self; } SkkKanaKanGraph* skk_kana_kan_graph_new (SkkKanaKanDict* dict, const gchar* str) { return skk_kana_kan_graph_construct (SKK_TYPE_KANA_KAN_GRAPH, dict, str); } GeeArrayList* skk_kana_kan_graph_get_prev_nodes (SkkKanaKanGraph* self, SkkKanaKanNode* node) { GeeArrayList* result = NULL; SkkKanaKanNode* _tmp0_; gboolean _tmp1_ = FALSE; g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (node != NULL, NULL); _tmp0_ = node; _tmp1_ = skk_kana_kan_node_is_eos (_tmp0_); if (_tmp1_) { SkkKanaKanNode* _tmp2_; gint _tmp3_; gint startpos; GeeArrayList** _tmp4_; gint _tmp4__length1; gint _tmp5_; GeeArrayList* _tmp6_; GeeArrayList* _tmp7_; _tmp2_ = node; _tmp3_ = _tmp2_->endpos; startpos = _tmp3_ - 1; _tmp4_ = self->nodes; _tmp4__length1 = self->nodes_length1; _tmp5_ = startpos; _tmp6_ = _tmp4_[_tmp5_]; _tmp7_ = _g_object_ref0 (_tmp6_); result = _tmp7_; return result; } else { SkkKanaKanNode* _tmp8_; gboolean _tmp9_ = FALSE; _tmp8_ = node; _tmp9_ = skk_kana_kan_node_is_bos (_tmp8_); if (_tmp9_) { GeeArrayList* _tmp10_; _tmp10_ = gee_array_list_new (SKK_TYPE_KANA_KAN_NODE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL); result = _tmp10_; return result; } else { SkkKanaKanNode* _tmp11_; gint _tmp12_; SkkKanaKanNode* _tmp13_; gint _tmp14_; gint _tmp15_; gint startpos; GeeArrayList** _tmp16_; gint _tmp16__length1; gint _tmp17_; GeeArrayList* _tmp18_; GeeArrayList* _tmp19_; _tmp11_ = node; _tmp12_ = _tmp11_->endpos; _tmp13_ = node; _tmp14_ = skk_kana_kan_node_get_length (_tmp13_); _tmp15_ = _tmp14_; startpos = _tmp12_ - _tmp15_; _tmp16_ = self->nodes; _tmp16__length1 = self->nodes_length1; _tmp17_ = startpos; _tmp18_ = _tmp16_[_tmp17_]; _tmp19_ = _g_object_ref0 (_tmp18_); result = _tmp19_; return result; } } } static void skk_kana_kan_graph_class_init (SkkKanaKanGraphClass * klass) { skk_kana_kan_graph_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (SkkKanaKanGraphPrivate)); G_OBJECT_CLASS (klass)->finalize = skk_kana_kan_graph_finalize; } static void skk_kana_kan_graph_instance_init (SkkKanaKanGraph * self) { self->priv = SKK_KANA_KAN_GRAPH_GET_PRIVATE (self); } static void skk_kana_kan_graph_finalize (GObject* obj) { SkkKanaKanGraph * self; self = SKK_KANA_KAN_GRAPH (obj); _g_object_unref0 (self->priv->dict); self->nodes = (_vala_array_free (self->nodes, self->nodes_length1, (GDestroyNotify) g_object_unref), NULL); _g_object_unref0 (self->bos); _g_object_unref0 (self->eos); G_OBJECT_CLASS (skk_kana_kan_graph_parent_class)->finalize (obj); } GType skk_kana_kan_graph_get_type (void) { static volatile gsize skk_kana_kan_graph_type_id__volatile = 0; if (g_once_init_enter (&skk_kana_kan_graph_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkKanaKanGraphClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_kana_kan_graph_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkKanaKanGraph), 0, (GInstanceInitFunc) skk_kana_kan_graph_instance_init, NULL }; GType skk_kana_kan_graph_type_id; skk_kana_kan_graph_type_id = g_type_register_static (G_TYPE_OBJECT, "SkkKanaKanGraph", &g_define_type_info, 0); g_once_init_leave (&skk_kana_kan_graph_type_id__volatile, skk_kana_kan_graph_type_id); } return skk_kana_kan_graph_type_id__volatile; } static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { int i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); } } } } static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) { _vala_array_destroy (array, array_length, destroy_func); g_free (array); } static gint _vala_array_length (gpointer array) { int length; length = 0; if (array) { while (((gpointer*) array)[length]) { length++; } } return length; } libskk-1.0.0/libskk/config.vapi0000664000076400007640000000055511675742075013352 00000000000000[CCode (cprefix = "", lower_case_cprefix = "", cheader_filename = "config.h")] namespace Config { public const string PACKAGE_DATADIR; public const string PACKAGE_NAME; public const string PACKAGE_VERSION; public const string DATADIR; public const string PKGDATADIR; public const string LOCALEDIR; public const string GETTEXT_PACKAGE; } libskk-1.0.0/libskk/libskk_la_vala.stamp0000664000076400007640000000000612016556643015211 00000000000000stamp libskk-1.0.0/libskk/nicola.vala0000664000076400007640000002423411703776140013326 00000000000000/* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ using Gee; namespace Skk { /** * Get the current timer count. */ public delegate int64 GetTime (); /** * Key event filter implementing NICOLA (thumb shift) input * * This class is rarely used in programs but specified as "filter" * property in rule metadata. * * @see Rule */ public class NicolaKeyEventFilter : KeyEventFilter { static int64 get_time () { var tv = TimeVal (); return (((int64) tv.tv_sec) * 1000000) + tv.tv_usec; } public GetTime get_time_func = get_time; /** * Duration where a single key press event is committed * without a corresponding key release event. */ public int64 timeout = 100000; /** * Duration between two overlapping key press events, so they * are considered as a doule key press/release event. */ public int64 overlap = 50000; /** * Maximum duration to wait for the next key event. */ public int64 maxwait = 10000000; static const string[] SPECIAL_DOUBLES = { "[fj]", "[gh]", "[dk]", "[LR]" }; /** * Special double key press events (SKK-NICOLA extension). * * By default, "[fj]" (f + j), "[gh]" (g + h), "[dk]" (d + k), * and "[LR]" (left shift + right shift) are registered. */ public string[] special_doubles; class TimedEntry { public T data; public int64 time; public TimedEntry (T data, int64 time) { this.data = data; this.time = time; } } LinkedList> pending = new LinkedList> (); // we can't use normal constructor here since KeyEventFilter // is constructed with Object.new (type). construct { special_doubles = SPECIAL_DOUBLES; } static bool is_char (KeyEvent key) { return key.code != 0; } static bool is_lshift (KeyEvent key) { return key.name == "lshift"; } static bool is_rshift (KeyEvent key) { return key.name == "rshift"; } static bool is_shift (KeyEvent key) { return is_lshift (key) || is_rshift (key); } static string get_special_double_name (KeyEvent a, KeyEvent b) { if (is_shift (a) && is_shift (b)) { return "[LR]"; } else if (is_char (a) && is_char (b)) { unichar ac, bc; if (a.code < b.code) { ac = a.code; bc = b.code; } else { ac = b.code; bc = a.code; } return @"[$ac$bc]"; } else { return_val_if_reached (null); } } KeyEvent? queue (KeyEvent key, int64 time, out int64 wait) { // press/release a same key if ((key.modifiers & ModifierType.RELEASE_MASK) != 0) { if (pending.size > 0 && pending.get (0).data.base_equal (key)) { var entry = pending.get (0); wait = get_next_wait (key, time); pending.clear (); return entry.data; } } // ignore key repeat else { if (pending.size > 0 && pending.get (0).data.base_equal (key)) { pending.get (0).time = time; wait = get_next_wait (key, time); return key; } else { if (pending.size > 2) { var iter = pending.list_iterator (); iter.last (); do { iter.remove (); } while (pending.size > 2 && iter.previous ()); } pending.insert (0, new TimedEntry (key, time)); } } wait = maxwait; return null; } int64 get_next_wait (KeyEvent key, int64 time) { if (pending.size > 0) { var iter = pending.list_iterator (); iter.last (); do { var entry = iter.get (); if (time - entry.time > timeout) { iter.remove (); } } while (iter.previous ()); } if (pending.size > 0) { return timeout - (time - pending.last ().time); } else { return maxwait; } } KeyEvent? dispatch_single (int64 time) { var entry = pending.peek (); if (time - entry.time > timeout) { pending.clear (); return entry.data; } return null; } void apply_shift (KeyEvent s, KeyEvent c) { if (s.name == "lshift") { c.modifiers |= ModifierType.LSHIFT_MASK; } else if (s.name == "rshift") { c.modifiers |= ModifierType.RSHIFT_MASK; } } KeyEvent? dispatch (int64 time) { if (pending.size == 3) { var b = pending.get (0); var s = pending.get (1); var a = pending.get (2); var t1 = s.time - a.time; var t2 = b.time - s.time; if (t1 <= t2) { pending.clear (); pending.offer_head (b); var r = dispatch_single (time); apply_shift (s.data, a.data); forwarded (a.data); return r; } else { pending.clear (); apply_shift (s.data, b.data); forwarded (a.data); return b.data; } } else if (pending.size == 2) { var b = pending.get (0); var a = pending.get (1); if (b.time - a.time > overlap) { pending.clear (); pending.offer_head (b); var r = dispatch_single (time); forwarded (a.data); return r; } else if ((is_char (a.data) && is_char (b.data)) || (is_shift (a.data) && is_shift (b.data))) { // skk-nicola uses some combinations of 2 character // keys ([fj], [gh], etc.) and 2 shift keys ([LR]). var name = get_special_double_name (b.data, a.data); if (name in special_doubles) { pending.clear (); return new KeyEvent (name, (unichar) 0, ModifierType.NONE); } else { pending.clear (); pending.offer_head (b); var r = dispatch_single (time); forwarded (a.data); return r; } } else if (time - a.time > timeout) { pending.clear (); if (is_shift (b.data)) { apply_shift (b.data, a.data); return a.data; } else { apply_shift (a.data, b.data); return b.data; } } } else if (pending.size == 1) { return dispatch_single (time); } return null; } bool timeout_func () { int64 time = get_time_func (); var r = dispatch (time); if (r != null) { forwarded (r); } return false; } uint timeout_id = 0; /** * {@inheritDoc} */ public override KeyEvent? filter_key_event (KeyEvent key) { // clear shift mask key.modifiers &= ~ModifierType.SHIFT_MASK; KeyEvent? output = null; int64 time; if ((key.modifiers & ModifierType.USLEEP_MASK) != 0) { Thread.usleep ((long) int.parse (key.name)); time = get_time_func (); } else if ((key.modifiers & ~ModifierType.RELEASE_MASK) == 0 && (is_shift (key) || (0x20 <= key.code && key.code <= 0x7E))) { time = get_time_func (); int64 wait; output = queue (key, time, out wait); if (wait > 0) { if (timeout_id > 0) { Source.remove (timeout_id); } timeout_id = Timeout.add ((uint) wait, timeout_func); } } else { if ((key.modifiers & ModifierType.RELEASE_MASK) == 0) { return key; } return null; } if (output == null) { output = dispatch (time); } return output; } /** * {@inheritDoc} */ public override void reset () { pending.clear (); } } } libskk-1.0.0/libskk/context.vala0000664000076400007640000005364712015367222013551 00000000000000/* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ using Gee; namespace Skk { /** * Initialize libskk. * * Must be called before using any functions in libskk. */ public static void init () { // needed to use static methods defined in some classes typeof (Util).class_ref (); typeof (Rule).class_ref (); typeof (EncodingConverter).class_ref (); } /** * Type to specify input modes. */ public enum InputMode { /** * Hiragana like "ã‚ã„ã†...". */ HIRAGANA = KanaMode.HIRAGANA, /** * Katakana like "アイウ...". */ KATAKANA = KanaMode.KATAKANA, /** * Half-width katakana like "アイウ...". */ HANKAKU_KATAKANA = KanaMode.HANKAKU_KATAKANA, /** * Half-width latin like "abc...". */ LATIN, /** * Full-width latin like "ï½ï½‚c...". */ WIDE_LATIN, LAST, /** * The default. */ DEFAULT = HIRAGANA, } /** * Main entry point of libskk. * * Context represents an input context with support for SKK * kana-kanji conversion method. */ public class Context : Object { Gee.List _dictionaries = new ArrayList (); /** * Dictionaries. */ public Dict[] dictionaries { owned get { return _dictionaries.to_array (); } set { _dictionaries.clear (); foreach (var dict in value) { _dictionaries.add (dict); } } } /** * Register dictionary. * * @param dict a dictionary * @since 0.0.8 */ public void add_dictionary (Dict dict) { _dictionaries.add (dict); } /** * Unregister dictionary. * * @param dict a dictionary * @since 0.0.8 */ public void remove_dictionary (Dict dict) { _dictionaries.remove (dict); } CandidateList _candidates; /** * Current candidates. */ public CandidateList candidates { get { return _candidates; } } LinkedList state_stack = new LinkedList (); Gee.Map handlers = new HashMap (); /** * Current input mode. */ public InputMode input_mode { get { return state_stack.peek_head ().input_mode; } set { state_stack.peek_head ().input_mode = value; } } /** * Array of strings which triggers automatic conversion. */ public string[] auto_start_henkan_keywords { get { return state_stack.peek_head ().auto_start_henkan_keywords; } set { state_stack.peek_head ().auto_start_henkan_keywords = value; } } /** * Flag to indicate whether or not "\n" is consumed on commit. */ public bool egg_like_newline { get { return state_stack.peek_head ().egg_like_newline; } set { state_stack.peek_head ().egg_like_newline = value; } } /** * Period style used in romaji-to-kana conversion. */ public PeriodStyle period_style { get { return state_stack.peek_head ().period_style; } set { state_stack.peek_head ().period_style = value; } } void filter_forwarded_cb (KeyEvent key) { process_key_event_internal (key); } /** * The name of typing rule. */ public Rule typing_rule { get { return state_stack.peek_head ().typing_rule; } set { var state = state_stack.peek_head (); state.typing_rule.get_filter ().forwarded.disconnect ( filter_forwarded_cb); state.typing_rule = value; state.typing_rule.get_filter ().forwarded.connect ( filter_forwarded_cb); } } /** * Filter which runs before process_key_event. * * This is particularly useful for NICOLA. * @see NicolaKeyEventFilter */ public KeyEventFilter key_event_filter { owned get { return state_stack.peek_head ().typing_rule.get_filter (); } } /** * Create a new Context. * * @param dictionaries an array of Dict * * @return a new Context */ public Context (Dict[] dictionaries) { foreach (var dict in dictionaries) { add_dictionary (dict); } handlers.set (typeof (NoneStateHandler), new NoneStateHandler ()); handlers.set (typeof (StartStateHandler), new StartStateHandler ()); handlers.set (typeof (SelectStateHandler), new SelectStateHandler ()); handlers.set (typeof (AbbrevStateHandler), new AbbrevStateHandler ()); handlers.set (typeof (KutenStateHandler), new KutenStateHandler ()); var state = new State (_dictionaries); _candidates = new ProxyCandidateList (state.candidates); push_state (state); _candidates.notify["cursor-pos"].connect (() => { if (_candidates.cursor_pos >= 0) { update_preedit (); } }); _candidates.selected.connect ((candidate) => { if (select_candidate_in_dictionaries (candidate)) { try { save_dictionaries (); } catch (GLib.Error e) { warning ("error saving dictionaries %s", e.message); } } update_preedit (); }); } ~Context () { _dictionaries.clear (); } void notify_input_mode_cb (Object s, ParamSpec? p) { notify_property ("input-mode"); } bool retrieve_surrounding_text_cb (out string text, out uint cursor_pos) { return retrieve_surrounding_text (out text, out cursor_pos); } bool delete_surrounding_text_cb (int offset, uint nchars) { return delete_surrounding_text (offset, nchars); } void connect_state_signals (State state) { state.recursive_edit_start.connect (start_dict_edit); state.recursive_edit_end.connect (end_dict_edit); state.recursive_edit_abort.connect (abort_dict_edit); state.notify["input-mode"].connect (notify_input_mode_cb); state.retrieve_surrounding_text.connect ( retrieve_surrounding_text_cb); state.delete_surrounding_text.connect ( delete_surrounding_text_cb); } void disconnect_state_signals (State state) { state.recursive_edit_start.disconnect (start_dict_edit); state.recursive_edit_end.disconnect (end_dict_edit); state.recursive_edit_abort.disconnect (abort_dict_edit); state.notify["input-mode"].disconnect (notify_input_mode_cb); state.retrieve_surrounding_text.disconnect ( retrieve_surrounding_text_cb); state.delete_surrounding_text.disconnect ( delete_surrounding_text_cb); } /** * Signal emitted when the context requires surrounding-text. * * @param text surrounding text * @param cursor_pos cursor position in text * * @return `true` on success, `false` on failure */ public signal bool retrieve_surrounding_text (out string text, out uint cursor_pos); /** * Signal emitted when the context requests deletion of * surrounding-text. * * @param offset character offset from the cursor position. * @param nchars number of characters to delete. * * @return `true` on success, `false` on failure */ public signal bool delete_surrounding_text (int offset, uint nchars); bool select_candidate_in_dictionaries (Candidate candidate) { bool changed = false; foreach (var dict in dictionaries) { if (!dict.read_only && dict.select_candidate (candidate)) { changed = true; } } return changed; } uint dict_edit_level () { return state_stack.size - 1; } void push_state (State state) { if (!state_stack.is_empty) { disconnect_state_signals (state_stack.peek_head ()); } state_stack.offer_head (state); connect_state_signals (state); var pcandidates = (ProxyCandidateList) _candidates; if (pcandidates.candidates != state.candidates) { pcandidates.candidates = state.candidates; } } void pop_state () { assert (!state_stack.is_empty); disconnect_state_signals (state_stack.poll_head ()); if (!state_stack.is_empty) { var state = state_stack.peek_head (); connect_state_signals (state); var pcandidates = (ProxyCandidateList) _candidates; if (pcandidates.candidates != state.candidates) { pcandidates.candidates = state.candidates; } } } void start_dict_edit (string midasi, bool okuri) { var state = new State (_dictionaries); state.midasi = midasi; state.okuri = okuri; push_state (state); update_preedit (); } bool end_dict_edit (string text) { string? midasi; bool? okuri; if (leave_dict_edit (out midasi, out okuri)) { var candidate = new Candidate (midasi, okuri, text); if (select_candidate_in_dictionaries (candidate)) { try { save_dictionaries (); } catch (GLib.Error e) { warning ("error saving dictionaries %s", e.message); } } var state = state_stack.peek_head (); state.reset (); state.output.assign (text); update_preedit (); return true; } return false; } bool leave_dict_edit (out string? midasi, out bool? okuri) { if (dict_edit_level () > 0) { var state = state_stack.peek_head (); midasi = state.midasi; okuri = state.okuri; pop_state (); state = state_stack.peek_head (); state.cancel_okuri (); return true; } midasi = null; okuri = false; return false; } bool abort_dict_edit () { string? midasi; bool? okuri; if (leave_dict_edit (out midasi, out okuri)) { update_preedit (); return true; } return false; } /** * Pass key events (separated by spaces) to the context. * * This function is rarely used in programs but in unit tests. * * @param keyseq a string representing key events, seperated by " " * * @return `true` if any of key events are handled, `false` otherwise */ public bool process_key_events (string keyseq) { Gee.List keys = new ArrayList (); var builder = new StringBuilder (); bool complex = false; bool escaped = false; int index = 0; unichar uc; while (keyseq.get_next_char (ref index, out uc)) { if (escaped) { builder.append_unichar (uc); escaped = false; continue; } switch (uc) { case '\\': escaped = true; break; case '(': if (complex) { warning ("bare '(' is not allowed in complex keyseq"); return false; } complex = true; builder.append_unichar (uc); break; case ')': if (!complex) { warning ("bare ')' is not allowed in simple keyseq"); return false; } complex = false; builder.append_unichar (uc); keys.add (builder.str); builder.erase (); break; case ' ': if (complex) { builder.append_unichar (uc); } else if (builder.len > 0) { keys.add (builder.str); builder.erase (); } break; default: builder.append_unichar (uc); break; } } if (complex) { warning ("premature end of key events"); return false; } if (builder.len > 0) { keys.add (builder.str); } bool retval = false; foreach (var key in keys) { if (key == "SPC") key = " "; else if (key == "TAB") key = "\t"; else if (key == "RET") key = "\n"; else if (key == "DEL") key = "\b"; KeyEvent ev; try { ev = new KeyEvent.from_string (key); } catch (KeyEventFormatError e) { warning ("can't get key event from string %s: %s", key, e.message); return false; } if (process_key_event (ev) && !retval) retval = true; } return retval; } /** * Pass one key event to the context. * * @param key a key event * * @return `true` if the key event is handled, `false` otherwise */ public bool process_key_event (KeyEvent key) { KeyEvent? _key = key_event_filter.filter_key_event (key); if (_key == null) return true; return process_key_event_internal (_key); } bool process_key_event_internal (KeyEvent key) { KeyEvent _key = key.copy (); var state = state_stack.peek_head (); while (true) { var handler_type = state.handler_type; var handler = handlers.get (handler_type); if (handler.process_key_event (state, ref _key)) { // FIXME should do this only when preedit is really changed update_preedit (); return true; } // state.handler_type may change if handler cannot // handle the event. In that case retry with the new // handler. Otherwise exit the loop. if (handler_type == state.handler_type) { // consume all events when we are in dict edit mode return dict_edit_level () > 0; } } } /** * Reset the context. */ public void reset () { // cancel all dict edit while (dict_edit_level () > 0) { pop_state (); state_stack.peek_head ().cancel_okuri (); } var state = state_stack.peek_head (); // will clear state.candidates but not state.output state.reset (); // need to manually assign it because // _candidates.candidates may point to a State object different // from state, when dict edit ((ProxyCandidateList) _candidates).candidates = state.candidates; // clear output and preedit clear_output (); preedit = ""; } /** * This is replaced with {@link poll_output}. * * @return an output string * Deprecated: 0.0.6 */ public string get_output () { return poll_output (); } string retrieve_output (bool clear) { // get the output from the top level state var state = state_stack.last (); var handler = handlers.get (state.handler_type); var output = handler.get_output (state); if (clear) { state.output.erase (); } return output; } /** * Peek (retrieve, but not remove) the current output string. * * @return an output string * @since 0.0.6 */ public string peek_output () { return retrieve_output (false); } /** * Poll (retrieve and remove) the current output string. * * @return an output string * @since 0.0.6 */ public string poll_output () { return retrieve_output (true); } /** * Clear the output buffer. * * @since 0.0.6 */ public void clear_output () { state_stack.peek_head ().output.erase (); } /** * Current preedit string. */ [CCode(notify = false)] public string preedit { get; private set; default = ""; } void update_preedit () { var builder = new StringBuilder (); var iter = state_stack.list_iterator (); iter.last (); while (iter.has_previous ()) { var state = iter.get (); var handler = handlers.get (state.handler_type); // if state is not top level, need to prepend output to preedit if (iter.has_next ()) builder.append (handler.get_output (state)); iter.previous (); state = iter.get (); builder.append ("â–¼"); builder.append (state.midasi); builder.append ("ã€"); } var state = state_stack.peek_head (); var handler = handlers.get (state.handler_type); if (dict_edit_level () > 0) builder.append (handler.get_output (state)); uint start = (uint) builder.str.char_count (); uint offset, nchars; builder.append (handler.get_preedit (state, out offset, out nchars)); offset += start; var level = dict_edit_level (); for (var i = 0; i < level; i++) { builder.append ("】"); } bool changed = false; if (preedit != builder.str) { preedit = builder.str; changed = true; } if (preedit_underline_offset != offset || preedit_underline_nchars != nchars) { preedit_underline_offset = offset; preedit_underline_nchars = nchars; changed = true; } if (changed) { notify_property ("preedit"); } } uint preedit_underline_offset = 0; uint preedit_underline_nchars = 0; /** * Get underlined range of preedit. * * @param offset starting offset (in chars) of underline * @param nchars number of characters to be underlined * @since 0.0.6 */ public void get_preedit_underline (out uint offset, out uint nchars) { offset = preedit_underline_offset; nchars = preedit_underline_nchars; } /** * Save dictionaries on to disk. */ public void save_dictionaries () throws GLib.Error { foreach (var dict in dictionaries) { if (!dict.read_only) { dict.save (); } } } } } libskk-1.0.0/libskk/state.c0000664000076400007640000056072112016556644012511 00000000000000/* state.c generated by valac 0.16.0, the Vala compiler * generated from state.vala, do not modify */ /* -*- coding: utf-8 -*-*/ /* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ #include #include #include #include #include #include #define SKK_TYPE_STATE (skk_state_get_type ()) #define SKK_STATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_STATE, SkkState)) #define SKK_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_STATE, SkkStateClass)) #define SKK_IS_STATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_STATE)) #define SKK_IS_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_STATE)) #define SKK_STATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_STATE, SkkStateClass)) typedef struct _SkkState SkkState; typedef struct _SkkStateClass SkkStateClass; typedef struct _SkkStatePrivate SkkStatePrivate; #define SKK_TYPE_DICT (skk_dict_get_type ()) #define SKK_DICT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_DICT, SkkDict)) #define SKK_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_DICT, SkkDictClass)) #define SKK_IS_DICT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_DICT)) #define SKK_IS_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_DICT)) #define SKK_DICT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_DICT, SkkDictClass)) typedef struct _SkkDict SkkDict; typedef struct _SkkDictClass SkkDictClass; #define SKK_TYPE_CANDIDATE_LIST (skk_candidate_list_get_type ()) #define SKK_CANDIDATE_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_CANDIDATE_LIST, SkkCandidateList)) #define SKK_CANDIDATE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_CANDIDATE_LIST, SkkCandidateListClass)) #define SKK_IS_CANDIDATE_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_CANDIDATE_LIST)) #define SKK_IS_CANDIDATE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_CANDIDATE_LIST)) #define SKK_CANDIDATE_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_CANDIDATE_LIST, SkkCandidateListClass)) typedef struct _SkkCandidateList SkkCandidateList; typedef struct _SkkCandidateListClass SkkCandidateListClass; #define SKK_TYPE_ROM_KANA_CONVERTER (skk_rom_kana_converter_get_type ()) #define SKK_ROM_KANA_CONVERTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_ROM_KANA_CONVERTER, SkkRomKanaConverter)) #define SKK_ROM_KANA_CONVERTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_ROM_KANA_CONVERTER, SkkRomKanaConverterClass)) #define SKK_IS_ROM_KANA_CONVERTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_ROM_KANA_CONVERTER)) #define SKK_IS_ROM_KANA_CONVERTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_ROM_KANA_CONVERTER)) #define SKK_ROM_KANA_CONVERTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_ROM_KANA_CONVERTER, SkkRomKanaConverterClass)) typedef struct _SkkRomKanaConverter SkkRomKanaConverter; typedef struct _SkkRomKanaConverterClass SkkRomKanaConverterClass; #define SKK_TYPE_UNICODE_STRING (skk_unicode_string_get_type ()) #define SKK_UNICODE_STRING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_UNICODE_STRING, SkkUnicodeString)) #define SKK_UNICODE_STRING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_UNICODE_STRING, SkkUnicodeStringClass)) #define SKK_IS_UNICODE_STRING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_UNICODE_STRING)) #define SKK_IS_UNICODE_STRING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_UNICODE_STRING)) #define SKK_UNICODE_STRING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_UNICODE_STRING, SkkUnicodeStringClass)) typedef struct _SkkUnicodeString SkkUnicodeString; typedef struct _SkkUnicodeStringClass SkkUnicodeStringClass; #define SKK_TYPE_KANA_MODE (skk_kana_mode_get_type ()) #define SKK_TYPE_INPUT_MODE (skk_input_mode_get_type ()) #define SKK_TYPE_RULE (skk_rule_get_type ()) #define SKK_RULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_RULE, SkkRule)) #define SKK_RULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_RULE, SkkRuleClass)) #define SKK_IS_RULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_RULE)) #define SKK_IS_RULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_RULE)) #define SKK_RULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_RULE, SkkRuleClass)) typedef struct _SkkRule SkkRule; typedef struct _SkkRuleClass SkkRuleClass; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) #define _g_free0(var) (var = (g_free (var), NULL)) #define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL))) #define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL))) #define SKK_TYPE_KEY_EVENT (skk_key_event_get_type ()) #define SKK_KEY_EVENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KEY_EVENT, SkkKeyEvent)) #define SKK_KEY_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KEY_EVENT, SkkKeyEventClass)) #define SKK_IS_KEY_EVENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KEY_EVENT)) #define SKK_IS_KEY_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KEY_EVENT)) #define SKK_KEY_EVENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KEY_EVENT, SkkKeyEventClass)) typedef struct _SkkKeyEvent SkkKeyEvent; typedef struct _SkkKeyEventClass SkkKeyEventClass; typedef struct _SkkRulePrivate SkkRulePrivate; #define SKK_TYPE_MAP_FILE (skk_map_file_get_type ()) #define SKK_MAP_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_MAP_FILE, SkkMapFile)) #define SKK_MAP_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_MAP_FILE, SkkMapFileClass)) #define SKK_IS_MAP_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_MAP_FILE)) #define SKK_IS_MAP_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_MAP_FILE)) #define SKK_MAP_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_MAP_FILE, SkkMapFileClass)) typedef struct _SkkMapFile SkkMapFile; typedef struct _SkkMapFileClass SkkMapFileClass; #define SKK_TYPE_KEYMAP_MAP_FILE (skk_keymap_map_file_get_type ()) #define SKK_KEYMAP_MAP_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KEYMAP_MAP_FILE, SkkKeymapMapFile)) #define SKK_KEYMAP_MAP_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KEYMAP_MAP_FILE, SkkKeymapMapFileClass)) #define SKK_IS_KEYMAP_MAP_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KEYMAP_MAP_FILE)) #define SKK_IS_KEYMAP_MAP_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KEYMAP_MAP_FILE)) #define SKK_KEYMAP_MAP_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KEYMAP_MAP_FILE, SkkKeymapMapFileClass)) typedef struct _SkkKeymapMapFile SkkKeymapMapFile; typedef struct _SkkKeymapMapFileClass SkkKeymapMapFileClass; #define SKK_TYPE_ROM_KANA_MAP_FILE (skk_rom_kana_map_file_get_type ()) #define SKK_ROM_KANA_MAP_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_ROM_KANA_MAP_FILE, SkkRomKanaMapFile)) #define SKK_ROM_KANA_MAP_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_ROM_KANA_MAP_FILE, SkkRomKanaMapFileClass)) #define SKK_IS_ROM_KANA_MAP_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_ROM_KANA_MAP_FILE)) #define SKK_IS_ROM_KANA_MAP_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_ROM_KANA_MAP_FILE)) #define SKK_ROM_KANA_MAP_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_ROM_KANA_MAP_FILE, SkkRomKanaMapFileClass)) typedef struct _SkkRomKanaMapFile SkkRomKanaMapFile; typedef struct _SkkRomKanaMapFileClass SkkRomKanaMapFileClass; typedef struct _SkkMapFilePrivate SkkMapFilePrivate; typedef struct _SkkKeymapMapFilePrivate SkkKeymapMapFilePrivate; #define SKK_TYPE_KEYMAP (skk_keymap_get_type ()) #define SKK_KEYMAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KEYMAP, SkkKeymap)) #define SKK_KEYMAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KEYMAP, SkkKeymapClass)) #define SKK_IS_KEYMAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KEYMAP)) #define SKK_IS_KEYMAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KEYMAP)) #define SKK_KEYMAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KEYMAP, SkkKeymapClass)) typedef struct _SkkKeymap SkkKeymap; typedef struct _SkkKeymapClass SkkKeymapClass; #define SKK_TYPE_SIMPLE_CANDIDATE_LIST (skk_simple_candidate_list_get_type ()) #define SKK_SIMPLE_CANDIDATE_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_SIMPLE_CANDIDATE_LIST, SkkSimpleCandidateList)) #define SKK_SIMPLE_CANDIDATE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_SIMPLE_CANDIDATE_LIST, SkkSimpleCandidateListClass)) #define SKK_IS_SIMPLE_CANDIDATE_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_SIMPLE_CANDIDATE_LIST)) #define SKK_IS_SIMPLE_CANDIDATE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_SIMPLE_CANDIDATE_LIST)) #define SKK_SIMPLE_CANDIDATE_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_SIMPLE_CANDIDATE_LIST, SkkSimpleCandidateListClass)) typedef struct _SkkSimpleCandidateList SkkSimpleCandidateList; typedef struct _SkkSimpleCandidateListClass SkkSimpleCandidateListClass; #define SKK_TYPE_CANDIDATE (skk_candidate_get_type ()) #define SKK_CANDIDATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_CANDIDATE, SkkCandidate)) #define SKK_CANDIDATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_CANDIDATE, SkkCandidateClass)) #define SKK_IS_CANDIDATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_CANDIDATE)) #define SKK_IS_CANDIDATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_CANDIDATE)) #define SKK_CANDIDATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_CANDIDATE, SkkCandidateClass)) typedef struct _SkkCandidate SkkCandidate; typedef struct _SkkCandidateClass SkkCandidateClass; #define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL))) #define SKK_TYPE_STATE_HANDLER (skk_state_handler_get_type ()) #define SKK_STATE_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_STATE_HANDLER, SkkStateHandler)) #define SKK_STATE_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_STATE_HANDLER, SkkStateHandlerClass)) #define SKK_IS_STATE_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_STATE_HANDLER)) #define SKK_IS_STATE_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_STATE_HANDLER)) #define SKK_STATE_HANDLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_STATE_HANDLER, SkkStateHandlerClass)) typedef struct _SkkStateHandler SkkStateHandler; typedef struct _SkkStateHandlerClass SkkStateHandlerClass; #define SKK_TYPE_NONE_STATE_HANDLER (skk_none_state_handler_get_type ()) #define SKK_NONE_STATE_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_NONE_STATE_HANDLER, SkkNoneStateHandler)) #define SKK_NONE_STATE_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_NONE_STATE_HANDLER, SkkNoneStateHandlerClass)) #define SKK_IS_NONE_STATE_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_NONE_STATE_HANDLER)) #define SKK_IS_NONE_STATE_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_NONE_STATE_HANDLER)) #define SKK_NONE_STATE_HANDLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_NONE_STATE_HANDLER, SkkNoneStateHandlerClass)) typedef struct _SkkNoneStateHandler SkkNoneStateHandler; typedef struct _SkkNoneStateHandlerClass SkkNoneStateHandlerClass; #define SKK_TYPE_KEY_EVENT_FILTER (skk_key_event_filter_get_type ()) #define SKK_KEY_EVENT_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KEY_EVENT_FILTER, SkkKeyEventFilter)) #define SKK_KEY_EVENT_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KEY_EVENT_FILTER, SkkKeyEventFilterClass)) #define SKK_IS_KEY_EVENT_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KEY_EVENT_FILTER)) #define SKK_IS_KEY_EVENT_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KEY_EVENT_FILTER)) #define SKK_KEY_EVENT_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KEY_EVENT_FILTER, SkkKeyEventFilterClass)) typedef struct _SkkKeyEventFilter SkkKeyEventFilter; typedef struct _SkkKeyEventFilterClass SkkKeyEventFilterClass; #define _g_match_info_free0(var) ((var == NULL) ? NULL : (var = (g_match_info_free (var), NULL))) #define SKK_TYPE_EXPR_READER (skk_expr_reader_get_type ()) #define SKK_EXPR_READER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_EXPR_READER, SkkExprReader)) #define SKK_EXPR_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_EXPR_READER, SkkExprReaderClass)) #define SKK_IS_EXPR_READER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_EXPR_READER)) #define SKK_IS_EXPR_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_EXPR_READER)) #define SKK_EXPR_READER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_EXPR_READER, SkkExprReaderClass)) typedef struct _SkkExprReader SkkExprReader; typedef struct _SkkExprReaderClass SkkExprReaderClass; #define SKK_TYPE_EXPR_NODE (skk_expr_node_get_type ()) #define SKK_TYPE_EXPR_NODE_TYPE (skk_expr_node_type_get_type ()) typedef struct _SkkExprNode SkkExprNode; #define SKK_TYPE_EXPR_EVALUATOR (skk_expr_evaluator_get_type ()) #define SKK_EXPR_EVALUATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_EXPR_EVALUATOR, SkkExprEvaluator)) #define SKK_EXPR_EVALUATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_EXPR_EVALUATOR, SkkExprEvaluatorClass)) #define SKK_IS_EXPR_EVALUATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_EXPR_EVALUATOR)) #define SKK_IS_EXPR_EVALUATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_EXPR_EVALUATOR)) #define SKK_EXPR_EVALUATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_EXPR_EVALUATOR, SkkExprEvaluatorClass)) typedef struct _SkkExprEvaluator SkkExprEvaluator; typedef struct _SkkExprEvaluatorClass SkkExprEvaluatorClass; #define _skk_expr_node_free0(var) ((var == NULL) ? NULL : (var = (skk_expr_node_free (var), NULL))) #define SKK_TYPE_NUMERIC_CONVERSION_TYPE (skk_numeric_conversion_type_get_type ()) #define SKK_TYPE_PERIOD_STYLE (skk_period_style_get_type ()) typedef struct _SkkStateHandlerPrivate SkkStateHandlerPrivate; typedef struct _SkkNoneStateHandlerPrivate SkkNoneStateHandlerPrivate; #define SKK_TYPE_ENTRY (skk_entry_get_type ()) typedef struct _SkkEntry SkkEntry; typedef struct _SkkUnicodeStringPrivate SkkUnicodeStringPrivate; #define SKK_TYPE_START_STATE_HANDLER (skk_start_state_handler_get_type ()) #define SKK_START_STATE_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_START_STATE_HANDLER, SkkStartStateHandler)) #define SKK_START_STATE_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_START_STATE_HANDLER, SkkStartStateHandlerClass)) #define SKK_IS_START_STATE_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_START_STATE_HANDLER)) #define SKK_IS_START_STATE_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_START_STATE_HANDLER)) #define SKK_START_STATE_HANDLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_START_STATE_HANDLER, SkkStartStateHandlerClass)) typedef struct _SkkStartStateHandler SkkStartStateHandler; typedef struct _SkkStartStateHandlerClass SkkStartStateHandlerClass; #define SKK_TYPE_MODIFIER_TYPE (skk_modifier_type_get_type ()) #define SKK_TYPE_ABBREV_STATE_HANDLER (skk_abbrev_state_handler_get_type ()) #define SKK_ABBREV_STATE_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_ABBREV_STATE_HANDLER, SkkAbbrevStateHandler)) #define SKK_ABBREV_STATE_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_ABBREV_STATE_HANDLER, SkkAbbrevStateHandlerClass)) #define SKK_IS_ABBREV_STATE_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_ABBREV_STATE_HANDLER)) #define SKK_IS_ABBREV_STATE_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_ABBREV_STATE_HANDLER)) #define SKK_ABBREV_STATE_HANDLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_ABBREV_STATE_HANDLER, SkkAbbrevStateHandlerClass)) typedef struct _SkkAbbrevStateHandler SkkAbbrevStateHandler; typedef struct _SkkAbbrevStateHandlerClass SkkAbbrevStateHandlerClass; #define SKK_TYPE_KUTEN_STATE_HANDLER (skk_kuten_state_handler_get_type ()) #define SKK_KUTEN_STATE_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KUTEN_STATE_HANDLER, SkkKutenStateHandler)) #define SKK_KUTEN_STATE_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KUTEN_STATE_HANDLER, SkkKutenStateHandlerClass)) #define SKK_IS_KUTEN_STATE_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KUTEN_STATE_HANDLER)) #define SKK_IS_KUTEN_STATE_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KUTEN_STATE_HANDLER)) #define SKK_KUTEN_STATE_HANDLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KUTEN_STATE_HANDLER, SkkKutenStateHandlerClass)) typedef struct _SkkKutenStateHandler SkkKutenStateHandler; typedef struct _SkkKutenStateHandlerClass SkkKutenStateHandlerClass; typedef struct _SkkKutenStateHandlerPrivate SkkKutenStateHandlerPrivate; #define SKK_TYPE_ENCODING_CONVERTER (skk_encoding_converter_get_type ()) #define SKK_ENCODING_CONVERTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_ENCODING_CONVERTER, SkkEncodingConverter)) #define SKK_ENCODING_CONVERTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_ENCODING_CONVERTER, SkkEncodingConverterClass)) #define SKK_IS_ENCODING_CONVERTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_ENCODING_CONVERTER)) #define SKK_IS_ENCODING_CONVERTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_ENCODING_CONVERTER)) #define SKK_ENCODING_CONVERTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_ENCODING_CONVERTER, SkkEncodingConverterClass)) typedef struct _SkkEncodingConverter SkkEncodingConverter; typedef struct _SkkEncodingConverterClass SkkEncodingConverterClass; typedef struct _SkkAbbrevStateHandlerPrivate SkkAbbrevStateHandlerPrivate; #define SKK_TYPE_SELECT_STATE_HANDLER (skk_select_state_handler_get_type ()) #define SKK_SELECT_STATE_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_SELECT_STATE_HANDLER, SkkSelectStateHandler)) #define SKK_SELECT_STATE_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_SELECT_STATE_HANDLER, SkkSelectStateHandlerClass)) #define SKK_IS_SELECT_STATE_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_SELECT_STATE_HANDLER)) #define SKK_IS_SELECT_STATE_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_SELECT_STATE_HANDLER)) #define SKK_SELECT_STATE_HANDLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_SELECT_STATE_HANDLER, SkkSelectStateHandlerClass)) typedef struct _SkkSelectStateHandler SkkSelectStateHandler; typedef struct _SkkSelectStateHandlerClass SkkSelectStateHandlerClass; typedef struct _SkkStartStateHandlerPrivate SkkStartStateHandlerPrivate; typedef struct _SkkSelectStateHandlerPrivate SkkSelectStateHandlerPrivate; struct _SkkState { GObject parent_instance; SkkStatePrivate * priv; GType handler_type; GeeList* dictionaries; SkkCandidateList* candidates; SkkRomKanaConverter* rom_kana_converter; SkkRomKanaConverter* okuri_rom_kana_converter; gboolean okuri; gchar* midasi; GString* output; GString* abbrev; GString* kuten; GeeIterator* completion_iterator; gchar** auto_start_henkan_keywords; gint auto_start_henkan_keywords_length1; gint _auto_start_henkan_keywords_size_; gchar* auto_start_henkan_keyword; gboolean egg_like_newline; SkkUnicodeString* surrounding_text; guint surrounding_end; }; struct _SkkStateClass { GObjectClass parent_class; }; typedef enum { SKK_KANA_MODE_HIRAGANA, SKK_KANA_MODE_KATAKANA, SKK_KANA_MODE_HANKAKU_KATAKANA } SkkKanaMode; typedef enum { SKK_INPUT_MODE_HIRAGANA = SKK_KANA_MODE_HIRAGANA, SKK_INPUT_MODE_KATAKANA = SKK_KANA_MODE_KATAKANA, SKK_INPUT_MODE_HANKAKU_KATAKANA = SKK_KANA_MODE_HANKAKU_KATAKANA, SKK_INPUT_MODE_LATIN, SKK_INPUT_MODE_WIDE_LATIN, SKK_INPUT_MODE_LAST, SKK_INPUT_MODE_DEFAULT = SKK_INPUT_MODE_HIRAGANA } SkkInputMode; struct _SkkStatePrivate { SkkInputMode _input_mode; GeeArrayList* completion; SkkRule* _typing_rule; GRegex* numeric_regex; GRegex* numeric_ref_regex; }; struct _SkkRule { GObject parent_instance; SkkRulePrivate * priv; SkkKeymapMapFile** keymaps; gint keymaps_length1; gint _keymaps_size_; SkkRomKanaMapFile* rom_kana; }; struct _SkkRuleClass { GObjectClass parent_class; }; struct _SkkMapFile { GObject parent_instance; SkkMapFilePrivate * priv; }; struct _SkkMapFileClass { GObjectClass parent_class; }; struct _SkkKeymapMapFile { SkkMapFile parent_instance; SkkKeymapMapFilePrivate * priv; SkkKeymap* keymap; }; struct _SkkKeymapMapFileClass { SkkMapFileClass parent_class; }; typedef enum { SKK_RULE_PARSE_ERROR_FAILED } SkkRuleParseError; #define SKK_RULE_PARSE_ERROR skk_rule_parse_error_quark () typedef enum { SKK_EXPR_NODE_TYPE_ARRAY, SKK_EXPR_NODE_TYPE_SYMBOL, SKK_EXPR_NODE_TYPE_STRING } SkkExprNodeType; struct _SkkExprNode { SkkExprNodeType type; GeeLinkedList* nodes; gchar* data; }; typedef enum { SKK_NUMERIC_CONVERSION_TYPE_LATIN, SKK_NUMERIC_CONVERSION_TYPE_WIDE_LATIN, SKK_NUMERIC_CONVERSION_TYPE_KANJI_NUMERAL, SKK_NUMERIC_CONVERSION_TYPE_KANJI, SKK_NUMERIC_CONVERSION_TYPE_RECONVERT, SKK_NUMERIC_CONVERSION_TYPE_DAIJI, SKK_NUMERIC_CONVERSION_TYPE_SHOGI } SkkNumericConversionType; typedef enum { SKK_PERIOD_STYLE_JA_JA, SKK_PERIOD_STYLE_EN_EN, SKK_PERIOD_STYLE_JA_EN, SKK_PERIOD_STYLE_EN_JA } SkkPeriodStyle; typedef gboolean (*SkkCommandHandler) (SkkState* state, void* user_data); struct _SkkStateHandler { GObject parent_instance; SkkStateHandlerPrivate * priv; }; struct _SkkStateHandlerClass { GObjectClass parent_class; gboolean (*process_key_event) (SkkStateHandler* self, SkkState* state, SkkKeyEvent** key); gchar* (*get_preedit) (SkkStateHandler* self, SkkState* state, guint* underline_offset, guint* underline_nchars); gchar* (*get_output) (SkkStateHandler* self, SkkState* state); }; struct _SkkNoneStateHandler { SkkStateHandler parent_instance; SkkNoneStateHandlerPrivate * priv; }; struct _SkkNoneStateHandlerClass { SkkStateHandlerClass parent_class; }; struct _SkkEntry { gpointer key; gpointer value; }; struct _SkkUnicodeString { GObject parent_instance; SkkUnicodeStringPrivate * priv; gint length; }; struct _SkkUnicodeStringClass { GObjectClass parent_class; }; typedef enum { SKK_MODIFIER_TYPE_NONE = 0, SKK_MODIFIER_TYPE_SHIFT_MASK = 1 << 0, SKK_MODIFIER_TYPE_LOCK_MASK = 1 << 1, SKK_MODIFIER_TYPE_CONTROL_MASK = 1 << 2, SKK_MODIFIER_TYPE_MOD1_MASK = 1 << 3, SKK_MODIFIER_TYPE_MOD2_MASK = 1 << 4, SKK_MODIFIER_TYPE_MOD3_MASK = 1 << 5, SKK_MODIFIER_TYPE_MOD4_MASK = 1 << 6, SKK_MODIFIER_TYPE_MOD5_MASK = 1 << 7, SKK_MODIFIER_TYPE_LSHIFT_MASK = 1 << 22, SKK_MODIFIER_TYPE_RSHIFT_MASK = 1 << 23, SKK_MODIFIER_TYPE_USLEEP_MASK = 1 << 24, SKK_MODIFIER_TYPE_SUPER_MASK = 1 << 26, SKK_MODIFIER_TYPE_HYPER_MASK = 1 << 27, SKK_MODIFIER_TYPE_META_MASK = 1 << 28, SKK_MODIFIER_TYPE_RELEASE_MASK = 1 << 30 } SkkModifierType; struct _SkkKutenStateHandler { SkkStateHandler parent_instance; SkkKutenStateHandlerPrivate * priv; }; struct _SkkKutenStateHandlerClass { SkkStateHandlerClass parent_class; }; struct _SkkKutenStateHandlerPrivate { SkkEncodingConverter* converter; }; struct _SkkAbbrevStateHandler { SkkStateHandler parent_instance; SkkAbbrevStateHandlerPrivate * priv; }; struct _SkkAbbrevStateHandlerClass { SkkStateHandlerClass parent_class; }; struct _SkkStartStateHandler { SkkStateHandler parent_instance; SkkStartStateHandlerPrivate * priv; }; struct _SkkStartStateHandlerClass { SkkStateHandlerClass parent_class; }; struct _SkkSelectStateHandler { SkkStateHandler parent_instance; SkkSelectStateHandlerPrivate * priv; }; struct _SkkSelectStateHandlerClass { SkkStateHandlerClass parent_class; }; static gpointer skk_state_parent_class = NULL; static gpointer skk_state_handler_parent_class = NULL; static gpointer skk_none_state_handler_parent_class = NULL; static gpointer skk_kuten_state_handler_parent_class = NULL; static gpointer skk_abbrev_state_handler_parent_class = NULL; static gpointer skk_start_state_handler_parent_class = NULL; static gpointer skk_select_state_handler_parent_class = NULL; GType skk_state_get_type (void) G_GNUC_CONST; GType skk_dict_get_type (void) G_GNUC_CONST; GType skk_candidate_list_get_type (void) G_GNUC_CONST; GType skk_rom_kana_converter_get_type (void) G_GNUC_CONST; GType skk_unicode_string_get_type (void) G_GNUC_CONST; GType skk_kana_mode_get_type (void) G_GNUC_CONST; GType skk_input_mode_get_type (void) G_GNUC_CONST; GType skk_rule_get_type (void) G_GNUC_CONST; #define SKK_STATE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SKK_TYPE_STATE, SkkStatePrivate)) enum { SKK_STATE_DUMMY_PROPERTY, SKK_STATE_INPUT_MODE, SKK_STATE_PERIOD_STYLE, SKK_STATE_TYPING_RULE }; void skk_state_reset (SkkState* self); GType skk_key_event_get_type (void) G_GNUC_CONST; gchar* skk_state_lookup_key (SkkState* self, SkkKeyEvent* key); GType skk_map_file_get_type (void) G_GNUC_CONST; GType skk_keymap_map_file_get_type (void) G_GNUC_CONST; GType skk_rom_kana_map_file_get_type (void) G_GNUC_CONST; SkkInputMode skk_state_get_input_mode (SkkState* self); GType skk_keymap_get_type (void) G_GNUC_CONST; gchar* skk_keymap_lookup_key (SkkKeymap* self, SkkKeyEvent* key); SkkKeyEvent* skk_state_where_is (SkkState* self, const gchar* command); SkkKeyEvent* skk_keymap_where_is (SkkKeymap* self, const gchar* command); gboolean skk_state_isupper (SkkState* self, SkkKeyEvent* key, gunichar* lower_code); gunichar skk_key_event_get_code (SkkKeyEvent* self); SkkState* skk_state_new (GeeList* dictionaries); SkkState* skk_state_construct (GType object_type, GeeList* dictionaries); SkkSimpleCandidateList* skk_simple_candidate_list_new (guint page_start, guint page_size); SkkSimpleCandidateList* skk_simple_candidate_list_construct (GType object_type, guint page_start, guint page_size); GType skk_simple_candidate_list_get_type (void) G_GNUC_CONST; GType skk_candidate_get_type (void) G_GNUC_CONST; static void skk_state_candidate_selected (SkkState* self, SkkCandidate* c); static void _skk_state_candidate_selected_skk_candidate_list_selected (SkkCandidateList* _sender, SkkCandidate* candidate, gpointer self); SkkRomKanaConverter* skk_rom_kana_converter_new (void); SkkRomKanaConverter* skk_rom_kana_converter_construct (GType object_type); static gchar** _vala_array_dup3 (gchar** self, int length); GQuark skk_rule_parse_error_quark (void); SkkRule* skk_rule_new (const gchar* name, GError** error); SkkRule* skk_rule_construct (GType object_type, const gchar* name, GError** error); const gchar* skk_candidate_get_output (SkkCandidate* self); const gchar* skk_rom_kana_converter_get_output (SkkRomKanaConverter* self); void skk_state_output_surrounding_text (SkkState* self); gchar* skk_unicode_string_substring (SkkUnicodeString* self, glong offset, glong len); GType skk_state_handler_get_type (void) G_GNUC_CONST; GType skk_none_state_handler_get_type (void) G_GNUC_CONST; void skk_rom_kana_converter_reset (SkkRomKanaConverter* self); GType skk_key_event_filter_get_type (void) G_GNUC_CONST; SkkKeyEventFilter* skk_rule_get_filter (SkkRule* self); void skk_key_event_filter_reset (SkkKeyEventFilter* self); void skk_candidate_list_clear (SkkCandidateList* self); void skk_state_cancel_okuri (SkkState* self); void skk_rom_kana_converter_set_output (SkkRomKanaConverter* self, const gchar* value); static gchar* skk_state_extract_numerics (SkkState* self, const gchar* midasi, gint** numerics, int* numerics_length1); static gchar* skk_state_expand_expr (SkkState* self, const gchar* text); SkkExprReader* skk_expr_reader_new (void); SkkExprReader* skk_expr_reader_construct (GType object_type); GType skk_expr_reader_get_type (void) G_GNUC_CONST; GType skk_expr_node_get_type (void) G_GNUC_CONST; GType skk_expr_node_type_get_type (void) G_GNUC_CONST; SkkExprNode* skk_expr_node_dup (const SkkExprNode* self); void skk_expr_node_free (SkkExprNode* self); void skk_expr_node_copy (const SkkExprNode* self, SkkExprNode* dest); void skk_expr_node_destroy (SkkExprNode* self); SkkExprNode* skk_expr_reader_read_expr (SkkExprReader* self, const gchar* expr, gint* index); SkkExprEvaluator* skk_expr_evaluator_new (void); SkkExprEvaluator* skk_expr_evaluator_construct (GType object_type); GType skk_expr_evaluator_get_type (void) G_GNUC_CONST; gchar* skk_expr_evaluator_eval (SkkExprEvaluator* self, SkkExprNode* node); static gchar* skk_state_expand_numeric_references (SkkState* self, const gchar* text, gint* numerics, int numerics_length1); GType skk_numeric_conversion_type_get_type (void) G_GNUC_CONST; gchar* skk_util_get_numeric (gint numeric, SkkNumericConversionType type); void skk_state_lookup (SkkState* self, const gchar* midasi, gboolean okuri); static void skk_state_lookup_internal (SkkState* self, const gchar* midasi, gint* numerics, int numerics_length1, gboolean okuri); void skk_candidate_list_add_candidates_end (SkkCandidateList* self); SkkCandidate** skk_dict_lookup (SkkDict* self, const gchar* midasi, gboolean okuri, int* result_length1); const gchar* skk_candidate_get_text (SkkCandidate* self); void skk_candidate_set_output (SkkCandidate* self, const gchar* value); const gchar* skk_candidate_get_annotation (SkkCandidate* self); void skk_candidate_set_annotation (SkkCandidate* self, const gchar* value); void skk_candidate_list_add_candidates (SkkCandidateList* self, SkkCandidate** array, int array_length1); void skk_state_purge_candidate (SkkState* self, SkkCandidate* candidate); gboolean skk_dict_get_read_only (SkkDict* self); gboolean skk_dict_purge_candidate (SkkDict* self, SkkCandidate* candidate); void skk_state_completion_start (SkkState* self, const gchar* midasi); gchar** skk_dict_complete (SkkDict* self, const gchar* midasi, int* result_length1); gchar* skk_state_get_yomi (SkkState* self); const gchar* skk_rom_kana_converter_get_preedit (SkkRomKanaConverter* self); void skk_state_set_input_mode (SkkState* self, SkkInputMode value); void skk_rom_kana_converter_set_kana_mode (SkkRomKanaConverter* self, SkkKanaMode value); GType skk_period_style_get_type (void) G_GNUC_CONST; SkkPeriodStyle skk_state_get_period_style (SkkState* self); SkkPeriodStyle skk_rom_kana_converter_get_period_style (SkkRomKanaConverter* self); void skk_state_set_period_style (SkkState* self, SkkPeriodStyle value); void skk_rom_kana_converter_set_period_style (SkkRomKanaConverter* self, SkkPeriodStyle value); SkkRule* skk_state_get_typing_rule (SkkState* self); void skk_state_set_typing_rule (SkkState* self, SkkRule* value); void skk_rom_kana_converter_set_rule (SkkRomKanaConverter* self, SkkRomKanaMapFile* value); static void g_cclosure_user_marshal_BOOLEAN__VOID (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data); static void g_cclosure_user_marshal_BOOLEAN__STRING (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data); static void g_cclosure_user_marshal_VOID__STRING_BOOLEAN (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data); static void g_cclosure_user_marshal_BOOLEAN__POINTER_POINTER (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data); static void g_cclosure_user_marshal_BOOLEAN__INT_UINT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data); static void skk_state_finalize (GObject* obj); static void _vala_skk_state_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); static void _vala_skk_state_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec); enum { SKK_STATE_HANDLER_DUMMY_PROPERTY }; gboolean skk_state_handler_process_key_event (SkkStateHandler* self, SkkState* state, SkkKeyEvent** key); static gboolean skk_state_handler_real_process_key_event (SkkStateHandler* self, SkkState* state, SkkKeyEvent** key); gchar* skk_state_handler_get_preedit (SkkStateHandler* self, SkkState* state, guint* underline_offset, guint* underline_nchars); static gchar* skk_state_handler_real_get_preedit (SkkStateHandler* self, SkkState* state, guint* underline_offset, guint* underline_nchars); gchar* skk_state_handler_get_output (SkkStateHandler* self, SkkState* state); static gchar* skk_state_handler_real_get_output (SkkStateHandler* self, SkkState* state); SkkStateHandler* skk_state_handler_construct (GType object_type); enum { SKK_NONE_STATE_HANDLER_DUMMY_PROPERTY }; GType skk_entry_get_type (void) G_GNUC_CONST; SkkEntry* skk_entry_dup (const SkkEntry* self); void skk_entry_free (SkkEntry* self); void skk_entry_copy (const SkkEntry* self, SkkEntry* dest); void skk_entry_destroy (SkkEntry* self); static gboolean skk_none_state_handler_real_process_key_event (SkkStateHandler* base, SkkState* state, SkkKeyEvent** key); SkkUnicodeString* skk_unicode_string_new (const gchar* str); SkkUnicodeString* skk_unicode_string_construct (GType object_type, const gchar* str); GType skk_start_state_handler_get_type (void) G_GNUC_CONST; GType skk_modifier_type_get_type (void) G_GNUC_CONST; SkkModifierType skk_key_event_get_modifiers (SkkKeyEvent* self); gboolean skk_rom_kana_converter_can_consume (SkkRomKanaConverter* self, gunichar uc, gboolean preedit_only, gboolean no_carryover); gboolean skk_rom_kana_converter_output_nn_if_any (SkkRomKanaConverter* self); gboolean skk_rom_kana_converter_delete (SkkRomKanaConverter* self); gboolean skk_rom_kana_converter_is_valid (SkkRomKanaConverter* self, gunichar uc); GType skk_abbrev_state_handler_get_type (void) G_GNUC_CONST; GType skk_kuten_state_handler_get_type (void) G_GNUC_CONST; gchar* skk_util_convert_by_input_mode (const gchar* str, SkkInputMode input_mode); gboolean skk_rom_kana_converter_append (SkkRomKanaConverter* self, gunichar uc); gunichar skk_util_get_wide_latin_char (gchar c); static gchar* skk_none_state_handler_real_get_preedit (SkkStateHandler* base, SkkState* state, guint* underline_offset, guint* underline_nchars); SkkNoneStateHandler* skk_none_state_handler_new (void); SkkNoneStateHandler* skk_none_state_handler_construct (GType object_type); GType skk_encoding_converter_get_type (void) G_GNUC_CONST; #define SKK_KUTEN_STATE_HANDLER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SKK_TYPE_KUTEN_STATE_HANDLER, SkkKutenStateHandlerPrivate)) enum { SKK_KUTEN_STATE_HANDLER_DUMMY_PROPERTY }; SkkKutenStateHandler* skk_kuten_state_handler_new (void); SkkKutenStateHandler* skk_kuten_state_handler_construct (GType object_type); SkkEncodingConverter* skk_encoding_converter_new (const gchar* encoding, GError** error); SkkEncodingConverter* skk_encoding_converter_construct (GType object_type, const gchar* encoding, GError** error); static gint skk_kuten_state_handler_hex_char_to_int (SkkKutenStateHandler* self, gchar hex); static gchar* skk_kuten_state_handler_parse_hex (SkkKutenStateHandler* self, const gchar* hex); static gboolean skk_kuten_state_handler_real_process_key_event (SkkStateHandler* base, SkkState* state, SkkKeyEvent** key); gchar* skk_encoding_converter_decode (SkkEncodingConverter* self, const gchar* external_str, GError** error); static gchar* skk_kuten_state_handler_real_get_preedit (SkkStateHandler* base, SkkState* state, guint* underline_offset, guint* underline_nchars); static void skk_kuten_state_handler_finalize (GObject* obj); enum { SKK_ABBREV_STATE_HANDLER_DUMMY_PROPERTY }; static gboolean skk_abbrev_state_handler_real_process_key_event (SkkStateHandler* base, SkkState* state, SkkKeyEvent** key); GType skk_select_state_handler_get_type (void) G_GNUC_CONST; gchar* skk_util_get_wide_latin (const gchar* latin); static gchar* skk_abbrev_state_handler_real_get_preedit (SkkStateHandler* base, SkkState* state, guint* underline_offset, guint* underline_nchars); SkkAbbrevStateHandler* skk_abbrev_state_handler_new (void); SkkAbbrevStateHandler* skk_abbrev_state_handler_construct (GType object_type); enum { SKK_START_STATE_HANDLER_DUMMY_PROPERTY }; static gboolean skk_start_state_handler_real_process_key_event (SkkStateHandler* base, SkkState* state, SkkKeyEvent** key); static gboolean skk_start_state_handler_check_auto_conversion (SkkStartStateHandler* self, SkkState* state, SkkKeyEvent* key); static gchar* skk_start_state_handler_real_get_preedit (SkkStateHandler* base, SkkState* state, guint* underline_offset, guint* underline_nchars); SkkStartStateHandler* skk_start_state_handler_new (void); SkkStartStateHandler* skk_start_state_handler_construct (GType object_type); enum { SKK_SELECT_STATE_HANDLER_DUMMY_PROPERTY }; static gboolean skk_select_state_handler_real_process_key_event (SkkStateHandler* base, SkkState* state, SkkKeyEvent** key); gboolean skk_candidate_list_previous (SkkCandidateList* self); SkkCandidate* skk_candidate_list_get (SkkCandidateList* self, gint index); gint skk_candidate_list_get_cursor_pos (SkkCandidateList* self); gchar* skk_util_get_okurigana_prefix (const gchar* okurigana); gchar* skk_util_get_hiragana (const gchar* kana); gint skk_candidate_list_get_size (SkkCandidateList* self); gboolean skk_candidate_list_next (SkkCandidateList* self); void skk_candidate_list_select (SkkCandidateList* self); static gchar* skk_select_state_handler_real_get_preedit (SkkStateHandler* base, SkkState* state, guint* underline_offset, guint* underline_nchars); SkkSelectStateHandler* skk_select_state_handler_new (void); SkkSelectStateHandler* skk_select_state_handler_construct (GType object_type); static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func); const gchar* SKK_AUTO_START_HENKAN_KEYWORDS[28] = {"ã‚’", "ã€", "。", ".", ",", "?", "ã€", "ï¼", "ï¼›", ":", ")", ";", ":", ")", "â€", "】", "ã€", "》", "〉", "ï½", "ï¼½", "〕", "}", "]", "?", ".", ",", "!"}; static const SkkEntry SKK_NONE_STATE_HANDLER_input_mode_commands[5] = {{"set-input-mode-hiragana", SKK_INPUT_MODE_HIRAGANA}, {"set-input-mode-katakana", SKK_INPUT_MODE_KATAKANA}, {"set-input-mode-hankaku-katakana", SKK_INPUT_MODE_HANKAKU_KATAKANA}, {"set-input-mode-latin", SKK_INPUT_MODE_LATIN}, {"set-input-mode-wide-latin", SKK_INPUT_MODE_WIDE_LATIN}}; static const SkkEntry SKK_START_STATE_HANDLER_end_preedit_commands[3] = {{"set-input-mode-hiragana", SKK_INPUT_MODE_HIRAGANA}, {"set-input-mode-katakana", SKK_INPUT_MODE_KATAKANA}, {"set-input-mode-hankaku-katakana", SKK_INPUT_MODE_HANKAKU_KATAKANA}}; static gpointer _g_object_ref0 (gpointer self) { return self ? g_object_ref (self) : NULL; } gchar* skk_state_lookup_key (SkkState* self, SkkKeyEvent* key) { gchar* result = NULL; SkkRule* _tmp0_; SkkKeymapMapFile** _tmp1_; gint _tmp1__length1; SkkInputMode _tmp2_; SkkInputMode _tmp3_; SkkKeymapMapFile* _tmp4_; SkkKeymap* _tmp5_; SkkKeymap* _tmp6_; SkkKeymap* keymap; SkkKeyEvent* _tmp7_; gchar* _tmp8_ = NULL; g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (key != NULL, NULL); _tmp0_ = self->priv->_typing_rule; _tmp1_ = _tmp0_->keymaps; _tmp1__length1 = _tmp0_->keymaps_length1; _tmp2_ = skk_state_get_input_mode (self); _tmp3_ = _tmp2_; _tmp4_ = _tmp1_[_tmp3_]; _tmp5_ = _tmp4_->keymap; _tmp6_ = _g_object_ref0 (_tmp5_); keymap = _tmp6_; g_return_val_if_fail (keymap != NULL, NULL); _tmp7_ = key; _tmp8_ = skk_keymap_lookup_key (keymap, _tmp7_); result = _tmp8_; _g_object_unref0 (keymap); return result; } SkkKeyEvent* skk_state_where_is (SkkState* self, const gchar* command) { SkkKeyEvent* result = NULL; SkkRule* _tmp0_; SkkKeymapMapFile** _tmp1_; gint _tmp1__length1; SkkInputMode _tmp2_; SkkInputMode _tmp3_; SkkKeymapMapFile* _tmp4_; SkkKeymap* _tmp5_; SkkKeymap* _tmp6_; SkkKeymap* keymap; const gchar* _tmp7_; SkkKeyEvent* _tmp8_ = NULL; g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (command != NULL, NULL); _tmp0_ = self->priv->_typing_rule; _tmp1_ = _tmp0_->keymaps; _tmp1__length1 = _tmp0_->keymaps_length1; _tmp2_ = skk_state_get_input_mode (self); _tmp3_ = _tmp2_; _tmp4_ = _tmp1_[_tmp3_]; _tmp5_ = _tmp4_->keymap; _tmp6_ = _g_object_ref0 (_tmp5_); keymap = _tmp6_; g_return_val_if_fail (keymap != NULL, NULL); _tmp7_ = command; _tmp8_ = skk_keymap_where_is (keymap, _tmp7_); result = _tmp8_; _g_object_unref0 (keymap); return result; } static gchar string_get (const gchar* self, glong index) { gchar result = '\0'; glong _tmp0_; gchar _tmp1_; g_return_val_if_fail (self != NULL, '\0'); _tmp0_ = index; _tmp1_ = ((gchar*) self)[_tmp0_]; result = _tmp1_; return result; } gboolean skk_state_isupper (SkkState* self, SkkKeyEvent* key, gunichar* lower_code) { gunichar _vala_lower_code = 0U; gboolean result = FALSE; SkkKeyEvent* _tmp0_; gchar* _tmp1_ = NULL; gchar* command; gboolean _tmp2_ = FALSE; const gchar* _tmp3_; gboolean _tmp6_; SkkKeyEvent* _tmp17_; gunichar _tmp18_; gunichar _tmp19_; g_return_val_if_fail (self != NULL, FALSE); g_return_val_if_fail (key != NULL, FALSE); _tmp0_ = key; _tmp1_ = skk_state_lookup_key (self, _tmp0_); command = _tmp1_; _tmp3_ = command; if (_tmp3_ != NULL) { const gchar* _tmp4_; gboolean _tmp5_ = FALSE; _tmp4_ = command; _tmp5_ = g_str_has_prefix (_tmp4_, "upper-"); _tmp2_ = _tmp5_; } else { _tmp2_ = FALSE; } _tmp6_ = _tmp2_; if (_tmp6_) { const gchar* _tmp7_; gchar _tmp8_ = '\0'; _tmp7_ = command; _tmp8_ = string_get (_tmp7_, (glong) 6); _vala_lower_code = (gunichar) _tmp8_; result = TRUE; _g_free0 (command); if (lower_code) { *lower_code = _vala_lower_code; } return result; } else { SkkKeyEvent* _tmp9_; gunichar _tmp10_; gunichar _tmp11_; gboolean _tmp12_ = FALSE; _tmp9_ = key; _tmp10_ = skk_key_event_get_code (_tmp9_); _tmp11_ = _tmp10_; _tmp12_ = g_unichar_isupper (_tmp11_); if (_tmp12_) { SkkKeyEvent* _tmp13_; gunichar _tmp14_; gunichar _tmp15_; gunichar _tmp16_ = 0U; _tmp13_ = key; _tmp14_ = skk_key_event_get_code (_tmp13_); _tmp15_ = _tmp14_; _tmp16_ = g_unichar_tolower (_tmp15_); _vala_lower_code = _tmp16_; result = TRUE; _g_free0 (command); if (lower_code) { *lower_code = _vala_lower_code; } return result; } } _tmp17_ = key; _tmp18_ = skk_key_event_get_code (_tmp17_); _tmp19_ = _tmp18_; _vala_lower_code = _tmp19_; result = FALSE; _g_free0 (command); if (lower_code) { *lower_code = _vala_lower_code; } return result; } static void _skk_state_candidate_selected_skk_candidate_list_selected (SkkCandidateList* _sender, SkkCandidate* candidate, gpointer self) { skk_state_candidate_selected (self, candidate); } static gchar** _vala_array_dup3 (gchar** self, int length) { gchar** result; int i; result = g_new0 (gchar*, length + 1); for (i = 0; i < length; i++) { gchar* _tmp0_; _tmp0_ = g_strdup (self[i]); result[i] = _tmp0_; } return result; } SkkState* skk_state_construct (GType object_type, GeeList* dictionaries) { SkkState * self = NULL; GeeList* _tmp0_; GeeList* _tmp1_; SkkSimpleCandidateList* _tmp2_; SkkCandidateList* _tmp3_; SkkRomKanaConverter* _tmp4_; SkkRomKanaConverter* _tmp5_; gchar** _tmp6_; gint _tmp6__length1; GError * _inner_error_ = NULL; g_return_val_if_fail (dictionaries != NULL, NULL); self = (SkkState*) g_object_new (object_type, NULL); _tmp0_ = dictionaries; _tmp1_ = _g_object_ref0 (_tmp0_); _g_object_unref0 (self->dictionaries); self->dictionaries = _tmp1_; _tmp2_ = skk_simple_candidate_list_new ((guint) 4, (guint) 7); _g_object_unref0 (self->candidates); self->candidates = (SkkCandidateList*) _tmp2_; _tmp3_ = self->candidates; g_signal_connect_object (_tmp3_, "selected", (GCallback) _skk_state_candidate_selected_skk_candidate_list_selected, self, 0); _tmp4_ = skk_rom_kana_converter_new (); _g_object_unref0 (self->rom_kana_converter); self->rom_kana_converter = _tmp4_; _tmp5_ = skk_rom_kana_converter_new (); _g_object_unref0 (self->okuri_rom_kana_converter); self->okuri_rom_kana_converter = _tmp5_; _tmp6_ = (SKK_AUTO_START_HENKAN_KEYWORDS != NULL) ? _vala_array_dup3 (SKK_AUTO_START_HENKAN_KEYWORDS, G_N_ELEMENTS (SKK_AUTO_START_HENKAN_KEYWORDS)) : ((gpointer) SKK_AUTO_START_HENKAN_KEYWORDS); _tmp6__length1 = G_N_ELEMENTS (SKK_AUTO_START_HENKAN_KEYWORDS); self->auto_start_henkan_keywords = (_vala_array_free (self->auto_start_henkan_keywords, self->auto_start_henkan_keywords_length1, (GDestroyNotify) g_free), NULL); self->auto_start_henkan_keywords = _tmp6_; self->auto_start_henkan_keywords_length1 = _tmp6__length1; self->_auto_start_henkan_keywords_size_ = self->auto_start_henkan_keywords_length1; { SkkRule* _tmp7_; SkkRule* _tmp8_; _tmp7_ = skk_rule_new ("default", &_inner_error_); _tmp8_ = _tmp7_; if (_inner_error_ != NULL) { if (_inner_error_->domain == SKK_RULE_PARSE_ERROR) { goto __catch29_skk_rule_parse_error; } g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } _g_object_unref0 (self->priv->_typing_rule); self->priv->_typing_rule = _tmp8_; } goto __finally29; __catch29_skk_rule_parse_error: { GError* e = NULL; e = _inner_error_; _inner_error_ = NULL; g_assert_not_reached (); _g_error_free0 (e); } __finally29: if (_inner_error_ != NULL) { g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } { GRegex* _tmp9_; GRegex* _tmp10_; _tmp9_ = g_regex_new ("[0-9]+", 0, 0, &_inner_error_); _tmp10_ = _tmp9_; if (_inner_error_ != NULL) { if (_inner_error_->domain == G_REGEX_ERROR) { goto __catch30_g_regex_error; } g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } _g_regex_unref0 (self->priv->numeric_regex); self->priv->numeric_regex = _tmp10_; } goto __finally30; __catch30_g_regex_error: { GError* e = NULL; e = _inner_error_; _inner_error_ = NULL; g_assert_not_reached (); _g_error_free0 (e); } __finally30: if (_inner_error_ != NULL) { g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } { GRegex* _tmp11_; GRegex* _tmp12_; _tmp11_ = g_regex_new ("#([0-9])", 0, 0, &_inner_error_); _tmp12_ = _tmp11_; if (_inner_error_ != NULL) { if (_inner_error_->domain == G_REGEX_ERROR) { goto __catch31_g_regex_error; } g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } _g_regex_unref0 (self->priv->numeric_ref_regex); self->priv->numeric_ref_regex = _tmp12_; } goto __finally31; __catch31_g_regex_error: { GError* e = NULL; e = _inner_error_; _inner_error_ = NULL; g_assert_not_reached (); _g_error_free0 (e); } __finally31: if (_inner_error_ != NULL) { g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } skk_state_reset (self); return self; } SkkState* skk_state_new (GeeList* dictionaries) { return skk_state_construct (SKK_TYPE_STATE, dictionaries); } static void skk_state_candidate_selected (SkkState* self, SkkCandidate* c) { GString* _tmp0_; SkkCandidate* _tmp1_; const gchar* _tmp2_; const gchar* _tmp3_; const gchar* _tmp4_; SkkInputMode _tmp12_; SkkInputMode _tmp13_; SkkInputMode _mode; g_return_if_fail (self != NULL); g_return_if_fail (c != NULL); _tmp0_ = self->output; _tmp1_ = c; _tmp2_ = skk_candidate_get_output (_tmp1_); _tmp3_ = _tmp2_; g_string_append (_tmp0_, _tmp3_); _tmp4_ = self->auto_start_henkan_keyword; if (_tmp4_ != NULL) { GString* _tmp5_; const gchar* _tmp6_; _tmp5_ = self->output; _tmp6_ = self->auto_start_henkan_keyword; g_string_append (_tmp5_, _tmp6_); } else { gboolean _tmp7_; _tmp7_ = self->okuri; if (_tmp7_) { GString* _tmp8_; SkkRomKanaConverter* _tmp9_; const gchar* _tmp10_; const gchar* _tmp11_; _tmp8_ = self->output; _tmp9_ = self->okuri_rom_kana_converter; _tmp10_ = skk_rom_kana_converter_get_output (_tmp9_); _tmp11_ = _tmp10_; g_string_append (_tmp8_, _tmp11_); } } _tmp12_ = skk_state_get_input_mode (self); _tmp13_ = _tmp12_; _mode = _tmp13_; skk_state_reset (self); self->priv->_input_mode = _mode; } void skk_state_output_surrounding_text (SkkState* self) { SkkUnicodeString* _tmp0_; g_return_if_fail (self != NULL); _tmp0_ = self->surrounding_text; if (_tmp0_ != NULL) { GString* _tmp1_; SkkUnicodeString* _tmp2_; gchar* _tmp3_ = NULL; gchar* _tmp4_; _tmp1_ = self->output; _tmp2_ = self->surrounding_text; _tmp3_ = skk_unicode_string_substring (_tmp2_, (glong) 0, (glong) (-1)); _tmp4_ = _tmp3_; g_string_append (_tmp1_, _tmp4_); _g_free0 (_tmp4_); } } void skk_state_reset (SkkState* self) { SkkRomKanaConverter* _tmp0_; SkkRomKanaConverter* _tmp1_; SkkRule* _tmp2_; SkkKeyEventFilter* _tmp3_ = NULL; SkkKeyEventFilter* _tmp4_; GeeArrayList* _tmp5_; SkkCandidateList* _tmp6_; GString* _tmp7_; GString* _tmp8_; g_return_if_fail (self != NULL); self->handler_type = SKK_TYPE_NONE_STATE_HANDLER; _tmp0_ = self->rom_kana_converter; skk_rom_kana_converter_reset (_tmp0_); _tmp1_ = self->okuri_rom_kana_converter; skk_rom_kana_converter_reset (_tmp1_); self->okuri = FALSE; _tmp2_ = self->priv->_typing_rule; _tmp3_ = skk_rule_get_filter (_tmp2_); _tmp4_ = _tmp3_; skk_key_event_filter_reset (_tmp4_); _g_object_unref0 (_tmp4_); _g_object_unref0 (self->completion_iterator); self->completion_iterator = NULL; _tmp5_ = self->priv->completion; gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp5_); _tmp6_ = self->candidates; skk_candidate_list_clear (_tmp6_); _tmp7_ = self->abbrev; g_string_erase (_tmp7_, (gssize) 0, (gssize) (-1)); _tmp8_ = self->kuten; g_string_erase (_tmp8_, (gssize) 0, (gssize) (-1)); _g_free0 (self->auto_start_henkan_keyword); self->auto_start_henkan_keyword = NULL; _g_object_unref0 (self->surrounding_text); self->surrounding_text = NULL; self->surrounding_end = (guint) 0; } void skk_state_cancel_okuri (SkkState* self) { SkkRomKanaConverter* _tmp0_; SkkRomKanaConverter* _tmp1_; const gchar* _tmp2_; const gchar* _tmp3_; SkkRomKanaConverter* _tmp4_; const gchar* _tmp5_; const gchar* _tmp6_; gchar* _tmp7_; gchar* _tmp8_; SkkRomKanaConverter* _tmp9_; g_return_if_fail (self != NULL); _tmp0_ = self->rom_kana_converter; _tmp1_ = self->rom_kana_converter; _tmp2_ = skk_rom_kana_converter_get_output (_tmp1_); _tmp3_ = _tmp2_; _tmp4_ = self->okuri_rom_kana_converter; _tmp5_ = skk_rom_kana_converter_get_output (_tmp4_); _tmp6_ = _tmp5_; _tmp7_ = g_strconcat (_tmp3_, _tmp6_, NULL); _tmp8_ = _tmp7_; skk_rom_kana_converter_set_output (_tmp1_, _tmp8_); _g_free0 (_tmp8_); _tmp9_ = self->okuri_rom_kana_converter; skk_rom_kana_converter_reset (_tmp9_); self->okuri = FALSE; } static gchar* string_slice (const gchar* self, glong start, glong end) { gchar* result = NULL; gint _tmp0_; gint _tmp1_; glong string_length; glong _tmp2_; glong _tmp5_; gboolean _tmp8_ = FALSE; glong _tmp9_; gboolean _tmp12_; gboolean _tmp13_ = FALSE; glong _tmp14_; gboolean _tmp17_; glong _tmp18_; glong _tmp19_; glong _tmp20_; glong _tmp21_; glong _tmp22_; gchar* _tmp23_ = NULL; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = strlen (self); _tmp1_ = _tmp0_; string_length = (glong) _tmp1_; _tmp2_ = start; if (_tmp2_ < ((glong) 0)) { glong _tmp3_; glong _tmp4_; _tmp3_ = string_length; _tmp4_ = start; start = _tmp3_ + _tmp4_; } _tmp5_ = end; if (_tmp5_ < ((glong) 0)) { glong _tmp6_; glong _tmp7_; _tmp6_ = string_length; _tmp7_ = end; end = _tmp6_ + _tmp7_; } _tmp9_ = start; if (_tmp9_ >= ((glong) 0)) { glong _tmp10_; glong _tmp11_; _tmp10_ = start; _tmp11_ = string_length; _tmp8_ = _tmp10_ <= _tmp11_; } else { _tmp8_ = FALSE; } _tmp12_ = _tmp8_; g_return_val_if_fail (_tmp12_, NULL); _tmp14_ = end; if (_tmp14_ >= ((glong) 0)) { glong _tmp15_; glong _tmp16_; _tmp15_ = end; _tmp16_ = string_length; _tmp13_ = _tmp15_ <= _tmp16_; } else { _tmp13_ = FALSE; } _tmp17_ = _tmp13_; g_return_val_if_fail (_tmp17_, NULL); _tmp18_ = start; _tmp19_ = end; g_return_val_if_fail (_tmp18_ <= _tmp19_, NULL); _tmp20_ = start; _tmp21_ = end; _tmp22_ = start; _tmp23_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) (_tmp21_ - _tmp22_)); result = _tmp23_; return result; } static gchar* skk_state_extract_numerics (SkkState* self, const gchar* midasi, gint** numerics, int* numerics_length1) { gint* _vala_numerics = NULL; int _vala_numerics_length1 = 0; gchar* result = NULL; GMatchInfo* info; gint start_pos; GeeArrayList* _tmp0_; GeeArrayList* numeric_list; GString* _tmp1_; GString* builder; GeeArrayList* _tmp25_; gint _tmp26_ = 0; gpointer* _tmp27_ = NULL; GString* _tmp28_; const gchar* _tmp29_; gint _tmp30_; const gchar* _tmp31_; gint _tmp32_; gint _tmp33_; gchar* _tmp34_ = NULL; gchar* _tmp35_; GString* _tmp36_; const gchar* _tmp37_; gchar* _tmp38_; GError * _inner_error_ = NULL; g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (midasi != NULL, NULL); info = NULL; start_pos = 0; _tmp0_ = gee_array_list_new (G_TYPE_INT, NULL, NULL, NULL); numeric_list = _tmp0_; _tmp1_ = g_string_new (""); builder = _tmp1_; while (TRUE) { GMatchInfo* _tmp9_; gchar* _tmp10_ = NULL; gchar* numeric; gint match_start_pos = 0; gint match_end_pos = 0; GMatchInfo* _tmp11_; gint _tmp12_ = 0; gint _tmp13_ = 0; GeeArrayList* _tmp14_; const gchar* _tmp15_; gint _tmp16_ = 0; GString* _tmp17_; const gchar* _tmp18_; gint _tmp19_; gint _tmp20_; gchar* _tmp21_ = NULL; gchar* _tmp22_; GString* _tmp23_; gint _tmp24_; { GRegex* _tmp2_; const gchar* _tmp3_; gint _tmp4_; GMatchInfo* _tmp5_ = NULL; gboolean _tmp6_ = FALSE; gboolean _tmp7_; _tmp2_ = self->priv->numeric_regex; _tmp3_ = midasi; _tmp4_ = start_pos; _tmp6_ = g_regex_match_full (_tmp2_, _tmp3_, (gssize) (-1), _tmp4_, 0, &_tmp5_, &_inner_error_); _g_match_info_free0 (info); info = _tmp5_; _tmp7_ = _tmp6_; if (_inner_error_ != NULL) { if (_inner_error_->domain == G_REGEX_ERROR) { goto __catch32_g_regex_error; } _g_string_free0 (builder); _g_object_unref0 (numeric_list); _g_match_info_free0 (info); g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } if (!_tmp7_) { break; } } goto __finally32; __catch32_g_regex_error: { GError* e = NULL; const gchar* _tmp8_; e = _inner_error_; _inner_error_ = NULL; _tmp8_ = midasi; g_return_val_if_reached (_tmp8_); _g_error_free0 (e); } __finally32: if (_inner_error_ != NULL) { _g_string_free0 (builder); _g_object_unref0 (numeric_list); _g_match_info_free0 (info); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } _tmp9_ = info; _tmp10_ = g_match_info_fetch (_tmp9_, 0); numeric = _tmp10_; _tmp11_ = info; g_match_info_fetch_pos (_tmp11_, 0, &_tmp12_, &_tmp13_); match_start_pos = _tmp12_; match_end_pos = _tmp13_; _tmp14_ = numeric_list; _tmp15_ = numeric; _tmp16_ = atoi (_tmp15_); gee_abstract_collection_add ((GeeAbstractCollection*) _tmp14_, GINT_TO_POINTER (_tmp16_)); _tmp17_ = builder; _tmp18_ = midasi; _tmp19_ = start_pos; _tmp20_ = match_start_pos; _tmp21_ = string_slice (_tmp18_, (glong) _tmp19_, (glong) _tmp20_); _tmp22_ = _tmp21_; g_string_append (_tmp17_, _tmp22_); _g_free0 (_tmp22_); _tmp23_ = builder; g_string_append (_tmp23_, "#"); _tmp24_ = match_end_pos; start_pos = _tmp24_; _g_free0 (numeric); } _tmp25_ = numeric_list; _tmp27_ = gee_abstract_collection_to_array ((GeeAbstractCollection*) _tmp25_, &_tmp26_); _vala_numerics = (g_free (_vala_numerics), NULL); _vala_numerics = _tmp27_; _vala_numerics_length1 = _tmp26_; _tmp28_ = builder; _tmp29_ = midasi; _tmp30_ = start_pos; _tmp31_ = midasi; _tmp32_ = strlen (_tmp31_); _tmp33_ = _tmp32_; _tmp34_ = string_slice (_tmp29_, (glong) _tmp30_, (glong) _tmp33_); _tmp35_ = _tmp34_; g_string_append (_tmp28_, _tmp35_); _g_free0 (_tmp35_); _tmp36_ = builder; _tmp37_ = _tmp36_->str; _tmp38_ = g_strdup (_tmp37_); result = _tmp38_; _g_string_free0 (builder); _g_object_unref0 (numeric_list); _g_match_info_free0 (info); if (numerics) { *numerics = _vala_numerics; } else { _vala_numerics = (g_free (_vala_numerics), NULL); } if (numerics_length1) { *numerics_length1 = _vala_numerics_length1; } return result; } static gchar* skk_state_expand_expr (SkkState* self, const gchar* text) { gchar* result = NULL; const gchar* _tmp0_; gboolean _tmp1_ = FALSE; const gchar* _tmp12_; gchar* _tmp13_; g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (text != NULL, NULL); _tmp0_ = text; _tmp1_ = g_str_has_prefix (_tmp0_, "("); if (_tmp1_) { SkkExprReader* _tmp2_; SkkExprReader* reader; gint index; SkkExprReader* _tmp3_; const gchar* _tmp4_; SkkExprNode* _tmp5_ = NULL; SkkExprNode* node; SkkExprEvaluator* _tmp6_; SkkExprEvaluator* evaluator; SkkExprEvaluator* _tmp7_; SkkExprNode* _tmp8_; SkkExprNode _tmp9_; gchar* _tmp10_ = NULL; gchar* _text; const gchar* _tmp11_; _tmp2_ = skk_expr_reader_new (); reader = _tmp2_; index = 0; _tmp3_ = reader; _tmp4_ = text; _tmp5_ = skk_expr_reader_read_expr (_tmp3_, _tmp4_, &index); node = _tmp5_; _tmp6_ = skk_expr_evaluator_new (); evaluator = _tmp6_; _tmp7_ = evaluator; _tmp8_ = node; _tmp9_ = *_tmp8_; _tmp10_ = skk_expr_evaluator_eval (_tmp7_, &_tmp9_); _text = _tmp10_; _tmp11_ = _text; if (_tmp11_ != NULL) { result = _text; _g_object_unref0 (evaluator); _skk_expr_node_free0 (node); _g_object_unref0 (reader); return result; } _g_free0 (_text); _g_object_unref0 (evaluator); _skk_expr_node_free0 (node); _g_object_unref0 (reader); } _tmp12_ = text; _tmp13_ = g_strdup (_tmp12_); result = _tmp13_; return result; } static gchar* skk_state_expand_numeric_references (SkkState* self, const gchar* text, gint* numerics, int numerics_length1) { gchar* result = NULL; GString* _tmp0_; GString* builder; GMatchInfo* info; gint start_pos; GString* _tmp35_; const gchar* _tmp36_; gint _tmp37_; const gchar* _tmp38_; gint _tmp39_; gint _tmp40_; gchar* _tmp41_ = NULL; gchar* _tmp42_; GString* _tmp43_; const gchar* _tmp44_; gchar* _tmp45_; GError * _inner_error_ = NULL; g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (text != NULL, NULL); _tmp0_ = g_string_new (""); builder = _tmp0_; info = NULL; start_pos = 0; { gint numeric_index; numeric_index = 0; { gboolean _tmp1_; _tmp1_ = TRUE; while (TRUE) { gboolean _tmp2_; gint _tmp4_; gint* _tmp5_; gint _tmp5__length1; gint match_start_pos = 0; gint match_end_pos = 0; GMatchInfo* _tmp12_; gint _tmp13_ = 0; gint _tmp14_ = 0; GString* _tmp15_; const gchar* _tmp16_; gint _tmp17_; gint _tmp18_; gchar* _tmp19_ = NULL; gchar* _tmp20_; GMatchInfo* _tmp21_; gchar* _tmp22_ = NULL; gchar* type; const gchar* _tmp23_; gchar _tmp24_ = '\0'; gint _tmp34_; _tmp2_ = _tmp1_; if (!_tmp2_) { gint _tmp3_; _tmp3_ = numeric_index; numeric_index = _tmp3_ + 1; } _tmp1_ = FALSE; _tmp4_ = numeric_index; _tmp5_ = numerics; _tmp5__length1 = numerics_length1; if (!(_tmp4_ < _tmp5__length1)) { break; } { GRegex* _tmp6_; const gchar* _tmp7_; gint _tmp8_; GMatchInfo* _tmp9_ = NULL; gboolean _tmp10_ = FALSE; gboolean _tmp11_; _tmp6_ = self->priv->numeric_ref_regex; _tmp7_ = text; _tmp8_ = start_pos; _tmp10_ = g_regex_match_full (_tmp6_, _tmp7_, (gssize) (-1), _tmp8_, 0, &_tmp9_, &_inner_error_); _g_match_info_free0 (info); info = _tmp9_; _tmp11_ = _tmp10_; if (_inner_error_ != NULL) { if (_inner_error_->domain == G_REGEX_ERROR) { goto __catch33_g_regex_error; } _g_match_info_free0 (info); _g_string_free0 (builder); g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } if (!_tmp11_) { break; } } goto __finally33; __catch33_g_regex_error: { GError* e = NULL; e = _inner_error_; _inner_error_ = NULL; g_return_if_reached (); _g_error_free0 (e); } __finally33: if (_inner_error_ != NULL) { _g_match_info_free0 (info); _g_string_free0 (builder); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } _tmp12_ = info; g_match_info_fetch_pos (_tmp12_, 0, &_tmp13_, &_tmp14_); match_start_pos = _tmp13_; match_end_pos = _tmp14_; _tmp15_ = builder; _tmp16_ = text; _tmp17_ = start_pos; _tmp18_ = match_start_pos; _tmp19_ = string_slice (_tmp16_, (glong) _tmp17_, (glong) _tmp18_); _tmp20_ = _tmp19_; g_string_append (_tmp15_, _tmp20_); _g_free0 (_tmp20_); _tmp21_ = info; _tmp22_ = g_match_info_fetch (_tmp21_, 1); type = _tmp22_; _tmp23_ = type; _tmp24_ = string_get (_tmp23_, (glong) 0); switch (_tmp24_) { case '0': case '1': case '2': case '3': case '5': { GString* _tmp25_; gint* _tmp26_; gint _tmp26__length1; gint _tmp27_; gint _tmp28_; const gchar* _tmp29_; gchar _tmp30_ = '\0'; gchar* _tmp31_ = NULL; gchar* _tmp32_; _tmp25_ = builder; _tmp26_ = numerics; _tmp26__length1 = numerics_length1; _tmp27_ = numeric_index; _tmp28_ = _tmp26_[_tmp27_]; _tmp29_ = type; _tmp30_ = string_get (_tmp29_, (glong) 0); _tmp31_ = skk_util_get_numeric (_tmp28_, (SkkNumericConversionType) (_tmp30_ - '0')); _tmp32_ = _tmp31_; g_string_append (_tmp25_, _tmp32_); _g_free0 (_tmp32_); break; } case '4': case '9': { break; } default: { const gchar* _tmp33_; _tmp33_ = type; g_warning ("state.vala:298: unknown numeric conversion type: %s", _tmp33_); break; } } _tmp34_ = match_end_pos; start_pos = _tmp34_; _g_free0 (type); } } } _tmp35_ = builder; _tmp36_ = text; _tmp37_ = start_pos; _tmp38_ = text; _tmp39_ = strlen (_tmp38_); _tmp40_ = _tmp39_; _tmp41_ = string_slice (_tmp36_, (glong) _tmp37_, (glong) _tmp40_); _tmp42_ = _tmp41_; g_string_append (_tmp35_, _tmp42_); _g_free0 (_tmp42_); _tmp43_ = builder; _tmp44_ = _tmp43_->str; _tmp45_ = g_strdup (_tmp44_); result = _tmp45_; _g_match_info_free0 (info); _g_string_free0 (builder); return result; } void skk_state_lookup (SkkState* self, const gchar* midasi, gboolean okuri) { SkkCandidateList* _tmp0_; gint* _tmp1_ = NULL; gint* numerics; gint numerics_length1; gint _numerics_size_; const gchar* _tmp2_; gint* _tmp3_; gint _tmp3__length1; gboolean _tmp4_; const gchar* _tmp5_; gint* _tmp6_ = NULL; gint _tmp7_ = 0; gchar* _tmp8_ = NULL; gchar* numeric_midasi; gint* _tmp9_; gint _tmp9__length1; gboolean _tmp10_; SkkCandidateList* _tmp11_; g_return_if_fail (self != NULL); g_return_if_fail (midasi != NULL); _tmp0_ = self->candidates; skk_candidate_list_clear (_tmp0_); _tmp1_ = g_new0 (gint, 0); numerics = _tmp1_; numerics_length1 = 0; _numerics_size_ = numerics_length1; _tmp2_ = midasi; _tmp3_ = numerics; _tmp3__length1 = numerics_length1; _tmp4_ = okuri; skk_state_lookup_internal (self, _tmp2_, _tmp3_, _tmp3__length1, _tmp4_); _tmp5_ = midasi; _tmp8_ = skk_state_extract_numerics (self, _tmp5_, &_tmp6_, &_tmp7_); numerics = (g_free (numerics), NULL); numerics = _tmp6_; numerics_length1 = _tmp7_; _numerics_size_ = numerics_length1; numeric_midasi = _tmp8_; _tmp9_ = numerics; _tmp9__length1 = numerics_length1; _tmp10_ = okuri; skk_state_lookup_internal (self, numeric_midasi, _tmp9_, _tmp9__length1, _tmp10_); _tmp11_ = self->candidates; skk_candidate_list_add_candidates_end (_tmp11_); _g_free0 (numeric_midasi); numerics = (g_free (numerics), NULL); } static void skk_state_lookup_internal (SkkState* self, const gchar* midasi, gint* numerics, int numerics_length1, gboolean okuri) { g_return_if_fail (self != NULL); g_return_if_fail (midasi != NULL); { GeeList* _tmp0_; GeeList* _tmp1_; GeeList* _dict_list; GeeList* _tmp2_; gint _tmp3_; gint _tmp4_; gint _dict_size; gint _dict_index; _tmp0_ = self->dictionaries; _tmp1_ = _g_object_ref0 (_tmp0_); _dict_list = _tmp1_; _tmp2_ = _dict_list; _tmp3_ = gee_collection_get_size ((GeeCollection*) _tmp2_); _tmp4_ = _tmp3_; _dict_size = _tmp4_; _dict_index = -1; while (TRUE) { gint _tmp5_; gint _tmp6_; gint _tmp7_; GeeList* _tmp8_; gint _tmp9_; gpointer _tmp10_ = NULL; SkkDict* dict; SkkDict* _tmp11_; const gchar* _tmp12_; gboolean _tmp13_; gint _tmp14_ = 0; SkkCandidate** _tmp15_ = NULL; SkkCandidate** _candidates; gint _candidates_length1; gint __candidates_size_; SkkCandidate** _tmp16_; gint _tmp16__length1; SkkCandidateList* _tmp38_; SkkCandidate** _tmp39_; gint _tmp39__length1; _tmp5_ = _dict_index; _dict_index = _tmp5_ + 1; _tmp6_ = _dict_index; _tmp7_ = _dict_size; if (!(_tmp6_ < _tmp7_)) { break; } _tmp8_ = _dict_list; _tmp9_ = _dict_index; _tmp10_ = gee_list_get (_tmp8_, _tmp9_); dict = (SkkDict*) _tmp10_; _tmp11_ = dict; _tmp12_ = midasi; _tmp13_ = okuri; _tmp15_ = skk_dict_lookup (_tmp11_, _tmp12_, _tmp13_, &_tmp14_); _candidates = _tmp15_; _candidates_length1 = _tmp14_; __candidates_size_ = _candidates_length1; _tmp16_ = _candidates; _tmp16__length1 = _candidates_length1; { SkkCandidate** candidate_collection = NULL; gint candidate_collection_length1 = 0; gint _candidate_collection_size_ = 0; gint candidate_it = 0; candidate_collection = _tmp16_; candidate_collection_length1 = _tmp16__length1; for (candidate_it = 0; candidate_it < _tmp16__length1; candidate_it = candidate_it + 1) { SkkCandidate* _tmp17_; SkkCandidate* candidate = NULL; _tmp17_ = _g_object_ref0 (candidate_collection[candidate_it]); candidate = _tmp17_; { SkkCandidate* _tmp18_; const gchar* _tmp19_; const gchar* _tmp20_; gchar* _tmp21_; gchar* text; const gchar* _tmp22_; gchar* _tmp23_ = NULL; const gchar* _tmp24_; gint* _tmp25_; gint _tmp25__length1; gchar* _tmp26_ = NULL; SkkCandidate* _tmp27_; const gchar* _tmp28_; SkkCandidate* _tmp29_; const gchar* _tmp30_; const gchar* _tmp31_; _tmp18_ = candidate; _tmp19_ = skk_candidate_get_text (_tmp18_); _tmp20_ = _tmp19_; _tmp21_ = g_strdup (_tmp20_); text = _tmp21_; _tmp22_ = text; _tmp23_ = skk_state_expand_expr (self, _tmp22_); _g_free0 (text); text = _tmp23_; _tmp24_ = text; _tmp25_ = numerics; _tmp25__length1 = numerics_length1; _tmp26_ = skk_state_expand_numeric_references (self, _tmp24_, _tmp25_, _tmp25__length1); _g_free0 (text); text = _tmp26_; _tmp27_ = candidate; _tmp28_ = text; skk_candidate_set_output (_tmp27_, _tmp28_); _tmp29_ = candidate; _tmp30_ = skk_candidate_get_annotation (_tmp29_); _tmp31_ = _tmp30_; if (_tmp31_ != NULL) { SkkCandidate* _tmp32_; SkkCandidate* _tmp33_; const gchar* _tmp34_; const gchar* _tmp35_; gchar* _tmp36_ = NULL; gchar* _tmp37_; _tmp32_ = candidate; _tmp33_ = candidate; _tmp34_ = skk_candidate_get_annotation (_tmp33_); _tmp35_ = _tmp34_; _tmp36_ = skk_state_expand_expr (self, _tmp35_); _tmp37_ = _tmp36_; skk_candidate_set_annotation (_tmp32_, _tmp37_); _g_free0 (_tmp37_); } _g_free0 (text); _g_object_unref0 (candidate); } } } _tmp38_ = self->candidates; _tmp39_ = _candidates; _tmp39__length1 = _candidates_length1; skk_candidate_list_add_candidates (_tmp38_, _tmp39_, _tmp39__length1); _candidates = (_vala_array_free (_candidates, _candidates_length1, (GDestroyNotify) g_object_unref), NULL); _g_object_unref0 (dict); } _g_object_unref0 (_dict_list); } } void skk_state_purge_candidate (SkkState* self, SkkCandidate* candidate) { g_return_if_fail (self != NULL); g_return_if_fail (candidate != NULL); { GeeList* _tmp0_; GeeList* _tmp1_; GeeList* _dict_list; GeeList* _tmp2_; gint _tmp3_; gint _tmp4_; gint _dict_size; gint _dict_index; _tmp0_ = self->dictionaries; _tmp1_ = _g_object_ref0 (_tmp0_); _dict_list = _tmp1_; _tmp2_ = _dict_list; _tmp3_ = gee_collection_get_size ((GeeCollection*) _tmp2_); _tmp4_ = _tmp3_; _dict_size = _tmp4_; _dict_index = -1; while (TRUE) { gint _tmp5_; gint _tmp6_; gint _tmp7_; GeeList* _tmp8_; gint _tmp9_; gpointer _tmp10_ = NULL; SkkDict* dict; SkkDict* _tmp11_; gboolean _tmp12_; gboolean _tmp13_; _tmp5_ = _dict_index; _dict_index = _tmp5_ + 1; _tmp6_ = _dict_index; _tmp7_ = _dict_size; if (!(_tmp6_ < _tmp7_)) { break; } _tmp8_ = _dict_list; _tmp9_ = _dict_index; _tmp10_ = gee_list_get (_tmp8_, _tmp9_); dict = (SkkDict*) _tmp10_; _tmp11_ = dict; _tmp12_ = skk_dict_get_read_only (_tmp11_); _tmp13_ = _tmp12_; if (!_tmp13_) { SkkDict* _tmp14_; SkkCandidate* _tmp15_; _tmp14_ = dict; _tmp15_ = candidate; skk_dict_purge_candidate (_tmp14_, _tmp15_); } _g_object_unref0 (dict); } _g_object_unref0 (_dict_list); } } void skk_state_completion_start (SkkState* self, const gchar* midasi) { GeeArrayList* _tmp20_; GeeIterator* _tmp21_ = NULL; GeeIterator* _tmp22_; gboolean _tmp23_ = FALSE; g_return_if_fail (self != NULL); g_return_if_fail (midasi != NULL); { GeeList* _tmp0_; GeeList* _tmp1_; GeeList* _dict_list; GeeList* _tmp2_; gint _tmp3_; gint _tmp4_; gint _dict_size; gint _dict_index; _tmp0_ = self->dictionaries; _tmp1_ = _g_object_ref0 (_tmp0_); _dict_list = _tmp1_; _tmp2_ = _dict_list; _tmp3_ = gee_collection_get_size ((GeeCollection*) _tmp2_); _tmp4_ = _tmp3_; _dict_size = _tmp4_; _dict_index = -1; while (TRUE) { gint _tmp5_; gint _tmp6_; gint _tmp7_; GeeList* _tmp8_; gint _tmp9_; gpointer _tmp10_ = NULL; SkkDict* dict; SkkDict* _tmp11_; const gchar* _tmp12_; gint _tmp13_ = 0; gchar** _tmp14_ = NULL; gchar** _completion; gint _completion_length1; gint __completion_size_; gchar** _tmp15_; gint _tmp15__length1; GeeArrayList* _tmp19_; _tmp5_ = _dict_index; _dict_index = _tmp5_ + 1; _tmp6_ = _dict_index; _tmp7_ = _dict_size; if (!(_tmp6_ < _tmp7_)) { break; } _tmp8_ = _dict_list; _tmp9_ = _dict_index; _tmp10_ = gee_list_get (_tmp8_, _tmp9_); dict = (SkkDict*) _tmp10_; _tmp11_ = dict; _tmp12_ = midasi; _tmp14_ = skk_dict_complete (_tmp11_, _tmp12_, &_tmp13_); _completion = _tmp14_; _completion_length1 = _tmp13_; __completion_size_ = _completion_length1; _tmp15_ = _completion; _tmp15__length1 = _completion_length1; { gchar** word_collection = NULL; gint word_collection_length1 = 0; gint _word_collection_size_ = 0; gint word_it = 0; word_collection = _tmp15_; word_collection_length1 = _tmp15__length1; for (word_it = 0; word_it < _tmp15__length1; word_it = word_it + 1) { gchar* _tmp16_; gchar* word = NULL; _tmp16_ = g_strdup (word_collection[word_it]); word = _tmp16_; { GeeArrayList* _tmp17_; const gchar* _tmp18_; _tmp17_ = self->priv->completion; _tmp18_ = word; gee_abstract_collection_add ((GeeAbstractCollection*) _tmp17_, _tmp18_); _g_free0 (word); } } } _tmp19_ = self->priv->completion; gee_list_sort ((GeeList*) _tmp19_, NULL); _completion = (_vala_array_free (_completion, _completion_length1, (GDestroyNotify) g_free), NULL); _g_object_unref0 (dict); } _g_object_unref0 (_dict_list); } _tmp20_ = self->priv->completion; _tmp21_ = gee_abstract_collection_iterator ((GeeAbstractCollection*) _tmp20_); _g_object_unref0 (self->completion_iterator); self->completion_iterator = _tmp21_; _tmp22_ = self->completion_iterator; _tmp23_ = gee_iterator_first (_tmp22_); if (!_tmp23_) { _g_object_unref0 (self->completion_iterator); self->completion_iterator = NULL; } } gchar* skk_state_get_yomi (SkkState* self) { gchar* result = NULL; GString* _tmp0_; GString* builder; GString* _tmp1_; gssize _tmp2_; GString* _tmp28_; const gchar* _tmp29_; gchar* _tmp30_; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = g_string_new (""); builder = _tmp0_; _tmp1_ = self->abbrev; _tmp2_ = _tmp1_->len; if (_tmp2_ > ((gssize) 0)) { GString* _tmp3_; GString* _tmp4_; const gchar* _tmp5_; _tmp3_ = builder; _tmp4_ = self->abbrev; _tmp5_ = _tmp4_->str; g_string_append (_tmp3_, _tmp5_); } else { gboolean _tmp6_; _tmp6_ = self->okuri; if (_tmp6_) { GString* _tmp7_; SkkRomKanaConverter* _tmp8_; const gchar* _tmp9_; const gchar* _tmp10_; GString* _tmp11_; GString* _tmp12_; SkkRomKanaConverter* _tmp13_; const gchar* _tmp14_; const gchar* _tmp15_; GString* _tmp16_; SkkRomKanaConverter* _tmp17_; const gchar* _tmp18_; const gchar* _tmp19_; _tmp7_ = builder; _tmp8_ = self->rom_kana_converter; _tmp9_ = skk_rom_kana_converter_get_output (_tmp8_); _tmp10_ = _tmp9_; g_string_append (_tmp7_, _tmp10_); _tmp11_ = builder; g_string_append (_tmp11_, "*"); _tmp12_ = builder; _tmp13_ = self->okuri_rom_kana_converter; _tmp14_ = skk_rom_kana_converter_get_output (_tmp13_); _tmp15_ = _tmp14_; g_string_append (_tmp12_, _tmp15_); _tmp16_ = builder; _tmp17_ = self->okuri_rom_kana_converter; _tmp18_ = skk_rom_kana_converter_get_preedit (_tmp17_); _tmp19_ = _tmp18_; g_string_append (_tmp16_, _tmp19_); } else { GString* _tmp20_; SkkRomKanaConverter* _tmp21_; const gchar* _tmp22_; const gchar* _tmp23_; GString* _tmp24_; SkkRomKanaConverter* _tmp25_; const gchar* _tmp26_; const gchar* _tmp27_; _tmp20_ = builder; _tmp21_ = self->rom_kana_converter; _tmp22_ = skk_rom_kana_converter_get_output (_tmp21_); _tmp23_ = _tmp22_; g_string_append (_tmp20_, _tmp23_); _tmp24_ = builder; _tmp25_ = self->rom_kana_converter; _tmp26_ = skk_rom_kana_converter_get_preedit (_tmp25_); _tmp27_ = _tmp26_; g_string_append (_tmp24_, _tmp27_); } } _tmp28_ = builder; _tmp29_ = _tmp28_->str; _tmp30_ = g_strdup (_tmp29_); result = _tmp30_; _g_string_free0 (builder); return result; } SkkInputMode skk_state_get_input_mode (SkkState* self) { SkkInputMode result; SkkInputMode _tmp0_; g_return_val_if_fail (self != NULL, 0); _tmp0_ = self->priv->_input_mode; result = _tmp0_; return result; } void skk_state_set_input_mode (SkkState* self, SkkInputMode value) { GString* _tmp0_; SkkRomKanaConverter* _tmp1_; const gchar* _tmp2_; const gchar* _tmp3_; SkkInputMode _tmp4_; SkkInputMode last_input_mode; SkkInputMode _tmp5_; SkkInputMode _tmp6_; SkkInputMode _tmp11_; SkkInputMode _tmp12_; g_return_if_fail (self != NULL); _tmp0_ = self->output; _tmp1_ = self->rom_kana_converter; _tmp2_ = skk_rom_kana_converter_get_output (_tmp1_); _tmp3_ = _tmp2_; g_string_append (_tmp0_, _tmp3_); _tmp4_ = self->priv->_input_mode; last_input_mode = _tmp4_; skk_state_reset (self); _tmp5_ = value; self->priv->_input_mode = _tmp5_; _tmp6_ = self->priv->_input_mode; switch (_tmp6_) { case SKK_INPUT_MODE_HIRAGANA: case SKK_INPUT_MODE_KATAKANA: case SKK_INPUT_MODE_HANKAKU_KATAKANA: { SkkRomKanaConverter* _tmp7_; SkkInputMode _tmp8_; SkkRomKanaConverter* _tmp9_; SkkInputMode _tmp10_; _tmp7_ = self->rom_kana_converter; _tmp8_ = value; skk_rom_kana_converter_set_kana_mode (_tmp7_, (SkkKanaMode) _tmp8_); _tmp9_ = self->okuri_rom_kana_converter; _tmp10_ = value; skk_rom_kana_converter_set_kana_mode (_tmp9_, (SkkKanaMode) _tmp10_); break; } default: { break; } } _tmp11_ = self->priv->_input_mode; _tmp12_ = last_input_mode; if (_tmp11_ != _tmp12_) { g_object_notify ((GObject*) self, "input-mode"); } } SkkPeriodStyle skk_state_get_period_style (SkkState* self) { SkkPeriodStyle result; SkkRomKanaConverter* _tmp0_; SkkPeriodStyle _tmp1_; SkkPeriodStyle _tmp2_; g_return_val_if_fail (self != NULL, 0); _tmp0_ = self->rom_kana_converter; _tmp1_ = skk_rom_kana_converter_get_period_style (_tmp0_); _tmp2_ = _tmp1_; result = _tmp2_; return result; } void skk_state_set_period_style (SkkState* self, SkkPeriodStyle value) { SkkRomKanaConverter* _tmp0_; SkkPeriodStyle _tmp1_; SkkRomKanaConverter* _tmp2_; SkkPeriodStyle _tmp3_; g_return_if_fail (self != NULL); _tmp0_ = self->rom_kana_converter; _tmp1_ = value; skk_rom_kana_converter_set_period_style (_tmp0_, _tmp1_); _tmp2_ = self->okuri_rom_kana_converter; _tmp3_ = value; skk_rom_kana_converter_set_period_style (_tmp2_, _tmp3_); g_object_notify ((GObject *) self, "period-style"); } SkkRule* skk_state_get_typing_rule (SkkState* self) { SkkRule* result; SkkRule* _tmp0_; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = self->priv->_typing_rule; result = _tmp0_; return result; } void skk_state_set_typing_rule (SkkState* self, SkkRule* value) { SkkRule* _tmp0_; SkkRule* _tmp1_; SkkRomKanaConverter* _tmp2_; SkkRule* _tmp3_; SkkRomKanaMapFile* _tmp4_; SkkRomKanaConverter* _tmp5_; SkkRule* _tmp6_; SkkRomKanaMapFile* _tmp7_; g_return_if_fail (self != NULL); _tmp0_ = value; _tmp1_ = _g_object_ref0 (_tmp0_); _g_object_unref0 (self->priv->_typing_rule); self->priv->_typing_rule = _tmp1_; _tmp2_ = self->rom_kana_converter; _tmp3_ = self->priv->_typing_rule; _tmp4_ = _tmp3_->rom_kana; skk_rom_kana_converter_set_rule (_tmp2_, _tmp4_); _tmp5_ = self->okuri_rom_kana_converter; _tmp6_ = self->priv->_typing_rule; _tmp7_ = _tmp6_->rom_kana; skk_rom_kana_converter_set_rule (_tmp5_, _tmp7_); g_object_notify ((GObject *) self, "typing-rule"); } static void g_cclosure_user_marshal_BOOLEAN__VOID (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) { typedef gboolean (*GMarshalFunc_BOOLEAN__VOID) (gpointer data1, gpointer data2); register GMarshalFunc_BOOLEAN__VOID callback; register GCClosure * cc; register gpointer data1; register gpointer data2; gboolean v_return; cc = (GCClosure *) closure; g_return_if_fail (return_value != NULL); g_return_if_fail (n_param_values == 1); if (G_CCLOSURE_SWAP_DATA (closure)) { data1 = closure->data; data2 = param_values->data[0].v_pointer; } else { data1 = param_values->data[0].v_pointer; data2 = closure->data; } callback = (GMarshalFunc_BOOLEAN__VOID) (marshal_data ? marshal_data : cc->callback); v_return = callback (data1, data2); g_value_set_boolean (return_value, v_return); } static void g_cclosure_user_marshal_BOOLEAN__STRING (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) { typedef gboolean (*GMarshalFunc_BOOLEAN__STRING) (gpointer data1, const char* arg_1, gpointer data2); register GMarshalFunc_BOOLEAN__STRING callback; register GCClosure * cc; register gpointer data1; register gpointer data2; gboolean v_return; cc = (GCClosure *) closure; g_return_if_fail (return_value != NULL); g_return_if_fail (n_param_values == 2); if (G_CCLOSURE_SWAP_DATA (closure)) { data1 = closure->data; data2 = param_values->data[0].v_pointer; } else { data1 = param_values->data[0].v_pointer; data2 = closure->data; } callback = (GMarshalFunc_BOOLEAN__STRING) (marshal_data ? marshal_data : cc->callback); v_return = callback (data1, g_value_get_string (param_values + 1), data2); g_value_set_boolean (return_value, v_return); } static void g_cclosure_user_marshal_VOID__STRING_BOOLEAN (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) { typedef void (*GMarshalFunc_VOID__STRING_BOOLEAN) (gpointer data1, const char* arg_1, gboolean arg_2, gpointer data2); register GMarshalFunc_VOID__STRING_BOOLEAN callback; register GCClosure * cc; register gpointer data1; register gpointer data2; cc = (GCClosure *) closure; g_return_if_fail (n_param_values == 3); if (G_CCLOSURE_SWAP_DATA (closure)) { data1 = closure->data; data2 = param_values->data[0].v_pointer; } else { data1 = param_values->data[0].v_pointer; data2 = closure->data; } callback = (GMarshalFunc_VOID__STRING_BOOLEAN) (marshal_data ? marshal_data : cc->callback); callback (data1, g_value_get_string (param_values + 1), g_value_get_boolean (param_values + 2), data2); } static void g_cclosure_user_marshal_BOOLEAN__POINTER_POINTER (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) { typedef gboolean (*GMarshalFunc_BOOLEAN__POINTER_POINTER) (gpointer data1, gpointer arg_1, gpointer arg_2, gpointer data2); register GMarshalFunc_BOOLEAN__POINTER_POINTER callback; register GCClosure * cc; register gpointer data1; register gpointer data2; gboolean v_return; cc = (GCClosure *) closure; g_return_if_fail (return_value != NULL); g_return_if_fail (n_param_values == 3); if (G_CCLOSURE_SWAP_DATA (closure)) { data1 = closure->data; data2 = param_values->data[0].v_pointer; } else { data1 = param_values->data[0].v_pointer; data2 = closure->data; } callback = (GMarshalFunc_BOOLEAN__POINTER_POINTER) (marshal_data ? marshal_data : cc->callback); v_return = callback (data1, g_value_get_pointer (param_values + 1), g_value_get_pointer (param_values + 2), data2); g_value_set_boolean (return_value, v_return); } static void g_cclosure_user_marshal_BOOLEAN__INT_UINT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) { typedef gboolean (*GMarshalFunc_BOOLEAN__INT_UINT) (gpointer data1, gint arg_1, guint arg_2, gpointer data2); register GMarshalFunc_BOOLEAN__INT_UINT callback; register GCClosure * cc; register gpointer data1; register gpointer data2; gboolean v_return; cc = (GCClosure *) closure; g_return_if_fail (return_value != NULL); g_return_if_fail (n_param_values == 3); if (G_CCLOSURE_SWAP_DATA (closure)) { data1 = closure->data; data2 = param_values->data[0].v_pointer; } else { data1 = param_values->data[0].v_pointer; data2 = closure->data; } callback = (GMarshalFunc_BOOLEAN__INT_UINT) (marshal_data ? marshal_data : cc->callback); v_return = callback (data1, g_value_get_int (param_values + 1), g_value_get_uint (param_values + 2), data2); g_value_set_boolean (return_value, v_return); } static void skk_state_class_init (SkkStateClass * klass) { skk_state_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (SkkStatePrivate)); G_OBJECT_CLASS (klass)->get_property = _vala_skk_state_get_property; G_OBJECT_CLASS (klass)->set_property = _vala_skk_state_set_property; G_OBJECT_CLASS (klass)->finalize = skk_state_finalize; g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_STATE_INPUT_MODE, g_param_spec_enum ("input-mode", "input-mode", "input-mode", SKK_TYPE_INPUT_MODE, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_STATE_PERIOD_STYLE, g_param_spec_enum ("period-style", "period-style", "period-style", SKK_TYPE_PERIOD_STYLE, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_STATE_TYPING_RULE, g_param_spec_object ("typing-rule", "typing-rule", "typing-rule", SKK_TYPE_RULE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); g_signal_new ("recursive_edit_abort", SKK_TYPE_STATE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_BOOLEAN__VOID, G_TYPE_BOOLEAN, 0); g_signal_new ("recursive_edit_end", SKK_TYPE_STATE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_BOOLEAN__STRING, G_TYPE_BOOLEAN, 1, G_TYPE_STRING); g_signal_new ("recursive_edit_start", SKK_TYPE_STATE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__STRING_BOOLEAN, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_BOOLEAN); g_signal_new ("retrieve_surrounding_text", SKK_TYPE_STATE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_BOOLEAN__POINTER_POINTER, G_TYPE_BOOLEAN, 2, G_TYPE_POINTER, G_TYPE_POINTER); g_signal_new ("delete_surrounding_text", SKK_TYPE_STATE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_BOOLEAN__INT_UINT, G_TYPE_BOOLEAN, 2, G_TYPE_INT, G_TYPE_UINT); } static void skk_state_instance_init (SkkState * self) { GString* _tmp0_; GString* _tmp1_; GString* _tmp2_; GeeArrayList* _tmp3_; self->priv = SKK_STATE_GET_PRIVATE (self); _tmp0_ = g_string_new (""); self->output = _tmp0_; _tmp1_ = g_string_new (""); self->abbrev = _tmp1_; _tmp2_ = g_string_new (""); self->kuten = _tmp2_; _tmp3_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL); self->priv->completion = _tmp3_; self->auto_start_henkan_keyword = NULL; self->egg_like_newline = FALSE; } static void skk_state_finalize (GObject* obj) { SkkState * self; self = SKK_STATE (obj); skk_state_reset (self); _g_object_unref0 (self->dictionaries); _g_object_unref0 (self->candidates); _g_object_unref0 (self->rom_kana_converter); _g_object_unref0 (self->okuri_rom_kana_converter); _g_free0 (self->midasi); _g_string_free0 (self->output); _g_string_free0 (self->abbrev); _g_string_free0 (self->kuten); _g_object_unref0 (self->priv->completion); _g_object_unref0 (self->completion_iterator); self->auto_start_henkan_keywords = (_vala_array_free (self->auto_start_henkan_keywords, self->auto_start_henkan_keywords_length1, (GDestroyNotify) g_free), NULL); _g_free0 (self->auto_start_henkan_keyword); _g_object_unref0 (self->priv->_typing_rule); _g_regex_unref0 (self->priv->numeric_regex); _g_regex_unref0 (self->priv->numeric_ref_regex); _g_object_unref0 (self->surrounding_text); G_OBJECT_CLASS (skk_state_parent_class)->finalize (obj); } GType skk_state_get_type (void) { static volatile gsize skk_state_type_id__volatile = 0; if (g_once_init_enter (&skk_state_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkStateClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_state_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkState), 0, (GInstanceInitFunc) skk_state_instance_init, NULL }; GType skk_state_type_id; skk_state_type_id = g_type_register_static (G_TYPE_OBJECT, "SkkState", &g_define_type_info, 0); g_once_init_leave (&skk_state_type_id__volatile, skk_state_type_id); } return skk_state_type_id__volatile; } static void _vala_skk_state_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { SkkState * self; self = SKK_STATE (object); switch (property_id) { case SKK_STATE_INPUT_MODE: g_value_set_enum (value, skk_state_get_input_mode (self)); break; case SKK_STATE_PERIOD_STYLE: g_value_set_enum (value, skk_state_get_period_style (self)); break; case SKK_STATE_TYPING_RULE: g_value_set_object (value, skk_state_get_typing_rule (self)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } static void _vala_skk_state_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { SkkState * self; self = SKK_STATE (object); switch (property_id) { case SKK_STATE_INPUT_MODE: skk_state_set_input_mode (self, g_value_get_enum (value)); break; case SKK_STATE_PERIOD_STYLE: skk_state_set_period_style (self, g_value_get_enum (value)); break; case SKK_STATE_TYPING_RULE: skk_state_set_typing_rule (self, g_value_get_object (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } static gboolean skk_state_handler_real_process_key_event (SkkStateHandler* self, SkkState* state, SkkKeyEvent** key) { g_critical ("Type `%s' does not implement abstract method `skk_state_handler_process_key_event'", g_type_name (G_TYPE_FROM_INSTANCE (self))); return FALSE; } gboolean skk_state_handler_process_key_event (SkkStateHandler* self, SkkState* state, SkkKeyEvent** key) { g_return_val_if_fail (self != NULL, FALSE); return SKK_STATE_HANDLER_GET_CLASS (self)->process_key_event (self, state, key); } static gchar* skk_state_handler_real_get_preedit (SkkStateHandler* self, SkkState* state, guint* underline_offset, guint* underline_nchars) { g_critical ("Type `%s' does not implement abstract method `skk_state_handler_get_preedit'", g_type_name (G_TYPE_FROM_INSTANCE (self))); return NULL; } gchar* skk_state_handler_get_preedit (SkkStateHandler* self, SkkState* state, guint* underline_offset, guint* underline_nchars) { g_return_val_if_fail (self != NULL, NULL); return SKK_STATE_HANDLER_GET_CLASS (self)->get_preedit (self, state, underline_offset, underline_nchars); } static gchar* skk_state_handler_real_get_output (SkkStateHandler* self, SkkState* state) { gchar* result = NULL; SkkState* _tmp0_; GString* _tmp1_; const gchar* _tmp2_; gchar* _tmp3_; g_return_val_if_fail (state != NULL, NULL); _tmp0_ = state; _tmp1_ = _tmp0_->output; _tmp2_ = _tmp1_->str; _tmp3_ = g_strdup (_tmp2_); result = _tmp3_; return result; } gchar* skk_state_handler_get_output (SkkStateHandler* self, SkkState* state) { g_return_val_if_fail (self != NULL, NULL); return SKK_STATE_HANDLER_GET_CLASS (self)->get_output (self, state); } SkkStateHandler* skk_state_handler_construct (GType object_type) { SkkStateHandler * self = NULL; self = (SkkStateHandler*) g_object_new (object_type, NULL); return self; } static void skk_state_handler_class_init (SkkStateHandlerClass * klass) { skk_state_handler_parent_class = g_type_class_peek_parent (klass); SKK_STATE_HANDLER_CLASS (klass)->process_key_event = skk_state_handler_real_process_key_event; SKK_STATE_HANDLER_CLASS (klass)->get_preedit = skk_state_handler_real_get_preedit; SKK_STATE_HANDLER_CLASS (klass)->get_output = skk_state_handler_real_get_output; } static void skk_state_handler_instance_init (SkkStateHandler * self) { } GType skk_state_handler_get_type (void) { static volatile gsize skk_state_handler_type_id__volatile = 0; if (g_once_init_enter (&skk_state_handler_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkStateHandlerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_state_handler_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkStateHandler), 0, (GInstanceInitFunc) skk_state_handler_instance_init, NULL }; GType skk_state_handler_type_id; skk_state_handler_type_id = g_type_register_static (G_TYPE_OBJECT, "SkkStateHandler", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); g_once_init_leave (&skk_state_handler_type_id__volatile, skk_state_handler_type_id); } return skk_state_handler_type_id__volatile; } static gint string_index_of_nth_char (const gchar* self, glong c) { gint result = 0; glong _tmp0_; gchar* _tmp1_ = NULL; g_return_val_if_fail (self != NULL, 0); _tmp0_ = c; _tmp1_ = g_utf8_offset_to_pointer (self, _tmp0_); result = (gint) (_tmp1_ - ((gchar*) self)); return result; } static gboolean skk_none_state_handler_real_process_key_event (SkkStateHandler* base, SkkState* state, SkkKeyEvent** key) { SkkNoneStateHandler * self; gboolean result = FALSE; SkkState* _tmp0_; SkkKeyEvent* _tmp1_; gchar* _tmp2_ = NULL; gchar* command; const gchar* _tmp3_; gboolean _tmp62_ = FALSE; gboolean _tmp63_ = FALSE; const gchar* _tmp64_; gboolean _tmp67_; gboolean _tmp94_; const gchar* _tmp103_; SkkState* _tmp120_; SkkInputMode _tmp121_; SkkInputMode _tmp122_; self = (SkkNoneStateHandler*) base; g_return_val_if_fail (state != NULL, FALSE); g_return_val_if_fail (*key != NULL, FALSE); _tmp0_ = state; _tmp1_ = *key; _tmp2_ = skk_state_lookup_key (_tmp0_, _tmp1_); command = _tmp2_; _tmp3_ = command; if (g_strcmp0 (_tmp3_, "abort") == 0) { gboolean retval = FALSE; SkkState* _tmp4_; SkkRomKanaConverter* _tmp5_; const gchar* _tmp6_; const gchar* _tmp7_; gint _tmp8_; gint _tmp9_; SkkState* _tmp12_; _tmp4_ = state; _tmp5_ = _tmp4_->rom_kana_converter; _tmp6_ = skk_rom_kana_converter_get_preedit (_tmp5_); _tmp7_ = _tmp6_; _tmp8_ = strlen (_tmp7_); _tmp9_ = _tmp8_; if (_tmp9_ > 0) { retval = TRUE; } else { SkkState* _tmp10_; gboolean _tmp11_ = FALSE; _tmp10_ = state; g_signal_emit_by_name (_tmp10_, "recursive-edit-abort", &_tmp11_); retval = _tmp11_; } _tmp12_ = state; skk_state_reset (_tmp12_); result = retval; _g_free0 (command); return result; } else { gboolean _tmp13_ = FALSE; const gchar* _tmp14_; gboolean _tmp16_; _tmp14_ = command; if (g_strcmp0 (_tmp14_, "commit") == 0) { _tmp13_ = TRUE; } else { const gchar* _tmp15_; _tmp15_ = command; _tmp13_ = g_strcmp0 (_tmp15_, "commit-unhandled") == 0; } _tmp16_ = _tmp13_; if (_tmp16_) { gboolean retval = FALSE; SkkState* _tmp17_; SkkRomKanaConverter* _tmp18_; const gchar* _tmp19_; const gchar* _tmp20_; gint _tmp21_; gint _tmp22_; SkkState* _tmp35_; _tmp17_ = state; _tmp18_ = _tmp17_->rom_kana_converter; _tmp19_ = skk_rom_kana_converter_get_preedit (_tmp18_); _tmp20_ = _tmp19_; _tmp21_ = strlen (_tmp20_); _tmp22_ = _tmp21_; if (_tmp22_ > 0) { retval = TRUE; } else { SkkState* _tmp23_; GString* _tmp24_; const gchar* _tmp25_; gint _tmp26_; gint _tmp27_; _tmp23_ = state; _tmp24_ = _tmp23_->output; _tmp25_ = _tmp24_->str; _tmp26_ = strlen (_tmp25_); _tmp27_ = _tmp26_; if (_tmp27_ == 0) { SkkState* _tmp28_; gboolean _tmp29_ = FALSE; _tmp28_ = state; g_signal_emit_by_name (_tmp28_, "recursive-edit-abort", &_tmp29_); retval = _tmp29_; } else { SkkState* _tmp30_; SkkState* _tmp31_; GString* _tmp32_; const gchar* _tmp33_; gboolean _tmp34_ = FALSE; _tmp30_ = state; _tmp31_ = state; _tmp32_ = _tmp31_->output; _tmp33_ = _tmp32_->str; g_signal_emit_by_name (_tmp30_, "recursive-edit-end", _tmp33_, &_tmp34_); retval = _tmp34_; } } _tmp35_ = state; skk_state_reset (_tmp35_); result = retval; _g_free0 (command); return result; } else { gboolean _tmp36_ = FALSE; const gchar* _tmp37_; gboolean _tmp39_; _tmp37_ = command; if (g_strcmp0 (_tmp37_, "start-preedit") == 0) { _tmp36_ = TRUE; } else { const gchar* _tmp38_; _tmp38_ = command; _tmp36_ = g_strcmp0 (_tmp38_, "start-preedit-kana") == 0; } _tmp39_ = _tmp36_; if (_tmp39_) { gchar* text = NULL; guint cursor_pos = 0U; SkkState* _tmp40_; gchar* _tmp41_ = NULL; guint _tmp42_ = 0U; gboolean _tmp43_ = FALSE; SkkState* _tmp61_; _tmp40_ = state; g_signal_emit_by_name (_tmp40_, "retrieve-surrounding-text", &_tmp41_, &_tmp42_, &_tmp43_); _g_free0 (text); text = _tmp41_; cursor_pos = _tmp42_; if (_tmp43_) { SkkState* _tmp44_; const gchar* _tmp45_; const gchar* _tmp46_; guint _tmp47_; gint _tmp48_ = 0; const gchar* _tmp49_; gint _tmp50_; gint _tmp51_; gchar* _tmp52_ = NULL; gchar* _tmp53_; SkkUnicodeString* _tmp54_; SkkState* _tmp55_; SkkState* _tmp56_; SkkState* _tmp57_; SkkUnicodeString* _tmp58_; gint _tmp59_; gboolean _tmp60_ = FALSE; _tmp44_ = state; _tmp45_ = text; _tmp46_ = text; _tmp47_ = cursor_pos; _tmp48_ = string_index_of_nth_char (_tmp46_, (glong) _tmp47_); _tmp49_ = text; _tmp50_ = strlen (_tmp49_); _tmp51_ = _tmp50_; _tmp52_ = string_slice (_tmp45_, (glong) _tmp48_, (glong) _tmp51_); _tmp53_ = _tmp52_; _tmp54_ = skk_unicode_string_new (_tmp53_); _g_object_unref0 (_tmp44_->surrounding_text); _tmp44_->surrounding_text = _tmp54_; _g_free0 (_tmp53_); _tmp55_ = state; _tmp55_->surrounding_end = (guint) 0; _tmp56_ = state; _tmp57_ = state; _tmp58_ = _tmp57_->surrounding_text; _tmp59_ = _tmp58_->length; g_signal_emit_by_name (_tmp56_, "delete-surrounding-text", 0, (guint) _tmp59_, &_tmp60_); } _tmp61_ = state; _tmp61_->handler_type = SKK_TYPE_START_STATE_HANDLER; result = TRUE; _g_free0 (text); _g_free0 (command); return result; } } } _tmp64_ = command; if (_tmp64_ != NULL) { const gchar* _tmp65_; gboolean _tmp66_ = FALSE; _tmp65_ = command; _tmp66_ = g_str_has_prefix (_tmp65_, "set-input-mode-"); _tmp63_ = _tmp66_; } else { _tmp63_ = FALSE; } _tmp67_ = _tmp63_; if (_tmp67_) { gboolean _tmp68_ = FALSE; gboolean _tmp69_ = FALSE; gboolean _tmp70_ = FALSE; gboolean _tmp71_ = FALSE; SkkState* _tmp72_; SkkInputMode _tmp73_; SkkInputMode _tmp74_; gboolean _tmp78_; gboolean _tmp82_; gboolean _tmp86_; gboolean _tmp93_; _tmp72_ = state; _tmp73_ = skk_state_get_input_mode (_tmp72_); _tmp74_ = _tmp73_; if (_tmp74_ == SKK_INPUT_MODE_HIRAGANA) { _tmp71_ = TRUE; } else { SkkState* _tmp75_; SkkInputMode _tmp76_; SkkInputMode _tmp77_; _tmp75_ = state; _tmp76_ = skk_state_get_input_mode (_tmp75_); _tmp77_ = _tmp76_; _tmp71_ = _tmp77_ == SKK_INPUT_MODE_KATAKANA; } _tmp78_ = _tmp71_; if (_tmp78_) { _tmp70_ = TRUE; } else { SkkState* _tmp79_; SkkInputMode _tmp80_; SkkInputMode _tmp81_; _tmp79_ = state; _tmp80_ = skk_state_get_input_mode (_tmp79_); _tmp81_ = _tmp80_; _tmp70_ = _tmp81_ == SKK_INPUT_MODE_HANKAKU_KATAKANA; } _tmp82_ = _tmp70_; if (_tmp82_) { SkkKeyEvent* _tmp83_; SkkModifierType _tmp84_; SkkModifierType _tmp85_; _tmp83_ = *key; _tmp84_ = skk_key_event_get_modifiers (_tmp83_); _tmp85_ = _tmp84_; _tmp69_ = _tmp85_ == 0; } else { _tmp69_ = FALSE; } _tmp86_ = _tmp69_; if (_tmp86_) { SkkState* _tmp87_; SkkRomKanaConverter* _tmp88_; SkkKeyEvent* _tmp89_; gunichar _tmp90_; gunichar _tmp91_; gboolean _tmp92_ = FALSE; _tmp87_ = state; _tmp88_ = _tmp87_->rom_kana_converter; _tmp89_ = *key; _tmp90_ = skk_key_event_get_code (_tmp89_); _tmp91_ = _tmp90_; _tmp92_ = skk_rom_kana_converter_can_consume (_tmp88_, _tmp91_, FALSE, TRUE); _tmp68_ = _tmp92_; } else { _tmp68_ = FALSE; } _tmp93_ = _tmp68_; _tmp62_ = !_tmp93_; } else { _tmp62_ = FALSE; } _tmp94_ = _tmp62_; if (_tmp94_) { { SkkEntry* entry_collection = NULL; gint entry_collection_length1 = 0; gint _entry_collection_size_ = 0; gint entry_it = 0; entry_collection = SKK_NONE_STATE_HANDLER_input_mode_commands; entry_collection_length1 = G_N_ELEMENTS (SKK_NONE_STATE_HANDLER_input_mode_commands); for (entry_it = 0; entry_it < G_N_ELEMENTS (SKK_NONE_STATE_HANDLER_input_mode_commands); entry_it = entry_it + 1) { SkkEntry entry = {0}; entry = entry_collection[entry_it]; { SkkEntry _tmp95_; gconstpointer _tmp96_; const gchar* _tmp97_; _tmp95_ = entry; _tmp96_ = _tmp95_.key; _tmp97_ = command; if (g_strcmp0 ((const gchar*) _tmp96_, _tmp97_) == 0) { SkkState* _tmp98_; SkkRomKanaConverter* _tmp99_; SkkState* _tmp100_; SkkEntry _tmp101_; gconstpointer _tmp102_; _tmp98_ = state; _tmp99_ = _tmp98_->rom_kana_converter; skk_rom_kana_converter_output_nn_if_any (_tmp99_); _tmp100_ = state; _tmp101_ = entry; _tmp102_ = _tmp101_.value; skk_state_set_input_mode (_tmp100_, GPOINTER_TO_INT (_tmp102_)); result = TRUE; _g_free0 (command); return result; } } } } } _tmp103_ = command; if (g_strcmp0 (_tmp103_, "delete") == 0) { SkkState* _tmp104_; SkkRomKanaConverter* _tmp105_; gboolean _tmp106_ = FALSE; SkkState* _tmp107_; GString* _tmp108_; gssize _tmp109_; _tmp104_ = state; _tmp105_ = _tmp104_->rom_kana_converter; _tmp106_ = skk_rom_kana_converter_delete (_tmp105_); if (_tmp106_) { result = TRUE; _g_free0 (command); return result; } _tmp107_ = state; _tmp108_ = _tmp107_->output; _tmp109_ = _tmp108_->len; if (_tmp109_ > ((gssize) 0)) { SkkState* _tmp110_; GString* _tmp111_; SkkState* _tmp112_; GString* _tmp113_; const gchar* _tmp114_; SkkState* _tmp115_; GString* _tmp116_; const gchar* _tmp117_; gint _tmp118_ = 0; gint _tmp119_ = 0; _tmp110_ = state; _tmp111_ = _tmp110_->output; _tmp112_ = state; _tmp113_ = _tmp112_->output; _tmp114_ = _tmp113_->str; _tmp115_ = state; _tmp116_ = _tmp115_->output; _tmp117_ = _tmp116_->str; _tmp118_ = g_utf8_strlen (_tmp117_, (gssize) (-1)); _tmp119_ = string_index_of_nth_char (_tmp114_, (glong) (_tmp118_ - 1)); g_string_truncate (_tmp111_, (gsize) _tmp119_); result = TRUE; _g_free0 (command); return result; } result = FALSE; _g_free0 (command); return result; } _tmp120_ = state; _tmp121_ = skk_state_get_input_mode (_tmp120_); _tmp122_ = _tmp121_; switch (_tmp122_) { case SKK_INPUT_MODE_HIRAGANA: case SKK_INPUT_MODE_KATAKANA: case SKK_INPUT_MODE_HANKAKU_KATAKANA: { gunichar lower_code = 0U; gboolean _tmp123_ = FALSE; SkkState* _tmp124_; SkkKeyEvent* _tmp125_; gunichar _tmp126_ = 0U; gboolean _tmp127_ = FALSE; gboolean _tmp132_; gboolean _tmp159_ = FALSE; const gchar* _tmp160_; gboolean _tmp163_; SkkKeyEvent* _tmp180_; SkkModifierType _tmp181_; SkkModifierType _tmp182_; _tmp124_ = state; _tmp125_ = *key; _tmp127_ = skk_state_isupper (_tmp124_, _tmp125_, &_tmp126_); lower_code = _tmp126_; if (_tmp127_) { SkkState* _tmp128_; SkkRomKanaConverter* _tmp129_; gunichar _tmp130_; gboolean _tmp131_ = FALSE; _tmp128_ = state; _tmp129_ = _tmp128_->rom_kana_converter; _tmp130_ = lower_code; _tmp131_ = skk_rom_kana_converter_is_valid (_tmp129_, _tmp130_); _tmp123_ = _tmp131_; } else { _tmp123_ = FALSE; } _tmp132_ = _tmp123_; if (_tmp132_) { SkkState* _tmp133_; SkkRomKanaConverter* _tmp134_; SkkState* _tmp135_; GString* _tmp136_; SkkState* _tmp137_; SkkRomKanaConverter* _tmp138_; const gchar* _tmp139_; const gchar* _tmp140_; SkkState* _tmp141_; SkkRomKanaConverter* _tmp142_; SkkState* _tmp143_; _tmp133_ = state; _tmp134_ = _tmp133_->rom_kana_converter; skk_rom_kana_converter_output_nn_if_any (_tmp134_); _tmp135_ = state; _tmp136_ = _tmp135_->output; _tmp137_ = state; _tmp138_ = _tmp137_->rom_kana_converter; _tmp139_ = skk_rom_kana_converter_get_output (_tmp138_); _tmp140_ = _tmp139_; g_string_append (_tmp136_, _tmp140_); _tmp141_ = state; _tmp142_ = _tmp141_->rom_kana_converter; skk_rom_kana_converter_set_output (_tmp142_, ""); _tmp143_ = state; _tmp143_->handler_type = SKK_TYPE_START_STATE_HANDLER; result = FALSE; _g_free0 (command); return result; } else { gboolean _tmp144_ = FALSE; SkkKeyEvent* _tmp145_; SkkModifierType _tmp146_; SkkModifierType _tmp147_; gboolean _tmp154_; _tmp145_ = *key; _tmp146_ = skk_key_event_get_modifiers (_tmp145_); _tmp147_ = _tmp146_; if (_tmp147_ == 0) { SkkState* _tmp148_; SkkRomKanaConverter* _tmp149_; SkkKeyEvent* _tmp150_; gunichar _tmp151_; gunichar _tmp152_; gboolean _tmp153_ = FALSE; _tmp148_ = state; _tmp149_ = _tmp148_->rom_kana_converter; _tmp150_ = *key; _tmp151_ = skk_key_event_get_code (_tmp150_); _tmp152_ = _tmp151_; _tmp153_ = skk_rom_kana_converter_can_consume (_tmp149_, _tmp152_, TRUE, TRUE); _tmp144_ = !_tmp153_; } else { _tmp144_ = FALSE; } _tmp154_ = _tmp144_; if (_tmp154_) { const gchar* _tmp155_; _tmp155_ = command; if (g_strcmp0 (_tmp155_, "abbrev") == 0) { SkkState* _tmp156_; _tmp156_ = state; _tmp156_->handler_type = SKK_TYPE_ABBREV_STATE_HANDLER; result = TRUE; _g_free0 (command); return result; } else { const gchar* _tmp157_; _tmp157_ = command; if (g_strcmp0 (_tmp157_, "kuten") == 0) { SkkState* _tmp158_; _tmp158_ = state; _tmp158_->handler_type = SKK_TYPE_KUTEN_STATE_HANDLER; result = TRUE; _g_free0 (command); return result; } } } } _tmp160_ = command; if (_tmp160_ != NULL) { const gchar* _tmp161_; gboolean _tmp162_ = FALSE; _tmp161_ = command; _tmp162_ = g_str_has_prefix (_tmp161_, "insert-kana-"); _tmp159_ = _tmp162_; } else { _tmp159_ = FALSE; } _tmp163_ = _tmp159_; if (_tmp163_) { const gchar* _tmp164_; gint _tmp165_; gint _tmp166_; const gchar* _tmp167_; gint _tmp168_; gint _tmp169_; gchar* _tmp170_ = NULL; gchar* _tmp171_; SkkState* _tmp172_; SkkInputMode _tmp173_; SkkInputMode _tmp174_; gchar* _tmp175_ = NULL; gchar* _tmp176_; gchar* kana; SkkState* _tmp177_; GString* _tmp178_; const gchar* _tmp179_; _tmp164_ = command; _tmp165_ = strlen ("insert-kana-"); _tmp166_ = _tmp165_; _tmp167_ = command; _tmp168_ = strlen (_tmp167_); _tmp169_ = _tmp168_; _tmp170_ = string_slice (_tmp164_, (glong) _tmp166_, (glong) _tmp169_); _tmp171_ = _tmp170_; _tmp172_ = state; _tmp173_ = skk_state_get_input_mode (_tmp172_); _tmp174_ = _tmp173_; _tmp175_ = skk_util_convert_by_input_mode (_tmp171_, _tmp174_); _tmp176_ = _tmp175_; _g_free0 (_tmp171_); kana = _tmp176_; _tmp177_ = state; _tmp178_ = _tmp177_->output; _tmp179_ = kana; g_string_append (_tmp178_, _tmp179_); result = TRUE; _g_free0 (kana); _g_free0 (command); return result; } _tmp180_ = *key; _tmp181_ = skk_key_event_get_modifiers (_tmp180_); _tmp182_ = _tmp181_; if (_tmp182_ == 0) { SkkState* _tmp183_; SkkRomKanaConverter* _tmp184_; SkkKeyEvent* _tmp185_; gunichar _tmp186_; gunichar _tmp187_; gboolean _tmp188_ = FALSE; _tmp183_ = state; _tmp184_ = _tmp183_->rom_kana_converter; _tmp185_ = *key; _tmp186_ = skk_key_event_get_code (_tmp185_); _tmp187_ = _tmp186_; _tmp188_ = skk_rom_kana_converter_append (_tmp184_, _tmp187_); if (_tmp188_) { SkkState* _tmp189_; GString* _tmp190_; SkkState* _tmp191_; SkkRomKanaConverter* _tmp192_; const gchar* _tmp193_; const gchar* _tmp194_; SkkState* _tmp195_; SkkRomKanaConverter* _tmp196_; _tmp189_ = state; _tmp190_ = _tmp189_->output; _tmp191_ = state; _tmp192_ = _tmp191_->rom_kana_converter; _tmp193_ = skk_rom_kana_converter_get_output (_tmp192_); _tmp194_ = _tmp193_; g_string_append (_tmp190_, _tmp194_); _tmp195_ = state; _tmp196_ = _tmp195_->rom_kana_converter; skk_rom_kana_converter_set_output (_tmp196_, ""); result = TRUE; _g_free0 (command); return result; } else { gboolean _tmp197_ = FALSE; SkkKeyEvent* _tmp198_; gunichar _tmp199_; gunichar _tmp200_; gboolean _tmp204_; _tmp198_ = *key; _tmp199_ = skk_key_event_get_code (_tmp198_); _tmp200_ = _tmp199_; if (((gunichar) 0x20) <= _tmp200_) { SkkKeyEvent* _tmp201_; gunichar _tmp202_; gunichar _tmp203_; _tmp201_ = *key; _tmp202_ = skk_key_event_get_code (_tmp201_); _tmp203_ = _tmp202_; _tmp197_ = _tmp203_ <= ((gunichar) 0x7F); } else { _tmp197_ = FALSE; } _tmp204_ = _tmp197_; if (_tmp204_) { SkkState* _tmp205_; GString* _tmp206_; SkkKeyEvent* _tmp207_; gunichar _tmp208_; gunichar _tmp209_; SkkState* _tmp210_; SkkRomKanaConverter* _tmp211_; _tmp205_ = state; _tmp206_ = _tmp205_->output; _tmp207_ = *key; _tmp208_ = skk_key_event_get_code (_tmp207_); _tmp209_ = _tmp208_; g_string_append_c (_tmp206_, (gchar) _tmp209_); _tmp210_ = state; _tmp211_ = _tmp210_->rom_kana_converter; skk_rom_kana_converter_set_output (_tmp211_, ""); result = TRUE; _g_free0 (command); return result; } else { SkkState* _tmp212_; SkkRomKanaConverter* _tmp213_; _tmp212_ = state; _tmp213_ = _tmp212_->rom_kana_converter; skk_rom_kana_converter_set_output (_tmp213_, ""); result = FALSE; _g_free0 (command); return result; } } } break; } case SKK_INPUT_MODE_LATIN: { gboolean _tmp214_ = FALSE; gboolean _tmp215_ = FALSE; SkkKeyEvent* _tmp216_; SkkModifierType _tmp217_; SkkModifierType _tmp218_; gboolean _tmp222_; gboolean _tmp226_; _tmp216_ = *key; _tmp217_ = skk_key_event_get_modifiers (_tmp216_); _tmp218_ = _tmp217_; if (_tmp218_ == 0) { SkkKeyEvent* _tmp219_; gunichar _tmp220_; gunichar _tmp221_; _tmp219_ = *key; _tmp220_ = skk_key_event_get_code (_tmp219_); _tmp221_ = _tmp220_; _tmp215_ = ((gunichar) 0x20) <= _tmp221_; } else { _tmp215_ = FALSE; } _tmp222_ = _tmp215_; if (_tmp222_) { SkkKeyEvent* _tmp223_; gunichar _tmp224_; gunichar _tmp225_; _tmp223_ = *key; _tmp224_ = skk_key_event_get_code (_tmp223_); _tmp225_ = _tmp224_; _tmp214_ = _tmp225_ <= ((gunichar) 0x7F); } else { _tmp214_ = FALSE; } _tmp226_ = _tmp214_; if (_tmp226_) { SkkState* _tmp227_; GString* _tmp228_; SkkKeyEvent* _tmp229_; gunichar _tmp230_; gunichar _tmp231_; _tmp227_ = state; _tmp228_ = _tmp227_->output; _tmp229_ = *key; _tmp230_ = skk_key_event_get_code (_tmp229_); _tmp231_ = _tmp230_; g_string_append_c (_tmp228_, (gchar) _tmp231_); result = TRUE; _g_free0 (command); return result; } break; } case SKK_INPUT_MODE_WIDE_LATIN: { gboolean _tmp232_ = FALSE; gboolean _tmp233_ = FALSE; SkkKeyEvent* _tmp234_; SkkModifierType _tmp235_; SkkModifierType _tmp236_; gboolean _tmp240_; gboolean _tmp244_; _tmp234_ = *key; _tmp235_ = skk_key_event_get_modifiers (_tmp234_); _tmp236_ = _tmp235_; if (_tmp236_ == 0) { SkkKeyEvent* _tmp237_; gunichar _tmp238_; gunichar _tmp239_; _tmp237_ = *key; _tmp238_ = skk_key_event_get_code (_tmp237_); _tmp239_ = _tmp238_; _tmp233_ = ((gunichar) 0x20) <= _tmp239_; } else { _tmp233_ = FALSE; } _tmp240_ = _tmp233_; if (_tmp240_) { SkkKeyEvent* _tmp241_; gunichar _tmp242_; gunichar _tmp243_; _tmp241_ = *key; _tmp242_ = skk_key_event_get_code (_tmp241_); _tmp243_ = _tmp242_; _tmp232_ = _tmp243_ <= ((gunichar) 0x7F); } else { _tmp232_ = FALSE; } _tmp244_ = _tmp232_; if (_tmp244_) { SkkState* _tmp245_; GString* _tmp246_; SkkKeyEvent* _tmp247_; gunichar _tmp248_; gunichar _tmp249_; gunichar _tmp250_ = 0U; _tmp245_ = state; _tmp246_ = _tmp245_->output; _tmp247_ = *key; _tmp248_ = skk_key_event_get_code (_tmp247_); _tmp249_ = _tmp248_; _tmp250_ = skk_util_get_wide_latin_char ((gchar) _tmp249_); g_string_append_unichar (_tmp246_, _tmp250_); result = TRUE; _g_free0 (command); return result; } break; } default: break; } result = FALSE; _g_free0 (command); return result; } static gchar* skk_none_state_handler_real_get_preedit (SkkStateHandler* base, SkkState* state, guint* underline_offset, guint* underline_nchars) { SkkNoneStateHandler * self; guint _vala_underline_offset = 0U; guint _vala_underline_nchars = 0U; gchar* result = NULL; GString* _tmp0_; GString* builder; SkkState* _tmp1_; SkkRomKanaConverter* _tmp2_; const gchar* _tmp3_; const gchar* _tmp4_; const gchar* _tmp5_; gchar* _tmp6_; self = (SkkNoneStateHandler*) base; g_return_val_if_fail (state != NULL, NULL); _tmp0_ = g_string_new (""); builder = _tmp0_; _tmp1_ = state; _tmp2_ = _tmp1_->rom_kana_converter; _tmp3_ = skk_rom_kana_converter_get_preedit (_tmp2_); _tmp4_ = _tmp3_; g_string_append (builder, _tmp4_); _vala_underline_nchars = (guint) 0; _vala_underline_offset = _vala_underline_nchars; _tmp5_ = builder->str; _tmp6_ = g_strdup (_tmp5_); result = _tmp6_; _g_string_free0 (builder); if (underline_offset) { *underline_offset = _vala_underline_offset; } if (underline_nchars) { *underline_nchars = _vala_underline_nchars; } return result; } SkkNoneStateHandler* skk_none_state_handler_construct (GType object_type) { SkkNoneStateHandler * self = NULL; self = (SkkNoneStateHandler*) skk_state_handler_construct (object_type); return self; } SkkNoneStateHandler* skk_none_state_handler_new (void) { return skk_none_state_handler_construct (SKK_TYPE_NONE_STATE_HANDLER); } static void skk_none_state_handler_class_init (SkkNoneStateHandlerClass * klass) { skk_none_state_handler_parent_class = g_type_class_peek_parent (klass); SKK_STATE_HANDLER_CLASS (klass)->process_key_event = skk_none_state_handler_real_process_key_event; SKK_STATE_HANDLER_CLASS (klass)->get_preedit = skk_none_state_handler_real_get_preedit; } static void skk_none_state_handler_instance_init (SkkNoneStateHandler * self) { } GType skk_none_state_handler_get_type (void) { static volatile gsize skk_none_state_handler_type_id__volatile = 0; if (g_once_init_enter (&skk_none_state_handler_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkNoneStateHandlerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_none_state_handler_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkNoneStateHandler), 0, (GInstanceInitFunc) skk_none_state_handler_instance_init, NULL }; GType skk_none_state_handler_type_id; skk_none_state_handler_type_id = g_type_register_static (SKK_TYPE_STATE_HANDLER, "SkkNoneStateHandler", &g_define_type_info, 0); g_once_init_leave (&skk_none_state_handler_type_id__volatile, skk_none_state_handler_type_id); } return skk_none_state_handler_type_id__volatile; } SkkKutenStateHandler* skk_kuten_state_handler_construct (GType object_type) { SkkKutenStateHandler * self = NULL; GError * _inner_error_ = NULL; self = (SkkKutenStateHandler*) skk_state_handler_construct (object_type); { SkkEncodingConverter* _tmp0_; SkkEncodingConverter* _tmp1_; _tmp0_ = skk_encoding_converter_new ("EUC-JP", &_inner_error_); _tmp1_ = _tmp0_; if (_inner_error_ != NULL) { goto __catch34_g_error; } _g_object_unref0 (self->priv->converter); self->priv->converter = _tmp1_; } goto __finally34; __catch34_g_error: { GError* e = NULL; e = _inner_error_; _inner_error_ = NULL; _g_object_unref0 (self->priv->converter); self->priv->converter = NULL; g_assert_not_reached (); _g_error_free0 (e); } __finally34: if (_inner_error_ != NULL) { g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } return self; } SkkKutenStateHandler* skk_kuten_state_handler_new (void) { return skk_kuten_state_handler_construct (SKK_TYPE_KUTEN_STATE_HANDLER); } static gint skk_kuten_state_handler_hex_char_to_int (SkkKutenStateHandler* self, gchar hex) { gint result = 0; gboolean _tmp0_ = FALSE; gchar _tmp1_; gboolean _tmp3_; g_return_val_if_fail (self != NULL, 0); _tmp1_ = hex; if ('0' <= _tmp1_) { gchar _tmp2_; _tmp2_ = hex; _tmp0_ = _tmp2_ <= '9'; } else { _tmp0_ = FALSE; } _tmp3_ = _tmp0_; if (_tmp3_) { gchar _tmp4_; _tmp4_ = hex; result = (gint) (_tmp4_ - '0'); return result; } else { gboolean _tmp5_ = FALSE; gchar _tmp6_; gchar _tmp7_ = '\0'; gboolean _tmp10_; _tmp6_ = hex; _tmp7_ = g_ascii_tolower (_tmp6_); if ('a' <= _tmp7_) { gchar _tmp8_; gchar _tmp9_ = '\0'; _tmp8_ = hex; _tmp9_ = g_ascii_tolower (_tmp8_); _tmp5_ = _tmp9_ <= 'f'; } else { _tmp5_ = FALSE; } _tmp10_ = _tmp5_; if (_tmp10_) { gchar _tmp11_; _tmp11_ = hex; result = (_tmp11_ - 'a') + 10; return result; } } result = -1; return result; } static gchar* skk_kuten_state_handler_parse_hex (SkkKutenStateHandler* self, const gchar* hex) { gchar* result = NULL; GString* _tmp0_; GString* builder; GString* _tmp18_; const gchar* _tmp19_; gchar* _tmp20_; g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (hex != NULL, NULL); _tmp0_ = g_string_new (""); builder = _tmp0_; { gint i; i = 0; { gboolean _tmp1_; _tmp1_ = TRUE; while (TRUE) { gboolean _tmp2_; gint _tmp4_; const gchar* _tmp5_; gint _tmp6_; gint _tmp7_; const gchar* _tmp8_; gint _tmp9_; gchar _tmp10_ = '\0'; gint _tmp11_ = 0; const gchar* _tmp12_; gint _tmp13_; gchar _tmp14_ = '\0'; gint _tmp15_ = 0; gint c; GString* _tmp16_; gint _tmp17_; _tmp2_ = _tmp1_; if (!_tmp2_) { gint _tmp3_; _tmp3_ = i; i = _tmp3_ + 2; } _tmp1_ = FALSE; _tmp4_ = i; _tmp5_ = hex; _tmp6_ = strlen (_tmp5_); _tmp7_ = _tmp6_; if (!(_tmp4_ < (_tmp7_ - 1))) { break; } _tmp8_ = hex; _tmp9_ = i; _tmp10_ = string_get (_tmp8_, (glong) _tmp9_); _tmp11_ = skk_kuten_state_handler_hex_char_to_int (self, _tmp10_); _tmp12_ = hex; _tmp13_ = i; _tmp14_ = string_get (_tmp12_, (glong) (_tmp13_ + 1)); _tmp15_ = skk_kuten_state_handler_hex_char_to_int (self, _tmp14_); c = (_tmp11_ << 4) | _tmp15_; _tmp16_ = builder; _tmp17_ = c; g_string_append_c (_tmp16_, (gchar) _tmp17_); } } } _tmp18_ = builder; _tmp19_ = _tmp18_->str; _tmp20_ = g_strdup (_tmp19_); result = _tmp20_; _g_string_free0 (builder); return result; } static gboolean skk_kuten_state_handler_real_process_key_event (SkkStateHandler* base, SkkState* state, SkkKeyEvent** key) { SkkKutenStateHandler * self; gboolean result = FALSE; SkkState* _tmp0_; SkkKeyEvent* _tmp1_; gchar* _tmp2_ = NULL; gchar* command; const gchar* _tmp3_; GError * _inner_error_ = NULL; self = (SkkKutenStateHandler*) base; g_return_val_if_fail (state != NULL, FALSE); g_return_val_if_fail (*key != NULL, FALSE); _tmp0_ = state; _tmp1_ = *key; _tmp2_ = skk_state_lookup_key (_tmp0_, _tmp1_); command = _tmp2_; _tmp3_ = command; if (g_strcmp0 (_tmp3_, "abort") == 0) { SkkState* _tmp4_; _tmp4_ = state; skk_state_reset (_tmp4_); result = TRUE; _g_free0 (command); return result; } else { gboolean _tmp5_ = FALSE; const gchar* _tmp6_; gboolean _tmp15_; _tmp6_ = command; if (g_strcmp0 (_tmp6_, "commit-unhandled") == 0) { gboolean _tmp7_ = FALSE; SkkState* _tmp8_; GString* _tmp9_; gssize _tmp10_; gboolean _tmp14_; _tmp8_ = state; _tmp9_ = _tmp8_->kuten; _tmp10_ = _tmp9_->len; if (_tmp10_ == ((gssize) 4)) { _tmp7_ = TRUE; } else { SkkState* _tmp11_; GString* _tmp12_; gssize _tmp13_; _tmp11_ = state; _tmp12_ = _tmp11_->kuten; _tmp13_ = _tmp12_->len; _tmp7_ = _tmp13_ == ((gssize) 6); } _tmp14_ = _tmp7_; _tmp5_ = _tmp14_; } else { _tmp5_ = FALSE; } _tmp15_ = _tmp5_; if (_tmp15_) { SkkEncodingConverter* _tmp16_; SkkState* _tmp31_; _tmp16_ = self->priv->converter; if (_tmp16_ != NULL) { SkkState* _tmp17_; GString* _tmp18_; const gchar* _tmp19_; gchar* _tmp20_ = NULL; gchar* euc; _tmp17_ = state; _tmp18_ = _tmp17_->kuten; _tmp19_ = _tmp18_->str; _tmp20_ = skk_kuten_state_handler_parse_hex (self, _tmp19_); euc = _tmp20_; { SkkEncodingConverter* _tmp21_; const gchar* _tmp22_; gchar* _tmp23_ = NULL; gchar* _tmp24_; SkkState* _tmp25_; GString* _tmp26_; gchar* _tmp27_; _tmp21_ = self->priv->converter; _tmp22_ = euc; _tmp23_ = skk_encoding_converter_decode (_tmp21_, _tmp22_, &_inner_error_); _tmp24_ = _tmp23_; if (_inner_error_ != NULL) { goto __catch35_g_error; } _tmp25_ = state; _tmp26_ = _tmp25_->output; _tmp27_ = _tmp24_; g_string_append (_tmp26_, _tmp27_); _g_free0 (_tmp27_); } goto __finally35; __catch35_g_error: { GError* e = NULL; const gchar* _tmp28_; GError* _tmp29_; const gchar* _tmp30_; e = _inner_error_; _inner_error_ = NULL; _tmp28_ = euc; _tmp29_ = e; _tmp30_ = _tmp29_->message; g_warning ("state.vala:615: can't decode %s in EUC-JP: %s", _tmp28_, _tmp30_); _g_error_free0 (e); } __finally35: if (_inner_error_ != NULL) { _g_free0 (euc); _g_free0 (command); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return FALSE; } _g_free0 (euc); } _tmp31_ = state; skk_state_reset (_tmp31_); result = TRUE; _g_free0 (command); return result; } else { gboolean _tmp32_ = FALSE; const gchar* _tmp33_; gboolean _tmp37_; _tmp33_ = command; if (g_strcmp0 (_tmp33_, "delete") == 0) { SkkState* _tmp34_; GString* _tmp35_; gssize _tmp36_; _tmp34_ = state; _tmp35_ = _tmp34_->kuten; _tmp36_ = _tmp35_->len; _tmp32_ = _tmp36_ > ((gssize) 0); } else { _tmp32_ = FALSE; } _tmp37_ = _tmp32_; if (_tmp37_) { SkkState* _tmp38_; GString* _tmp39_; SkkState* _tmp40_; GString* _tmp41_; gssize _tmp42_; _tmp38_ = state; _tmp39_ = _tmp38_->kuten; _tmp40_ = state; _tmp41_ = _tmp40_->kuten; _tmp42_ = _tmp41_->len; g_string_truncate (_tmp39_, (gsize) (_tmp42_ - 1)); result = TRUE; _g_free0 (command); return result; } else { gboolean _tmp43_ = FALSE; gboolean _tmp44_ = FALSE; SkkKeyEvent* _tmp45_; SkkModifierType _tmp46_; SkkModifierType _tmp47_; gboolean _tmp76_; gboolean _tmp80_; _tmp45_ = *key; _tmp46_ = skk_key_event_get_modifiers (_tmp45_); _tmp47_ = _tmp46_; if (_tmp47_ == 0) { gboolean _tmp48_ = FALSE; gboolean _tmp49_ = FALSE; gboolean _tmp50_ = FALSE; SkkKeyEvent* _tmp51_; gunichar _tmp52_; gunichar _tmp53_; gboolean _tmp57_; gboolean _tmp66_; gboolean _tmp75_; _tmp51_ = *key; _tmp52_ = skk_key_event_get_code (_tmp51_); _tmp53_ = _tmp52_; if (((gunichar) 'a') <= _tmp53_) { SkkKeyEvent* _tmp54_; gunichar _tmp55_; gunichar _tmp56_; _tmp54_ = *key; _tmp55_ = skk_key_event_get_code (_tmp54_); _tmp56_ = _tmp55_; _tmp50_ = _tmp56_ <= ((gunichar) 'f'); } else { _tmp50_ = FALSE; } _tmp57_ = _tmp50_; if (_tmp57_) { _tmp49_ = TRUE; } else { gboolean _tmp58_ = FALSE; SkkKeyEvent* _tmp59_; gunichar _tmp60_; gunichar _tmp61_; gboolean _tmp65_; _tmp59_ = *key; _tmp60_ = skk_key_event_get_code (_tmp59_); _tmp61_ = _tmp60_; if (((gunichar) 'A') <= _tmp61_) { SkkKeyEvent* _tmp62_; gunichar _tmp63_; gunichar _tmp64_; _tmp62_ = *key; _tmp63_ = skk_key_event_get_code (_tmp62_); _tmp64_ = _tmp63_; _tmp58_ = _tmp64_ <= ((gunichar) 'F'); } else { _tmp58_ = FALSE; } _tmp65_ = _tmp58_; _tmp49_ = _tmp65_; } _tmp66_ = _tmp49_; if (_tmp66_) { _tmp48_ = TRUE; } else { gboolean _tmp67_ = FALSE; SkkKeyEvent* _tmp68_; gunichar _tmp69_; gunichar _tmp70_; gboolean _tmp74_; _tmp68_ = *key; _tmp69_ = skk_key_event_get_code (_tmp68_); _tmp70_ = _tmp69_; if (((gunichar) '0') <= _tmp70_) { SkkKeyEvent* _tmp71_; gunichar _tmp72_; gunichar _tmp73_; _tmp71_ = *key; _tmp72_ = skk_key_event_get_code (_tmp71_); _tmp73_ = _tmp72_; _tmp67_ = _tmp73_ <= ((gunichar) '9'); } else { _tmp67_ = FALSE; } _tmp74_ = _tmp67_; _tmp48_ = _tmp74_; } _tmp75_ = _tmp48_; _tmp44_ = _tmp75_; } else { _tmp44_ = FALSE; } _tmp76_ = _tmp44_; if (_tmp76_) { SkkState* _tmp77_; GString* _tmp78_; gssize _tmp79_; _tmp77_ = state; _tmp78_ = _tmp77_->kuten; _tmp79_ = _tmp78_->len; _tmp43_ = _tmp79_ < ((gssize) 6); } else { _tmp43_ = FALSE; } _tmp80_ = _tmp43_; if (_tmp80_) { SkkState* _tmp81_; GString* _tmp82_; SkkKeyEvent* _tmp83_; gunichar _tmp84_; gunichar _tmp85_; _tmp81_ = state; _tmp82_ = _tmp81_->kuten; _tmp83_ = *key; _tmp84_ = skk_key_event_get_code (_tmp83_); _tmp85_ = _tmp84_; g_string_append_unichar (_tmp82_, _tmp85_); result = TRUE; _g_free0 (command); return result; } } } } result = TRUE; _g_free0 (command); return result; } static gchar* skk_kuten_state_handler_real_get_preedit (SkkStateHandler* base, SkkState* state, guint* underline_offset, guint* underline_nchars) { SkkKutenStateHandler * self; guint _vala_underline_offset = 0U; guint _vala_underline_nchars = 0U; gchar* result = NULL; const gchar* _tmp0_ = NULL; SkkState* _tmp1_; GString* _tmp2_; const gchar* _tmp3_; gchar* _tmp4_; self = (SkkKutenStateHandler*) base; g_return_val_if_fail (state != NULL, NULL); _vala_underline_nchars = (guint) 0; _vala_underline_offset = _vala_underline_nchars; _tmp0_ = _ ("Kuten([MM]KKTT) "); _tmp1_ = state; _tmp2_ = _tmp1_->kuten; _tmp3_ = _tmp2_->str; _tmp4_ = g_strconcat (_tmp0_, _tmp3_, NULL); result = _tmp4_; if (underline_offset) { *underline_offset = _vala_underline_offset; } if (underline_nchars) { *underline_nchars = _vala_underline_nchars; } return result; } static void skk_kuten_state_handler_class_init (SkkKutenStateHandlerClass * klass) { skk_kuten_state_handler_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (SkkKutenStateHandlerPrivate)); SKK_STATE_HANDLER_CLASS (klass)->process_key_event = skk_kuten_state_handler_real_process_key_event; SKK_STATE_HANDLER_CLASS (klass)->get_preedit = skk_kuten_state_handler_real_get_preedit; G_OBJECT_CLASS (klass)->finalize = skk_kuten_state_handler_finalize; } static void skk_kuten_state_handler_instance_init (SkkKutenStateHandler * self) { self->priv = SKK_KUTEN_STATE_HANDLER_GET_PRIVATE (self); } static void skk_kuten_state_handler_finalize (GObject* obj) { SkkKutenStateHandler * self; self = SKK_KUTEN_STATE_HANDLER (obj); _g_object_unref0 (self->priv->converter); G_OBJECT_CLASS (skk_kuten_state_handler_parent_class)->finalize (obj); } GType skk_kuten_state_handler_get_type (void) { static volatile gsize skk_kuten_state_handler_type_id__volatile = 0; if (g_once_init_enter (&skk_kuten_state_handler_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkKutenStateHandlerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_kuten_state_handler_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkKutenStateHandler), 0, (GInstanceInitFunc) skk_kuten_state_handler_instance_init, NULL }; GType skk_kuten_state_handler_type_id; skk_kuten_state_handler_type_id = g_type_register_static (SKK_TYPE_STATE_HANDLER, "SkkKutenStateHandler", &g_define_type_info, 0); g_once_init_leave (&skk_kuten_state_handler_type_id__volatile, skk_kuten_state_handler_type_id); } return skk_kuten_state_handler_type_id__volatile; } static gboolean skk_abbrev_state_handler_real_process_key_event (SkkStateHandler* base, SkkState* state, SkkKeyEvent** key) { SkkAbbrevStateHandler * self; gboolean result = FALSE; SkkState* _tmp0_; SkkKeyEvent* _tmp1_; gchar* _tmp2_ = NULL; gchar* command; const gchar* _tmp3_; self = (SkkAbbrevStateHandler*) base; g_return_val_if_fail (state != NULL, FALSE); g_return_val_if_fail (*key != NULL, FALSE); _tmp0_ = state; _tmp1_ = *key; _tmp2_ = skk_state_lookup_key (_tmp0_, _tmp1_); command = _tmp2_; _tmp3_ = command; if (g_strcmp0 (_tmp3_, "abort") == 0) { SkkState* _tmp4_; _tmp4_ = state; skk_state_reset (_tmp4_); result = TRUE; _g_free0 (command); return result; } else { const gchar* _tmp5_; _tmp5_ = command; if (g_strcmp0 (_tmp5_, "next-candidate") == 0) { SkkState* _tmp6_; _tmp6_ = state; _tmp6_->handler_type = SKK_TYPE_SELECT_STATE_HANDLER; result = FALSE; _g_free0 (command); return result; } else { gboolean _tmp7_ = FALSE; SkkKeyEvent* _tmp8_; SkkModifierType _tmp9_; SkkModifierType _tmp10_; gboolean _tmp14_; _tmp8_ = *key; _tmp9_ = skk_key_event_get_modifiers (_tmp8_); _tmp10_ = _tmp9_; if ((_tmp10_ & SKK_MODIFIER_TYPE_CONTROL_MASK) != 0) { SkkKeyEvent* _tmp11_; gunichar _tmp12_; gunichar _tmp13_; _tmp11_ = *key; _tmp12_ = skk_key_event_get_code (_tmp11_); _tmp13_ = _tmp12_; _tmp7_ = _tmp13_ == ((gunichar) 'q'); } else { _tmp7_ = FALSE; } _tmp14_ = _tmp7_; if (_tmp14_) { SkkState* _tmp15_; GString* _tmp16_; SkkState* _tmp17_; GString* _tmp18_; const gchar* _tmp19_; gchar* _tmp20_ = NULL; gchar* _tmp21_; SkkState* _tmp22_; _tmp15_ = state; _tmp16_ = _tmp15_->output; _tmp17_ = state; _tmp18_ = _tmp17_->abbrev; _tmp19_ = _tmp18_->str; _tmp20_ = skk_util_get_wide_latin (_tmp19_); _tmp21_ = _tmp20_; g_string_assign (_tmp16_, _tmp21_); _g_free0 (_tmp21_); _tmp22_ = state; skk_state_reset (_tmp22_); result = TRUE; _g_free0 (command); return result; } else { const gchar* _tmp23_; _tmp23_ = command; if (g_strcmp0 (_tmp23_, "delete") == 0) { SkkState* _tmp24_; GString* _tmp25_; gssize _tmp26_; _tmp24_ = state; _tmp25_ = _tmp24_->abbrev; _tmp26_ = _tmp25_->len; if (_tmp26_ > ((gssize) 0)) { SkkState* _tmp27_; GString* _tmp28_; SkkState* _tmp29_; GString* _tmp30_; gssize _tmp31_; _tmp27_ = state; _tmp28_ = _tmp27_->abbrev; _tmp29_ = state; _tmp30_ = _tmp29_->abbrev; _tmp31_ = _tmp30_->len; g_string_truncate (_tmp28_, (gsize) (_tmp31_ - 1)); } else { SkkState* _tmp32_; _tmp32_ = state; skk_state_reset (_tmp32_); } result = TRUE; _g_free0 (command); return result; } else { gboolean _tmp33_ = FALSE; gboolean _tmp34_ = FALSE; SkkKeyEvent* _tmp35_; SkkModifierType _tmp36_; SkkModifierType _tmp37_; gboolean _tmp41_; gboolean _tmp45_; _tmp35_ = *key; _tmp36_ = skk_key_event_get_modifiers (_tmp35_); _tmp37_ = _tmp36_; if (_tmp37_ == 0) { SkkKeyEvent* _tmp38_; gunichar _tmp39_; gunichar _tmp40_; _tmp38_ = *key; _tmp39_ = skk_key_event_get_code (_tmp38_); _tmp40_ = _tmp39_; _tmp34_ = ((gunichar) 0x20) <= _tmp40_; } else { _tmp34_ = FALSE; } _tmp41_ = _tmp34_; if (_tmp41_) { SkkKeyEvent* _tmp42_; gunichar _tmp43_; gunichar _tmp44_; _tmp42_ = *key; _tmp43_ = skk_key_event_get_code (_tmp42_); _tmp44_ = _tmp43_; _tmp33_ = _tmp44_ <= ((gunichar) 0x7E); } else { _tmp33_ = FALSE; } _tmp45_ = _tmp33_; if (_tmp45_) { SkkState* _tmp46_; GString* _tmp47_; SkkKeyEvent* _tmp48_; gunichar _tmp49_; gunichar _tmp50_; _tmp46_ = state; _tmp47_ = _tmp46_->abbrev; _tmp48_ = *key; _tmp49_ = skk_key_event_get_code (_tmp48_); _tmp50_ = _tmp49_; g_string_append_unichar (_tmp47_, _tmp50_); result = TRUE; _g_free0 (command); return result; } } } } } result = TRUE; _g_free0 (command); return result; } static gchar* skk_abbrev_state_handler_real_get_preedit (SkkStateHandler* base, SkkState* state, guint* underline_offset, guint* underline_nchars) { SkkAbbrevStateHandler * self; guint _vala_underline_offset = 0U; guint _vala_underline_nchars = 0U; gchar* result = NULL; SkkState* _tmp0_; GString* _tmp1_; const gchar* _tmp2_; gchar* _tmp3_; self = (SkkAbbrevStateHandler*) base; g_return_val_if_fail (state != NULL, NULL); _vala_underline_nchars = (guint) 0; _vala_underline_offset = _vala_underline_nchars; _tmp0_ = state; _tmp1_ = _tmp0_->abbrev; _tmp2_ = _tmp1_->str; _tmp3_ = g_strconcat ("â–½", _tmp2_, NULL); result = _tmp3_; if (underline_offset) { *underline_offset = _vala_underline_offset; } if (underline_nchars) { *underline_nchars = _vala_underline_nchars; } return result; } SkkAbbrevStateHandler* skk_abbrev_state_handler_construct (GType object_type) { SkkAbbrevStateHandler * self = NULL; self = (SkkAbbrevStateHandler*) skk_state_handler_construct (object_type); return self; } SkkAbbrevStateHandler* skk_abbrev_state_handler_new (void) { return skk_abbrev_state_handler_construct (SKK_TYPE_ABBREV_STATE_HANDLER); } static void skk_abbrev_state_handler_class_init (SkkAbbrevStateHandlerClass * klass) { skk_abbrev_state_handler_parent_class = g_type_class_peek_parent (klass); SKK_STATE_HANDLER_CLASS (klass)->process_key_event = skk_abbrev_state_handler_real_process_key_event; SKK_STATE_HANDLER_CLASS (klass)->get_preedit = skk_abbrev_state_handler_real_get_preedit; } static void skk_abbrev_state_handler_instance_init (SkkAbbrevStateHandler * self) { } GType skk_abbrev_state_handler_get_type (void) { static volatile gsize skk_abbrev_state_handler_type_id__volatile = 0; if (g_once_init_enter (&skk_abbrev_state_handler_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkAbbrevStateHandlerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_abbrev_state_handler_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkAbbrevStateHandler), 0, (GInstanceInitFunc) skk_abbrev_state_handler_instance_init, NULL }; GType skk_abbrev_state_handler_type_id; skk_abbrev_state_handler_type_id = g_type_register_static (SKK_TYPE_STATE_HANDLER, "SkkAbbrevStateHandler", &g_define_type_info, 0); g_once_init_leave (&skk_abbrev_state_handler_type_id__volatile, skk_abbrev_state_handler_type_id); } return skk_abbrev_state_handler_type_id__volatile; } static gboolean skk_start_state_handler_real_process_key_event (SkkStateHandler* base, SkkState* state, SkkKeyEvent** key) { SkkStartStateHandler * self; gboolean result = FALSE; SkkState* _tmp0_; SkkKeyEvent* _tmp1_; gchar* _tmp2_ = NULL; gchar* command; const gchar* _tmp3_; const gchar* _tmp33_; gunichar lower_code = 0U; SkkState* _tmp237_; SkkKeyEvent* _tmp238_; gunichar _tmp239_ = 0U; gboolean _tmp240_ = FALSE; gboolean is_upper; SkkState* _tmp241_; SkkRomKanaConverter* _tmp242_; gunichar _tmp243_; gboolean _tmp244_ = FALSE; self = (SkkStartStateHandler*) base; g_return_val_if_fail (state != NULL, FALSE); g_return_val_if_fail (*key != NULL, FALSE); _tmp0_ = state; _tmp1_ = *key; _tmp2_ = skk_state_lookup_key (_tmp0_, _tmp1_); command = _tmp2_; _tmp3_ = command; if (g_strcmp0 (_tmp3_, "abort") == 0) { SkkState* _tmp4_; _tmp4_ = state; skk_state_reset (_tmp4_); result = TRUE; _g_free0 (command); return result; } { SkkEntry* entry_collection = NULL; gint entry_collection_length1 = 0; gint _entry_collection_size_ = 0; gint entry_it = 0; entry_collection = SKK_START_STATE_HANDLER_end_preedit_commands; entry_collection_length1 = G_N_ELEMENTS (SKK_START_STATE_HANDLER_end_preedit_commands); for (entry_it = 0; entry_it < G_N_ELEMENTS (SKK_START_STATE_HANDLER_end_preedit_commands); entry_it = entry_it + 1) { SkkEntry entry = {0}; entry = entry_collection[entry_it]; { SkkEntry _tmp5_; gconstpointer _tmp6_; const gchar* _tmp7_; _tmp5_ = entry; _tmp6_ = _tmp5_.key; _tmp7_ = command; if (g_strcmp0 ((const gchar*) _tmp6_, _tmp7_) == 0) { SkkState* _tmp8_; SkkRomKanaConverter* _tmp9_; SkkState* _tmp10_; GString* _tmp11_; SkkState* _tmp12_; SkkRomKanaConverter* _tmp13_; const gchar* _tmp14_; const gchar* _tmp15_; SkkEntry _tmp16_; gconstpointer _tmp17_; gchar* _tmp18_ = NULL; gchar* _tmp19_; SkkState* _tmp20_; SkkUnicodeString* _tmp21_; SkkState* _tmp30_; SkkRomKanaConverter* _tmp31_; SkkState* _tmp32_; _tmp8_ = state; _tmp9_ = _tmp8_->rom_kana_converter; skk_rom_kana_converter_output_nn_if_any (_tmp9_); _tmp10_ = state; _tmp11_ = _tmp10_->output; _tmp12_ = state; _tmp13_ = _tmp12_->rom_kana_converter; _tmp14_ = skk_rom_kana_converter_get_output (_tmp13_); _tmp15_ = _tmp14_; _tmp16_ = entry; _tmp17_ = _tmp16_.value; _tmp18_ = skk_util_convert_by_input_mode (_tmp15_, GPOINTER_TO_INT (_tmp17_)); _tmp19_ = _tmp18_; g_string_assign (_tmp11_, _tmp19_); _g_free0 (_tmp19_); _tmp20_ = state; _tmp21_ = _tmp20_->surrounding_text; if (_tmp21_ != NULL) { SkkState* _tmp22_; GString* _tmp23_; SkkState* _tmp24_; SkkUnicodeString* _tmp25_; SkkState* _tmp26_; guint _tmp27_; gchar* _tmp28_ = NULL; gchar* _tmp29_; _tmp22_ = state; _tmp23_ = _tmp22_->output; _tmp24_ = state; _tmp25_ = _tmp24_->surrounding_text; _tmp26_ = state; _tmp27_ = _tmp26_->surrounding_end; _tmp28_ = skk_unicode_string_substring (_tmp25_, (glong) _tmp27_, (glong) (-1)); _tmp29_ = _tmp28_; g_string_append (_tmp23_, _tmp29_); _g_free0 (_tmp29_); } _tmp30_ = state; _tmp31_ = _tmp30_->rom_kana_converter; skk_rom_kana_converter_reset (_tmp31_); _tmp32_ = state; _tmp32_->handler_type = SKK_TYPE_NONE_STATE_HANDLER; result = TRUE; _g_free0 (command); return result; } } } } _tmp33_ = command; if (g_strcmp0 (_tmp33_, "next-candidate") == 0) { SkkState* _tmp34_; SkkRomKanaConverter* _tmp35_; const gchar* _tmp36_; const gchar* _tmp37_; gint _tmp38_; gint _tmp39_; SkkState* _tmp51_; _tmp34_ = state; _tmp35_ = _tmp34_->rom_kana_converter; _tmp36_ = skk_rom_kana_converter_get_output (_tmp35_); _tmp37_ = _tmp36_; _tmp38_ = strlen (_tmp37_); _tmp39_ = _tmp38_; if (_tmp39_ == 0) { SkkState* _tmp40_; SkkUnicodeString* _tmp41_; SkkState* _tmp50_; _tmp40_ = state; _tmp41_ = _tmp40_->surrounding_text; if (_tmp41_ != NULL) { SkkState* _tmp42_; GString* _tmp43_; SkkState* _tmp44_; SkkUnicodeString* _tmp45_; SkkState* _tmp46_; guint _tmp47_; gchar* _tmp48_ = NULL; gchar* _tmp49_; _tmp42_ = state; _tmp43_ = _tmp42_->output; _tmp44_ = state; _tmp45_ = _tmp44_->surrounding_text; _tmp46_ = state; _tmp47_ = _tmp46_->surrounding_end; _tmp48_ = skk_unicode_string_substring (_tmp45_, (glong) _tmp47_, (glong) (-1)); _tmp49_ = _tmp48_; g_string_append (_tmp43_, _tmp49_); _g_free0 (_tmp49_); } _tmp50_ = state; skk_state_reset (_tmp50_); result = TRUE; _g_free0 (command); return result; } _tmp51_ = state; _tmp51_->handler_type = SKK_TYPE_SELECT_STATE_HANDLER; result = FALSE; _g_free0 (command); return result; } else { const gchar* _tmp52_; _tmp52_ = command; if (g_strcmp0 (_tmp52_, "commit") == 0) { SkkState* _tmp53_; GString* _tmp54_; SkkState* _tmp55_; SkkRomKanaConverter* _tmp56_; const gchar* _tmp57_; const gchar* _tmp58_; SkkState* _tmp59_; SkkUnicodeString* _tmp60_; SkkState* _tmp69_; _tmp53_ = state; _tmp54_ = _tmp53_->output; _tmp55_ = state; _tmp56_ = _tmp55_->rom_kana_converter; _tmp57_ = skk_rom_kana_converter_get_output (_tmp56_); _tmp58_ = _tmp57_; g_string_append (_tmp54_, _tmp58_); _tmp59_ = state; _tmp60_ = _tmp59_->surrounding_text; if (_tmp60_ != NULL) { SkkState* _tmp61_; GString* _tmp62_; SkkState* _tmp63_; SkkUnicodeString* _tmp64_; SkkState* _tmp65_; guint _tmp66_; gchar* _tmp67_ = NULL; gchar* _tmp68_; _tmp61_ = state; _tmp62_ = _tmp61_->output; _tmp63_ = state; _tmp64_ = _tmp63_->surrounding_text; _tmp65_ = state; _tmp66_ = _tmp65_->surrounding_end; _tmp67_ = skk_unicode_string_substring (_tmp64_, (glong) _tmp66_, (glong) (-1)); _tmp68_ = _tmp67_; g_string_append (_tmp62_, _tmp68_); _g_free0 (_tmp68_); } _tmp69_ = state; skk_state_reset (_tmp69_); result = TRUE; _g_free0 (command); return result; } else { const gchar* _tmp70_; _tmp70_ = command; if (g_strcmp0 (_tmp70_, "commit-unhandled") == 0) { SkkState* _tmp71_; GString* _tmp72_; SkkState* _tmp73_; SkkRomKanaConverter* _tmp74_; const gchar* _tmp75_; const gchar* _tmp76_; SkkState* _tmp77_; SkkUnicodeString* _tmp78_; SkkState* _tmp87_; SkkState* _tmp88_; gboolean _tmp89_; _tmp71_ = state; _tmp72_ = _tmp71_->output; _tmp73_ = state; _tmp74_ = _tmp73_->rom_kana_converter; _tmp75_ = skk_rom_kana_converter_get_output (_tmp74_); _tmp76_ = _tmp75_; g_string_append (_tmp72_, _tmp76_); _tmp77_ = state; _tmp78_ = _tmp77_->surrounding_text; if (_tmp78_ != NULL) { SkkState* _tmp79_; GString* _tmp80_; SkkState* _tmp81_; SkkUnicodeString* _tmp82_; SkkState* _tmp83_; guint _tmp84_; gchar* _tmp85_ = NULL; gchar* _tmp86_; _tmp79_ = state; _tmp80_ = _tmp79_->output; _tmp81_ = state; _tmp82_ = _tmp81_->surrounding_text; _tmp83_ = state; _tmp84_ = _tmp83_->surrounding_end; _tmp85_ = skk_unicode_string_substring (_tmp82_, (glong) _tmp84_, (glong) (-1)); _tmp86_ = _tmp85_; g_string_append (_tmp80_, _tmp86_); _g_free0 (_tmp86_); } _tmp87_ = state; skk_state_reset (_tmp87_); _tmp88_ = state; _tmp89_ = _tmp88_->egg_like_newline; result = _tmp89_; _g_free0 (command); return result; } else { const gchar* _tmp90_; _tmp90_ = command; if (g_strcmp0 (_tmp90_, "delete") == 0) { SkkState* _tmp91_; SkkRomKanaConverter* _tmp92_; gboolean _tmp93_ = FALSE; SkkState* _tmp117_; _tmp91_ = state; _tmp92_ = _tmp91_->okuri_rom_kana_converter; _tmp93_ = skk_rom_kana_converter_delete (_tmp92_); if (_tmp93_) { SkkState* _tmp94_; SkkRomKanaConverter* _tmp95_; const gchar* _tmp96_; const gchar* _tmp97_; gint _tmp98_; gint _tmp99_; _tmp94_ = state; _tmp95_ = _tmp94_->okuri_rom_kana_converter; _tmp96_ = skk_rom_kana_converter_get_preedit (_tmp95_); _tmp97_ = _tmp96_; _tmp98_ = strlen (_tmp97_); _tmp99_ = _tmp98_; if (_tmp99_ == 0) { SkkState* _tmp100_; _tmp100_ = state; _tmp100_->okuri = FALSE; } result = TRUE; _g_free0 (command); return result; } else { SkkState* _tmp101_; SkkRomKanaConverter* _tmp102_; gboolean _tmp103_ = FALSE; _tmp101_ = state; _tmp102_ = _tmp101_->rom_kana_converter; _tmp103_ = skk_rom_kana_converter_delete (_tmp102_); if (_tmp103_) { result = TRUE; _g_free0 (command); return result; } else { SkkState* _tmp104_; GString* _tmp105_; gssize _tmp106_; _tmp104_ = state; _tmp105_ = _tmp104_->output; _tmp106_ = _tmp105_->len; if (_tmp106_ > ((gssize) 0)) { SkkState* _tmp107_; GString* _tmp108_; SkkState* _tmp109_; GString* _tmp110_; const gchar* _tmp111_; SkkState* _tmp112_; GString* _tmp113_; const gchar* _tmp114_; gint _tmp115_ = 0; gint _tmp116_ = 0; _tmp107_ = state; _tmp108_ = _tmp107_->output; _tmp109_ = state; _tmp110_ = _tmp109_->output; _tmp111_ = _tmp110_->str; _tmp112_ = state; _tmp113_ = _tmp112_->output; _tmp114_ = _tmp113_->str; _tmp115_ = g_utf8_strlen (_tmp114_, (gssize) (-1)); _tmp116_ = string_index_of_nth_char (_tmp111_, (glong) (_tmp115_ - 1)); g_string_truncate (_tmp108_, (gsize) _tmp116_); result = TRUE; _g_free0 (command); return result; } } } _tmp117_ = state; _tmp117_->handler_type = SKK_TYPE_NONE_STATE_HANDLER; result = TRUE; _g_free0 (command); return result; } else { const gchar* _tmp118_; _tmp118_ = command; if (g_strcmp0 (_tmp118_, "complete") == 0) { SkkState* _tmp119_; GeeIterator* _tmp120_; SkkState* _tmp126_; GeeIterator* _tmp127_; _tmp119_ = state; _tmp120_ = _tmp119_->completion_iterator; if (_tmp120_ == NULL) { SkkState* _tmp121_; SkkState* _tmp122_; SkkRomKanaConverter* _tmp123_; const gchar* _tmp124_; const gchar* _tmp125_; _tmp121_ = state; _tmp122_ = state; _tmp123_ = _tmp122_->rom_kana_converter; _tmp124_ = skk_rom_kana_converter_get_output (_tmp123_); _tmp125_ = _tmp124_; skk_state_completion_start (_tmp121_, _tmp125_); } _tmp126_ = state; _tmp127_ = _tmp126_->completion_iterator; if (_tmp127_ != NULL) { SkkState* _tmp128_; GeeIterator* _tmp129_; gpointer _tmp130_ = NULL; gchar* midasi; SkkState* _tmp131_; SkkRomKanaConverter* _tmp132_; SkkState* _tmp133_; SkkRomKanaConverter* _tmp134_; const gchar* _tmp135_; SkkState* _tmp136_; GeeIterator* _tmp137_; gboolean _tmp138_ = FALSE; _tmp128_ = state; _tmp129_ = _tmp128_->completion_iterator; _tmp130_ = gee_iterator_get (_tmp129_); midasi = (gchar*) _tmp130_; _tmp131_ = state; _tmp132_ = _tmp131_->rom_kana_converter; skk_rom_kana_converter_reset (_tmp132_); _tmp133_ = state; _tmp134_ = _tmp133_->rom_kana_converter; _tmp135_ = midasi; skk_rom_kana_converter_set_output (_tmp134_, _tmp135_); _tmp136_ = state; _tmp137_ = _tmp136_->completion_iterator; _tmp138_ = gee_iterator_has_next (_tmp137_); if (_tmp138_) { SkkState* _tmp139_; GeeIterator* _tmp140_; _tmp139_ = state; _tmp140_ = _tmp139_->completion_iterator; gee_iterator_next (_tmp140_); } _g_free0 (midasi); } result = TRUE; _g_free0 (command); return result; } else { const gchar* _tmp141_; _tmp141_ = command; if (g_strcmp0 (_tmp141_, "special-midasi") == 0) { SkkState* _tmp142_; SkkRomKanaConverter* _tmp143_; const gchar* _tmp144_; const gchar* _tmp145_; gint _tmp146_; gint _tmp147_; _tmp142_ = state; _tmp143_ = _tmp142_->rom_kana_converter; _tmp144_ = skk_rom_kana_converter_get_output (_tmp143_); _tmp145_ = _tmp144_; _tmp146_ = strlen (_tmp145_); _tmp147_ = _tmp146_; if (_tmp147_ > 0) { SkkState* _tmp148_; SkkRomKanaConverter* _tmp149_; SkkKeyEvent* _tmp150_; gunichar _tmp151_; gunichar _tmp152_; gunichar _tmp153_ = 0U; SkkState* _tmp154_; SkkState* _tmp155_; SkkKeyEvent* _tmp156_ = NULL; _tmp148_ = state; _tmp149_ = _tmp148_->rom_kana_converter; _tmp150_ = *key; _tmp151_ = skk_key_event_get_code (_tmp150_); _tmp152_ = _tmp151_; _tmp153_ = g_unichar_tolower (_tmp152_); skk_rom_kana_converter_append (_tmp149_, _tmp153_); _tmp154_ = state; _tmp154_->handler_type = SKK_TYPE_SELECT_STATE_HANDLER; _tmp155_ = state; _tmp156_ = skk_state_where_is (_tmp155_, "next-candidate"); _g_object_unref0 (*key); *key = _tmp156_; result = FALSE; _g_free0 (command); return result; } else { SkkState* _tmp157_; SkkRomKanaConverter* _tmp158_; SkkKeyEvent* _tmp159_; gunichar _tmp160_; gunichar _tmp161_; _tmp157_ = state; _tmp158_ = _tmp157_->rom_kana_converter; _tmp159_ = *key; _tmp160_ = skk_key_event_get_code (_tmp159_); _tmp161_ = _tmp160_; skk_rom_kana_converter_append (_tmp158_, _tmp161_); result = TRUE; _g_free0 (command); return result; } } else { gboolean _tmp162_ = FALSE; const gchar* _tmp163_; gboolean _tmp166_; _tmp163_ = command; if (_tmp163_ != NULL) { const gchar* _tmp164_; gboolean _tmp165_ = FALSE; _tmp164_ = command; _tmp165_ = g_str_has_prefix (_tmp164_, "insert-kana-"); _tmp162_ = _tmp165_; } else { _tmp162_ = FALSE; } _tmp166_ = _tmp162_; if (_tmp166_) { const gchar* _tmp167_; gint _tmp168_; gint _tmp169_; const gchar* _tmp170_; gint _tmp171_; gint _tmp172_; gchar* _tmp173_ = NULL; gchar* _tmp174_; SkkState* _tmp175_; SkkInputMode _tmp176_; SkkInputMode _tmp177_; gchar* _tmp178_ = NULL; gchar* _tmp179_; gchar* kana; SkkState* _tmp180_; gboolean _tmp181_; _tmp167_ = command; _tmp168_ = strlen ("insert-kana-"); _tmp169_ = _tmp168_; _tmp170_ = command; _tmp171_ = strlen (_tmp170_); _tmp172_ = _tmp171_; _tmp173_ = string_slice (_tmp167_, (glong) _tmp169_, (glong) _tmp172_); _tmp174_ = _tmp173_; _tmp175_ = state; _tmp176_ = skk_state_get_input_mode (_tmp175_); _tmp177_ = _tmp176_; _tmp178_ = skk_util_convert_by_input_mode (_tmp174_, _tmp177_); _tmp179_ = _tmp178_; _g_free0 (_tmp174_); kana = _tmp179_; _tmp180_ = state; _tmp181_ = _tmp180_->okuri; if (_tmp181_) { SkkState* _tmp182_; SkkRomKanaConverter* _tmp183_; const gchar* _tmp184_; SkkState* _tmp185_; SkkState* _tmp186_; SkkKeyEvent* _tmp187_ = NULL; _tmp182_ = state; _tmp183_ = _tmp182_->okuri_rom_kana_converter; _tmp184_ = kana; skk_rom_kana_converter_set_output (_tmp183_, _tmp184_); _tmp185_ = state; _tmp185_->handler_type = SKK_TYPE_SELECT_STATE_HANDLER; _tmp186_ = state; _tmp187_ = skk_state_where_is (_tmp186_, "next-candidate"); _g_object_unref0 (*key); *key = _tmp187_; result = FALSE; _g_free0 (kana); _g_free0 (command); return result; } else { SkkState* _tmp188_; SkkRomKanaConverter* _tmp189_; const gchar* _tmp190_; _tmp188_ = state; _tmp189_ = _tmp188_->rom_kana_converter; _tmp190_ = kana; skk_rom_kana_converter_set_output (_tmp189_, _tmp190_); result = TRUE; _g_free0 (kana); _g_free0 (command); return result; } _g_free0 (kana); } else { const gchar* _tmp191_; _tmp191_ = command; if (g_strcmp0 (_tmp191_, "start-preedit") == 0) { result = TRUE; _g_free0 (command); return result; } else { const gchar* _tmp192_; _tmp192_ = command; if (g_strcmp0 (_tmp192_, "start-preedit-kana") == 0) { SkkState* _tmp193_; SkkRomKanaConverter* _tmp194_; const gchar* _tmp195_; const gchar* _tmp196_; gint _tmp197_; gint _tmp198_; _tmp193_ = state; _tmp194_ = _tmp193_->rom_kana_converter; _tmp195_ = skk_rom_kana_converter_get_output (_tmp194_); _tmp196_ = _tmp195_; _tmp197_ = strlen (_tmp196_); _tmp198_ = _tmp197_; if (_tmp198_ > 0) { SkkState* _tmp199_; _tmp199_ = state; _tmp199_->okuri = TRUE; } result = TRUE; _g_free0 (command); return result; } else { const gchar* _tmp200_; _tmp200_ = command; if (g_strcmp0 (_tmp200_, "expand-preedit") == 0) { gboolean _tmp201_ = FALSE; SkkState* _tmp202_; SkkUnicodeString* _tmp203_; gboolean _tmp209_; _tmp202_ = state; _tmp203_ = _tmp202_->surrounding_text; if (_tmp203_ != NULL) { SkkState* _tmp204_; guint _tmp205_; SkkState* _tmp206_; SkkUnicodeString* _tmp207_; gint _tmp208_; _tmp204_ = state; _tmp205_ = _tmp204_->surrounding_end; _tmp206_ = state; _tmp207_ = _tmp206_->surrounding_text; _tmp208_ = _tmp207_->length; _tmp201_ = _tmp205_ < ((guint) _tmp208_); } else { _tmp201_ = FALSE; } _tmp209_ = _tmp201_; if (_tmp209_) { SkkState* _tmp210_; guint _tmp211_; SkkState* _tmp212_; SkkRomKanaConverter* _tmp213_; SkkState* _tmp214_; SkkUnicodeString* _tmp215_; SkkState* _tmp216_; guint _tmp217_; gchar* _tmp218_ = NULL; gchar* _tmp219_; _tmp210_ = state; _tmp211_ = _tmp210_->surrounding_end; _tmp210_->surrounding_end = _tmp211_ + 1; _tmp212_ = state; _tmp213_ = _tmp212_->rom_kana_converter; _tmp214_ = state; _tmp215_ = _tmp214_->surrounding_text; _tmp216_ = state; _tmp217_ = _tmp216_->surrounding_end; _tmp218_ = skk_unicode_string_substring (_tmp215_, (glong) 0, (glong) _tmp217_); _tmp219_ = _tmp218_; skk_rom_kana_converter_set_output (_tmp213_, _tmp219_); _g_free0 (_tmp219_); result = TRUE; _g_free0 (command); return result; } } else { const gchar* _tmp220_; _tmp220_ = command; if (g_strcmp0 (_tmp220_, "shrink-preedit") == 0) { gboolean _tmp221_ = FALSE; SkkState* _tmp222_; SkkUnicodeString* _tmp223_; gboolean _tmp226_; _tmp222_ = state; _tmp223_ = _tmp222_->surrounding_text; if (_tmp223_ != NULL) { SkkState* _tmp224_; guint _tmp225_; _tmp224_ = state; _tmp225_ = _tmp224_->surrounding_end; _tmp221_ = _tmp225_ > ((guint) 0); } else { _tmp221_ = FALSE; } _tmp226_ = _tmp221_; if (_tmp226_) { SkkState* _tmp227_; guint _tmp228_; SkkState* _tmp229_; SkkRomKanaConverter* _tmp230_; SkkState* _tmp231_; SkkUnicodeString* _tmp232_; SkkState* _tmp233_; guint _tmp234_; gchar* _tmp235_ = NULL; gchar* _tmp236_; _tmp227_ = state; _tmp228_ = _tmp227_->surrounding_end; _tmp227_->surrounding_end = _tmp228_ - 1; _tmp229_ = state; _tmp230_ = _tmp229_->rom_kana_converter; _tmp231_ = state; _tmp232_ = _tmp231_->surrounding_text; _tmp233_ = state; _tmp234_ = _tmp233_->surrounding_end; _tmp235_ = skk_unicode_string_substring (_tmp232_, (glong) 0, (glong) _tmp234_); _tmp236_ = _tmp235_; skk_rom_kana_converter_set_output (_tmp230_, _tmp236_); _g_free0 (_tmp236_); result = TRUE; _g_free0 (command); return result; } } } } } } } } } } } } _tmp237_ = state; _tmp238_ = *key; _tmp240_ = skk_state_isupper (_tmp237_, _tmp238_, &_tmp239_); lower_code = _tmp239_; is_upper = _tmp240_; _tmp241_ = state; _tmp242_ = _tmp241_->rom_kana_converter; _tmp243_ = lower_code; _tmp244_ = skk_rom_kana_converter_is_valid (_tmp242_, _tmp243_); if (_tmp244_) { gboolean _tmp245_ = FALSE; SkkState* _tmp246_; gboolean _tmp247_; gboolean _tmp263_; _tmp246_ = state; _tmp247_ = _tmp246_->okuri; if (_tmp247_) { _tmp245_ = TRUE; } else { gboolean _tmp248_ = FALSE; gboolean _tmp249_ = FALSE; gboolean _tmp250_; gboolean _tmp257_; gboolean _tmp262_; _tmp250_ = is_upper; if (_tmp250_) { SkkState* _tmp251_; SkkRomKanaConverter* _tmp252_; const gchar* _tmp253_; const gchar* _tmp254_; gint _tmp255_; gint _tmp256_; _tmp251_ = state; _tmp252_ = _tmp251_->rom_kana_converter; _tmp253_ = skk_rom_kana_converter_get_output (_tmp252_); _tmp254_ = _tmp253_; _tmp255_ = strlen (_tmp254_); _tmp256_ = _tmp255_; _tmp249_ = _tmp256_ > 0; } else { _tmp249_ = FALSE; } _tmp257_ = _tmp249_; if (_tmp257_) { SkkState* _tmp258_; SkkRomKanaConverter* _tmp259_; gunichar _tmp260_; gboolean _tmp261_ = FALSE; _tmp258_ = state; _tmp259_ = _tmp258_->rom_kana_converter; _tmp260_ = lower_code; _tmp261_ = skk_rom_kana_converter_can_consume (_tmp259_, _tmp260_, TRUE, TRUE); _tmp248_ = !_tmp261_; } else { _tmp248_ = FALSE; } _tmp262_ = _tmp248_; _tmp245_ = _tmp262_; } _tmp263_ = _tmp245_; if (_tmp263_) { gboolean _tmp264_ = FALSE; SkkState* _tmp265_; gboolean _tmp266_; gboolean _tmp271_; SkkState* _tmp275_; SkkRomKanaConverter* _tmp276_; SkkState* _tmp277_; gboolean _tmp278_; SkkState* _tmp281_; SkkRomKanaConverter* _tmp282_; gunichar _tmp283_; SkkState* _tmp284_; SkkRomKanaConverter* _tmp285_; const gchar* _tmp286_; const gchar* _tmp287_; gint _tmp288_; gint _tmp289_; _tmp265_ = state; _tmp266_ = _tmp265_->okuri; if (!_tmp266_) { SkkState* _tmp267_; SkkRomKanaConverter* _tmp268_; gunichar _tmp269_; gboolean _tmp270_ = FALSE; _tmp267_ = state; _tmp268_ = _tmp267_->rom_kana_converter; _tmp269_ = lower_code; _tmp270_ = skk_rom_kana_converter_can_consume (_tmp268_, _tmp269_, TRUE, FALSE); _tmp264_ = _tmp270_; } else { _tmp264_ = FALSE; } _tmp271_ = _tmp264_; if (_tmp271_) { SkkState* _tmp272_; SkkRomKanaConverter* _tmp273_; gunichar _tmp274_; _tmp272_ = state; _tmp273_ = _tmp272_->rom_kana_converter; _tmp274_ = lower_code; skk_rom_kana_converter_append (_tmp273_, _tmp274_); } _tmp275_ = state; _tmp276_ = _tmp275_->rom_kana_converter; skk_rom_kana_converter_output_nn_if_any (_tmp276_); _tmp277_ = state; _tmp277_->okuri = TRUE; _tmp278_ = is_upper; if (_tmp278_) { SkkState* _tmp279_; SkkRomKanaConverter* _tmp280_; _tmp279_ = state; _tmp280_ = _tmp279_->okuri_rom_kana_converter; skk_rom_kana_converter_output_nn_if_any (_tmp280_); } _tmp281_ = state; _tmp282_ = _tmp281_->okuri_rom_kana_converter; _tmp283_ = lower_code; skk_rom_kana_converter_append (_tmp282_, _tmp283_); _tmp284_ = state; _tmp285_ = _tmp284_->okuri_rom_kana_converter; _tmp286_ = skk_rom_kana_converter_get_preedit (_tmp285_); _tmp287_ = _tmp286_; _tmp288_ = strlen (_tmp287_); _tmp289_ = _tmp288_; if (_tmp289_ == 0) { SkkState* _tmp290_; SkkState* _tmp291_; SkkKeyEvent* _tmp292_ = NULL; _tmp290_ = state; _tmp290_->handler_type = SKK_TYPE_SELECT_STATE_HANDLER; _tmp291_ = state; _tmp292_ = skk_state_where_is (_tmp291_, "next-candidate"); _g_object_unref0 (*key); *key = _tmp292_; result = FALSE; _g_free0 (command); return result; } result = TRUE; _g_free0 (command); return result; } else { SkkState* _tmp293_; SkkRomKanaConverter* _tmp294_; gunichar _tmp295_; SkkState* _tmp296_; SkkKeyEvent* _tmp297_; gboolean _tmp298_ = FALSE; _tmp293_ = state; _tmp294_ = _tmp293_->rom_kana_converter; _tmp295_ = lower_code; skk_rom_kana_converter_append (_tmp294_, _tmp295_); _tmp296_ = state; _tmp297_ = *key; _tmp298_ = skk_start_state_handler_check_auto_conversion (self, _tmp296_, _tmp297_); if (_tmp298_) { SkkState* _tmp299_; SkkState* _tmp300_; SkkKeyEvent* _tmp301_ = NULL; _tmp299_ = state; _tmp299_->handler_type = SKK_TYPE_SELECT_STATE_HANDLER; _tmp300_ = state; _tmp301_ = skk_state_where_is (_tmp300_, "next-candidate"); _g_object_unref0 (*key); *key = _tmp301_; result = FALSE; _g_free0 (command); return result; } result = TRUE; _g_free0 (command); return result; } } else { SkkKeyEvent* _tmp302_; SkkModifierType _tmp303_; SkkModifierType _tmp304_; _tmp302_ = *key; _tmp303_ = skk_key_event_get_modifiers (_tmp302_); _tmp304_ = _tmp303_; if (_tmp304_ == 0) { SkkState* _tmp305_; SkkRomKanaConverter* _tmp306_; gunichar _tmp307_; SkkState* _tmp308_; SkkKeyEvent* _tmp309_; gboolean _tmp310_ = FALSE; _tmp305_ = state; _tmp306_ = _tmp305_->rom_kana_converter; _tmp307_ = lower_code; skk_rom_kana_converter_append (_tmp306_, _tmp307_); _tmp308_ = state; _tmp309_ = *key; _tmp310_ = skk_start_state_handler_check_auto_conversion (self, _tmp308_, _tmp309_); if (_tmp310_) { SkkState* _tmp311_; SkkState* _tmp312_; SkkKeyEvent* _tmp313_ = NULL; _tmp311_ = state; _tmp311_->handler_type = SKK_TYPE_SELECT_STATE_HANDLER; _tmp312_ = state; _tmp313_ = skk_state_where_is (_tmp312_, "next-candidate"); _g_object_unref0 (*key); *key = _tmp313_; result = FALSE; _g_free0 (command); return result; } result = TRUE; _g_free0 (command); return result; } } result = TRUE; _g_free0 (command); return result; } static gchar* skk_start_state_handler_real_get_preedit (SkkStateHandler* base, SkkState* state, guint* underline_offset, guint* underline_nchars) { SkkStartStateHandler * self; guint _vala_underline_offset = 0U; guint _vala_underline_nchars = 0U; gchar* result = NULL; GString* _tmp0_; GString* builder; guint _tmp1_; GString* _tmp2_; SkkState* _tmp3_; gchar* _tmp4_ = NULL; gchar* _tmp5_; SkkState* _tmp6_; SkkUnicodeString* _tmp7_; GString* _tmp18_; const gchar* _tmp19_; gchar* _tmp20_; self = (SkkStartStateHandler*) base; g_return_val_if_fail (state != NULL, NULL); _tmp0_ = g_string_new ("â–½"); builder = _tmp0_; _vala_underline_nchars = (guint) 0; _tmp1_ = _vala_underline_nchars; _vala_underline_offset = _tmp1_; _tmp2_ = builder; _tmp3_ = state; _tmp4_ = skk_state_get_yomi (_tmp3_); _tmp5_ = _tmp4_; g_string_append (_tmp2_, _tmp5_); _g_free0 (_tmp5_); _tmp6_ = state; _tmp7_ = _tmp6_->surrounding_text; if (_tmp7_ != NULL) { GString* _tmp8_; const gchar* _tmp9_; gint _tmp10_ = 0; GString* _tmp11_; SkkState* _tmp12_; SkkUnicodeString* _tmp13_; SkkState* _tmp14_; guint _tmp15_; gchar* _tmp16_ = NULL; gchar* _tmp17_; _vala_underline_offset = (guint) 1; _tmp8_ = builder; _tmp9_ = _tmp8_->str; _tmp10_ = g_utf8_strlen (_tmp9_, (gssize) (-1)); _vala_underline_nchars = (guint) (_tmp10_ - 1); _tmp11_ = builder; _tmp12_ = state; _tmp13_ = _tmp12_->surrounding_text; _tmp14_ = state; _tmp15_ = _tmp14_->surrounding_end; _tmp16_ = skk_unicode_string_substring (_tmp13_, (glong) _tmp15_, (glong) (-1)); _tmp17_ = _tmp16_; g_string_append (_tmp11_, _tmp17_); _g_free0 (_tmp17_); } _tmp18_ = builder; _tmp19_ = _tmp18_->str; _tmp20_ = g_strdup (_tmp19_); result = _tmp20_; _g_string_free0 (builder); if (underline_offset) { *underline_offset = _vala_underline_offset; } if (underline_nchars) { *underline_nchars = _vala_underline_nchars; } return result; } static gboolean skk_start_state_handler_check_auto_conversion (SkkStartStateHandler* self, SkkState* state, SkkKeyEvent* key) { gboolean result = FALSE; SkkState* _tmp0_; gchar** _tmp1_; gint _tmp1__length1; g_return_val_if_fail (self != NULL, FALSE); g_return_val_if_fail (state != NULL, FALSE); g_return_val_if_fail (key != NULL, FALSE); _tmp0_ = state; _tmp1_ = _tmp0_->auto_start_henkan_keywords; _tmp1__length1 = _tmp0_->auto_start_henkan_keywords_length1; { gchar** keyword_collection = NULL; gint keyword_collection_length1 = 0; gint _keyword_collection_size_ = 0; gint keyword_it = 0; keyword_collection = _tmp1_; keyword_collection_length1 = _tmp1__length1; for (keyword_it = 0; keyword_it < _tmp1__length1; keyword_it = keyword_it + 1) { gchar* _tmp2_; gchar* keyword = NULL; _tmp2_ = g_strdup (keyword_collection[keyword_it]); keyword = _tmp2_; { gboolean _tmp3_ = FALSE; SkkState* _tmp4_; SkkRomKanaConverter* _tmp5_; const gchar* _tmp6_; const gchar* _tmp7_; gint _tmp8_; gint _tmp9_; const gchar* _tmp10_; gint _tmp11_; gint _tmp12_; gboolean _tmp19_; _tmp4_ = state; _tmp5_ = _tmp4_->rom_kana_converter; _tmp6_ = skk_rom_kana_converter_get_output (_tmp5_); _tmp7_ = _tmp6_; _tmp8_ = strlen (_tmp7_); _tmp9_ = _tmp8_; _tmp10_ = keyword; _tmp11_ = strlen (_tmp10_); _tmp12_ = _tmp11_; if (_tmp9_ > _tmp12_) { SkkState* _tmp13_; SkkRomKanaConverter* _tmp14_; const gchar* _tmp15_; const gchar* _tmp16_; const gchar* _tmp17_; gboolean _tmp18_ = FALSE; _tmp13_ = state; _tmp14_ = _tmp13_->rom_kana_converter; _tmp15_ = skk_rom_kana_converter_get_output (_tmp14_); _tmp16_ = _tmp15_; _tmp17_ = keyword; _tmp18_ = g_str_has_suffix (_tmp16_, _tmp17_); _tmp3_ = _tmp18_; } else { _tmp3_ = FALSE; } _tmp19_ = _tmp3_; if (_tmp19_) { SkkState* _tmp20_; const gchar* _tmp21_; gchar* _tmp22_; SkkState* _tmp23_; SkkRomKanaConverter* _tmp24_; SkkState* _tmp25_; SkkRomKanaConverter* _tmp26_; const gchar* _tmp27_; const gchar* _tmp28_; const gchar* _tmp29_; gint _tmp30_; gint _tmp31_; gchar* _tmp32_ = NULL; gchar* _tmp33_; SkkState* _tmp34_; _tmp20_ = state; _tmp21_ = keyword; _tmp22_ = g_strdup (_tmp21_); _g_free0 (_tmp20_->auto_start_henkan_keyword); _tmp20_->auto_start_henkan_keyword = _tmp22_; _tmp23_ = state; _tmp24_ = _tmp23_->rom_kana_converter; _tmp25_ = state; _tmp26_ = _tmp25_->rom_kana_converter; _tmp27_ = skk_rom_kana_converter_get_output (_tmp26_); _tmp28_ = _tmp27_; _tmp29_ = keyword; _tmp30_ = strlen (_tmp29_); _tmp31_ = _tmp30_; _tmp32_ = string_slice (_tmp28_, (glong) 0, (glong) (-_tmp31_)); _tmp33_ = _tmp32_; skk_rom_kana_converter_set_output (_tmp24_, _tmp33_); _g_free0 (_tmp33_); _tmp34_ = state; _tmp34_->handler_type = SKK_TYPE_SELECT_STATE_HANDLER; result = TRUE; _g_free0 (keyword); return result; } _g_free0 (keyword); } } } result = FALSE; return result; } SkkStartStateHandler* skk_start_state_handler_construct (GType object_type) { SkkStartStateHandler * self = NULL; self = (SkkStartStateHandler*) skk_state_handler_construct (object_type); return self; } SkkStartStateHandler* skk_start_state_handler_new (void) { return skk_start_state_handler_construct (SKK_TYPE_START_STATE_HANDLER); } static void skk_start_state_handler_class_init (SkkStartStateHandlerClass * klass) { skk_start_state_handler_parent_class = g_type_class_peek_parent (klass); SKK_STATE_HANDLER_CLASS (klass)->process_key_event = skk_start_state_handler_real_process_key_event; SKK_STATE_HANDLER_CLASS (klass)->get_preedit = skk_start_state_handler_real_get_preedit; } static void skk_start_state_handler_instance_init (SkkStartStateHandler * self) { } GType skk_start_state_handler_get_type (void) { static volatile gsize skk_start_state_handler_type_id__volatile = 0; if (g_once_init_enter (&skk_start_state_handler_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkStartStateHandlerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_start_state_handler_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkStartStateHandler), 0, (GInstanceInitFunc) skk_start_state_handler_instance_init, NULL }; GType skk_start_state_handler_type_id; skk_start_state_handler_type_id = g_type_register_static (SKK_TYPE_STATE_HANDLER, "SkkStartStateHandler", &g_define_type_info, 0); g_once_init_leave (&skk_start_state_handler_type_id__volatile, skk_start_state_handler_type_id); } return skk_start_state_handler_type_id__volatile; } static gboolean skk_select_state_handler_real_process_key_event (SkkStateHandler* base, SkkState* state, SkkKeyEvent** key) { SkkSelectStateHandler * self; gboolean result = FALSE; SkkState* _tmp0_; SkkKeyEvent* _tmp1_; gchar* _tmp2_ = NULL; gchar* command; const gchar* _tmp3_; self = (SkkSelectStateHandler*) base; g_return_val_if_fail (state != NULL, FALSE); g_return_val_if_fail (*key != NULL, FALSE); _tmp0_ = state; _tmp1_ = *key; _tmp2_ = skk_state_lookup_key (_tmp0_, _tmp1_); command = _tmp2_; _tmp3_ = command; if (g_strcmp0 (_tmp3_, "previous-candidate") == 0) { SkkState* _tmp4_; SkkCandidateList* _tmp5_; gboolean _tmp6_ = FALSE; _tmp4_ = state; _tmp5_ = _tmp4_->candidates; _tmp6_ = skk_candidate_list_previous (_tmp5_); if (!_tmp6_) { SkkState* _tmp7_; SkkCandidateList* _tmp8_; SkkState* _tmp9_; _tmp7_ = state; _tmp8_ = _tmp7_->candidates; skk_candidate_list_clear (_tmp8_); _tmp9_ = state; _tmp9_->handler_type = SKK_TYPE_START_STATE_HANDLER; } result = TRUE; _g_free0 (command); return result; } else { const gchar* _tmp10_; _tmp10_ = command; if (g_strcmp0 (_tmp10_, "purge-candidate") == 0) { SkkState* _tmp11_; SkkCandidateList* _tmp12_; SkkCandidate* _tmp13_ = NULL; SkkCandidate* candidate; SkkState* _tmp14_; SkkCandidate* _tmp15_; SkkState* _tmp16_; _tmp11_ = state; _tmp12_ = _tmp11_->candidates; _tmp13_ = skk_candidate_list_get (_tmp12_, -1); candidate = _tmp13_; _tmp14_ = state; _tmp15_ = candidate; skk_state_purge_candidate (_tmp14_, _tmp15_); _tmp16_ = state; skk_state_reset (_tmp16_); result = TRUE; _g_object_unref0 (candidate); _g_free0 (command); return result; } else { const gchar* _tmp17_; _tmp17_ = command; if (g_strcmp0 (_tmp17_, "next-candidate") == 0) { SkkState* _tmp18_; SkkCandidateList* _tmp19_; gint _tmp20_; gint _tmp21_; SkkState* _tmp63_; SkkState* _tmp64_; gchar* _tmp65_ = NULL; gchar* _tmp66_; SkkState* _tmp67_; gboolean _tmp68_; SkkState* _tmp69_; SkkCandidateList* _tmp70_; gint _tmp71_; gint _tmp72_; _tmp18_ = state; _tmp19_ = _tmp18_->candidates; _tmp20_ = skk_candidate_list_get_cursor_pos (_tmp19_); _tmp21_ = _tmp20_; if (_tmp21_ < 0) { gchar* midasi = NULL; gboolean okuri; SkkState* _tmp22_; GString* _tmp23_; gssize _tmp24_; SkkState* _tmp53_; const gchar* _tmp54_; gboolean _tmp55_; SkkState* _tmp56_; SkkCandidateList* _tmp57_; gint _tmp58_; gint _tmp59_; okuri = FALSE; _tmp22_ = state; _tmp23_ = _tmp22_->abbrev; _tmp24_ = _tmp23_->len; if (_tmp24_ > ((gssize) 0)) { SkkState* _tmp25_; GString* _tmp26_; const gchar* _tmp27_; gchar* _tmp28_; _tmp25_ = state; _tmp26_ = _tmp25_->abbrev; _tmp27_ = _tmp26_->str; _tmp28_ = g_strdup (_tmp27_); _g_free0 (midasi); midasi = _tmp28_; } else { GString* _tmp29_; GString* builder; SkkState* _tmp30_; SkkRomKanaConverter* _tmp31_; GString* _tmp32_; SkkState* _tmp33_; SkkRomKanaConverter* _tmp34_; const gchar* _tmp35_; const gchar* _tmp36_; SkkState* _tmp37_; gboolean _tmp38_; GString* _tmp50_; const gchar* _tmp51_; gchar* _tmp52_ = NULL; _tmp29_ = g_string_new (""); builder = _tmp29_; _tmp30_ = state; _tmp31_ = _tmp30_->rom_kana_converter; skk_rom_kana_converter_output_nn_if_any (_tmp31_); _tmp32_ = builder; _tmp33_ = state; _tmp34_ = _tmp33_->rom_kana_converter; _tmp35_ = skk_rom_kana_converter_get_output (_tmp34_); _tmp36_ = _tmp35_; g_string_append (_tmp32_, _tmp36_); _tmp37_ = state; _tmp38_ = _tmp37_->okuri; if (_tmp38_) { SkkState* _tmp39_; SkkRomKanaConverter* _tmp40_; const gchar* _tmp41_; const gchar* _tmp42_; gchar* _tmp43_ = NULL; gchar* _tmp44_; gchar* _tmp45_ = NULL; gchar* _tmp46_; gchar* prefix; const gchar* _tmp47_; _tmp39_ = state; _tmp40_ = _tmp39_->okuri_rom_kana_converter; _tmp41_ = skk_rom_kana_converter_get_output (_tmp40_); _tmp42_ = _tmp41_; _tmp43_ = skk_util_get_hiragana (_tmp42_); _tmp44_ = _tmp43_; _tmp45_ = skk_util_get_okurigana_prefix (_tmp44_); _tmp46_ = _tmp45_; _g_free0 (_tmp44_); prefix = _tmp46_; _tmp47_ = prefix; if (_tmp47_ != NULL) { GString* _tmp48_; const gchar* _tmp49_; _tmp48_ = builder; _tmp49_ = prefix; g_string_append (_tmp48_, _tmp49_); okuri = TRUE; } _g_free0 (prefix); } _tmp50_ = builder; _tmp51_ = _tmp50_->str; _tmp52_ = skk_util_get_hiragana (_tmp51_); _g_free0 (midasi); midasi = _tmp52_; _g_string_free0 (builder); } _tmp53_ = state; _tmp54_ = midasi; _tmp55_ = okuri; skk_state_lookup (_tmp53_, _tmp54_, _tmp55_); _tmp56_ = state; _tmp57_ = _tmp56_->candidates; _tmp58_ = skk_candidate_list_get_size (_tmp57_); _tmp59_ = _tmp58_; if (_tmp59_ > 0) { result = TRUE; _g_free0 (midasi); _g_free0 (command); return result; } _g_free0 (midasi); } else { SkkState* _tmp60_; SkkCandidateList* _tmp61_; gboolean _tmp62_ = FALSE; _tmp60_ = state; _tmp61_ = _tmp60_->candidates; _tmp62_ = skk_candidate_list_next (_tmp61_); if (_tmp62_) { result = TRUE; _g_free0 (command); return result; } } _tmp63_ = state; _tmp64_ = state; _tmp65_ = skk_state_get_yomi (_tmp64_); _tmp66_ = _tmp65_; _tmp67_ = state; _tmp68_ = _tmp67_->okuri; g_signal_emit_by_name (_tmp63_, "recursive-edit-start", _tmp66_, _tmp68_); _g_free0 (_tmp66_); _tmp69_ = state; _tmp70_ = _tmp69_->candidates; _tmp71_ = skk_candidate_list_get_size (_tmp70_); _tmp72_ = _tmp71_; if (_tmp72_ == 0) { SkkState* _tmp73_; SkkCandidateList* _tmp74_; SkkState* _tmp75_; _tmp73_ = state; _tmp74_ = _tmp73_->candidates; skk_candidate_list_clear (_tmp74_); _tmp75_ = state; _tmp75_->handler_type = SKK_TYPE_START_STATE_HANDLER; } result = TRUE; _g_free0 (command); return result; } else { const gchar* _tmp76_; _tmp76_ = command; if (g_strcmp0 (_tmp76_, "abort") == 0) { SkkState* _tmp77_; SkkCandidateList* _tmp78_; SkkState* _tmp79_; SkkState* _tmp80_; _tmp77_ = state; _tmp78_ = _tmp77_->candidates; skk_candidate_list_clear (_tmp78_); _tmp79_ = state; skk_state_cancel_okuri (_tmp79_); _tmp80_ = state; _tmp80_->handler_type = SKK_TYPE_START_STATE_HANDLER; result = TRUE; _g_free0 (command); return result; } else { gchar* _tmp81_; gchar* surrounding_after; SkkState* _tmp82_; SkkUnicodeString* _tmp83_; SkkState* _tmp89_; SkkCandidateList* _tmp90_; SkkState* _tmp91_; GString* _tmp92_; const gchar* _tmp93_; const gchar* _tmp94_; _tmp81_ = g_strdup (""); surrounding_after = _tmp81_; _tmp82_ = state; _tmp83_ = _tmp82_->surrounding_text; if (_tmp83_ != NULL) { SkkState* _tmp84_; SkkUnicodeString* _tmp85_; SkkState* _tmp86_; guint _tmp87_; gchar* _tmp88_ = NULL; _tmp84_ = state; _tmp85_ = _tmp84_->surrounding_text; _tmp86_ = state; _tmp87_ = _tmp86_->surrounding_end; _tmp88_ = skk_unicode_string_substring (_tmp85_, (glong) _tmp87_, (glong) (-1)); _g_free0 (surrounding_after); surrounding_after = _tmp88_; } _tmp89_ = state; _tmp90_ = _tmp89_->candidates; skk_candidate_list_select (_tmp90_); _tmp91_ = state; _tmp92_ = _tmp91_->output; _tmp93_ = surrounding_after; g_string_append (_tmp92_, _tmp93_); _tmp94_ = command; if (g_strcmp0 (_tmp94_, "special-midasi") == 0) { SkkState* _tmp95_; SkkCandidateList* _tmp96_; SkkState* _tmp97_; _tmp95_ = state; _tmp96_ = _tmp95_->candidates; skk_candidate_list_clear (_tmp96_); _tmp97_ = state; _tmp97_->handler_type = SKK_TYPE_START_STATE_HANDLER; result = FALSE; _g_free0 (surrounding_after); _g_free0 (command); return result; } else { SkkState* _tmp98_; gboolean _tmp99_ = FALSE; gboolean _tmp100_ = FALSE; gboolean _tmp101_ = FALSE; gboolean _tmp102_ = FALSE; SkkKeyEvent* _tmp103_; SkkModifierType _tmp104_; SkkModifierType _tmp105_; gboolean _tmp109_; gboolean _tmp113_; gboolean _tmp115_; gboolean _tmp121_; _tmp98_ = state; skk_state_reset (_tmp98_); _tmp103_ = *key; _tmp104_ = skk_key_event_get_modifiers (_tmp103_); _tmp105_ = _tmp104_; if (_tmp105_ == 0) { SkkKeyEvent* _tmp106_; gunichar _tmp107_; gunichar _tmp108_; _tmp106_ = *key; _tmp107_ = skk_key_event_get_code (_tmp106_); _tmp108_ = _tmp107_; _tmp102_ = ((gunichar) 0x20) <= _tmp108_; } else { _tmp102_ = FALSE; } _tmp109_ = _tmp102_; if (_tmp109_) { SkkKeyEvent* _tmp110_; gunichar _tmp111_; gunichar _tmp112_; _tmp110_ = *key; _tmp111_ = skk_key_event_get_code (_tmp110_); _tmp112_ = _tmp111_; _tmp101_ = _tmp112_ <= ((gunichar) 0x7E); } else { _tmp101_ = FALSE; } _tmp113_ = _tmp101_; if (_tmp113_) { _tmp100_ = TRUE; } else { const gchar* _tmp114_; _tmp114_ = command; _tmp100_ = g_strcmp0 (_tmp114_, "delete") == 0; } _tmp115_ = _tmp100_; if (_tmp115_) { _tmp99_ = TRUE; } else { gboolean _tmp116_ = FALSE; SkkState* _tmp117_; gboolean _tmp118_; gboolean _tmp120_; _tmp117_ = state; _tmp118_ = _tmp117_->egg_like_newline; if (!_tmp118_) { const gchar* _tmp119_; _tmp119_ = command; _tmp116_ = g_strcmp0 (_tmp119_, "commit-unhandled") == 0; } else { _tmp116_ = FALSE; } _tmp120_ = _tmp116_; _tmp99_ = _tmp120_; } _tmp121_ = _tmp99_; if (_tmp121_) { result = FALSE; _g_free0 (surrounding_after); _g_free0 (command); return result; } else { result = TRUE; _g_free0 (surrounding_after); _g_free0 (command); return result; } } _g_free0 (surrounding_after); } } } } _g_free0 (command); } static gchar* skk_select_state_handler_real_get_preedit (SkkStateHandler* base, SkkState* state, guint* underline_offset, guint* underline_nchars) { SkkSelectStateHandler * self; guint _vala_underline_offset = 0U; guint _vala_underline_nchars = 0U; gchar* result = NULL; GString* _tmp0_; GString* builder; guint _tmp1_; SkkState* _tmp2_; SkkCandidateList* _tmp3_; gint _tmp4_; gint _tmp5_; SkkState* _tmp18_; const gchar* _tmp19_; GString* _tmp42_; const gchar* _tmp43_; gchar* _tmp44_; self = (SkkSelectStateHandler*) base; g_return_val_if_fail (state != NULL, NULL); _tmp0_ = g_string_new ("â–¼"); builder = _tmp0_; _vala_underline_nchars = (guint) 0; _tmp1_ = _vala_underline_nchars; _vala_underline_offset = _tmp1_; _tmp2_ = state; _tmp3_ = _tmp2_->candidates; _tmp4_ = skk_candidate_list_get_cursor_pos (_tmp3_); _tmp5_ = _tmp4_; if (_tmp5_ >= 0) { SkkState* _tmp6_; SkkCandidateList* _tmp7_; SkkCandidate* _tmp8_ = NULL; SkkCandidate* c; GString* _tmp9_; SkkCandidate* _tmp10_; const gchar* _tmp11_; const gchar* _tmp12_; _tmp6_ = state; _tmp7_ = _tmp6_->candidates; _tmp8_ = skk_candidate_list_get (_tmp7_, -1); c = _tmp8_; _tmp9_ = builder; _tmp10_ = c; _tmp11_ = skk_candidate_get_output (_tmp10_); _tmp12_ = _tmp11_; g_string_append (_tmp9_, _tmp12_); _g_object_unref0 (c); } else { GString* _tmp13_; SkkState* _tmp14_; SkkRomKanaConverter* _tmp15_; const gchar* _tmp16_; const gchar* _tmp17_; _tmp13_ = builder; _tmp14_ = state; _tmp15_ = _tmp14_->rom_kana_converter; _tmp16_ = skk_rom_kana_converter_get_output (_tmp15_); _tmp17_ = _tmp16_; g_string_append (_tmp13_, _tmp17_); } _tmp18_ = state; _tmp19_ = _tmp18_->auto_start_henkan_keyword; if (_tmp19_ != NULL) { GString* _tmp20_; SkkState* _tmp21_; const gchar* _tmp22_; _tmp20_ = builder; _tmp21_ = state; _tmp22_ = _tmp21_->auto_start_henkan_keyword; g_string_append (_tmp20_, _tmp22_); } else { SkkState* _tmp23_; gboolean _tmp24_; _tmp23_ = state; _tmp24_ = _tmp23_->okuri; if (_tmp24_) { GString* _tmp25_; SkkState* _tmp26_; SkkRomKanaConverter* _tmp27_; const gchar* _tmp28_; const gchar* _tmp29_; _tmp25_ = builder; _tmp26_ = state; _tmp27_ = _tmp26_->okuri_rom_kana_converter; _tmp28_ = skk_rom_kana_converter_get_output (_tmp27_); _tmp29_ = _tmp28_; g_string_append (_tmp25_, _tmp29_); } else { SkkState* _tmp30_; SkkUnicodeString* _tmp31_; _tmp30_ = state; _tmp31_ = _tmp30_->surrounding_text; if (_tmp31_ != NULL) { GString* _tmp32_; const gchar* _tmp33_; gint _tmp34_ = 0; GString* _tmp35_; SkkState* _tmp36_; SkkUnicodeString* _tmp37_; SkkState* _tmp38_; guint _tmp39_; gchar* _tmp40_ = NULL; gchar* _tmp41_; _vala_underline_offset = (guint) 1; _tmp32_ = builder; _tmp33_ = _tmp32_->str; _tmp34_ = g_utf8_strlen (_tmp33_, (gssize) (-1)); _vala_underline_nchars = (guint) (_tmp34_ - 1); _tmp35_ = builder; _tmp36_ = state; _tmp37_ = _tmp36_->surrounding_text; _tmp38_ = state; _tmp39_ = _tmp38_->surrounding_end; _tmp40_ = skk_unicode_string_substring (_tmp37_, (glong) _tmp39_, (glong) (-1)); _tmp41_ = _tmp40_; g_string_append (_tmp35_, _tmp41_); _g_free0 (_tmp41_); } } } _tmp42_ = builder; _tmp43_ = _tmp42_->str; _tmp44_ = g_strdup (_tmp43_); result = _tmp44_; _g_string_free0 (builder); if (underline_offset) { *underline_offset = _vala_underline_offset; } if (underline_nchars) { *underline_nchars = _vala_underline_nchars; } return result; } SkkSelectStateHandler* skk_select_state_handler_construct (GType object_type) { SkkSelectStateHandler * self = NULL; self = (SkkSelectStateHandler*) skk_state_handler_construct (object_type); return self; } SkkSelectStateHandler* skk_select_state_handler_new (void) { return skk_select_state_handler_construct (SKK_TYPE_SELECT_STATE_HANDLER); } static void skk_select_state_handler_class_init (SkkSelectStateHandlerClass * klass) { skk_select_state_handler_parent_class = g_type_class_peek_parent (klass); SKK_STATE_HANDLER_CLASS (klass)->process_key_event = skk_select_state_handler_real_process_key_event; SKK_STATE_HANDLER_CLASS (klass)->get_preedit = skk_select_state_handler_real_get_preedit; } static void skk_select_state_handler_instance_init (SkkSelectStateHandler * self) { } GType skk_select_state_handler_get_type (void) { static volatile gsize skk_select_state_handler_type_id__volatile = 0; if (g_once_init_enter (&skk_select_state_handler_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkSelectStateHandlerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_select_state_handler_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkSelectStateHandler), 0, (GInstanceInitFunc) skk_select_state_handler_instance_init, NULL }; GType skk_select_state_handler_type_id; skk_select_state_handler_type_id = g_type_register_static (SKK_TYPE_STATE_HANDLER, "SkkSelectStateHandler", &g_define_type_info, 0); g_once_init_leave (&skk_select_state_handler_type_id__volatile, skk_select_state_handler_type_id); } return skk_select_state_handler_type_id__volatile; } static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { int i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); } } } } static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) { _vala_array_destroy (array, array_length, destroy_func); g_free (array); } libskk-1.0.0/libskk/expr.vala0000664000076400007640000001634411703521745013041 00000000000000/* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ using Gee; namespace Skk { enum ExprNodeType { ARRAY, SYMBOL, STRING } struct ExprNode { public ExprNodeType type; public LinkedList nodes; public string data; public ExprNode (ExprNodeType type) { this.type = type; } } class ExprReader : Object { public ExprNode read_symbol (string expr, ref int index) { var builder = new StringBuilder (); bool stop = false; unichar uc = '\0'; while (!stop && expr.get_next_char (ref index, out uc)) { switch (uc) { case '\\': if (expr.get_next_char (ref index, out uc)) { builder.append_unichar (uc); } break; case '(': case ')': case '"': case ' ': stop = true; break; default: builder.append_unichar (uc); break; } } var node = ExprNode (ExprNodeType.SYMBOL); node.data = builder.str; return node; } public ExprNode read_string (string expr, ref int index) { return_val_if_fail (index < expr.length && expr[index] == '"', null); var builder = new StringBuilder (); index++; bool stop = false; unichar uc = '\0'; while (!stop && expr.get_next_char (ref index, out uc)) { switch (uc) { case '\\': if (expr.get_next_char (ref index, out uc)) { switch (uc) { case '0': int num = 0; while (expr.get_next_char (ref index, out uc)) { if (uc < '0' || uc > '7') break; num <<= 3; num += (int) uc - '0'; } index--; uc = (unichar) num; break; case 'x': int num = 0; while (expr.get_next_char (ref index, out uc)) { uc = uc.tolower (); if (('0' <= uc && uc <= '9') || ('a' <= uc && uc <= 'f')) { num <<= 4; if ('0' <= uc && uc <= '9') { num += (int) uc - '0'; } else if ('a' <= uc && uc <= 'f') { num += (int) uc - 'a' + 10; } } else { break; } } index--; uc = (unichar) num; break; default: break; } builder.append_unichar (uc); } break; case '\"': stop = true; break; default: builder.append_unichar (uc); break; } } var node = ExprNode (ExprNodeType.STRING); node.data = builder.str; return node; } public ExprNode? read_expr (string expr, ref int index) { return_val_if_fail (index < expr.length && expr[index] == '(', null); var nodes = new LinkedList (); bool stop = false; index++; unichar uc = '\0'; while (!stop && expr.get_next_char (ref index, out uc)) { switch (uc) { case ' ': break; case ')': index++; stop = true; break; case '(': index--; nodes.add (read_expr (expr, ref index)); break; case '"': index--; nodes.add (read_string (expr, ref index)); break; default: index--; nodes.add (read_symbol (expr, ref index)); break; } } var node = ExprNode (ExprNodeType.ARRAY); node.nodes = nodes; return node; } } class ExprEvaluator : Object { public string? eval (ExprNode node) { if (node.type == ExprNodeType.ARRAY) { var iter = node.nodes.list_iterator (); if (iter.first ()) { var funcall = iter.get (); if (funcall.type == ExprNodeType.SYMBOL) { // FIXME support other functions in more extensible way if (funcall.data == "concat") { var builder = new StringBuilder (); while (iter.next ()) { var arg = iter.get (); if (arg.type == ExprNodeType.STRING) { builder.append (arg.data); } } return builder.str; } else if (funcall.data == "current-time-string") { var datetime = new DateTime.now_local (); return datetime.format ("%a, %d %b %Y %T %z"); } else if (funcall.data == "pwd") { return Environment.get_current_dir (); } else if (funcall.data == "skk-version") { return "%s/%s".printf (Config.PACKAGE_NAME, Config.PACKAGE_VERSION); } } } } return null; } } } libskk-1.0.0/libskk/map-file.c0000664000076400007640000007337412016556644013066 00000000000000/* map-file.c generated by valac 0.16.0, the Vala compiler * generated from map-file.vala, do not modify */ /* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ #include #include #include #include #include #include #define SKK_TYPE_MAP_FILE (skk_map_file_get_type ()) #define SKK_MAP_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_MAP_FILE, SkkMapFile)) #define SKK_MAP_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_MAP_FILE, SkkMapFileClass)) #define SKK_IS_MAP_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_MAP_FILE)) #define SKK_IS_MAP_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_MAP_FILE)) #define SKK_MAP_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_MAP_FILE, SkkMapFileClass)) typedef struct _SkkMapFile SkkMapFile; typedef struct _SkkMapFileClass SkkMapFileClass; typedef struct _SkkMapFilePrivate SkkMapFilePrivate; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) #define __vala_JsonNode_free0(var) ((var == NULL) ? NULL : (var = (_vala_JsonNode_free (var), NULL))) #define _g_list_free0(var) ((var == NULL) ? NULL : (var = (g_list_free (var), NULL))) #define SKK_TYPE_RULE_METADATA (skk_rule_metadata_get_type ()) typedef struct _SkkRuleMetadata SkkRuleMetadata; #define _g_free0(var) (var = (g_free (var), NULL)) #define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL))) #define __vala_JsonObject_free0(var) ((var == NULL) ? NULL : (var = (_vala_JsonObject_free (var), NULL))) #define __vala_JsonArray_free0(var) ((var == NULL) ? NULL : (var = (_vala_JsonArray_free (var), NULL))) #define _skk_rule_metadata_free0(var) ((var == NULL) ? NULL : (var = (skk_rule_metadata_free (var), NULL))) struct _SkkMapFile { GObject parent_instance; SkkMapFilePrivate * priv; }; struct _SkkMapFileClass { GObjectClass parent_class; }; struct _SkkMapFilePrivate { GeeMap* maps; }; struct _SkkRuleMetadata { gchar* base_dir; gchar* name; gchar* label; gchar* description; gchar* filter; }; typedef enum { SKK_RULE_PARSE_ERROR_FAILED } SkkRuleParseError; #define SKK_RULE_PARSE_ERROR skk_rule_parse_error_quark () static gpointer skk_map_file_parent_class = NULL; GType skk_map_file_get_type (void) G_GNUC_CONST; #define SKK_MAP_FILE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SKK_TYPE_MAP_FILE, SkkMapFilePrivate)) enum { SKK_MAP_FILE_DUMMY_PROPERTY }; static void skk_map_file_load_map (SkkMapFile* self, GeeMap* map, JsonObject* object); static JsonNode* _vala_JsonNode_copy (JsonNode* self); static void _vala_JsonNode_free (JsonNode* self); GType skk_rule_metadata_get_type (void) G_GNUC_CONST; SkkRuleMetadata* skk_rule_metadata_dup (const SkkRuleMetadata* self); void skk_rule_metadata_free (SkkRuleMetadata* self); void skk_rule_metadata_copy (const SkkRuleMetadata* self, SkkRuleMetadata* dest); void skk_rule_metadata_destroy (SkkRuleMetadata* self); GQuark skk_rule_parse_error_quark (void); static void skk_map_file_load (SkkMapFile* self, SkkRuleMetadata* metadata, const gchar* type, const gchar* name, GeeSet* included, GError** error); gchar* skk_rule_metadata_locate_map_file (SkkRuleMetadata *self, const gchar* type, const gchar* name); static JsonObject* _vala_JsonObject_copy (JsonObject* self); static void _vala_JsonObject_free (JsonObject* self); static JsonArray* _vala_JsonArray_copy (JsonArray* self); static void _vala_JsonArray_free (JsonArray* self); SkkRuleMetadata* skk_rule_find_rule (const gchar* name); SkkMapFile* skk_map_file_construct (GType object_type, SkkRuleMetadata* metadata, const gchar* type, const gchar* name, GError** error); gboolean skk_map_file_has_map (SkkMapFile* self, const gchar* name); GeeMap* skk_map_file_get (SkkMapFile* self, const gchar* name); static void skk_map_file_finalize (GObject* obj); static JsonNode* _vala_JsonNode_copy (JsonNode* self) { return g_boxed_copy (json_node_get_type (), self); } static gpointer __vala_JsonNode_copy0 (gpointer self) { return self ? _vala_JsonNode_copy (self) : NULL; } static void _vala_JsonNode_free (JsonNode* self) { g_boxed_free (json_node_get_type (), self); } static void skk_map_file_load_map (SkkMapFile* self, GeeMap* map, JsonObject* object) { JsonObject* _tmp0_; GList* _tmp1_ = NULL; GList* keys; GList* _tmp2_; g_return_if_fail (self != NULL); g_return_if_fail (map != NULL); g_return_if_fail (object != NULL); _tmp0_ = object; _tmp1_ = json_object_get_members (_tmp0_); keys = _tmp1_; _tmp2_ = keys; { GList* key_collection = NULL; GList* key_it = NULL; key_collection = _tmp2_; for (key_it = key_collection; key_it != NULL; key_it = key_it->next) { const gchar* key = NULL; key = (const gchar*) key_it->data; { JsonObject* _tmp3_; const gchar* _tmp4_; JsonNode* _tmp5_ = NULL; JsonNode* _tmp6_; JsonNode* value; JsonNode* _tmp7_; JsonNodeType _tmp8_ = 0; _tmp3_ = object; _tmp4_ = key; _tmp5_ = json_object_get_member (_tmp3_, _tmp4_); _tmp6_ = __vala_JsonNode_copy0 (_tmp5_); value = _tmp6_; _tmp7_ = value; _tmp8_ = json_node_get_node_type (_tmp7_); if (_tmp8_ == JSON_NODE_NULL) { GeeMap* _tmp9_; const gchar* _tmp10_; _tmp9_ = map; _tmp10_ = key; gee_map_unset (_tmp9_, _tmp10_, NULL); } else { GeeMap* _tmp11_; const gchar* _tmp12_; JsonNode* _tmp13_; _tmp11_ = map; _tmp12_ = key; _tmp13_ = value; gee_map_set (_tmp11_, _tmp12_, _tmp13_); } __vala_JsonNode_free0 (value); } } } _g_list_free0 (keys); } static JsonObject* _vala_JsonObject_copy (JsonObject* self) { return g_boxed_copy (json_object_get_type (), self); } static gpointer __vala_JsonObject_copy0 (gpointer self) { return self ? _vala_JsonObject_copy (self) : NULL; } static void _vala_JsonObject_free (JsonObject* self) { g_boxed_free (json_object_get_type (), self); } static JsonArray* _vala_JsonArray_copy (JsonArray* self) { return g_boxed_copy (json_array_get_type (), self); } static gpointer __vala_JsonArray_copy0 (gpointer self) { return self ? _vala_JsonArray_copy (self) : NULL; } static void _vala_JsonArray_free (JsonArray* self) { g_boxed_free (json_array_get_type (), self); } static gint string_index_of (const gchar* self, const gchar* needle, gint start_index) { gint result = 0; gint _tmp0_; const gchar* _tmp1_; gchar* _tmp2_ = NULL; gchar* _result_; gchar* _tmp3_; g_return_val_if_fail (self != NULL, 0); g_return_val_if_fail (needle != NULL, 0); _tmp0_ = start_index; _tmp1_ = needle; _tmp2_ = strstr (((gchar*) self) + _tmp0_, (gchar*) _tmp1_); _result_ = _tmp2_; _tmp3_ = _result_; if (_tmp3_ != NULL) { gchar* _tmp4_; _tmp4_ = _result_; result = (gint) (_tmp4_ - ((gchar*) self)); return result; } else { result = -1; return result; } } static gchar* string_slice (const gchar* self, glong start, glong end) { gchar* result = NULL; gint _tmp0_; gint _tmp1_; glong string_length; glong _tmp2_; glong _tmp5_; gboolean _tmp8_ = FALSE; glong _tmp9_; gboolean _tmp12_; gboolean _tmp13_ = FALSE; glong _tmp14_; gboolean _tmp17_; glong _tmp18_; glong _tmp19_; glong _tmp20_; glong _tmp21_; glong _tmp22_; gchar* _tmp23_ = NULL; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = strlen (self); _tmp1_ = _tmp0_; string_length = (glong) _tmp1_; _tmp2_ = start; if (_tmp2_ < ((glong) 0)) { glong _tmp3_; glong _tmp4_; _tmp3_ = string_length; _tmp4_ = start; start = _tmp3_ + _tmp4_; } _tmp5_ = end; if (_tmp5_ < ((glong) 0)) { glong _tmp6_; glong _tmp7_; _tmp6_ = string_length; _tmp7_ = end; end = _tmp6_ + _tmp7_; } _tmp9_ = start; if (_tmp9_ >= ((glong) 0)) { glong _tmp10_; glong _tmp11_; _tmp10_ = start; _tmp11_ = string_length; _tmp8_ = _tmp10_ <= _tmp11_; } else { _tmp8_ = FALSE; } _tmp12_ = _tmp8_; g_return_val_if_fail (_tmp12_, NULL); _tmp14_ = end; if (_tmp14_ >= ((glong) 0)) { glong _tmp15_; glong _tmp16_; _tmp15_ = end; _tmp16_ = string_length; _tmp13_ = _tmp15_ <= _tmp16_; } else { _tmp13_ = FALSE; } _tmp17_ = _tmp13_; g_return_val_if_fail (_tmp17_, NULL); _tmp18_ = start; _tmp19_ = end; g_return_val_if_fail (_tmp18_ <= _tmp19_, NULL); _tmp20_ = start; _tmp21_ = end; _tmp22_ = start; _tmp23_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) (_tmp21_ - _tmp22_)); result = _tmp23_; return result; } static void skk_map_file_load (SkkMapFile* self, SkkRuleMetadata* metadata, const gchar* type, const gchar* name, GeeSet* included, GError** error) { const gchar* _tmp0_; const gchar* _tmp1_; gchar* _tmp2_ = NULL; gchar* filename; JsonParser* _tmp4_; JsonParser* parser; JsonParser* _tmp15_; JsonNode* _tmp16_ = NULL; JsonNode* _tmp17_; JsonNode* root; JsonNode* _tmp18_; JsonNodeType _tmp19_ = 0; JsonNode* _tmp21_; JsonObject* _tmp22_ = NULL; JsonObject* _tmp23_; JsonObject* object; JsonNode* member = NULL; JsonObject* _tmp24_; gboolean _tmp25_ = FALSE; JsonObject* _tmp75_; gboolean _tmp76_ = FALSE; GError * _inner_error_ = NULL; g_return_if_fail (self != NULL); g_return_if_fail (metadata != NULL); g_return_if_fail (type != NULL); g_return_if_fail (name != NULL); g_return_if_fail (included != NULL); _tmp0_ = type; _tmp1_ = name; _tmp2_ = skk_rule_metadata_locate_map_file (metadata, _tmp0_, _tmp1_); filename = _tmp2_; if (filename == NULL) { GError* _tmp3_; _tmp3_ = g_error_new (SKK_RULE_PARSE_ERROR, SKK_RULE_PARSE_ERROR_FAILED, "no such file %s", filename); _inner_error_ = _tmp3_; if (_inner_error_->domain == SKK_RULE_PARSE_ERROR) { g_propagate_error (error, _inner_error_); _g_free0 (filename); return; } else { _g_free0 (filename); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } } _tmp4_ = json_parser_new (); parser = _tmp4_; { JsonParser* _tmp5_; gboolean _tmp6_ = FALSE; gboolean _tmp7_; _tmp5_ = parser; _tmp6_ = json_parser_load_from_file (_tmp5_, filename, &_inner_error_); _tmp7_ = _tmp6_; if (_inner_error_ != NULL) { goto __catch28_g_error; } if (!_tmp7_) { GError* _tmp8_; _tmp8_ = g_error_new_literal (SKK_RULE_PARSE_ERROR, SKK_RULE_PARSE_ERROR_FAILED, ""); _inner_error_ = _tmp8_; goto __catch28_g_error; } } goto __finally28; __catch28_g_error: { GError* e = NULL; GError* _tmp9_; const gchar* _tmp10_; gchar* _tmp11_ = NULL; gchar* _tmp12_; GError* _tmp13_; GError* _tmp14_; e = _inner_error_; _inner_error_ = NULL; _tmp9_ = e; _tmp10_ = _tmp9_->message; _tmp11_ = g_strdup_printf ("can't load %s: %s", filename, _tmp10_); _tmp12_ = _tmp11_; _tmp13_ = g_error_new_literal (SKK_RULE_PARSE_ERROR, SKK_RULE_PARSE_ERROR_FAILED, _tmp12_); _tmp14_ = _tmp13_; _g_free0 (_tmp12_); _inner_error_ = _tmp14_; _g_error_free0 (e); goto __finally28; } __finally28: if (_inner_error_ != NULL) { if (_inner_error_->domain == SKK_RULE_PARSE_ERROR) { g_propagate_error (error, _inner_error_); _g_object_unref0 (parser); _g_free0 (filename); return; } else { _g_object_unref0 (parser); _g_free0 (filename); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } } _tmp15_ = parser; _tmp16_ = json_parser_get_root (_tmp15_); _tmp17_ = __vala_JsonNode_copy0 (_tmp16_); root = _tmp17_; _tmp18_ = root; _tmp19_ = json_node_get_node_type (_tmp18_); if (_tmp19_ != JSON_NODE_OBJECT) { GError* _tmp20_; _tmp20_ = g_error_new_literal (SKK_RULE_PARSE_ERROR, SKK_RULE_PARSE_ERROR_FAILED, "root element must be an object"); _inner_error_ = _tmp20_; if (_inner_error_->domain == SKK_RULE_PARSE_ERROR) { g_propagate_error (error, _inner_error_); __vala_JsonNode_free0 (root); _g_object_unref0 (parser); _g_free0 (filename); return; } else { __vala_JsonNode_free0 (root); _g_object_unref0 (parser); _g_free0 (filename); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } } _tmp21_ = root; _tmp22_ = json_node_get_object (_tmp21_); _tmp23_ = __vala_JsonObject_copy0 (_tmp22_); object = _tmp23_; _tmp24_ = object; _tmp25_ = json_object_has_member (_tmp24_, "include"); if (_tmp25_) { JsonObject* _tmp26_; JsonNode* _tmp27_ = NULL; JsonNode* _tmp28_; JsonNode* _tmp29_; JsonNodeType _tmp30_ = 0; JsonNode* _tmp32_; JsonArray* _tmp33_ = NULL; JsonArray* _tmp34_; JsonArray* include; JsonArray* _tmp35_; GList* _tmp36_ = NULL; GList* elements; GList* _tmp37_; _tmp26_ = object; _tmp27_ = json_object_get_member (_tmp26_, "include"); _tmp28_ = __vala_JsonNode_copy0 (_tmp27_); __vala_JsonNode_free0 (member); member = _tmp28_; _tmp29_ = member; _tmp30_ = json_node_get_node_type (_tmp29_); if (_tmp30_ != JSON_NODE_ARRAY) { GError* _tmp31_; _tmp31_ = g_error_new_literal (SKK_RULE_PARSE_ERROR, SKK_RULE_PARSE_ERROR_FAILED, "\"include\" element must be an array"); _inner_error_ = _tmp31_; if (_inner_error_->domain == SKK_RULE_PARSE_ERROR) { g_propagate_error (error, _inner_error_); __vala_JsonNode_free0 (member); __vala_JsonObject_free0 (object); __vala_JsonNode_free0 (root); _g_object_unref0 (parser); _g_free0 (filename); return; } else { __vala_JsonNode_free0 (member); __vala_JsonObject_free0 (object); __vala_JsonNode_free0 (root); _g_object_unref0 (parser); _g_free0 (filename); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } } _tmp32_ = member; _tmp33_ = json_node_get_array (_tmp32_); _tmp34_ = __vala_JsonArray_copy0 (_tmp33_); include = _tmp34_; _tmp35_ = include; _tmp36_ = json_array_get_elements (_tmp35_); elements = _tmp36_; _tmp37_ = elements; { GList* element_collection = NULL; GList* element_it = NULL; element_collection = _tmp37_; for (element_it = element_collection; element_it != NULL; element_it = element_it->next) { JsonNode* element = NULL; element = (JsonNode*) element_it->data; { JsonNode* _tmp38_; const gchar* _tmp39_ = NULL; gchar* _tmp40_; gchar* parent; GeeSet* _tmp41_; const gchar* _tmp42_; gboolean _tmp43_ = FALSE; gchar* parent_rule = NULL; gchar* parent_name = NULL; const gchar* _tmp46_; gint _tmp47_ = 0; gint index; gint _tmp48_; const gchar* _tmp63_; SkkRuleMetadata* _tmp64_ = NULL; SkkRuleMetadata* parent_metadata; SkkRuleMetadata* _tmp65_; SkkRuleMetadata* _tmp68_; const gchar* _tmp69_; const gchar* _tmp70_; GeeSet* _tmp71_; SkkRuleMetadata _tmp72_; GeeSet* _tmp73_; const gchar* _tmp74_; _tmp38_ = element; _tmp39_ = json_node_get_string (_tmp38_); _tmp40_ = g_strdup (_tmp39_); parent = _tmp40_; _tmp41_ = included; _tmp42_ = parent; _tmp43_ = gee_collection_contains ((GeeCollection*) _tmp41_, _tmp42_); if (_tmp43_) { const gchar* _tmp44_; GError* _tmp45_; _tmp44_ = parent; _tmp45_ = g_error_new (SKK_RULE_PARSE_ERROR, SKK_RULE_PARSE_ERROR_FAILED, "found circular include of %s", _tmp44_); _inner_error_ = _tmp45_; if (_inner_error_->domain == SKK_RULE_PARSE_ERROR) { g_propagate_error (error, _inner_error_); _g_free0 (parent); _g_list_free0 (elements); __vala_JsonArray_free0 (include); __vala_JsonNode_free0 (member); __vala_JsonObject_free0 (object); __vala_JsonNode_free0 (root); _g_object_unref0 (parser); _g_free0 (filename); return; } else { _g_free0 (parent); _g_list_free0 (elements); __vala_JsonArray_free0 (include); __vala_JsonNode_free0 (member); __vala_JsonObject_free0 (object); __vala_JsonNode_free0 (root); _g_object_unref0 (parser); _g_free0 (filename); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } } _tmp46_ = parent; _tmp47_ = string_index_of (_tmp46_, "/", 0); index = _tmp47_; _tmp48_ = index; if (_tmp48_ < 0) { SkkRuleMetadata _tmp49_; const gchar* _tmp50_; gchar* _tmp51_; const gchar* _tmp52_; gchar* _tmp53_; _tmp49_ = *metadata; _tmp50_ = _tmp49_.name; _tmp51_ = g_strdup (_tmp50_); _g_free0 (parent_rule); parent_rule = _tmp51_; _tmp52_ = parent; _tmp53_ = g_strdup (_tmp52_); _g_free0 (parent_name); parent_name = _tmp53_; } else { const gchar* _tmp54_; gint _tmp55_; gchar* _tmp56_ = NULL; const gchar* _tmp57_; gint _tmp58_; const gchar* _tmp59_; gint _tmp60_; gint _tmp61_; gchar* _tmp62_ = NULL; _tmp54_ = parent; _tmp55_ = index; _tmp56_ = string_slice (_tmp54_, (glong) 0, (glong) _tmp55_); _g_free0 (parent_rule); parent_rule = _tmp56_; _tmp57_ = parent; _tmp58_ = index; _tmp59_ = parent; _tmp60_ = strlen (_tmp59_); _tmp61_ = _tmp60_; _tmp62_ = string_slice (_tmp57_, (glong) (_tmp58_ + 1), (glong) _tmp61_); _g_free0 (parent_name); parent_name = _tmp62_; } _tmp63_ = parent_rule; _tmp64_ = skk_rule_find_rule (_tmp63_); parent_metadata = _tmp64_; _tmp65_ = parent_metadata; if (_tmp65_ == NULL) { const gchar* _tmp66_; GError* _tmp67_; _tmp66_ = parent_rule; _tmp67_ = g_error_new (SKK_RULE_PARSE_ERROR, SKK_RULE_PARSE_ERROR_FAILED, "can't find rule %s", _tmp66_); _inner_error_ = _tmp67_; if (_inner_error_->domain == SKK_RULE_PARSE_ERROR) { g_propagate_error (error, _inner_error_); _skk_rule_metadata_free0 (parent_metadata); _g_free0 (parent_name); _g_free0 (parent_rule); _g_free0 (parent); _g_list_free0 (elements); __vala_JsonArray_free0 (include); __vala_JsonNode_free0 (member); __vala_JsonObject_free0 (object); __vala_JsonNode_free0 (root); _g_object_unref0 (parser); _g_free0 (filename); return; } else { _skk_rule_metadata_free0 (parent_metadata); _g_free0 (parent_name); _g_free0 (parent_rule); _g_free0 (parent); _g_list_free0 (elements); __vala_JsonArray_free0 (include); __vala_JsonNode_free0 (member); __vala_JsonObject_free0 (object); __vala_JsonNode_free0 (root); _g_object_unref0 (parser); _g_free0 (filename); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } } _tmp68_ = parent_metadata; _tmp69_ = type; _tmp70_ = parent_name; _tmp71_ = included; _tmp72_ = *_tmp68_; skk_map_file_load (self, &_tmp72_, _tmp69_, _tmp70_, _tmp71_, &_inner_error_); if (_inner_error_ != NULL) { if (_inner_error_->domain == SKK_RULE_PARSE_ERROR) { g_propagate_error (error, _inner_error_); _skk_rule_metadata_free0 (parent_metadata); _g_free0 (parent_name); _g_free0 (parent_rule); _g_free0 (parent); _g_list_free0 (elements); __vala_JsonArray_free0 (include); __vala_JsonNode_free0 (member); __vala_JsonObject_free0 (object); __vala_JsonNode_free0 (root); _g_object_unref0 (parser); _g_free0 (filename); return; } else { _skk_rule_metadata_free0 (parent_metadata); _g_free0 (parent_name); _g_free0 (parent_rule); _g_free0 (parent); _g_list_free0 (elements); __vala_JsonArray_free0 (include); __vala_JsonNode_free0 (member); __vala_JsonObject_free0 (object); __vala_JsonNode_free0 (root); _g_object_unref0 (parser); _g_free0 (filename); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } } _tmp73_ = included; _tmp74_ = parent; gee_collection_add ((GeeCollection*) _tmp73_, _tmp74_); _skk_rule_metadata_free0 (parent_metadata); _g_free0 (parent_name); _g_free0 (parent_rule); _g_free0 (parent); } } } _g_list_free0 (elements); __vala_JsonArray_free0 (include); } _tmp75_ = object; _tmp76_ = json_object_has_member (_tmp75_, "define"); if (_tmp76_) { JsonObject* _tmp77_; JsonNode* _tmp78_ = NULL; JsonNode* _tmp79_; JsonNode* _tmp80_; JsonNodeType _tmp81_ = 0; JsonNode* _tmp83_; JsonObject* _tmp84_ = NULL; JsonObject* _tmp85_; JsonObject* define; JsonObject* _tmp86_; GList* _tmp87_ = NULL; GList* keys; GList* _tmp88_; _tmp77_ = object; _tmp78_ = json_object_get_member (_tmp77_, "define"); _tmp79_ = __vala_JsonNode_copy0 (_tmp78_); __vala_JsonNode_free0 (member); member = _tmp79_; _tmp80_ = member; _tmp81_ = json_node_get_node_type (_tmp80_); if (_tmp81_ != JSON_NODE_OBJECT) { GError* _tmp82_; _tmp82_ = g_error_new_literal (SKK_RULE_PARSE_ERROR, SKK_RULE_PARSE_ERROR_FAILED, "\"define\" element must be an object"); _inner_error_ = _tmp82_; if (_inner_error_->domain == SKK_RULE_PARSE_ERROR) { g_propagate_error (error, _inner_error_); __vala_JsonNode_free0 (member); __vala_JsonObject_free0 (object); __vala_JsonNode_free0 (root); _g_object_unref0 (parser); _g_free0 (filename); return; } else { __vala_JsonNode_free0 (member); __vala_JsonObject_free0 (object); __vala_JsonNode_free0 (root); _g_object_unref0 (parser); _g_free0 (filename); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } } _tmp83_ = member; _tmp84_ = json_node_get_object (_tmp83_); _tmp85_ = __vala_JsonObject_copy0 (_tmp84_); define = _tmp85_; _tmp86_ = define; _tmp87_ = json_object_get_members (_tmp86_); keys = _tmp87_; _tmp88_ = keys; { GList* key_collection = NULL; GList* key_it = NULL; key_collection = _tmp88_; for (key_it = key_collection; key_it != NULL; key_it = key_it->next) { const gchar* key = NULL; key = (const gchar*) key_it->data; { GeeMap* _tmp89_; const gchar* _tmp90_; gboolean _tmp91_ = FALSE; JsonObject* _tmp96_; const gchar* _tmp97_; JsonNode* _tmp98_ = NULL; JsonNode* _tmp99_; JsonNode* _tmp100_; JsonNodeType _tmp101_ = 0; GeeMap* _tmp103_; const gchar* _tmp104_; gpointer _tmp105_ = NULL; GeeMap* _tmp106_; JsonNode* _tmp107_; JsonObject* _tmp108_ = NULL; _tmp89_ = self->priv->maps; _tmp90_ = key; _tmp91_ = gee_map_has_key (_tmp89_, _tmp90_); if (!_tmp91_) { GeeHashMap* _tmp92_; GeeHashMap* map; GeeMap* _tmp93_; const gchar* _tmp94_; GeeHashMap* _tmp95_; _tmp92_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, json_node_get_type (), (GBoxedCopyFunc) _vala_JsonNode_copy, _vala_JsonNode_free, NULL, NULL, NULL); map = _tmp92_; _tmp93_ = self->priv->maps; _tmp94_ = key; _tmp95_ = map; gee_map_set (_tmp93_, _tmp94_, (GeeMap*) _tmp95_); _g_object_unref0 (map); } _tmp96_ = define; _tmp97_ = key; _tmp98_ = json_object_get_member (_tmp96_, _tmp97_); _tmp99_ = __vala_JsonNode_copy0 (_tmp98_); __vala_JsonNode_free0 (member); member = _tmp99_; _tmp100_ = member; _tmp101_ = json_node_get_node_type (_tmp100_); if (_tmp101_ != JSON_NODE_OBJECT) { GError* _tmp102_; _tmp102_ = g_error_new_literal (SKK_RULE_PARSE_ERROR, SKK_RULE_PARSE_ERROR_FAILED, "map element must be an object"); _inner_error_ = _tmp102_; if (_inner_error_->domain == SKK_RULE_PARSE_ERROR) { g_propagate_error (error, _inner_error_); _g_list_free0 (keys); __vala_JsonObject_free0 (define); __vala_JsonNode_free0 (member); __vala_JsonObject_free0 (object); __vala_JsonNode_free0 (root); _g_object_unref0 (parser); _g_free0 (filename); return; } else { _g_list_free0 (keys); __vala_JsonObject_free0 (define); __vala_JsonNode_free0 (member); __vala_JsonObject_free0 (object); __vala_JsonNode_free0 (root); _g_object_unref0 (parser); _g_free0 (filename); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } } _tmp103_ = self->priv->maps; _tmp104_ = key; _tmp105_ = gee_map_get (_tmp103_, _tmp104_); _tmp106_ = (GeeMap*) _tmp105_; _tmp107_ = member; _tmp108_ = json_node_get_object (_tmp107_); skk_map_file_load_map (self, _tmp106_, _tmp108_); _g_object_unref0 (_tmp106_); } } } _g_list_free0 (keys); __vala_JsonObject_free0 (define); } __vala_JsonNode_free0 (member); __vala_JsonObject_free0 (object); __vala_JsonNode_free0 (root); _g_object_unref0 (parser); _g_free0 (filename); } SkkMapFile* skk_map_file_construct (GType object_type, SkkRuleMetadata* metadata, const gchar* type, const gchar* name, GError** error) { SkkMapFile * self = NULL; GeeHashSet* _tmp0_; GeeSet* included; SkkRuleMetadata _tmp1_; const gchar* _tmp2_; const gchar* _tmp3_; GError * _inner_error_ = NULL; g_return_val_if_fail (metadata != NULL, NULL); g_return_val_if_fail (type != NULL, NULL); g_return_val_if_fail (name != NULL, NULL); self = (SkkMapFile*) g_object_new (object_type, NULL); _tmp0_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL); included = (GeeSet*) _tmp0_; _tmp1_ = *metadata; _tmp2_ = type; _tmp3_ = name; skk_map_file_load (self, &_tmp1_, _tmp2_, _tmp3_, included, &_inner_error_); if (_inner_error_ != NULL) { if (_inner_error_->domain == SKK_RULE_PARSE_ERROR) { g_propagate_error (error, _inner_error_); _g_object_unref0 (included); _g_object_unref0 (self); return NULL; } else { _g_object_unref0 (included); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } } _g_object_unref0 (included); return self; } gboolean skk_map_file_has_map (SkkMapFile* self, const gchar* name) { gboolean result = FALSE; GeeMap* _tmp0_; const gchar* _tmp1_; gboolean _tmp2_ = FALSE; g_return_val_if_fail (self != NULL, FALSE); g_return_val_if_fail (name != NULL, FALSE); _tmp0_ = self->priv->maps; _tmp1_ = name; _tmp2_ = gee_map_has_key (_tmp0_, _tmp1_); result = _tmp2_; return result; } GeeMap* skk_map_file_get (SkkMapFile* self, const gchar* name) { GeeMap* result = NULL; GeeMap* _tmp0_; const gchar* _tmp1_; gpointer _tmp2_ = NULL; g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (name != NULL, NULL); _tmp0_ = self->priv->maps; _tmp1_ = name; _tmp2_ = gee_map_get (_tmp0_, _tmp1_); result = (GeeMap*) _tmp2_; return result; } static void skk_map_file_class_init (SkkMapFileClass * klass) { skk_map_file_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (SkkMapFilePrivate)); G_OBJECT_CLASS (klass)->finalize = skk_map_file_finalize; } static void skk_map_file_instance_init (SkkMapFile * self) { GeeHashMap* _tmp0_; self->priv = SKK_MAP_FILE_GET_PRIVATE (self); _tmp0_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, GEE_TYPE_MAP, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL); self->priv->maps = (GeeMap*) _tmp0_; } static void skk_map_file_finalize (GObject* obj) { SkkMapFile * self; self = SKK_MAP_FILE (obj); _g_object_unref0 (self->priv->maps); G_OBJECT_CLASS (skk_map_file_parent_class)->finalize (obj); } GType skk_map_file_get_type (void) { static volatile gsize skk_map_file_type_id__volatile = 0; if (g_once_init_enter (&skk_map_file_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkMapFileClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_map_file_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkMapFile), 0, (GInstanceInitFunc) skk_map_file_instance_init, NULL }; GType skk_map_file_type_id; skk_map_file_type_id = g_type_register_static (G_TYPE_OBJECT, "SkkMapFile", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); g_once_init_leave (&skk_map_file_type_id__volatile, skk_map_file_type_id); } return skk_map_file_type_id__volatile; } libskk-1.0.0/libskk/rule.vala0000664000076400007640000002765611766523117013046 00000000000000/* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ using Gee; namespace Skk { class KeymapMapFile : MapFile { internal Keymap keymap; internal KeymapMapFile (RuleMetadata metadata, string mode) throws RuleParseError { base (metadata, "keymap", mode); if (has_map ("keymap")) { var map = get ("keymap"); keymap = new Keymap (); foreach (var key in map.keys) { var value = map.get (key); keymap.set (key, value.get_string ()); } } else { throw new RuleParseError.FAILED ("no keymap entry"); } } } class RomKanaMapFile : MapFile { internal RomKanaNode root_node; RomKanaNode parse_rule (Map map) throws RuleParseError { var node = new RomKanaNode (null); foreach (var key in map.keys) { var value = map.get (key); if (value.get_node_type () == Json.NodeType.ARRAY) { var components = value.get_array (); var length = components.get_length (); if (2 <= length && length <= 4) { var carryover = components.get_string_element (0); var hiragana = components.get_string_element (1); var katakana = length >= 3 ? components.get_string_element (2) : Util.get_katakana (hiragana); var hankaku_katakana = length == 4 ? components.get_string_element (3) : Util.get_hankaku_katakana (katakana); RomKanaEntry entry = { key, carryover, hiragana, katakana, hankaku_katakana }; node.insert (key, entry); } else { throw new RuleParseError.FAILED ( "\"rom-kana\" must have two to four elements"); } } else { throw new RuleParseError.FAILED ( "\"rom-kana\" member must be either an array or null"); } } return node; } public RomKanaMapFile (RuleMetadata metadata) throws RuleParseError { base (metadata, "rom-kana", "default"); if (has_map ("rom-kana")) { root_node = parse_rule (get ("rom-kana")); } else { throw new RuleParseError.FAILED ("no rom-kana entry"); } } } public errordomain RuleParseError { FAILED } /** * Object describing a rule. */ public struct RuleMetadata { /** * Base directory. */ string base_dir; /** * Name of the rule. */ string name; /** * Label string of the rule. */ string label; /** * Description of the rule. */ string description; /** * Name of key event filter. */ string filter; /** * Return the path of the map file. * * @param type type of the map file * @param name name of the map file * * @return the absolute path of the map file */ public string? locate_map_file (string type, string name) { var filename = Path.build_filename (base_dir, type, name + ".json"); if (FileUtils.test (filename, FileTest.EXISTS)) { return filename; } return null; } } /** * Object representing a typing rule. */ public class Rule : Object { /** * Metadata associated with the rule. */ public RuleMetadata metadata { get; private set; } internal KeymapMapFile[] keymaps = new KeymapMapFile[InputMode.LAST]; internal RomKanaMapFile rom_kana; static const Entry[] keymap_names = { { InputMode.HIRAGANA, "hiragana" }, { InputMode.KATAKANA, "katakana" }, { InputMode.HANKAKU_KATAKANA, "hankaku-katakana" }, { InputMode.LATIN, "latin" }, { InputMode.WIDE_LATIN, "wide-latin" } }; static string[] rules_path; KeyEventFilter? filter; // Make the value type boxed to avoid unwanted ulong -> uint cast: // https://bugzilla.gnome.org/show_bug.cgi?id=660621 static Map filter_types = new HashMap (); static construct { rules_path = Util.build_data_path ("rules"); filter_types.set ("simple", typeof (SimpleKeyEventFilter)); filter_types.set ("nicola", typeof (NicolaKeyEventFilter)); } static RuleMetadata load_metadata (string filename) throws RuleParseError { Json.Parser parser = new Json.Parser (); try { if (!parser.load_from_file (filename)) { throw new RuleParseError.FAILED ("can't load %s", filename); } var root = parser.get_root (); if (root.get_node_type () != Json.NodeType.OBJECT) { throw new RuleParseError.FAILED ( "metadata must be a JSON object"); } var object = root.get_object (); Json.Node member; if (!object.has_member ("name")) { throw new RuleParseError.FAILED ( "name is not defined in metadata"); } member = object.get_member ("name"); var name = member.get_string (); if (!object.has_member ("description")) { throw new RuleParseError.FAILED ( "description is not defined in metadata"); } member = object.get_member ("description"); var description = member.get_string (); string? filter; if (object.has_member ("filter")) { member = object.get_member ("filter"); filter = member.get_string (); if (!filter_types.has_key (filter)) { throw new RuleParseError.FAILED ( "unknown filter type %s", filter); } } else { filter = "simple"; } return RuleMetadata () { label = name, description = description, filter = filter, base_dir = Path.get_dirname (filename) }; } catch (GLib.Error e) { throw new RuleParseError.FAILED ("can't load rule: %s", e.message); } } internal KeyEventFilter get_filter () { if (filter == null) { var type = filter_types.get (metadata.filter); filter = (KeyEventFilter) Object.new (type); } return filter; } /** * Create a rule. * * @param name name of the rule to load * * @return a new Rule */ public Rule (string name) throws RuleParseError { var metadata = find_rule (name); if (metadata == null) { throw new RuleParseError.FAILED ( "can't find metadata for \"%s\"", name); } this.metadata = metadata; var default_metadata = find_rule ("default"); foreach (var entry in keymap_names) { var _metadata = metadata; if (metadata.locate_map_file ("keymap", entry.value) == null) { _metadata = default_metadata; } keymaps[entry.key] = new KeymapMapFile (_metadata, entry.value); } if (metadata.locate_map_file ("rom-kana", "default") == null) { _metadata = default_metadata; } rom_kana = new RomKanaMapFile (_metadata); } ~Rule () { if (filter != null) { filter.reset (); filter = null; } } static Map rule_cache = new HashMap (); /** * Locate a rule by name. * * @param name name of the rule * * @return a RuleMetadata or `null` */ public static RuleMetadata? find_rule (string name) { if (rule_cache.has_key (name)) { return rule_cache.get (name); } foreach (var dir in rules_path) { var base_dir_filename = Path.build_filename (dir, name); var metadata_filename = Path.build_filename (base_dir_filename, "metadata.json"); if (FileUtils.test (metadata_filename, FileTest.EXISTS)) { try { var metadata = load_metadata (metadata_filename); metadata.name = name; rule_cache.set (name, metadata); return metadata; } catch (RuleParseError e) { continue; } } } return null; } /** * List rules. * * @return an array of RuleMetadata */ public static RuleMetadata[] list () { Set names = new HashSet (); RuleMetadata[] rules = {}; foreach (var dir in rules_path) { Dir handle; try { handle = Dir.open (dir); } catch (GLib.Error e) { continue; } string? name; while ((name = handle.read_name ()) != null) { if (name in names) { continue; } var metadata_filename = Path.build_filename (dir, name, "metadata.json"); if (FileUtils.test (metadata_filename, FileTest.EXISTS)) { try { var metadata = load_metadata (metadata_filename); names.add (name); metadata.name = name; rules += metadata; } catch (RuleParseError e) { warning ("can't load metadata %s: %s", metadata_filename, e.message); } } } } return rules; } } } libskk-1.0.0/libskk/rule.c0000664000076400007640000020122412016556644012326 00000000000000/* rule.c generated by valac 0.16.0, the Vala compiler * generated from rule.vala, do not modify */ /* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ #include #include #include #include #include #include #include #define SKK_TYPE_MAP_FILE (skk_map_file_get_type ()) #define SKK_MAP_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_MAP_FILE, SkkMapFile)) #define SKK_MAP_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_MAP_FILE, SkkMapFileClass)) #define SKK_IS_MAP_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_MAP_FILE)) #define SKK_IS_MAP_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_MAP_FILE)) #define SKK_MAP_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_MAP_FILE, SkkMapFileClass)) typedef struct _SkkMapFile SkkMapFile; typedef struct _SkkMapFileClass SkkMapFileClass; typedef struct _SkkMapFilePrivate SkkMapFilePrivate; #define SKK_TYPE_KEYMAP_MAP_FILE (skk_keymap_map_file_get_type ()) #define SKK_KEYMAP_MAP_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KEYMAP_MAP_FILE, SkkKeymapMapFile)) #define SKK_KEYMAP_MAP_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KEYMAP_MAP_FILE, SkkKeymapMapFileClass)) #define SKK_IS_KEYMAP_MAP_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KEYMAP_MAP_FILE)) #define SKK_IS_KEYMAP_MAP_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KEYMAP_MAP_FILE)) #define SKK_KEYMAP_MAP_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KEYMAP_MAP_FILE, SkkKeymapMapFileClass)) typedef struct _SkkKeymapMapFile SkkKeymapMapFile; typedef struct _SkkKeymapMapFileClass SkkKeymapMapFileClass; typedef struct _SkkKeymapMapFilePrivate SkkKeymapMapFilePrivate; #define SKK_TYPE_KEYMAP (skk_keymap_get_type ()) #define SKK_KEYMAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KEYMAP, SkkKeymap)) #define SKK_KEYMAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KEYMAP, SkkKeymapClass)) #define SKK_IS_KEYMAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KEYMAP)) #define SKK_IS_KEYMAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KEYMAP)) #define SKK_KEYMAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KEYMAP, SkkKeymapClass)) typedef struct _SkkKeymap SkkKeymap; typedef struct _SkkKeymapClass SkkKeymapClass; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) #define SKK_TYPE_RULE_METADATA (skk_rule_metadata_get_type ()) typedef struct _SkkRuleMetadata SkkRuleMetadata; #define __vala_JsonNode_free0(var) ((var == NULL) ? NULL : (var = (_vala_JsonNode_free (var), NULL))) #define _g_free0(var) (var = (g_free (var), NULL)) #define SKK_TYPE_ROM_KANA_MAP_FILE (skk_rom_kana_map_file_get_type ()) #define SKK_ROM_KANA_MAP_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_ROM_KANA_MAP_FILE, SkkRomKanaMapFile)) #define SKK_ROM_KANA_MAP_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_ROM_KANA_MAP_FILE, SkkRomKanaMapFileClass)) #define SKK_IS_ROM_KANA_MAP_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_ROM_KANA_MAP_FILE)) #define SKK_IS_ROM_KANA_MAP_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_ROM_KANA_MAP_FILE)) #define SKK_ROM_KANA_MAP_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_ROM_KANA_MAP_FILE, SkkRomKanaMapFileClass)) typedef struct _SkkRomKanaMapFile SkkRomKanaMapFile; typedef struct _SkkRomKanaMapFileClass SkkRomKanaMapFileClass; typedef struct _SkkRomKanaMapFilePrivate SkkRomKanaMapFilePrivate; #define SKK_TYPE_ROM_KANA_NODE (skk_rom_kana_node_get_type ()) #define SKK_ROM_KANA_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_ROM_KANA_NODE, SkkRomKanaNode)) #define SKK_ROM_KANA_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_ROM_KANA_NODE, SkkRomKanaNodeClass)) #define SKK_IS_ROM_KANA_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_ROM_KANA_NODE)) #define SKK_IS_ROM_KANA_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_ROM_KANA_NODE)) #define SKK_ROM_KANA_NODE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_ROM_KANA_NODE, SkkRomKanaNodeClass)) typedef struct _SkkRomKanaNode SkkRomKanaNode; typedef struct _SkkRomKanaNodeClass SkkRomKanaNodeClass; #define SKK_TYPE_ROM_KANA_ENTRY (skk_rom_kana_entry_get_type ()) typedef struct _SkkRomKanaEntry SkkRomKanaEntry; #define __vala_JsonArray_free0(var) ((var == NULL) ? NULL : (var = (_vala_JsonArray_free (var), NULL))) #define SKK_TYPE_RULE (skk_rule_get_type ()) #define SKK_RULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_RULE, SkkRule)) #define SKK_RULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_RULE, SkkRuleClass)) #define SKK_IS_RULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_RULE)) #define SKK_IS_RULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_RULE)) #define SKK_RULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_RULE, SkkRuleClass)) typedef struct _SkkRule SkkRule; typedef struct _SkkRuleClass SkkRuleClass; typedef struct _SkkRulePrivate SkkRulePrivate; #define SKK_TYPE_KEY_EVENT_FILTER (skk_key_event_filter_get_type ()) #define SKK_KEY_EVENT_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KEY_EVENT_FILTER, SkkKeyEventFilter)) #define SKK_KEY_EVENT_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KEY_EVENT_FILTER, SkkKeyEventFilterClass)) #define SKK_IS_KEY_EVENT_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KEY_EVENT_FILTER)) #define SKK_IS_KEY_EVENT_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KEY_EVENT_FILTER)) #define SKK_KEY_EVENT_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KEY_EVENT_FILTER, SkkKeyEventFilterClass)) typedef struct _SkkKeyEventFilter SkkKeyEventFilter; typedef struct _SkkKeyEventFilterClass SkkKeyEventFilterClass; #define SKK_TYPE_KANA_MODE (skk_kana_mode_get_type ()) #define SKK_TYPE_INPUT_MODE (skk_input_mode_get_type ()) #define SKK_TYPE_ENTRY (skk_entry_get_type ()) typedef struct _SkkEntry SkkEntry; #define __vala_JsonObject_free0(var) ((var == NULL) ? NULL : (var = (_vala_JsonObject_free (var), NULL))) #define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL))) #define _skk_rule_metadata_free0(var) ((var == NULL) ? NULL : (var = (skk_rule_metadata_free (var), NULL))) #define _g_dir_close0(var) ((var == NULL) ? NULL : (var = (g_dir_close (var), NULL))) #define SKK_TYPE_SIMPLE_KEY_EVENT_FILTER (skk_simple_key_event_filter_get_type ()) #define SKK_SIMPLE_KEY_EVENT_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_SIMPLE_KEY_EVENT_FILTER, SkkSimpleKeyEventFilter)) #define SKK_SIMPLE_KEY_EVENT_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_SIMPLE_KEY_EVENT_FILTER, SkkSimpleKeyEventFilterClass)) #define SKK_IS_SIMPLE_KEY_EVENT_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_SIMPLE_KEY_EVENT_FILTER)) #define SKK_IS_SIMPLE_KEY_EVENT_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_SIMPLE_KEY_EVENT_FILTER)) #define SKK_SIMPLE_KEY_EVENT_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_SIMPLE_KEY_EVENT_FILTER, SkkSimpleKeyEventFilterClass)) typedef struct _SkkSimpleKeyEventFilter SkkSimpleKeyEventFilter; typedef struct _SkkSimpleKeyEventFilterClass SkkSimpleKeyEventFilterClass; #define SKK_TYPE_NICOLA_KEY_EVENT_FILTER (skk_nicola_key_event_filter_get_type ()) #define SKK_NICOLA_KEY_EVENT_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_NICOLA_KEY_EVENT_FILTER, SkkNicolaKeyEventFilter)) #define SKK_NICOLA_KEY_EVENT_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_NICOLA_KEY_EVENT_FILTER, SkkNicolaKeyEventFilterClass)) #define SKK_IS_NICOLA_KEY_EVENT_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_NICOLA_KEY_EVENT_FILTER)) #define SKK_IS_NICOLA_KEY_EVENT_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_NICOLA_KEY_EVENT_FILTER)) #define SKK_NICOLA_KEY_EVENT_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_NICOLA_KEY_EVENT_FILTER, SkkNicolaKeyEventFilterClass)) typedef struct _SkkNicolaKeyEventFilter SkkNicolaKeyEventFilter; typedef struct _SkkNicolaKeyEventFilterClass SkkNicolaKeyEventFilterClass; struct _SkkMapFile { GObject parent_instance; SkkMapFilePrivate * priv; }; struct _SkkMapFileClass { GObjectClass parent_class; }; struct _SkkKeymapMapFile { SkkMapFile parent_instance; SkkKeymapMapFilePrivate * priv; SkkKeymap* keymap; }; struct _SkkKeymapMapFileClass { SkkMapFileClass parent_class; }; struct _SkkRuleMetadata { gchar* base_dir; gchar* name; gchar* label; gchar* description; gchar* filter; }; typedef enum { SKK_RULE_PARSE_ERROR_FAILED } SkkRuleParseError; #define SKK_RULE_PARSE_ERROR skk_rule_parse_error_quark () struct _SkkRomKanaMapFile { SkkMapFile parent_instance; SkkRomKanaMapFilePrivate * priv; SkkRomKanaNode* root_node; }; struct _SkkRomKanaMapFileClass { SkkMapFileClass parent_class; }; struct _SkkRomKanaEntry { gchar* rom; gchar* carryover; gchar* hiragana; gchar* katakana; gchar* hankaku_katakana; }; struct _SkkRule { GObject parent_instance; SkkRulePrivate * priv; SkkKeymapMapFile** keymaps; gint keymaps_length1; gint _keymaps_size_; SkkRomKanaMapFile* rom_kana; }; struct _SkkRuleClass { GObjectClass parent_class; }; struct _SkkRulePrivate { SkkRuleMetadata _metadata; SkkKeyEventFilter* filter; }; typedef enum { SKK_KANA_MODE_HIRAGANA, SKK_KANA_MODE_KATAKANA, SKK_KANA_MODE_HANKAKU_KATAKANA } SkkKanaMode; typedef enum { SKK_INPUT_MODE_HIRAGANA = SKK_KANA_MODE_HIRAGANA, SKK_INPUT_MODE_KATAKANA = SKK_KANA_MODE_KATAKANA, SKK_INPUT_MODE_HANKAKU_KATAKANA = SKK_KANA_MODE_HANKAKU_KATAKANA, SKK_INPUT_MODE_LATIN, SKK_INPUT_MODE_WIDE_LATIN, SKK_INPUT_MODE_LAST, SKK_INPUT_MODE_DEFAULT = SKK_INPUT_MODE_HIRAGANA } SkkInputMode; struct _SkkEntry { gpointer key; gpointer value; }; static gpointer skk_keymap_map_file_parent_class = NULL; static gpointer skk_rom_kana_map_file_parent_class = NULL; static gpointer skk_rule_parent_class = NULL; static gchar** skk_rule_rules_path; static gint skk_rule_rules_path_length1; static gchar** skk_rule_rules_path = NULL; static gint skk_rule_rules_path_length1 = 0; static gint _skk_rule_rules_path_size_ = 0; static GeeMap* skk_rule_filter_types; static GeeMap* skk_rule_filter_types = NULL; static GeeMap* skk_rule_rule_cache; static GeeMap* skk_rule_rule_cache = NULL; GType skk_map_file_get_type (void) G_GNUC_CONST; GType skk_keymap_map_file_get_type (void) G_GNUC_CONST; GType skk_keymap_get_type (void) G_GNUC_CONST; enum { SKK_KEYMAP_MAP_FILE_DUMMY_PROPERTY }; GType skk_rule_metadata_get_type (void) G_GNUC_CONST; SkkRuleMetadata* skk_rule_metadata_dup (const SkkRuleMetadata* self); void skk_rule_metadata_free (SkkRuleMetadata* self); void skk_rule_metadata_copy (const SkkRuleMetadata* self, SkkRuleMetadata* dest); void skk_rule_metadata_destroy (SkkRuleMetadata* self); GQuark skk_rule_parse_error_quark (void); SkkKeymapMapFile* skk_keymap_map_file_new (SkkRuleMetadata* metadata, const gchar* mode, GError** error); SkkKeymapMapFile* skk_keymap_map_file_construct (GType object_type, SkkRuleMetadata* metadata, const gchar* mode, GError** error); SkkMapFile* skk_map_file_construct (GType object_type, SkkRuleMetadata* metadata, const gchar* type, const gchar* name, GError** error); gboolean skk_map_file_has_map (SkkMapFile* self, const gchar* name); GeeMap* skk_map_file_get (SkkMapFile* self, const gchar* name); SkkKeymap* skk_keymap_new (void); SkkKeymap* skk_keymap_construct (GType object_type); void skk_keymap_set (SkkKeymap* self, const gchar* key, const gchar* command); static void _vala_JsonNode_free (JsonNode* self); static void skk_keymap_map_file_finalize (GObject* obj); GType skk_rom_kana_map_file_get_type (void) G_GNUC_CONST; GType skk_rom_kana_node_get_type (void) G_GNUC_CONST; enum { SKK_ROM_KANA_MAP_FILE_DUMMY_PROPERTY }; static SkkRomKanaNode* skk_rom_kana_map_file_parse_rule (SkkRomKanaMapFile* self, GeeMap* map, GError** error); GType skk_rom_kana_entry_get_type (void) G_GNUC_CONST; SkkRomKanaEntry* skk_rom_kana_entry_dup (const SkkRomKanaEntry* self); void skk_rom_kana_entry_free (SkkRomKanaEntry* self); void skk_rom_kana_entry_copy (const SkkRomKanaEntry* self, SkkRomKanaEntry* dest); void skk_rom_kana_entry_destroy (SkkRomKanaEntry* self); SkkRomKanaNode* skk_rom_kana_node_new (SkkRomKanaEntry* entry); SkkRomKanaNode* skk_rom_kana_node_construct (GType object_type, SkkRomKanaEntry* entry); static JsonArray* _vala_JsonArray_copy (JsonArray* self); gchar* skk_util_get_katakana (const gchar* kana); gchar* skk_util_get_hankaku_katakana (const gchar* kana); void skk_rom_kana_node_insert (SkkRomKanaNode* self, const gchar* key, SkkRomKanaEntry* entry); static void _vala_JsonArray_free (JsonArray* self); SkkRomKanaMapFile* skk_rom_kana_map_file_new (SkkRuleMetadata* metadata, GError** error); SkkRomKanaMapFile* skk_rom_kana_map_file_construct (GType object_type, SkkRuleMetadata* metadata, GError** error); static void skk_rom_kana_map_file_finalize (GObject* obj); gchar* skk_rule_metadata_locate_map_file (SkkRuleMetadata *self, const gchar* type, const gchar* name); GType skk_rule_get_type (void) G_GNUC_CONST; GType skk_key_event_filter_get_type (void) G_GNUC_CONST; #define SKK_RULE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SKK_TYPE_RULE, SkkRulePrivate)) enum { SKK_RULE_DUMMY_PROPERTY, SKK_RULE_METADATA }; void skk_key_event_filter_reset (SkkKeyEventFilter* self); GType skk_kana_mode_get_type (void) G_GNUC_CONST; GType skk_input_mode_get_type (void) G_GNUC_CONST; static GType* _g_type_dup (GType* self); GType skk_entry_get_type (void) G_GNUC_CONST; SkkEntry* skk_entry_dup (const SkkEntry* self); void skk_entry_free (SkkEntry* self); void skk_entry_copy (const SkkEntry* self, SkkEntry* dest); void skk_entry_destroy (SkkEntry* self); static void skk_rule_load_metadata (const gchar* filename, SkkRuleMetadata* result, GError** error); static JsonNode* _vala_JsonNode_copy (JsonNode* self); static JsonObject* _vala_JsonObject_copy (JsonObject* self); static void _vala_JsonObject_free (JsonObject* self); SkkKeyEventFilter* skk_rule_get_filter (SkkRule* self); void skk_rule_get_metadata (SkkRule* self, SkkRuleMetadata* result); SkkRule* skk_rule_new (const gchar* name, GError** error); SkkRule* skk_rule_construct (GType object_type, const gchar* name, GError** error); SkkRuleMetadata* skk_rule_find_rule (const gchar* name); static void skk_rule_set_metadata (SkkRule* self, SkkRuleMetadata* value); SkkRuleMetadata* skk_rule_list (int* result_length1); static void _vala_SkkRuleMetadata_array_free (SkkRuleMetadata* array, gint array_length); static void _vala_array_add1 (SkkRuleMetadata** array, int* length, int* size, const SkkRuleMetadata* value); gchar** skk_util_build_data_path (const gchar* subdir, int* result_length1); GType skk_simple_key_event_filter_get_type (void) G_GNUC_CONST; GType skk_nicola_key_event_filter_get_type (void) G_GNUC_CONST; static void skk_rule_finalize (GObject* obj); static void _vala_skk_rule_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); static void _vala_skk_rule_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec); static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func); static const SkkEntry SKK_RULE_keymap_names[5] = {{SKK_INPUT_MODE_HIRAGANA, "hiragana"}, {SKK_INPUT_MODE_KATAKANA, "katakana"}, {SKK_INPUT_MODE_HANKAKU_KATAKANA, "hankaku-katakana"}, {SKK_INPUT_MODE_LATIN, "latin"}, {SKK_INPUT_MODE_WIDE_LATIN, "wide-latin"}}; static void _vala_JsonNode_free (JsonNode* self) { g_boxed_free (json_node_get_type (), self); } SkkKeymapMapFile* skk_keymap_map_file_construct (GType object_type, SkkRuleMetadata* metadata, const gchar* mode, GError** error) { SkkKeymapMapFile * self = NULL; SkkRuleMetadata _tmp0_; const gchar* _tmp1_; gboolean _tmp2_ = FALSE; GError * _inner_error_ = NULL; g_return_val_if_fail (metadata != NULL, NULL); g_return_val_if_fail (mode != NULL, NULL); _tmp0_ = *metadata; _tmp1_ = mode; self = (SkkKeymapMapFile*) skk_map_file_construct (object_type, &_tmp0_, "keymap", _tmp1_, &_inner_error_); if (_inner_error_ != NULL) { if (_inner_error_->domain == SKK_RULE_PARSE_ERROR) { g_propagate_error (error, _inner_error_); _g_object_unref0 (self); return NULL; } else { g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } } _tmp2_ = skk_map_file_has_map ((SkkMapFile*) self, "keymap"); if (_tmp2_) { GeeMap* _tmp3_ = NULL; GeeMap* map; SkkKeymap* _tmp4_; _tmp3_ = skk_map_file_get ((SkkMapFile*) self, "keymap"); map = _tmp3_; _tmp4_ = skk_keymap_new (); _g_object_unref0 (self->keymap); self->keymap = _tmp4_; { GeeMap* _tmp5_; GeeSet* _tmp6_; GeeSet* _tmp7_; GeeSet* _tmp8_; GeeIterator* _tmp9_ = NULL; GeeIterator* _tmp10_; GeeIterator* _key_it; _tmp5_ = map; _tmp6_ = gee_map_get_keys (_tmp5_); _tmp7_ = _tmp6_; _tmp8_ = _tmp7_; _tmp9_ = gee_iterable_iterator ((GeeIterable*) _tmp8_); _tmp10_ = _tmp9_; _g_object_unref0 (_tmp8_); _key_it = _tmp10_; while (TRUE) { GeeIterator* _tmp11_; gboolean _tmp12_ = FALSE; GeeIterator* _tmp13_; gpointer _tmp14_ = NULL; gchar* key; GeeMap* _tmp15_; const gchar* _tmp16_; gpointer _tmp17_ = NULL; JsonNode* value; SkkKeymap* _tmp18_; const gchar* _tmp19_; JsonNode* _tmp20_; const gchar* _tmp21_ = NULL; _tmp11_ = _key_it; _tmp12_ = gee_iterator_next (_tmp11_); if (!_tmp12_) { break; } _tmp13_ = _key_it; _tmp14_ = gee_iterator_get (_tmp13_); key = (gchar*) _tmp14_; _tmp15_ = map; _tmp16_ = key; _tmp17_ = gee_map_get (_tmp15_, _tmp16_); value = (JsonNode*) _tmp17_; _tmp18_ = self->keymap; _tmp19_ = key; _tmp20_ = value; _tmp21_ = json_node_get_string (_tmp20_); skk_keymap_set (_tmp18_, _tmp19_, _tmp21_); __vala_JsonNode_free0 (value); _g_free0 (key); } _g_object_unref0 (_key_it); } _g_object_unref0 (map); } else { GError* _tmp22_; _tmp22_ = g_error_new_literal (SKK_RULE_PARSE_ERROR, SKK_RULE_PARSE_ERROR_FAILED, "no keymap entry"); _inner_error_ = _tmp22_; if (_inner_error_->domain == SKK_RULE_PARSE_ERROR) { g_propagate_error (error, _inner_error_); _g_object_unref0 (self); return NULL; } else { g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } } return self; } SkkKeymapMapFile* skk_keymap_map_file_new (SkkRuleMetadata* metadata, const gchar* mode, GError** error) { return skk_keymap_map_file_construct (SKK_TYPE_KEYMAP_MAP_FILE, metadata, mode, error); } static void skk_keymap_map_file_class_init (SkkKeymapMapFileClass * klass) { skk_keymap_map_file_parent_class = g_type_class_peek_parent (klass); G_OBJECT_CLASS (klass)->finalize = skk_keymap_map_file_finalize; } static void skk_keymap_map_file_instance_init (SkkKeymapMapFile * self) { } static void skk_keymap_map_file_finalize (GObject* obj) { SkkKeymapMapFile * self; self = SKK_KEYMAP_MAP_FILE (obj); _g_object_unref0 (self->keymap); G_OBJECT_CLASS (skk_keymap_map_file_parent_class)->finalize (obj); } GType skk_keymap_map_file_get_type (void) { static volatile gsize skk_keymap_map_file_type_id__volatile = 0; if (g_once_init_enter (&skk_keymap_map_file_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkKeymapMapFileClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_keymap_map_file_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkKeymapMapFile), 0, (GInstanceInitFunc) skk_keymap_map_file_instance_init, NULL }; GType skk_keymap_map_file_type_id; skk_keymap_map_file_type_id = g_type_register_static (SKK_TYPE_MAP_FILE, "SkkKeymapMapFile", &g_define_type_info, 0); g_once_init_leave (&skk_keymap_map_file_type_id__volatile, skk_keymap_map_file_type_id); } return skk_keymap_map_file_type_id__volatile; } static JsonArray* _vala_JsonArray_copy (JsonArray* self) { return g_boxed_copy (json_array_get_type (), self); } static gpointer __vala_JsonArray_copy0 (gpointer self) { return self ? _vala_JsonArray_copy (self) : NULL; } static void _vala_JsonArray_free (JsonArray* self) { g_boxed_free (json_array_get_type (), self); } static SkkRomKanaNode* skk_rom_kana_map_file_parse_rule (SkkRomKanaMapFile* self, GeeMap* map, GError** error) { SkkRomKanaNode* result = NULL; SkkRomKanaNode* _tmp0_; SkkRomKanaNode* node; GError * _inner_error_ = NULL; g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (map != NULL, NULL); _tmp0_ = skk_rom_kana_node_new (NULL); node = _tmp0_; { GeeMap* _tmp1_; GeeSet* _tmp2_; GeeSet* _tmp3_; GeeSet* _tmp4_; GeeIterator* _tmp5_ = NULL; GeeIterator* _tmp6_; GeeIterator* _key_it; _tmp1_ = map; _tmp2_ = gee_map_get_keys (_tmp1_); _tmp3_ = _tmp2_; _tmp4_ = _tmp3_; _tmp5_ = gee_iterable_iterator ((GeeIterable*) _tmp4_); _tmp6_ = _tmp5_; _g_object_unref0 (_tmp4_); _key_it = _tmp6_; while (TRUE) { GeeIterator* _tmp7_; gboolean _tmp8_ = FALSE; GeeIterator* _tmp9_; gpointer _tmp10_ = NULL; gchar* key; GeeMap* _tmp11_; const gchar* _tmp12_; gpointer _tmp13_ = NULL; JsonNode* value; JsonNode* _tmp14_; JsonNodeType _tmp15_ = 0; _tmp7_ = _key_it; _tmp8_ = gee_iterator_next (_tmp7_); if (!_tmp8_) { break; } _tmp9_ = _key_it; _tmp10_ = gee_iterator_get (_tmp9_); key = (gchar*) _tmp10_; _tmp11_ = map; _tmp12_ = key; _tmp13_ = gee_map_get (_tmp11_, _tmp12_); value = (JsonNode*) _tmp13_; _tmp14_ = value; _tmp15_ = json_node_get_node_type (_tmp14_); if (_tmp15_ == JSON_NODE_ARRAY) { JsonNode* _tmp16_; JsonArray* _tmp17_ = NULL; JsonArray* _tmp18_; JsonArray* components; JsonArray* _tmp19_; guint _tmp20_ = 0U; guint length; gboolean _tmp21_ = FALSE; guint _tmp22_; gboolean _tmp24_; _tmp16_ = value; _tmp17_ = json_node_get_array (_tmp16_); _tmp18_ = __vala_JsonArray_copy0 (_tmp17_); components = _tmp18_; _tmp19_ = components; _tmp20_ = json_array_get_length (_tmp19_); length = _tmp20_; _tmp22_ = length; if (((guint) 2) <= _tmp22_) { guint _tmp23_; _tmp23_ = length; _tmp21_ = _tmp23_ <= ((guint) 4); } else { _tmp21_ = FALSE; } _tmp24_ = _tmp21_; if (_tmp24_) { JsonArray* _tmp25_; const gchar* _tmp26_ = NULL; gchar* _tmp27_; gchar* carryover; JsonArray* _tmp28_; const gchar* _tmp29_ = NULL; gchar* _tmp30_; gchar* hiragana; gchar* _tmp31_ = NULL; guint _tmp32_; const gchar* _tmp38_; gchar* _tmp39_; gchar* katakana; gchar* _tmp40_ = NULL; guint _tmp41_; const gchar* _tmp47_; gchar* _tmp48_; gchar* hankaku_katakana; const gchar* _tmp49_; gchar* _tmp50_; const gchar* _tmp51_; gchar* _tmp52_; const gchar* _tmp53_; gchar* _tmp54_; const gchar* _tmp55_; gchar* _tmp56_; const gchar* _tmp57_; gchar* _tmp58_; SkkRomKanaEntry _tmp59_ = {0}; SkkRomKanaEntry entry; SkkRomKanaNode* _tmp60_; const gchar* _tmp61_; SkkRomKanaEntry _tmp62_; _tmp25_ = components; _tmp26_ = json_array_get_string_element (_tmp25_, (guint) 0); _tmp27_ = g_strdup (_tmp26_); carryover = _tmp27_; _tmp28_ = components; _tmp29_ = json_array_get_string_element (_tmp28_, (guint) 1); _tmp30_ = g_strdup (_tmp29_); hiragana = _tmp30_; _tmp32_ = length; if (_tmp32_ >= ((guint) 3)) { JsonArray* _tmp33_; const gchar* _tmp34_ = NULL; gchar* _tmp35_; _tmp33_ = components; _tmp34_ = json_array_get_string_element (_tmp33_, (guint) 2); _tmp35_ = g_strdup (_tmp34_); _g_free0 (_tmp31_); _tmp31_ = _tmp35_; } else { const gchar* _tmp36_; gchar* _tmp37_ = NULL; _tmp36_ = hiragana; _tmp37_ = skk_util_get_katakana (_tmp36_); _g_free0 (_tmp31_); _tmp31_ = _tmp37_; } _tmp38_ = _tmp31_; _tmp39_ = g_strdup (_tmp38_); katakana = _tmp39_; _tmp41_ = length; if (_tmp41_ == ((guint) 4)) { JsonArray* _tmp42_; const gchar* _tmp43_ = NULL; gchar* _tmp44_; _tmp42_ = components; _tmp43_ = json_array_get_string_element (_tmp42_, (guint) 3); _tmp44_ = g_strdup (_tmp43_); _g_free0 (_tmp40_); _tmp40_ = _tmp44_; } else { const gchar* _tmp45_; gchar* _tmp46_ = NULL; _tmp45_ = katakana; _tmp46_ = skk_util_get_hankaku_katakana (_tmp45_); _g_free0 (_tmp40_); _tmp40_ = _tmp46_; } _tmp47_ = _tmp40_; _tmp48_ = g_strdup (_tmp47_); hankaku_katakana = _tmp48_; _tmp49_ = key; _tmp50_ = g_strdup (_tmp49_); _tmp51_ = carryover; _tmp52_ = g_strdup (_tmp51_); _tmp53_ = hiragana; _tmp54_ = g_strdup (_tmp53_); _tmp55_ = katakana; _tmp56_ = g_strdup (_tmp55_); _tmp57_ = hankaku_katakana; _tmp58_ = g_strdup (_tmp57_); _g_free0 (_tmp59_.rom); _tmp59_.rom = _tmp50_; _g_free0 (_tmp59_.carryover); _tmp59_.carryover = _tmp52_; _g_free0 (_tmp59_.hiragana); _tmp59_.hiragana = _tmp54_; _g_free0 (_tmp59_.katakana); _tmp59_.katakana = _tmp56_; _g_free0 (_tmp59_.hankaku_katakana); _tmp59_.hankaku_katakana = _tmp58_; entry = _tmp59_; _tmp60_ = node; _tmp61_ = key; _tmp62_ = entry; skk_rom_kana_node_insert (_tmp60_, _tmp61_, &_tmp62_); skk_rom_kana_entry_destroy (&entry); _g_free0 (hankaku_katakana); _g_free0 (_tmp40_); _g_free0 (katakana); _g_free0 (_tmp31_); _g_free0 (hiragana); _g_free0 (carryover); } else { GError* _tmp63_; _tmp63_ = g_error_new_literal (SKK_RULE_PARSE_ERROR, SKK_RULE_PARSE_ERROR_FAILED, "\"rom-kana\" must have two to four elements"); _inner_error_ = _tmp63_; if (_inner_error_->domain == SKK_RULE_PARSE_ERROR) { g_propagate_error (error, _inner_error_); __vala_JsonArray_free0 (components); __vala_JsonNode_free0 (value); _g_free0 (key); _g_object_unref0 (_key_it); _g_object_unref0 (node); return NULL; } else { __vala_JsonArray_free0 (components); __vala_JsonNode_free0 (value); _g_free0 (key); _g_object_unref0 (_key_it); _g_object_unref0 (node); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } } __vala_JsonArray_free0 (components); } else { GError* _tmp64_; _tmp64_ = g_error_new_literal (SKK_RULE_PARSE_ERROR, SKK_RULE_PARSE_ERROR_FAILED, "\"rom-kana\" member must be either an array or null"); _inner_error_ = _tmp64_; if (_inner_error_->domain == SKK_RULE_PARSE_ERROR) { g_propagate_error (error, _inner_error_); __vala_JsonNode_free0 (value); _g_free0 (key); _g_object_unref0 (_key_it); _g_object_unref0 (node); return NULL; } else { __vala_JsonNode_free0 (value); _g_free0 (key); _g_object_unref0 (_key_it); _g_object_unref0 (node); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } } __vala_JsonNode_free0 (value); _g_free0 (key); } _g_object_unref0 (_key_it); } result = node; return result; } SkkRomKanaMapFile* skk_rom_kana_map_file_construct (GType object_type, SkkRuleMetadata* metadata, GError** error) { SkkRomKanaMapFile * self = NULL; SkkRuleMetadata _tmp0_; gboolean _tmp1_ = FALSE; GError * _inner_error_ = NULL; g_return_val_if_fail (metadata != NULL, NULL); _tmp0_ = *metadata; self = (SkkRomKanaMapFile*) skk_map_file_construct (object_type, &_tmp0_, "rom-kana", "default", &_inner_error_); if (_inner_error_ != NULL) { if (_inner_error_->domain == SKK_RULE_PARSE_ERROR) { g_propagate_error (error, _inner_error_); _g_object_unref0 (self); return NULL; } else { g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } } _tmp1_ = skk_map_file_has_map ((SkkMapFile*) self, "rom-kana"); if (_tmp1_) { GeeMap* _tmp2_ = NULL; GeeMap* _tmp3_; SkkRomKanaNode* _tmp4_ = NULL; SkkRomKanaNode* _tmp5_; SkkRomKanaNode* _tmp6_; _tmp2_ = skk_map_file_get ((SkkMapFile*) self, "rom-kana"); _tmp3_ = _tmp2_; _tmp4_ = skk_rom_kana_map_file_parse_rule (self, _tmp3_, &_inner_error_); _tmp5_ = _tmp4_; _g_object_unref0 (_tmp3_); _tmp6_ = _tmp5_; if (_inner_error_ != NULL) { if (_inner_error_->domain == SKK_RULE_PARSE_ERROR) { g_propagate_error (error, _inner_error_); _g_object_unref0 (self); return NULL; } else { g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } } _g_object_unref0 (self->root_node); self->root_node = _tmp6_; } else { GError* _tmp7_; _tmp7_ = g_error_new_literal (SKK_RULE_PARSE_ERROR, SKK_RULE_PARSE_ERROR_FAILED, "no rom-kana entry"); _inner_error_ = _tmp7_; if (_inner_error_->domain == SKK_RULE_PARSE_ERROR) { g_propagate_error (error, _inner_error_); _g_object_unref0 (self); return NULL; } else { g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } } return self; } SkkRomKanaMapFile* skk_rom_kana_map_file_new (SkkRuleMetadata* metadata, GError** error) { return skk_rom_kana_map_file_construct (SKK_TYPE_ROM_KANA_MAP_FILE, metadata, error); } static void skk_rom_kana_map_file_class_init (SkkRomKanaMapFileClass * klass) { skk_rom_kana_map_file_parent_class = g_type_class_peek_parent (klass); G_OBJECT_CLASS (klass)->finalize = skk_rom_kana_map_file_finalize; } static void skk_rom_kana_map_file_instance_init (SkkRomKanaMapFile * self) { } static void skk_rom_kana_map_file_finalize (GObject* obj) { SkkRomKanaMapFile * self; self = SKK_ROM_KANA_MAP_FILE (obj); _g_object_unref0 (self->root_node); G_OBJECT_CLASS (skk_rom_kana_map_file_parent_class)->finalize (obj); } GType skk_rom_kana_map_file_get_type (void) { static volatile gsize skk_rom_kana_map_file_type_id__volatile = 0; if (g_once_init_enter (&skk_rom_kana_map_file_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkRomKanaMapFileClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_rom_kana_map_file_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkRomKanaMapFile), 0, (GInstanceInitFunc) skk_rom_kana_map_file_instance_init, NULL }; GType skk_rom_kana_map_file_type_id; skk_rom_kana_map_file_type_id = g_type_register_static (SKK_TYPE_MAP_FILE, "SkkRomKanaMapFile", &g_define_type_info, 0); g_once_init_leave (&skk_rom_kana_map_file_type_id__volatile, skk_rom_kana_map_file_type_id); } return skk_rom_kana_map_file_type_id__volatile; } GQuark skk_rule_parse_error_quark (void) { return g_quark_from_static_string ("skk_rule_parse_error-quark"); } /** * Return the path of the map file. * * @param type type of the map file * @param name name of the map file * * @return the absolute path of the map file */ gchar* skk_rule_metadata_locate_map_file (SkkRuleMetadata *self, const gchar* type, const gchar* name) { gchar* result = NULL; const gchar* _tmp0_; const gchar* _tmp1_; const gchar* _tmp2_; gchar* _tmp3_; gchar* _tmp4_; gchar* _tmp5_ = NULL; gchar* _tmp6_; gchar* filename; const gchar* _tmp7_; gboolean _tmp8_ = FALSE; g_return_val_if_fail (type != NULL, NULL); g_return_val_if_fail (name != NULL, NULL); _tmp0_ = (*self).base_dir; _tmp1_ = type; _tmp2_ = name; _tmp3_ = g_strconcat (_tmp2_, ".json", NULL); _tmp4_ = _tmp3_; _tmp5_ = g_build_filename (_tmp0_, _tmp1_, _tmp4_, NULL); _tmp6_ = _tmp5_; _g_free0 (_tmp4_); filename = _tmp6_; _tmp7_ = filename; _tmp8_ = g_file_test (_tmp7_, G_FILE_TEST_EXISTS); if (_tmp8_) { result = filename; return result; } result = NULL; _g_free0 (filename); return result; } void skk_rule_metadata_copy (const SkkRuleMetadata* self, SkkRuleMetadata* dest) { const gchar* _tmp0_; gchar* _tmp1_; const gchar* _tmp2_; gchar* _tmp3_; const gchar* _tmp4_; gchar* _tmp5_; const gchar* _tmp6_; gchar* _tmp7_; const gchar* _tmp8_; gchar* _tmp9_; _tmp0_ = (*self).base_dir; _tmp1_ = g_strdup (_tmp0_); _g_free0 ((*dest).base_dir); (*dest).base_dir = _tmp1_; _tmp2_ = (*self).name; _tmp3_ = g_strdup (_tmp2_); _g_free0 ((*dest).name); (*dest).name = _tmp3_; _tmp4_ = (*self).label; _tmp5_ = g_strdup (_tmp4_); _g_free0 ((*dest).label); (*dest).label = _tmp5_; _tmp6_ = (*self).description; _tmp7_ = g_strdup (_tmp6_); _g_free0 ((*dest).description); (*dest).description = _tmp7_; _tmp8_ = (*self).filter; _tmp9_ = g_strdup (_tmp8_); _g_free0 ((*dest).filter); (*dest).filter = _tmp9_; } void skk_rule_metadata_destroy (SkkRuleMetadata* self) { _g_free0 ((*self).base_dir); _g_free0 ((*self).name); _g_free0 ((*self).label); _g_free0 ((*self).description); _g_free0 ((*self).filter); } SkkRuleMetadata* skk_rule_metadata_dup (const SkkRuleMetadata* self) { SkkRuleMetadata* dup; dup = g_new0 (SkkRuleMetadata, 1); skk_rule_metadata_copy (self, dup); return dup; } void skk_rule_metadata_free (SkkRuleMetadata* self) { skk_rule_metadata_destroy (self); g_free (self); } GType skk_rule_metadata_get_type (void) { static volatile gsize skk_rule_metadata_type_id__volatile = 0; if (g_once_init_enter (&skk_rule_metadata_type_id__volatile)) { GType skk_rule_metadata_type_id; skk_rule_metadata_type_id = g_boxed_type_register_static ("SkkRuleMetadata", (GBoxedCopyFunc) skk_rule_metadata_dup, (GBoxedFreeFunc) skk_rule_metadata_free); g_once_init_leave (&skk_rule_metadata_type_id__volatile, skk_rule_metadata_type_id); } return skk_rule_metadata_type_id__volatile; } static GType* _g_type_dup (GType* self) { GType* dup; dup = g_new0 (GType, 1); memcpy (dup, self, sizeof (GType)); return dup; } static JsonNode* _vala_JsonNode_copy (JsonNode* self) { return g_boxed_copy (json_node_get_type (), self); } static gpointer __vala_JsonNode_copy0 (gpointer self) { return self ? _vala_JsonNode_copy (self) : NULL; } static JsonObject* _vala_JsonObject_copy (JsonObject* self) { return g_boxed_copy (json_object_get_type (), self); } static gpointer __vala_JsonObject_copy0 (gpointer self) { return self ? _vala_JsonObject_copy (self) : NULL; } static void _vala_JsonObject_free (JsonObject* self) { g_boxed_free (json_object_get_type (), self); } static void skk_rule_load_metadata (const gchar* filename, SkkRuleMetadata* result, GError** error) { JsonParser* _tmp0_; JsonParser* parser; GError * _inner_error_ = NULL; g_return_if_fail (filename != NULL); _tmp0_ = json_parser_new (); parser = _tmp0_; { JsonParser* _tmp1_; const gchar* _tmp2_; gboolean _tmp3_ = FALSE; gboolean _tmp4_; JsonParser* _tmp7_; JsonNode* _tmp8_ = NULL; JsonNode* _tmp9_; JsonNode* root; JsonNode* _tmp10_; JsonNodeType _tmp11_ = 0; JsonNode* _tmp13_; JsonObject* _tmp14_ = NULL; JsonObject* _tmp15_; JsonObject* object; JsonNode* member = NULL; JsonObject* _tmp16_; gboolean _tmp17_ = FALSE; JsonObject* _tmp19_; JsonNode* _tmp20_ = NULL; JsonNode* _tmp21_; JsonNode* _tmp22_; const gchar* _tmp23_ = NULL; gchar* _tmp24_; gchar* name; JsonObject* _tmp25_; gboolean _tmp26_ = FALSE; JsonObject* _tmp28_; JsonNode* _tmp29_ = NULL; JsonNode* _tmp30_; JsonNode* _tmp31_; const gchar* _tmp32_ = NULL; gchar* _tmp33_; gchar* description; gchar* filter = NULL; JsonObject* _tmp34_; gboolean _tmp35_ = FALSE; const gchar* _tmp48_; gchar* _tmp49_; const gchar* _tmp50_; gchar* _tmp51_; const gchar* _tmp52_; gchar* _tmp53_; const gchar* _tmp54_; gchar* _tmp55_ = NULL; SkkRuleMetadata _tmp56_ = {0}; _tmp1_ = parser; _tmp2_ = filename; _tmp3_ = json_parser_load_from_file (_tmp1_, _tmp2_, &_inner_error_); _tmp4_ = _tmp3_; if (_inner_error_ != NULL) { goto __catch24_g_error; } if (!_tmp4_) { const gchar* _tmp5_; GError* _tmp6_; _tmp5_ = filename; _tmp6_ = g_error_new (SKK_RULE_PARSE_ERROR, SKK_RULE_PARSE_ERROR_FAILED, "can't load %s", _tmp5_); _inner_error_ = _tmp6_; goto __catch24_g_error; } _tmp7_ = parser; _tmp8_ = json_parser_get_root (_tmp7_); _tmp9_ = __vala_JsonNode_copy0 (_tmp8_); root = _tmp9_; _tmp10_ = root; _tmp11_ = json_node_get_node_type (_tmp10_); if (_tmp11_ != JSON_NODE_OBJECT) { GError* _tmp12_; _tmp12_ = g_error_new_literal (SKK_RULE_PARSE_ERROR, SKK_RULE_PARSE_ERROR_FAILED, "metadata must be a JSON object"); _inner_error_ = _tmp12_; __vala_JsonNode_free0 (root); goto __catch24_g_error; } _tmp13_ = root; _tmp14_ = json_node_get_object (_tmp13_); _tmp15_ = __vala_JsonObject_copy0 (_tmp14_); object = _tmp15_; _tmp16_ = object; _tmp17_ = json_object_has_member (_tmp16_, "name"); if (!_tmp17_) { GError* _tmp18_; _tmp18_ = g_error_new_literal (SKK_RULE_PARSE_ERROR, SKK_RULE_PARSE_ERROR_FAILED, "name is not defined in metadata"); _inner_error_ = _tmp18_; __vala_JsonNode_free0 (member); __vala_JsonObject_free0 (object); __vala_JsonNode_free0 (root); goto __catch24_g_error; } _tmp19_ = object; _tmp20_ = json_object_get_member (_tmp19_, "name"); _tmp21_ = __vala_JsonNode_copy0 (_tmp20_); __vala_JsonNode_free0 (member); member = _tmp21_; _tmp22_ = member; _tmp23_ = json_node_get_string (_tmp22_); _tmp24_ = g_strdup (_tmp23_); name = _tmp24_; _tmp25_ = object; _tmp26_ = json_object_has_member (_tmp25_, "description"); if (!_tmp26_) { GError* _tmp27_; _tmp27_ = g_error_new_literal (SKK_RULE_PARSE_ERROR, SKK_RULE_PARSE_ERROR_FAILED, "description is not defined in metadata"); _inner_error_ = _tmp27_; _g_free0 (name); __vala_JsonNode_free0 (member); __vala_JsonObject_free0 (object); __vala_JsonNode_free0 (root); goto __catch24_g_error; } _tmp28_ = object; _tmp29_ = json_object_get_member (_tmp28_, "description"); _tmp30_ = __vala_JsonNode_copy0 (_tmp29_); __vala_JsonNode_free0 (member); member = _tmp30_; _tmp31_ = member; _tmp32_ = json_node_get_string (_tmp31_); _tmp33_ = g_strdup (_tmp32_); description = _tmp33_; _tmp34_ = object; _tmp35_ = json_object_has_member (_tmp34_, "filter"); if (_tmp35_) { JsonObject* _tmp36_; JsonNode* _tmp37_ = NULL; JsonNode* _tmp38_; JsonNode* _tmp39_; const gchar* _tmp40_ = NULL; gchar* _tmp41_; GeeMap* _tmp42_; const gchar* _tmp43_; gboolean _tmp44_ = FALSE; _tmp36_ = object; _tmp37_ = json_object_get_member (_tmp36_, "filter"); _tmp38_ = __vala_JsonNode_copy0 (_tmp37_); __vala_JsonNode_free0 (member); member = _tmp38_; _tmp39_ = member; _tmp40_ = json_node_get_string (_tmp39_); _tmp41_ = g_strdup (_tmp40_); _g_free0 (filter); filter = _tmp41_; _tmp42_ = skk_rule_filter_types; _tmp43_ = filter; _tmp44_ = gee_map_has_key (_tmp42_, _tmp43_); if (!_tmp44_) { const gchar* _tmp45_; GError* _tmp46_; _tmp45_ = filter; _tmp46_ = g_error_new (SKK_RULE_PARSE_ERROR, SKK_RULE_PARSE_ERROR_FAILED, "unknown filter type %s", _tmp45_); _inner_error_ = _tmp46_; _g_free0 (filter); _g_free0 (description); _g_free0 (name); __vala_JsonNode_free0 (member); __vala_JsonObject_free0 (object); __vala_JsonNode_free0 (root); goto __catch24_g_error; } } else { gchar* _tmp47_; _tmp47_ = g_strdup ("simple"); _g_free0 (filter); filter = _tmp47_; } _tmp48_ = name; _tmp49_ = g_strdup (_tmp48_); _tmp50_ = description; _tmp51_ = g_strdup (_tmp50_); _tmp52_ = filter; _tmp53_ = g_strdup (_tmp52_); _tmp54_ = filename; _tmp55_ = g_path_get_dirname (_tmp54_); memset (&_tmp56_, 0, sizeof (SkkRuleMetadata)); _g_free0 (_tmp56_.label); _tmp56_.label = _tmp49_; _g_free0 (_tmp56_.description); _tmp56_.description = _tmp51_; _g_free0 (_tmp56_.filter); _tmp56_.filter = _tmp53_; _g_free0 (_tmp56_.base_dir); _tmp56_.base_dir = _tmp55_; *result = _tmp56_; _g_free0 (filter); _g_free0 (description); _g_free0 (name); __vala_JsonNode_free0 (member); __vala_JsonObject_free0 (object); __vala_JsonNode_free0 (root); _g_object_unref0 (parser); return; } goto __finally24; __catch24_g_error: { GError* e = NULL; GError* _tmp57_; const gchar* _tmp58_; GError* _tmp59_; e = _inner_error_; _inner_error_ = NULL; _tmp57_ = e; _tmp58_ = _tmp57_->message; _tmp59_ = g_error_new (SKK_RULE_PARSE_ERROR, SKK_RULE_PARSE_ERROR_FAILED, "can't load rule: %s", _tmp58_); _inner_error_ = _tmp59_; _g_error_free0 (e); goto __finally24; } __finally24: if (_inner_error_->domain == SKK_RULE_PARSE_ERROR) { g_propagate_error (error, _inner_error_); _g_object_unref0 (parser); return; } else { _g_object_unref0 (parser); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } _g_object_unref0 (parser); } static gpointer _g_object_ref0 (gpointer self) { return self ? g_object_ref (self) : NULL; } SkkKeyEventFilter* skk_rule_get_filter (SkkRule* self) { SkkKeyEventFilter* result = NULL; SkkKeyEventFilter* _tmp0_; SkkKeyEventFilter* _tmp8_; SkkKeyEventFilter* _tmp9_; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = self->priv->filter; if (_tmp0_ == NULL) { GeeMap* _tmp1_; SkkRuleMetadata _tmp2_; const gchar* _tmp3_; gpointer _tmp4_ = NULL; GType* type; GType* _tmp5_; GObject* _tmp6_ = NULL; GObject* _tmp7_; _tmp1_ = skk_rule_filter_types; _tmp2_ = self->priv->_metadata; _tmp3_ = _tmp2_.filter; _tmp4_ = gee_map_get (_tmp1_, _tmp3_); type = (GType*) _tmp4_; _tmp5_ = type; _tmp6_ = g_object_new (*_tmp5_, NULL); _tmp7_ = G_IS_INITIALLY_UNOWNED (_tmp6_) ? g_object_ref_sink (_tmp6_) : _tmp6_; _g_object_unref0 (self->priv->filter); self->priv->filter = SKK_KEY_EVENT_FILTER (_tmp7_); _g_free0 (type); } _tmp8_ = self->priv->filter; _tmp9_ = _g_object_ref0 (_tmp8_); result = _tmp9_; return result; } /** * Create a rule. * * @param name name of the rule to load * * @return a new Rule */ static gpointer _skk_rule_metadata_dup0 (gpointer self) { return self ? skk_rule_metadata_dup (self) : NULL; } SkkRule* skk_rule_construct (GType object_type, const gchar* name, GError** error) { SkkRule * self = NULL; const gchar* _tmp0_; SkkRuleMetadata* _tmp1_ = NULL; SkkRuleMetadata* metadata; SkkRuleMetadata* _tmp2_; SkkRuleMetadata* _tmp5_; SkkRuleMetadata* _tmp6_ = NULL; SkkRuleMetadata* default_metadata; SkkRuleMetadata* _tmp27_; gchar* _tmp28_ = NULL; gchar* _tmp29_; gboolean _tmp30_; SkkRuleMetadata _tmp33_; SkkRomKanaMapFile* _tmp34_; SkkRomKanaMapFile* _tmp35_; GError * _inner_error_ = NULL; g_return_val_if_fail (name != NULL, NULL); self = (SkkRule*) g_object_new (object_type, NULL); _tmp0_ = name; _tmp1_ = skk_rule_find_rule (_tmp0_); metadata = _tmp1_; _tmp2_ = metadata; if (_tmp2_ == NULL) { const gchar* _tmp3_; GError* _tmp4_; _tmp3_ = name; _tmp4_ = g_error_new (SKK_RULE_PARSE_ERROR, SKK_RULE_PARSE_ERROR_FAILED, "can't find metadata for \"%s\"", _tmp3_); _inner_error_ = _tmp4_; if (_inner_error_->domain == SKK_RULE_PARSE_ERROR) { g_propagate_error (error, _inner_error_); _skk_rule_metadata_free0 (metadata); _g_object_unref0 (self); return NULL; } else { _skk_rule_metadata_free0 (metadata); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } } _tmp5_ = metadata; skk_rule_set_metadata (self, _tmp5_); _tmp6_ = skk_rule_find_rule ("default"); default_metadata = _tmp6_; { SkkEntry* entry_collection = NULL; gint entry_collection_length1 = 0; gint _entry_collection_size_ = 0; gint entry_it = 0; entry_collection = SKK_RULE_keymap_names; entry_collection_length1 = G_N_ELEMENTS (SKK_RULE_keymap_names); for (entry_it = 0; entry_it < G_N_ELEMENTS (SKK_RULE_keymap_names); entry_it = entry_it + 1) { SkkEntry entry = {0}; entry = entry_collection[entry_it]; { SkkRuleMetadata* _tmp7_; SkkRuleMetadata* _tmp8_; SkkRuleMetadata* _metadata; SkkRuleMetadata* _tmp9_; SkkEntry _tmp10_; gconstpointer _tmp11_; gchar* _tmp12_ = NULL; gchar* _tmp13_; gboolean _tmp14_; SkkRuleMetadata* _tmp17_; SkkEntry _tmp18_; gconstpointer _tmp19_; SkkRuleMetadata _tmp20_; SkkKeymapMapFile* _tmp21_; SkkKeymapMapFile* _tmp22_; SkkKeymapMapFile** _tmp23_; gint _tmp23__length1; SkkEntry _tmp24_; gconstpointer _tmp25_; SkkKeymapMapFile* _tmp26_; _tmp7_ = metadata; _tmp8_ = _skk_rule_metadata_dup0 (_tmp7_); _metadata = _tmp8_; _tmp9_ = metadata; _tmp10_ = entry; _tmp11_ = _tmp10_.value; _tmp12_ = skk_rule_metadata_locate_map_file (_tmp9_, "keymap", (const gchar*) _tmp11_); _tmp13_ = _tmp12_; _tmp14_ = _tmp13_ == NULL; _g_free0 (_tmp13_); if (_tmp14_) { SkkRuleMetadata* _tmp15_; SkkRuleMetadata* _tmp16_; _tmp15_ = default_metadata; _tmp16_ = _skk_rule_metadata_dup0 (_tmp15_); _skk_rule_metadata_free0 (_metadata); _metadata = _tmp16_; } _tmp17_ = _metadata; _tmp18_ = entry; _tmp19_ = _tmp18_.value; _tmp20_ = *_tmp17_; _tmp21_ = skk_keymap_map_file_new (&_tmp20_, (const gchar*) _tmp19_, &_inner_error_); _tmp22_ = _tmp21_; if (_inner_error_ != NULL) { if (_inner_error_->domain == SKK_RULE_PARSE_ERROR) { g_propagate_error (error, _inner_error_); _skk_rule_metadata_free0 (_metadata); _skk_rule_metadata_free0 (default_metadata); _skk_rule_metadata_free0 (metadata); _g_object_unref0 (self); return NULL; } else { _skk_rule_metadata_free0 (_metadata); _skk_rule_metadata_free0 (default_metadata); _skk_rule_metadata_free0 (metadata); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } } _tmp23_ = self->keymaps; _tmp23__length1 = self->keymaps_length1; _tmp24_ = entry; _tmp25_ = _tmp24_.key; _g_object_unref0 (_tmp23_[GPOINTER_TO_INT (_tmp25_)]); _tmp23_[GPOINTER_TO_INT (_tmp25_)] = _tmp22_; _tmp26_ = _tmp23_[GPOINTER_TO_INT (_tmp25_)]; _skk_rule_metadata_free0 (_metadata); } } } _tmp27_ = metadata; _tmp28_ = skk_rule_metadata_locate_map_file (_tmp27_, "rom-kana", "default"); _tmp29_ = _tmp28_; _tmp30_ = _tmp29_ == NULL; _g_free0 (_tmp29_); if (_tmp30_) { SkkRuleMetadata* _tmp31_; SkkRuleMetadata _tmp32_ = {0}; _tmp31_ = default_metadata; skk_rule_metadata_copy (_tmp31_, &_tmp32_); skk_rule_metadata_destroy (&self->priv->_metadata); self->priv->_metadata = _tmp32_; } _tmp33_ = self->priv->_metadata; _tmp34_ = skk_rom_kana_map_file_new (&_tmp33_, &_inner_error_); _tmp35_ = _tmp34_; if (_inner_error_ != NULL) { if (_inner_error_->domain == SKK_RULE_PARSE_ERROR) { g_propagate_error (error, _inner_error_); _skk_rule_metadata_free0 (default_metadata); _skk_rule_metadata_free0 (metadata); _g_object_unref0 (self); return NULL; } else { _skk_rule_metadata_free0 (default_metadata); _skk_rule_metadata_free0 (metadata); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } } _g_object_unref0 (self->rom_kana); self->rom_kana = _tmp35_; _skk_rule_metadata_free0 (default_metadata); _skk_rule_metadata_free0 (metadata); return self; } SkkRule* skk_rule_new (const gchar* name, GError** error) { return skk_rule_construct (SKK_TYPE_RULE, name, error); } /** * Locate a rule by name. * * @param name name of the rule * * @return a RuleMetadata or `null` */ SkkRuleMetadata* skk_rule_find_rule (const gchar* name) { SkkRuleMetadata* result = NULL; GeeMap* _tmp0_; const gchar* _tmp1_; gboolean _tmp2_ = FALSE; gchar** _tmp6_; gint _tmp6__length1; GError * _inner_error_ = NULL; g_return_val_if_fail (name != NULL, NULL); _tmp0_ = skk_rule_rule_cache; _tmp1_ = name; _tmp2_ = gee_map_has_key (_tmp0_, _tmp1_); if (_tmp2_) { GeeMap* _tmp3_; const gchar* _tmp4_; gpointer _tmp5_ = NULL; _tmp3_ = skk_rule_rule_cache; _tmp4_ = name; _tmp5_ = gee_map_get (_tmp3_, _tmp4_); result = (SkkRuleMetadata*) _tmp5_; return result; } _tmp6_ = skk_rule_rules_path; _tmp6__length1 = skk_rule_rules_path_length1; { gchar** dir_collection = NULL; gint dir_collection_length1 = 0; gint _dir_collection_size_ = 0; gint dir_it = 0; dir_collection = _tmp6_; dir_collection_length1 = _tmp6__length1; for (dir_it = 0; dir_it < _tmp6__length1; dir_it = dir_it + 1) { gchar* _tmp7_; gchar* dir = NULL; _tmp7_ = g_strdup (dir_collection[dir_it]); dir = _tmp7_; { const gchar* _tmp8_; const gchar* _tmp9_; gchar* _tmp10_ = NULL; gchar* base_dir_filename; const gchar* _tmp11_; gchar* _tmp12_ = NULL; gchar* metadata_filename; const gchar* _tmp13_; gboolean _tmp14_ = FALSE; _tmp8_ = dir; _tmp9_ = name; _tmp10_ = g_build_filename (_tmp8_, _tmp9_, NULL); base_dir_filename = _tmp10_; _tmp11_ = base_dir_filename; _tmp12_ = g_build_filename (_tmp11_, "metadata.json", NULL); metadata_filename = _tmp12_; _tmp13_ = metadata_filename; _tmp14_ = g_file_test (_tmp13_, G_FILE_TEST_EXISTS); if (_tmp14_) { { const gchar* _tmp15_; SkkRuleMetadata _tmp16_ = {0}; SkkRuleMetadata metadata; const gchar* _tmp17_; gchar* _tmp18_; GeeMap* _tmp19_; const gchar* _tmp20_; SkkRuleMetadata _tmp21_; SkkRuleMetadata _tmp22_; SkkRuleMetadata* _tmp23_; SkkRuleMetadata* _tmp24_; _tmp15_ = metadata_filename; skk_rule_load_metadata (_tmp15_, &_tmp16_, &_inner_error_); metadata = _tmp16_; if (_inner_error_ != NULL) { if (_inner_error_->domain == SKK_RULE_PARSE_ERROR) { goto __catch25_skk_rule_parse_error; } _g_free0 (metadata_filename); _g_free0 (base_dir_filename); _g_free0 (dir); g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } _tmp17_ = name; _tmp18_ = g_strdup (_tmp17_); _g_free0 (metadata.name); metadata.name = _tmp18_; _tmp19_ = skk_rule_rule_cache; _tmp20_ = name; _tmp21_ = metadata; gee_map_set (_tmp19_, _tmp20_, &_tmp21_); _tmp22_ = metadata; _tmp23_ = _skk_rule_metadata_dup0 (&_tmp22_); _tmp24_ = _tmp23_; skk_rule_metadata_destroy (&_tmp22_); result = _tmp24_; _g_free0 (metadata_filename); _g_free0 (base_dir_filename); _g_free0 (dir); return result; } goto __finally25; __catch25_skk_rule_parse_error: { GError* e = NULL; e = _inner_error_; _inner_error_ = NULL; _g_error_free0 (e); _g_free0 (metadata_filename); _g_free0 (base_dir_filename); _g_free0 (dir); continue; } __finally25: _g_free0 (metadata_filename); _g_free0 (base_dir_filename); _g_free0 (dir); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } _g_free0 (metadata_filename); _g_free0 (base_dir_filename); _g_free0 (dir); } } } result = NULL; return result; } /** * List rules. * * @return an array of RuleMetadata */ static void _vala_SkkRuleMetadata_array_free (SkkRuleMetadata* array, gint array_length) { if (array != NULL) { int i; for (i = 0; i < array_length; i = i + 1) { skk_rule_metadata_destroy (&array[i]); } } g_free (array); } static void _vala_array_add1 (SkkRuleMetadata** array, int* length, int* size, const SkkRuleMetadata* value) { if ((*length) == (*size)) { *size = (*size) ? (2 * (*size)) : 4; *array = g_renew (SkkRuleMetadata, *array, *size); } (*array)[(*length)++] = *value; } SkkRuleMetadata* skk_rule_list (int* result_length1) { SkkRuleMetadata* result = NULL; GeeHashSet* _tmp0_; GeeSet* names; SkkRuleMetadata* _tmp1_ = NULL; SkkRuleMetadata* rules; gint rules_length1; gint _rules_size_; gchar** _tmp2_; gint _tmp2__length1; SkkRuleMetadata* _tmp31_; gint _tmp31__length1; GError * _inner_error_ = NULL; _tmp0_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL); names = (GeeSet*) _tmp0_; _tmp1_ = g_new0 (SkkRuleMetadata, 0); rules = _tmp1_; rules_length1 = 0; _rules_size_ = rules_length1; _tmp2_ = skk_rule_rules_path; _tmp2__length1 = skk_rule_rules_path_length1; { gchar** dir_collection = NULL; gint dir_collection_length1 = 0; gint _dir_collection_size_ = 0; gint dir_it = 0; dir_collection = _tmp2_; dir_collection_length1 = _tmp2__length1; for (dir_it = 0; dir_it < _tmp2__length1; dir_it = dir_it + 1) { gchar* _tmp3_; gchar* dir = NULL; _tmp3_ = g_strdup (dir_collection[dir_it]); dir = _tmp3_; { GDir* handle = NULL; gchar* name = NULL; { const gchar* _tmp4_; GDir* _tmp5_ = NULL; GDir* _tmp6_; _tmp4_ = dir; _tmp5_ = g_dir_open (_tmp4_, (guint) 0, &_inner_error_); _tmp6_ = _tmp5_; if (_inner_error_ != NULL) { goto __catch26_g_error; } _g_dir_close0 (handle); handle = _tmp6_; } goto __finally26; __catch26_g_error: { GError* e = NULL; e = _inner_error_; _inner_error_ = NULL; _g_error_free0 (e); _g_dir_close0 (handle); _g_free0 (dir); continue; } __finally26: if (_inner_error_ != NULL) { _g_dir_close0 (handle); _g_free0 (dir); rules = (_vala_SkkRuleMetadata_array_free (rules, rules_length1), NULL); _g_object_unref0 (names); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } while (TRUE) { GDir* _tmp7_; const gchar* _tmp8_ = NULL; gchar* _tmp9_; const gchar* _tmp10_; GeeSet* _tmp11_; const gchar* _tmp12_; gboolean _tmp13_ = FALSE; const gchar* _tmp14_; const gchar* _tmp15_; gchar* _tmp16_ = NULL; gchar* metadata_filename; const gchar* _tmp17_; gboolean _tmp18_ = FALSE; _tmp7_ = handle; _tmp8_ = g_dir_read_name (_tmp7_); _tmp9_ = g_strdup (_tmp8_); _g_free0 (name); name = _tmp9_; _tmp10_ = name; if (!(_tmp10_ != NULL)) { break; } _tmp11_ = names; _tmp12_ = name; _tmp13_ = gee_collection_contains ((GeeCollection*) _tmp11_, _tmp12_); if (_tmp13_) { continue; } _tmp14_ = dir; _tmp15_ = name; _tmp16_ = g_build_filename (_tmp14_, _tmp15_, "metadata.json", NULL); metadata_filename = _tmp16_; _tmp17_ = metadata_filename; _tmp18_ = g_file_test (_tmp17_, G_FILE_TEST_EXISTS); if (_tmp18_) { { const gchar* _tmp19_; SkkRuleMetadata _tmp20_ = {0}; SkkRuleMetadata metadata; GeeSet* _tmp21_; const gchar* _tmp22_; const gchar* _tmp23_; gchar* _tmp24_; SkkRuleMetadata* _tmp25_; gint _tmp25__length1; SkkRuleMetadata _tmp26_; SkkRuleMetadata _tmp27_ = {0}; _tmp19_ = metadata_filename; skk_rule_load_metadata (_tmp19_, &_tmp20_, &_inner_error_); metadata = _tmp20_; if (_inner_error_ != NULL) { if (_inner_error_->domain == SKK_RULE_PARSE_ERROR) { goto __catch27_skk_rule_parse_error; } _g_free0 (metadata_filename); _g_free0 (name); _g_dir_close0 (handle); _g_free0 (dir); rules = (_vala_SkkRuleMetadata_array_free (rules, rules_length1), NULL); _g_object_unref0 (names); g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } _tmp21_ = names; _tmp22_ = name; gee_collection_add ((GeeCollection*) _tmp21_, _tmp22_); _tmp23_ = name; _tmp24_ = g_strdup (_tmp23_); _g_free0 (metadata.name); metadata.name = _tmp24_; _tmp25_ = rules; _tmp25__length1 = rules_length1; _tmp26_ = metadata; skk_rule_metadata_copy (&_tmp26_, &_tmp27_); _vala_array_add1 (&rules, &rules_length1, &_rules_size_, &_tmp27_); skk_rule_metadata_destroy (&metadata); } goto __finally27; __catch27_skk_rule_parse_error: { GError* e = NULL; const gchar* _tmp28_; GError* _tmp29_; const gchar* _tmp30_; e = _inner_error_; _inner_error_ = NULL; _tmp28_ = metadata_filename; _tmp29_ = e; _tmp30_ = _tmp29_->message; g_warning ("rule.vala:339: can't load metadata %s: %s", _tmp28_, _tmp30_); _g_error_free0 (e); } __finally27: if (_inner_error_ != NULL) { _g_free0 (metadata_filename); _g_free0 (name); _g_dir_close0 (handle); _g_free0 (dir); rules = (_vala_SkkRuleMetadata_array_free (rules, rules_length1), NULL); _g_object_unref0 (names); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } } _g_free0 (metadata_filename); } _g_free0 (name); _g_dir_close0 (handle); _g_free0 (dir); } } } _tmp31_ = rules; _tmp31__length1 = rules_length1; if (result_length1) { *result_length1 = _tmp31__length1; } result = _tmp31_; _g_object_unref0 (names); return result; } void skk_rule_get_metadata (SkkRule* self, SkkRuleMetadata* result) { SkkRuleMetadata _tmp0_; g_return_if_fail (self != NULL); _tmp0_ = self->priv->_metadata; *result = _tmp0_; return; } static void skk_rule_set_metadata (SkkRule* self, SkkRuleMetadata* value) { SkkRuleMetadata _tmp0_; SkkRuleMetadata _tmp1_ = {0}; g_return_if_fail (self != NULL); _tmp0_ = *value; skk_rule_metadata_copy (&_tmp0_, &_tmp1_); skk_rule_metadata_destroy (&self->priv->_metadata); self->priv->_metadata = _tmp1_; g_object_notify ((GObject *) self, "metadata"); } static void skk_rule_class_init (SkkRuleClass * klass) { GeeHashMap* _tmp0_; GeeHashMap* _tmp1_; gint _tmp2_ = 0; gchar** _tmp3_ = NULL; GeeMap* _tmp4_; GType _tmp5_; GeeMap* _tmp6_; GType _tmp7_; skk_rule_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (SkkRulePrivate)); G_OBJECT_CLASS (klass)->get_property = _vala_skk_rule_get_property; G_OBJECT_CLASS (klass)->set_property = _vala_skk_rule_set_property; G_OBJECT_CLASS (klass)->finalize = skk_rule_finalize; /** * Metadata associated with the rule. */ g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_RULE_METADATA, g_param_spec_boxed ("metadata", "metadata", "metadata", SKK_TYPE_RULE_METADATA, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE)); _tmp0_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, G_TYPE_GTYPE, (GBoxedCopyFunc) _g_type_dup, g_free, NULL, NULL, NULL); skk_rule_filter_types = (GeeMap*) _tmp0_; _tmp1_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, SKK_TYPE_RULE_METADATA, (GBoxedCopyFunc) skk_rule_metadata_dup, skk_rule_metadata_free, NULL, NULL, NULL); skk_rule_rule_cache = (GeeMap*) _tmp1_; _tmp3_ = skk_util_build_data_path ("rules", &_tmp2_); skk_rule_rules_path = (_vala_array_free (skk_rule_rules_path, skk_rule_rules_path_length1, (GDestroyNotify) g_free), NULL); skk_rule_rules_path = _tmp3_; skk_rule_rules_path_length1 = _tmp2_; _skk_rule_rules_path_size_ = skk_rule_rules_path_length1; _tmp4_ = skk_rule_filter_types; _tmp5_ = SKK_TYPE_SIMPLE_KEY_EVENT_FILTER; gee_map_set (_tmp4_, "simple", &_tmp5_); _tmp6_ = skk_rule_filter_types; _tmp7_ = SKK_TYPE_NICOLA_KEY_EVENT_FILTER; gee_map_set (_tmp6_, "nicola", &_tmp7_); } static void skk_rule_instance_init (SkkRule * self) { SkkKeymapMapFile** _tmp0_ = NULL; self->priv = SKK_RULE_GET_PRIVATE (self); _tmp0_ = g_new0 (SkkKeymapMapFile*, SKK_INPUT_MODE_LAST + 1); self->keymaps = _tmp0_; self->keymaps_length1 = SKK_INPUT_MODE_LAST; self->_keymaps_size_ = self->keymaps_length1; } static void skk_rule_finalize (GObject* obj) { SkkRule * self; SkkKeyEventFilter* _tmp0_; self = SKK_RULE (obj); _tmp0_ = self->priv->filter; if (_tmp0_ != NULL) { SkkKeyEventFilter* _tmp1_; _tmp1_ = self->priv->filter; skk_key_event_filter_reset (_tmp1_); _g_object_unref0 (self->priv->filter); self->priv->filter = NULL; } skk_rule_metadata_destroy (&self->priv->_metadata); self->keymaps = (_vala_array_free (self->keymaps, self->keymaps_length1, (GDestroyNotify) g_object_unref), NULL); _g_object_unref0 (self->rom_kana); _g_object_unref0 (self->priv->filter); G_OBJECT_CLASS (skk_rule_parent_class)->finalize (obj); } /** * Object representing a typing rule. */ GType skk_rule_get_type (void) { static volatile gsize skk_rule_type_id__volatile = 0; if (g_once_init_enter (&skk_rule_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkRuleClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_rule_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkRule), 0, (GInstanceInitFunc) skk_rule_instance_init, NULL }; GType skk_rule_type_id; skk_rule_type_id = g_type_register_static (G_TYPE_OBJECT, "SkkRule", &g_define_type_info, 0); g_once_init_leave (&skk_rule_type_id__volatile, skk_rule_type_id); } return skk_rule_type_id__volatile; } static void _vala_skk_rule_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { SkkRule * self; self = SKK_RULE (object); switch (property_id) { case SKK_RULE_METADATA: { SkkRuleMetadata boxed; skk_rule_get_metadata (self, &boxed); g_value_set_boxed (value, &boxed); } break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } static void _vala_skk_rule_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { SkkRule * self; self = SKK_RULE (object); switch (property_id) { case SKK_RULE_METADATA: skk_rule_set_metadata (self, g_value_get_boxed (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { int i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); } } } } static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) { _vala_array_destroy (array, array_length, destroy_func); g_free (array); } libskk-1.0.0/libskk/keysyms.c0000664000076400007640000031612212016556644013067 00000000000000/* keysyms.c generated by valac 0.16.0, the Vala compiler * generated from keysyms.vala, do not modify */ /* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ #include #include #define SKK_KEYSYMS_VoidSymbol ((guint) 0xffffff) #define SKK_KEYSYMS_BackSpace ((guint) 0xff08) #define SKK_KEYSYMS_Tab ((guint) 0xff09) #define SKK_KEYSYMS_Linefeed ((guint) 0xff0a) #define SKK_KEYSYMS_Clear ((guint) 0xff0b) #define SKK_KEYSYMS_Return ((guint) 0xff0d) #define SKK_KEYSYMS_Pause ((guint) 0xff13) #define SKK_KEYSYMS_Scroll_Lock ((guint) 0xff14) #define SKK_KEYSYMS_Sys_Req ((guint) 0xff15) #define SKK_KEYSYMS_Escape ((guint) 0xff1b) #define SKK_KEYSYMS_Delete ((guint) 0xffff) #define SKK_KEYSYMS_Multi_key ((guint) 0xff20) #define SKK_KEYSYMS_Codeinput ((guint) 0xff37) #define SKK_KEYSYMS_SingleCandidate ((guint) 0xff3c) #define SKK_KEYSYMS_MultipleCandidate ((guint) 0xff3d) #define SKK_KEYSYMS_PreviousCandidate ((guint) 0xff3e) #define SKK_KEYSYMS_Kanji ((guint) 0xff21) #define SKK_KEYSYMS_Muhenkan ((guint) 0xff22) #define SKK_KEYSYMS_Henkan_Mode ((guint) 0xff23) #define SKK_KEYSYMS_Henkan ((guint) 0xff23) #define SKK_KEYSYMS_Romaji ((guint) 0xff24) #define SKK_KEYSYMS_Hiragana ((guint) 0xff25) #define SKK_KEYSYMS_Katakana ((guint) 0xff26) #define SKK_KEYSYMS_Hiragana_Katakana ((guint) 0xff27) #define SKK_KEYSYMS_Zenkaku ((guint) 0xff28) #define SKK_KEYSYMS_Hankaku ((guint) 0xff29) #define SKK_KEYSYMS_Zenkaku_Hankaku ((guint) 0xff2a) #define SKK_KEYSYMS_Touroku ((guint) 0xff2b) #define SKK_KEYSYMS_Massyo ((guint) 0xff2c) #define SKK_KEYSYMS_Kana_Lock ((guint) 0xff2d) #define SKK_KEYSYMS_Kana_Shift ((guint) 0xff2e) #define SKK_KEYSYMS_Eisu_Shift ((guint) 0xff2f) #define SKK_KEYSYMS_Eisu_toggle ((guint) 0xff30) #define SKK_KEYSYMS_Kanji_Bangou ((guint) 0xff37) #define SKK_KEYSYMS_Zen_Koho ((guint) 0xff3d) #define SKK_KEYSYMS_Mae_Koho ((guint) 0xff3e) #define SKK_KEYSYMS_Home ((guint) 0xff50) #define SKK_KEYSYMS_Left ((guint) 0xff51) #define SKK_KEYSYMS_Up ((guint) 0xff52) #define SKK_KEYSYMS_Right ((guint) 0xff53) #define SKK_KEYSYMS_Down ((guint) 0xff54) #define SKK_KEYSYMS_Prior ((guint) 0xff55) #define SKK_KEYSYMS_Page_Up ((guint) 0xff55) #define SKK_KEYSYMS_Next ((guint) 0xff56) #define SKK_KEYSYMS_Page_Down ((guint) 0xff56) #define SKK_KEYSYMS_End ((guint) 0xff57) #define SKK_KEYSYMS_Begin ((guint) 0xff58) #define SKK_KEYSYMS_Select ((guint) 0xff60) #define SKK_KEYSYMS_Print ((guint) 0xff61) #define SKK_KEYSYMS_Execute ((guint) 0xff62) #define SKK_KEYSYMS_Insert ((guint) 0xff63) #define SKK_KEYSYMS_Undo ((guint) 0xff65) #define SKK_KEYSYMS_Redo ((guint) 0xff66) #define SKK_KEYSYMS_Menu ((guint) 0xff67) #define SKK_KEYSYMS_Find ((guint) 0xff68) #define SKK_KEYSYMS_Cancel ((guint) 0xff69) #define SKK_KEYSYMS_Help ((guint) 0xff6a) #define SKK_KEYSYMS_Break ((guint) 0xff6b) #define SKK_KEYSYMS_Mode_switch ((guint) 0xff7e) #define SKK_KEYSYMS_script_switch ((guint) 0xff7e) #define SKK_KEYSYMS_Num_Lock ((guint) 0xff7f) #define SKK_KEYSYMS_KP_Space ((guint) 0xff80) #define SKK_KEYSYMS_KP_Tab ((guint) 0xff89) #define SKK_KEYSYMS_KP_Enter ((guint) 0xff8d) #define SKK_KEYSYMS_KP_F1 ((guint) 0xff91) #define SKK_KEYSYMS_KP_F2 ((guint) 0xff92) #define SKK_KEYSYMS_KP_F3 ((guint) 0xff93) #define SKK_KEYSYMS_KP_F4 ((guint) 0xff94) #define SKK_KEYSYMS_KP_Home ((guint) 0xff95) #define SKK_KEYSYMS_KP_Left ((guint) 0xff96) #define SKK_KEYSYMS_KP_Up ((guint) 0xff97) #define SKK_KEYSYMS_KP_Right ((guint) 0xff98) #define SKK_KEYSYMS_KP_Down ((guint) 0xff99) #define SKK_KEYSYMS_KP_Prior ((guint) 0xff9a) #define SKK_KEYSYMS_KP_Page_Up ((guint) 0xff9a) #define SKK_KEYSYMS_KP_Next ((guint) 0xff9b) #define SKK_KEYSYMS_KP_Page_Down ((guint) 0xff9b) #define SKK_KEYSYMS_KP_End ((guint) 0xff9c) #define SKK_KEYSYMS_KP_Begin ((guint) 0xff9d) #define SKK_KEYSYMS_KP_Insert ((guint) 0xff9e) #define SKK_KEYSYMS_KP_Delete ((guint) 0xff9f) #define SKK_KEYSYMS_KP_Equal ((guint) 0xffbd) #define SKK_KEYSYMS_KP_Multiply ((guint) 0xffaa) #define SKK_KEYSYMS_KP_Add ((guint) 0xffab) #define SKK_KEYSYMS_KP_Separator ((guint) 0xffac) #define SKK_KEYSYMS_KP_Subtract ((guint) 0xffad) #define SKK_KEYSYMS_KP_Decimal ((guint) 0xffae) #define SKK_KEYSYMS_KP_Divide ((guint) 0xffaf) #define SKK_KEYSYMS_KP_0 ((guint) 0xffb0) #define SKK_KEYSYMS_KP_1 ((guint) 0xffb1) #define SKK_KEYSYMS_KP_2 ((guint) 0xffb2) #define SKK_KEYSYMS_KP_3 ((guint) 0xffb3) #define SKK_KEYSYMS_KP_4 ((guint) 0xffb4) #define SKK_KEYSYMS_KP_5 ((guint) 0xffb5) #define SKK_KEYSYMS_KP_6 ((guint) 0xffb6) #define SKK_KEYSYMS_KP_7 ((guint) 0xffb7) #define SKK_KEYSYMS_KP_8 ((guint) 0xffb8) #define SKK_KEYSYMS_KP_9 ((guint) 0xffb9) #define SKK_KEYSYMS_F1 ((guint) 0xffbe) #define SKK_KEYSYMS_F2 ((guint) 0xffbf) #define SKK_KEYSYMS_F3 ((guint) 0xffc0) #define SKK_KEYSYMS_F4 ((guint) 0xffc1) #define SKK_KEYSYMS_F5 ((guint) 0xffc2) #define SKK_KEYSYMS_F6 ((guint) 0xffc3) #define SKK_KEYSYMS_F7 ((guint) 0xffc4) #define SKK_KEYSYMS_F8 ((guint) 0xffc5) #define SKK_KEYSYMS_F9 ((guint) 0xffc6) #define SKK_KEYSYMS_F10 ((guint) 0xffc7) #define SKK_KEYSYMS_F11 ((guint) 0xffc8) #define SKK_KEYSYMS_L1 ((guint) 0xffc8) #define SKK_KEYSYMS_F12 ((guint) 0xffc9) #define SKK_KEYSYMS_L2 ((guint) 0xffc9) #define SKK_KEYSYMS_F13 ((guint) 0xffca) #define SKK_KEYSYMS_L3 ((guint) 0xffca) #define SKK_KEYSYMS_F14 ((guint) 0xffcb) #define SKK_KEYSYMS_L4 ((guint) 0xffcb) #define SKK_KEYSYMS_F15 ((guint) 0xffcc) #define SKK_KEYSYMS_L5 ((guint) 0xffcc) #define SKK_KEYSYMS_F16 ((guint) 0xffcd) #define SKK_KEYSYMS_L6 ((guint) 0xffcd) #define SKK_KEYSYMS_F17 ((guint) 0xffce) #define SKK_KEYSYMS_L7 ((guint) 0xffce) #define SKK_KEYSYMS_F18 ((guint) 0xffcf) #define SKK_KEYSYMS_L8 ((guint) 0xffcf) #define SKK_KEYSYMS_F19 ((guint) 0xffd0) #define SKK_KEYSYMS_L9 ((guint) 0xffd0) #define SKK_KEYSYMS_F20 ((guint) 0xffd1) #define SKK_KEYSYMS_L10 ((guint) 0xffd1) #define SKK_KEYSYMS_F21 ((guint) 0xffd2) #define SKK_KEYSYMS_R1 ((guint) 0xffd2) #define SKK_KEYSYMS_F22 ((guint) 0xffd3) #define SKK_KEYSYMS_R2 ((guint) 0xffd3) #define SKK_KEYSYMS_F23 ((guint) 0xffd4) #define SKK_KEYSYMS_R3 ((guint) 0xffd4) #define SKK_KEYSYMS_F24 ((guint) 0xffd5) #define SKK_KEYSYMS_R4 ((guint) 0xffd5) #define SKK_KEYSYMS_F25 ((guint) 0xffd6) #define SKK_KEYSYMS_R5 ((guint) 0xffd6) #define SKK_KEYSYMS_F26 ((guint) 0xffd7) #define SKK_KEYSYMS_R6 ((guint) 0xffd7) #define SKK_KEYSYMS_F27 ((guint) 0xffd8) #define SKK_KEYSYMS_R7 ((guint) 0xffd8) #define SKK_KEYSYMS_F28 ((guint) 0xffd9) #define SKK_KEYSYMS_R8 ((guint) 0xffd9) #define SKK_KEYSYMS_F29 ((guint) 0xffda) #define SKK_KEYSYMS_R9 ((guint) 0xffda) #define SKK_KEYSYMS_F30 ((guint) 0xffdb) #define SKK_KEYSYMS_R10 ((guint) 0xffdb) #define SKK_KEYSYMS_F31 ((guint) 0xffdc) #define SKK_KEYSYMS_R11 ((guint) 0xffdc) #define SKK_KEYSYMS_F32 ((guint) 0xffdd) #define SKK_KEYSYMS_R12 ((guint) 0xffdd) #define SKK_KEYSYMS_F33 ((guint) 0xffde) #define SKK_KEYSYMS_R13 ((guint) 0xffde) #define SKK_KEYSYMS_F34 ((guint) 0xffdf) #define SKK_KEYSYMS_R14 ((guint) 0xffdf) #define SKK_KEYSYMS_F35 ((guint) 0xffe0) #define SKK_KEYSYMS_R15 ((guint) 0xffe0) #define SKK_KEYSYMS_Shift_L ((guint) 0xffe1) #define SKK_KEYSYMS_Shift_R ((guint) 0xffe2) #define SKK_KEYSYMS_Control_L ((guint) 0xffe3) #define SKK_KEYSYMS_Control_R ((guint) 0xffe4) #define SKK_KEYSYMS_Caps_Lock ((guint) 0xffe5) #define SKK_KEYSYMS_Shift_Lock ((guint) 0xffe6) #define SKK_KEYSYMS_Meta_L ((guint) 0xffe7) #define SKK_KEYSYMS_Meta_R ((guint) 0xffe8) #define SKK_KEYSYMS_Alt_L ((guint) 0xffe9) #define SKK_KEYSYMS_Alt_R ((guint) 0xffea) #define SKK_KEYSYMS_Super_L ((guint) 0xffeb) #define SKK_KEYSYMS_Super_R ((guint) 0xffec) #define SKK_KEYSYMS_Hyper_L ((guint) 0xffed) #define SKK_KEYSYMS_Hyper_R ((guint) 0xffee) #define SKK_KEYSYMS_ISO_Lock ((guint) 0xfe01) #define SKK_KEYSYMS_ISO_Level2_Latch ((guint) 0xfe02) #define SKK_KEYSYMS_ISO_Level3_Shift ((guint) 0xfe03) #define SKK_KEYSYMS_ISO_Level3_Latch ((guint) 0xfe04) #define SKK_KEYSYMS_ISO_Level3_Lock ((guint) 0xfe05) #define SKK_KEYSYMS_ISO_Level5_Shift ((guint) 0xfe11) #define SKK_KEYSYMS_ISO_Level5_Latch ((guint) 0xfe12) #define SKK_KEYSYMS_ISO_Level5_Lock ((guint) 0xfe13) #define SKK_KEYSYMS_ISO_Group_Shift ((guint) 0xff7e) #define SKK_KEYSYMS_ISO_Group_Latch ((guint) 0xfe06) #define SKK_KEYSYMS_ISO_Group_Lock ((guint) 0xfe07) #define SKK_KEYSYMS_ISO_Next_Group ((guint) 0xfe08) #define SKK_KEYSYMS_ISO_Next_Group_Lock ((guint) 0xfe09) #define SKK_KEYSYMS_ISO_Prev_Group ((guint) 0xfe0a) #define SKK_KEYSYMS_ISO_Prev_Group_Lock ((guint) 0xfe0b) #define SKK_KEYSYMS_ISO_First_Group ((guint) 0xfe0c) #define SKK_KEYSYMS_ISO_First_Group_Lock ((guint) 0xfe0d) #define SKK_KEYSYMS_ISO_Last_Group ((guint) 0xfe0e) #define SKK_KEYSYMS_ISO_Last_Group_Lock ((guint) 0xfe0f) #define SKK_KEYSYMS_ISO_Left_Tab ((guint) 0xfe20) #define SKK_KEYSYMS_ISO_Move_Line_Up ((guint) 0xfe21) #define SKK_KEYSYMS_ISO_Move_Line_Down ((guint) 0xfe22) #define SKK_KEYSYMS_ISO_Partial_Line_Up ((guint) 0xfe23) #define SKK_KEYSYMS_ISO_Partial_Line_Down ((guint) 0xfe24) #define SKK_KEYSYMS_ISO_Partial_Space_Left ((guint) 0xfe25) #define SKK_KEYSYMS_ISO_Partial_Space_Right ((guint) 0xfe26) #define SKK_KEYSYMS_ISO_Set_Margin_Left ((guint) 0xfe27) #define SKK_KEYSYMS_ISO_Set_Margin_Right ((guint) 0xfe28) #define SKK_KEYSYMS_ISO_Release_Margin_Left ((guint) 0xfe29) #define SKK_KEYSYMS_ISO_Release_Margin_Right ((guint) 0xfe2a) #define SKK_KEYSYMS_ISO_Release_Both_Margins ((guint) 0xfe2b) #define SKK_KEYSYMS_ISO_Fast_Cursor_Left ((guint) 0xfe2c) #define SKK_KEYSYMS_ISO_Fast_Cursor_Right ((guint) 0xfe2d) #define SKK_KEYSYMS_ISO_Fast_Cursor_Up ((guint) 0xfe2e) #define SKK_KEYSYMS_ISO_Fast_Cursor_Down ((guint) 0xfe2f) #define SKK_KEYSYMS_ISO_Continuous_Underline ((guint) 0xfe30) #define SKK_KEYSYMS_ISO_Discontinuous_Underline ((guint) 0xfe31) #define SKK_KEYSYMS_ISO_Emphasize ((guint) 0xfe32) #define SKK_KEYSYMS_ISO_Center_Object ((guint) 0xfe33) #define SKK_KEYSYMS_ISO_Enter ((guint) 0xfe34) #define SKK_KEYSYMS_dead_grave ((guint) 0xfe50) #define SKK_KEYSYMS_dead_acute ((guint) 0xfe51) #define SKK_KEYSYMS_dead_circumflex ((guint) 0xfe52) #define SKK_KEYSYMS_dead_tilde ((guint) 0xfe53) #define SKK_KEYSYMS_dead_perispomeni ((guint) 0xfe53) #define SKK_KEYSYMS_dead_macron ((guint) 0xfe54) #define SKK_KEYSYMS_dead_breve ((guint) 0xfe55) #define SKK_KEYSYMS_dead_abovedot ((guint) 0xfe56) #define SKK_KEYSYMS_dead_diaeresis ((guint) 0xfe57) #define SKK_KEYSYMS_dead_abovering ((guint) 0xfe58) #define SKK_KEYSYMS_dead_doubleacute ((guint) 0xfe59) #define SKK_KEYSYMS_dead_caron ((guint) 0xfe5a) #define SKK_KEYSYMS_dead_cedilla ((guint) 0xfe5b) #define SKK_KEYSYMS_dead_ogonek ((guint) 0xfe5c) #define SKK_KEYSYMS_dead_iota ((guint) 0xfe5d) #define SKK_KEYSYMS_dead_voiced_sound ((guint) 0xfe5e) #define SKK_KEYSYMS_dead_semivoiced_sound ((guint) 0xfe5f) #define SKK_KEYSYMS_dead_belowdot ((guint) 0xfe60) #define SKK_KEYSYMS_dead_hook ((guint) 0xfe61) #define SKK_KEYSYMS_dead_horn ((guint) 0xfe62) #define SKK_KEYSYMS_dead_stroke ((guint) 0xfe63) #define SKK_KEYSYMS_dead_abovecomma ((guint) 0xfe64) #define SKK_KEYSYMS_dead_psili ((guint) 0xfe64) #define SKK_KEYSYMS_dead_abovereversedcomma ((guint) 0xfe65) #define SKK_KEYSYMS_dead_dasia ((guint) 0xfe65) #define SKK_KEYSYMS_dead_doublegrave ((guint) 0xfe66) #define SKK_KEYSYMS_dead_belowring ((guint) 0xfe67) #define SKK_KEYSYMS_dead_belowmacron ((guint) 0xfe68) #define SKK_KEYSYMS_dead_belowcircumflex ((guint) 0xfe69) #define SKK_KEYSYMS_dead_belowtilde ((guint) 0xfe6a) #define SKK_KEYSYMS_dead_belowbreve ((guint) 0xfe6b) #define SKK_KEYSYMS_dead_belowdiaeresis ((guint) 0xfe6c) #define SKK_KEYSYMS_dead_invertedbreve ((guint) 0xfe6d) #define SKK_KEYSYMS_dead_belowcomma ((guint) 0xfe6e) #define SKK_KEYSYMS_dead_currency ((guint) 0xfe6f) #define SKK_KEYSYMS_dead_a ((guint) 0xfe80) #define SKK_KEYSYMS_dead_A ((guint) 0xfe81) #define SKK_KEYSYMS_dead_e ((guint) 0xfe82) #define SKK_KEYSYMS_dead_E ((guint) 0xfe83) #define SKK_KEYSYMS_dead_i ((guint) 0xfe84) #define SKK_KEYSYMS_dead_I ((guint) 0xfe85) #define SKK_KEYSYMS_dead_o ((guint) 0xfe86) #define SKK_KEYSYMS_dead_O ((guint) 0xfe87) #define SKK_KEYSYMS_dead_u ((guint) 0xfe88) #define SKK_KEYSYMS_dead_U ((guint) 0xfe89) #define SKK_KEYSYMS_dead_small_schwa ((guint) 0xfe8a) #define SKK_KEYSYMS_dead_capital_schwa ((guint) 0xfe8b) #define SKK_KEYSYMS_First_Virtual_Screen ((guint) 0xfed0) #define SKK_KEYSYMS_Prev_Virtual_Screen ((guint) 0xfed1) #define SKK_KEYSYMS_Next_Virtual_Screen ((guint) 0xfed2) #define SKK_KEYSYMS_Last_Virtual_Screen ((guint) 0xfed4) #define SKK_KEYSYMS_Terminate_Server ((guint) 0xfed5) #define SKK_KEYSYMS_AccessX_Enable ((guint) 0xfe70) #define SKK_KEYSYMS_AccessX_Feedback_Enable ((guint) 0xfe71) #define SKK_KEYSYMS_RepeatKeys_Enable ((guint) 0xfe72) #define SKK_KEYSYMS_SlowKeys_Enable ((guint) 0xfe73) #define SKK_KEYSYMS_BounceKeys_Enable ((guint) 0xfe74) #define SKK_KEYSYMS_StickyKeys_Enable ((guint) 0xfe75) #define SKK_KEYSYMS_MouseKeys_Enable ((guint) 0xfe76) #define SKK_KEYSYMS_MouseKeys_Accel_Enable ((guint) 0xfe77) #define SKK_KEYSYMS_Overlay1_Enable ((guint) 0xfe78) #define SKK_KEYSYMS_Overlay2_Enable ((guint) 0xfe79) #define SKK_KEYSYMS_AudibleBell_Enable ((guint) 0xfe7a) #define SKK_KEYSYMS_Pointer_Left ((guint) 0xfee0) #define SKK_KEYSYMS_Pointer_Right ((guint) 0xfee1) #define SKK_KEYSYMS_Pointer_Up ((guint) 0xfee2) #define SKK_KEYSYMS_Pointer_Down ((guint) 0xfee3) #define SKK_KEYSYMS_Pointer_UpLeft ((guint) 0xfee4) #define SKK_KEYSYMS_Pointer_UpRight ((guint) 0xfee5) #define SKK_KEYSYMS_Pointer_DownLeft ((guint) 0xfee6) #define SKK_KEYSYMS_Pointer_DownRight ((guint) 0xfee7) #define SKK_KEYSYMS_Pointer_Button_Dflt ((guint) 0xfee8) #define SKK_KEYSYMS_Pointer_Button1 ((guint) 0xfee9) #define SKK_KEYSYMS_Pointer_Button2 ((guint) 0xfeea) #define SKK_KEYSYMS_Pointer_Button3 ((guint) 0xfeeb) #define SKK_KEYSYMS_Pointer_Button4 ((guint) 0xfeec) #define SKK_KEYSYMS_Pointer_Button5 ((guint) 0xfeed) #define SKK_KEYSYMS_Pointer_DblClick_Dflt ((guint) 0xfeee) #define SKK_KEYSYMS_Pointer_DblClick1 ((guint) 0xfeef) #define SKK_KEYSYMS_Pointer_DblClick2 ((guint) 0xfef0) #define SKK_KEYSYMS_Pointer_DblClick3 ((guint) 0xfef1) #define SKK_KEYSYMS_Pointer_DblClick4 ((guint) 0xfef2) #define SKK_KEYSYMS_Pointer_DblClick5 ((guint) 0xfef3) #define SKK_KEYSYMS_Pointer_Drag_Dflt ((guint) 0xfef4) #define SKK_KEYSYMS_Pointer_Drag1 ((guint) 0xfef5) #define SKK_KEYSYMS_Pointer_Drag2 ((guint) 0xfef6) #define SKK_KEYSYMS_Pointer_Drag3 ((guint) 0xfef7) #define SKK_KEYSYMS_Pointer_Drag4 ((guint) 0xfef8) #define SKK_KEYSYMS_Pointer_Drag5 ((guint) 0xfefd) #define SKK_KEYSYMS_Pointer_EnableKeys ((guint) 0xfef9) #define SKK_KEYSYMS_Pointer_Accelerate ((guint) 0xfefa) #define SKK_KEYSYMS_Pointer_DfltBtnNext ((guint) 0xfefb) #define SKK_KEYSYMS_Pointer_DfltBtnPrev ((guint) 0xfefc) #define SKK_KEYSYMS_3270_Duplicate ((guint) 0xfd01) #define SKK_KEYSYMS_3270_FieldMark ((guint) 0xfd02) #define SKK_KEYSYMS_3270_Right2 ((guint) 0xfd03) #define SKK_KEYSYMS_3270_Left2 ((guint) 0xfd04) #define SKK_KEYSYMS_3270_BackTab ((guint) 0xfd05) #define SKK_KEYSYMS_3270_EraseEOF ((guint) 0xfd06) #define SKK_KEYSYMS_3270_EraseInput ((guint) 0xfd07) #define SKK_KEYSYMS_3270_Reset ((guint) 0xfd08) #define SKK_KEYSYMS_3270_Quit ((guint) 0xfd09) #define SKK_KEYSYMS_3270_PA1 ((guint) 0xfd0a) #define SKK_KEYSYMS_3270_PA2 ((guint) 0xfd0b) #define SKK_KEYSYMS_3270_PA3 ((guint) 0xfd0c) #define SKK_KEYSYMS_3270_Test ((guint) 0xfd0d) #define SKK_KEYSYMS_3270_Attn ((guint) 0xfd0e) #define SKK_KEYSYMS_3270_CursorBlink ((guint) 0xfd0f) #define SKK_KEYSYMS_3270_AltCursor ((guint) 0xfd10) #define SKK_KEYSYMS_3270_KeyClick ((guint) 0xfd11) #define SKK_KEYSYMS_3270_Jump ((guint) 0xfd12) #define SKK_KEYSYMS_3270_Ident ((guint) 0xfd13) #define SKK_KEYSYMS_3270_Rule ((guint) 0xfd14) #define SKK_KEYSYMS_3270_Copy ((guint) 0xfd15) #define SKK_KEYSYMS_3270_Play ((guint) 0xfd16) #define SKK_KEYSYMS_3270_Setup ((guint) 0xfd17) #define SKK_KEYSYMS_3270_Record ((guint) 0xfd18) #define SKK_KEYSYMS_3270_ChangeScreen ((guint) 0xfd19) #define SKK_KEYSYMS_3270_DeleteWord ((guint) 0xfd1a) #define SKK_KEYSYMS_3270_ExSelect ((guint) 0xfd1b) #define SKK_KEYSYMS_3270_CursorSelect ((guint) 0xfd1c) #define SKK_KEYSYMS_3270_PrintScreen ((guint) 0xfd1d) #define SKK_KEYSYMS_3270_Enter ((guint) 0xfd1e) #define SKK_KEYSYMS_space ((guint) 0x0020) #define SKK_KEYSYMS_exclam ((guint) 0x0021) #define SKK_KEYSYMS_quotedbl ((guint) 0x0022) #define SKK_KEYSYMS_numbersign ((guint) 0x0023) #define SKK_KEYSYMS_dollar ((guint) 0x0024) #define SKK_KEYSYMS_percent ((guint) 0x0025) #define SKK_KEYSYMS_ampersand ((guint) 0x0026) #define SKK_KEYSYMS_apostrophe ((guint) 0x0027) #define SKK_KEYSYMS_quoteright ((guint) 0x0027) #define SKK_KEYSYMS_parenleft ((guint) 0x0028) #define SKK_KEYSYMS_parenright ((guint) 0x0029) #define SKK_KEYSYMS_asterisk ((guint) 0x002a) #define SKK_KEYSYMS_plus ((guint) 0x002b) #define SKK_KEYSYMS_comma ((guint) 0x002c) #define SKK_KEYSYMS_minus ((guint) 0x002d) #define SKK_KEYSYMS_period ((guint) 0x002e) #define SKK_KEYSYMS_slash ((guint) 0x002f) #define SKK_KEYSYMS_0 ((guint) 0x0030) #define SKK_KEYSYMS_1 ((guint) 0x0031) #define SKK_KEYSYMS_2 ((guint) 0x0032) #define SKK_KEYSYMS_3 ((guint) 0x0033) #define SKK_KEYSYMS_4 ((guint) 0x0034) #define SKK_KEYSYMS_5 ((guint) 0x0035) #define SKK_KEYSYMS_6 ((guint) 0x0036) #define SKK_KEYSYMS_7 ((guint) 0x0037) #define SKK_KEYSYMS_8 ((guint) 0x0038) #define SKK_KEYSYMS_9 ((guint) 0x0039) #define SKK_KEYSYMS_colon ((guint) 0x003a) #define SKK_KEYSYMS_semicolon ((guint) 0x003b) #define SKK_KEYSYMS_less ((guint) 0x003c) #define SKK_KEYSYMS_equal ((guint) 0x003d) #define SKK_KEYSYMS_greater ((guint) 0x003e) #define SKK_KEYSYMS_question ((guint) 0x003f) #define SKK_KEYSYMS_at ((guint) 0x0040) #define SKK_KEYSYMS_A ((guint) 0x0041) #define SKK_KEYSYMS_B ((guint) 0x0042) #define SKK_KEYSYMS_C ((guint) 0x0043) #define SKK_KEYSYMS_D ((guint) 0x0044) #define SKK_KEYSYMS_E ((guint) 0x0045) #define SKK_KEYSYMS_F ((guint) 0x0046) #define SKK_KEYSYMS_G ((guint) 0x0047) #define SKK_KEYSYMS_H ((guint) 0x0048) #define SKK_KEYSYMS_I ((guint) 0x0049) #define SKK_KEYSYMS_J ((guint) 0x004a) #define SKK_KEYSYMS_K ((guint) 0x004b) #define SKK_KEYSYMS_L ((guint) 0x004c) #define SKK_KEYSYMS_M ((guint) 0x004d) #define SKK_KEYSYMS_N ((guint) 0x004e) #define SKK_KEYSYMS_O ((guint) 0x004f) #define SKK_KEYSYMS_P ((guint) 0x0050) #define SKK_KEYSYMS_Q ((guint) 0x0051) #define SKK_KEYSYMS_R ((guint) 0x0052) #define SKK_KEYSYMS_S ((guint) 0x0053) #define SKK_KEYSYMS_T ((guint) 0x0054) #define SKK_KEYSYMS_U ((guint) 0x0055) #define SKK_KEYSYMS_V ((guint) 0x0056) #define SKK_KEYSYMS_W ((guint) 0x0057) #define SKK_KEYSYMS_X ((guint) 0x0058) #define SKK_KEYSYMS_Y ((guint) 0x0059) #define SKK_KEYSYMS_Z ((guint) 0x005a) #define SKK_KEYSYMS_bracketleft ((guint) 0x005b) #define SKK_KEYSYMS_backslash ((guint) 0x005c) #define SKK_KEYSYMS_bracketright ((guint) 0x005d) #define SKK_KEYSYMS_asciicircum ((guint) 0x005e) #define SKK_KEYSYMS_underscore ((guint) 0x005f) #define SKK_KEYSYMS_grave ((guint) 0x0060) #define SKK_KEYSYMS_quoteleft ((guint) 0x0060) #define SKK_KEYSYMS_a ((guint) 0x0061) #define SKK_KEYSYMS_b ((guint) 0x0062) #define SKK_KEYSYMS_c ((guint) 0x0063) #define SKK_KEYSYMS_d ((guint) 0x0064) #define SKK_KEYSYMS_e ((guint) 0x0065) #define SKK_KEYSYMS_f ((guint) 0x0066) #define SKK_KEYSYMS_g ((guint) 0x0067) #define SKK_KEYSYMS_h ((guint) 0x0068) #define SKK_KEYSYMS_i ((guint) 0x0069) #define SKK_KEYSYMS_j ((guint) 0x006a) #define SKK_KEYSYMS_k ((guint) 0x006b) #define SKK_KEYSYMS_l ((guint) 0x006c) #define SKK_KEYSYMS_m ((guint) 0x006d) #define SKK_KEYSYMS_n ((guint) 0x006e) #define SKK_KEYSYMS_o ((guint) 0x006f) #define SKK_KEYSYMS_p ((guint) 0x0070) #define SKK_KEYSYMS_q ((guint) 0x0071) #define SKK_KEYSYMS_r ((guint) 0x0072) #define SKK_KEYSYMS_s ((guint) 0x0073) #define SKK_KEYSYMS_t ((guint) 0x0074) #define SKK_KEYSYMS_u ((guint) 0x0075) #define SKK_KEYSYMS_v ((guint) 0x0076) #define SKK_KEYSYMS_w ((guint) 0x0077) #define SKK_KEYSYMS_x ((guint) 0x0078) #define SKK_KEYSYMS_y ((guint) 0x0079) #define SKK_KEYSYMS_z ((guint) 0x007a) #define SKK_KEYSYMS_braceleft ((guint) 0x007b) #define SKK_KEYSYMS_bar ((guint) 0x007c) #define SKK_KEYSYMS_braceright ((guint) 0x007d) #define SKK_KEYSYMS_asciitilde ((guint) 0x007e) #define SKK_KEYSYMS_nobreakspace ((guint) 0x00a0) #define SKK_KEYSYMS_exclamdown ((guint) 0x00a1) #define SKK_KEYSYMS_cent ((guint) 0x00a2) #define SKK_KEYSYMS_sterling ((guint) 0x00a3) #define SKK_KEYSYMS_currency ((guint) 0x00a4) #define SKK_KEYSYMS_yen ((guint) 0x00a5) #define SKK_KEYSYMS_brokenbar ((guint) 0x00a6) #define SKK_KEYSYMS_section ((guint) 0x00a7) #define SKK_KEYSYMS_diaeresis ((guint) 0x00a8) #define SKK_KEYSYMS_copyright ((guint) 0x00a9) #define SKK_KEYSYMS_ordfeminine ((guint) 0x00aa) #define SKK_KEYSYMS_guillemotleft ((guint) 0x00ab) #define SKK_KEYSYMS_notsign ((guint) 0x00ac) #define SKK_KEYSYMS_hyphen ((guint) 0x00ad) #define SKK_KEYSYMS_registered ((guint) 0x00ae) #define SKK_KEYSYMS_macron ((guint) 0x00af) #define SKK_KEYSYMS_degree ((guint) 0x00b0) #define SKK_KEYSYMS_plusminus ((guint) 0x00b1) #define SKK_KEYSYMS_twosuperior ((guint) 0x00b2) #define SKK_KEYSYMS_threesuperior ((guint) 0x00b3) #define SKK_KEYSYMS_acute ((guint) 0x00b4) #define SKK_KEYSYMS_mu ((guint) 0x00b5) #define SKK_KEYSYMS_paragraph ((guint) 0x00b6) #define SKK_KEYSYMS_periodcentered ((guint) 0x00b7) #define SKK_KEYSYMS_cedilla ((guint) 0x00b8) #define SKK_KEYSYMS_onesuperior ((guint) 0x00b9) #define SKK_KEYSYMS_masculine ((guint) 0x00ba) #define SKK_KEYSYMS_guillemotright ((guint) 0x00bb) #define SKK_KEYSYMS_onequarter ((guint) 0x00bc) #define SKK_KEYSYMS_onehalf ((guint) 0x00bd) #define SKK_KEYSYMS_threequarters ((guint) 0x00be) #define SKK_KEYSYMS_questiondown ((guint) 0x00bf) #define SKK_KEYSYMS_Agrave ((guint) 0x00c0) #define SKK_KEYSYMS_Aacute ((guint) 0x00c1) #define SKK_KEYSYMS_Acircumflex ((guint) 0x00c2) #define SKK_KEYSYMS_Atilde ((guint) 0x00c3) #define SKK_KEYSYMS_Adiaeresis ((guint) 0x00c4) #define SKK_KEYSYMS_Aring ((guint) 0x00c5) #define SKK_KEYSYMS_AE ((guint) 0x00c6) #define SKK_KEYSYMS_Ccedilla ((guint) 0x00c7) #define SKK_KEYSYMS_Egrave ((guint) 0x00c8) #define SKK_KEYSYMS_Eacute ((guint) 0x00c9) #define SKK_KEYSYMS_Ecircumflex ((guint) 0x00ca) #define SKK_KEYSYMS_Ediaeresis ((guint) 0x00cb) #define SKK_KEYSYMS_Igrave ((guint) 0x00cc) #define SKK_KEYSYMS_Iacute ((guint) 0x00cd) #define SKK_KEYSYMS_Icircumflex ((guint) 0x00ce) #define SKK_KEYSYMS_Idiaeresis ((guint) 0x00cf) #define SKK_KEYSYMS_ETH ((guint) 0x00d0) #define SKK_KEYSYMS_Eth ((guint) 0x00d0) #define SKK_KEYSYMS_Ntilde ((guint) 0x00d1) #define SKK_KEYSYMS_Ograve ((guint) 0x00d2) #define SKK_KEYSYMS_Oacute ((guint) 0x00d3) #define SKK_KEYSYMS_Ocircumflex ((guint) 0x00d4) #define SKK_KEYSYMS_Otilde ((guint) 0x00d5) #define SKK_KEYSYMS_Odiaeresis ((guint) 0x00d6) #define SKK_KEYSYMS_multiply ((guint) 0x00d7) #define SKK_KEYSYMS_Oslash ((guint) 0x00d8) #define SKK_KEYSYMS_Ooblique ((guint) 0x00d8) #define SKK_KEYSYMS_Ugrave ((guint) 0x00d9) #define SKK_KEYSYMS_Uacute ((guint) 0x00da) #define SKK_KEYSYMS_Ucircumflex ((guint) 0x00db) #define SKK_KEYSYMS_Udiaeresis ((guint) 0x00dc) #define SKK_KEYSYMS_Yacute ((guint) 0x00dd) #define SKK_KEYSYMS_THORN ((guint) 0x00de) #define SKK_KEYSYMS_Thorn ((guint) 0x00de) #define SKK_KEYSYMS_ssharp ((guint) 0x00df) #define SKK_KEYSYMS_agrave ((guint) 0x00e0) #define SKK_KEYSYMS_aacute ((guint) 0x00e1) #define SKK_KEYSYMS_acircumflex ((guint) 0x00e2) #define SKK_KEYSYMS_atilde ((guint) 0x00e3) #define SKK_KEYSYMS_adiaeresis ((guint) 0x00e4) #define SKK_KEYSYMS_aring ((guint) 0x00e5) #define SKK_KEYSYMS_ae ((guint) 0x00e6) #define SKK_KEYSYMS_ccedilla ((guint) 0x00e7) #define SKK_KEYSYMS_egrave ((guint) 0x00e8) #define SKK_KEYSYMS_eacute ((guint) 0x00e9) #define SKK_KEYSYMS_ecircumflex ((guint) 0x00ea) #define SKK_KEYSYMS_ediaeresis ((guint) 0x00eb) #define SKK_KEYSYMS_igrave ((guint) 0x00ec) #define SKK_KEYSYMS_iacute ((guint) 0x00ed) #define SKK_KEYSYMS_icircumflex ((guint) 0x00ee) #define SKK_KEYSYMS_idiaeresis ((guint) 0x00ef) #define SKK_KEYSYMS_eth ((guint) 0x00f0) #define SKK_KEYSYMS_ntilde ((guint) 0x00f1) #define SKK_KEYSYMS_ograve ((guint) 0x00f2) #define SKK_KEYSYMS_oacute ((guint) 0x00f3) #define SKK_KEYSYMS_ocircumflex ((guint) 0x00f4) #define SKK_KEYSYMS_otilde ((guint) 0x00f5) #define SKK_KEYSYMS_odiaeresis ((guint) 0x00f6) #define SKK_KEYSYMS_division ((guint) 0x00f7) #define SKK_KEYSYMS_oslash ((guint) 0x00f8) #define SKK_KEYSYMS_ooblique ((guint) 0x00f8) #define SKK_KEYSYMS_ugrave ((guint) 0x00f9) #define SKK_KEYSYMS_uacute ((guint) 0x00fa) #define SKK_KEYSYMS_ucircumflex ((guint) 0x00fb) #define SKK_KEYSYMS_udiaeresis ((guint) 0x00fc) #define SKK_KEYSYMS_yacute ((guint) 0x00fd) #define SKK_KEYSYMS_thorn ((guint) 0x00fe) #define SKK_KEYSYMS_ydiaeresis ((guint) 0x00ff) #define SKK_KEYSYMS_Aogonek ((guint) 0x01a1) #define SKK_KEYSYMS_breve ((guint) 0x01a2) #define SKK_KEYSYMS_Lstroke ((guint) 0x01a3) #define SKK_KEYSYMS_Lcaron ((guint) 0x01a5) #define SKK_KEYSYMS_Sacute ((guint) 0x01a6) #define SKK_KEYSYMS_Scaron ((guint) 0x01a9) #define SKK_KEYSYMS_Scedilla ((guint) 0x01aa) #define SKK_KEYSYMS_Tcaron ((guint) 0x01ab) #define SKK_KEYSYMS_Zacute ((guint) 0x01ac) #define SKK_KEYSYMS_Zcaron ((guint) 0x01ae) #define SKK_KEYSYMS_Zabovedot ((guint) 0x01af) #define SKK_KEYSYMS_aogonek ((guint) 0x01b1) #define SKK_KEYSYMS_ogonek ((guint) 0x01b2) #define SKK_KEYSYMS_lstroke ((guint) 0x01b3) #define SKK_KEYSYMS_lcaron ((guint) 0x01b5) #define SKK_KEYSYMS_sacute ((guint) 0x01b6) #define SKK_KEYSYMS_caron ((guint) 0x01b7) #define SKK_KEYSYMS_scaron ((guint) 0x01b9) #define SKK_KEYSYMS_scedilla ((guint) 0x01ba) #define SKK_KEYSYMS_tcaron ((guint) 0x01bb) #define SKK_KEYSYMS_zacute ((guint) 0x01bc) #define SKK_KEYSYMS_doubleacute ((guint) 0x01bd) #define SKK_KEYSYMS_zcaron ((guint) 0x01be) #define SKK_KEYSYMS_zabovedot ((guint) 0x01bf) #define SKK_KEYSYMS_Racute ((guint) 0x01c0) #define SKK_KEYSYMS_Abreve ((guint) 0x01c3) #define SKK_KEYSYMS_Lacute ((guint) 0x01c5) #define SKK_KEYSYMS_Cacute ((guint) 0x01c6) #define SKK_KEYSYMS_Ccaron ((guint) 0x01c8) #define SKK_KEYSYMS_Eogonek ((guint) 0x01ca) #define SKK_KEYSYMS_Ecaron ((guint) 0x01cc) #define SKK_KEYSYMS_Dcaron ((guint) 0x01cf) #define SKK_KEYSYMS_Dstroke ((guint) 0x01d0) #define SKK_KEYSYMS_Nacute ((guint) 0x01d1) #define SKK_KEYSYMS_Ncaron ((guint) 0x01d2) #define SKK_KEYSYMS_Odoubleacute ((guint) 0x01d5) #define SKK_KEYSYMS_Rcaron ((guint) 0x01d8) #define SKK_KEYSYMS_Uring ((guint) 0x01d9) #define SKK_KEYSYMS_Udoubleacute ((guint) 0x01db) #define SKK_KEYSYMS_Tcedilla ((guint) 0x01de) #define SKK_KEYSYMS_racute ((guint) 0x01e0) #define SKK_KEYSYMS_abreve ((guint) 0x01e3) #define SKK_KEYSYMS_lacute ((guint) 0x01e5) #define SKK_KEYSYMS_cacute ((guint) 0x01e6) #define SKK_KEYSYMS_ccaron ((guint) 0x01e8) #define SKK_KEYSYMS_eogonek ((guint) 0x01ea) #define SKK_KEYSYMS_ecaron ((guint) 0x01ec) #define SKK_KEYSYMS_dcaron ((guint) 0x01ef) #define SKK_KEYSYMS_dstroke ((guint) 0x01f0) #define SKK_KEYSYMS_nacute ((guint) 0x01f1) #define SKK_KEYSYMS_ncaron ((guint) 0x01f2) #define SKK_KEYSYMS_odoubleacute ((guint) 0x01f5) #define SKK_KEYSYMS_rcaron ((guint) 0x01f8) #define SKK_KEYSYMS_uring ((guint) 0x01f9) #define SKK_KEYSYMS_udoubleacute ((guint) 0x01fb) #define SKK_KEYSYMS_tcedilla ((guint) 0x01fe) #define SKK_KEYSYMS_abovedot ((guint) 0x01ff) #define SKK_KEYSYMS_Hstroke ((guint) 0x02a1) #define SKK_KEYSYMS_Hcircumflex ((guint) 0x02a6) #define SKK_KEYSYMS_Iabovedot ((guint) 0x02a9) #define SKK_KEYSYMS_Gbreve ((guint) 0x02ab) #define SKK_KEYSYMS_Jcircumflex ((guint) 0x02ac) #define SKK_KEYSYMS_hstroke ((guint) 0x02b1) #define SKK_KEYSYMS_hcircumflex ((guint) 0x02b6) #define SKK_KEYSYMS_idotless ((guint) 0x02b9) #define SKK_KEYSYMS_gbreve ((guint) 0x02bb) #define SKK_KEYSYMS_jcircumflex ((guint) 0x02bc) #define SKK_KEYSYMS_Cabovedot ((guint) 0x02c5) #define SKK_KEYSYMS_Ccircumflex ((guint) 0x02c6) #define SKK_KEYSYMS_Gabovedot ((guint) 0x02d5) #define SKK_KEYSYMS_Gcircumflex ((guint) 0x02d8) #define SKK_KEYSYMS_Ubreve ((guint) 0x02dd) #define SKK_KEYSYMS_Scircumflex ((guint) 0x02de) #define SKK_KEYSYMS_cabovedot ((guint) 0x02e5) #define SKK_KEYSYMS_ccircumflex ((guint) 0x02e6) #define SKK_KEYSYMS_gabovedot ((guint) 0x02f5) #define SKK_KEYSYMS_gcircumflex ((guint) 0x02f8) #define SKK_KEYSYMS_ubreve ((guint) 0x02fd) #define SKK_KEYSYMS_scircumflex ((guint) 0x02fe) #define SKK_KEYSYMS_kra ((guint) 0x03a2) #define SKK_KEYSYMS_kappa ((guint) 0x03a2) #define SKK_KEYSYMS_Rcedilla ((guint) 0x03a3) #define SKK_KEYSYMS_Itilde ((guint) 0x03a5) #define SKK_KEYSYMS_Lcedilla ((guint) 0x03a6) #define SKK_KEYSYMS_Emacron ((guint) 0x03aa) #define SKK_KEYSYMS_Gcedilla ((guint) 0x03ab) #define SKK_KEYSYMS_Tslash ((guint) 0x03ac) #define SKK_KEYSYMS_rcedilla ((guint) 0x03b3) #define SKK_KEYSYMS_itilde ((guint) 0x03b5) #define SKK_KEYSYMS_lcedilla ((guint) 0x03b6) #define SKK_KEYSYMS_emacron ((guint) 0x03ba) #define SKK_KEYSYMS_gcedilla ((guint) 0x03bb) #define SKK_KEYSYMS_tslash ((guint) 0x03bc) #define SKK_KEYSYMS_ENG ((guint) 0x03bd) #define SKK_KEYSYMS_eng ((guint) 0x03bf) #define SKK_KEYSYMS_Amacron ((guint) 0x03c0) #define SKK_KEYSYMS_Iogonek ((guint) 0x03c7) #define SKK_KEYSYMS_Eabovedot ((guint) 0x03cc) #define SKK_KEYSYMS_Imacron ((guint) 0x03cf) #define SKK_KEYSYMS_Ncedilla ((guint) 0x03d1) #define SKK_KEYSYMS_Omacron ((guint) 0x03d2) #define SKK_KEYSYMS_Kcedilla ((guint) 0x03d3) #define SKK_KEYSYMS_Uogonek ((guint) 0x03d9) #define SKK_KEYSYMS_Utilde ((guint) 0x03dd) #define SKK_KEYSYMS_Umacron ((guint) 0x03de) #define SKK_KEYSYMS_amacron ((guint) 0x03e0) #define SKK_KEYSYMS_iogonek ((guint) 0x03e7) #define SKK_KEYSYMS_eabovedot ((guint) 0x03ec) #define SKK_KEYSYMS_imacron ((guint) 0x03ef) #define SKK_KEYSYMS_ncedilla ((guint) 0x03f1) #define SKK_KEYSYMS_omacron ((guint) 0x03f2) #define SKK_KEYSYMS_kcedilla ((guint) 0x03f3) #define SKK_KEYSYMS_uogonek ((guint) 0x03f9) #define SKK_KEYSYMS_utilde ((guint) 0x03fd) #define SKK_KEYSYMS_umacron ((guint) 0x03fe) #define SKK_KEYSYMS_Wcircumflex ((guint) 0x1000174) #define SKK_KEYSYMS_wcircumflex ((guint) 0x1000175) #define SKK_KEYSYMS_Ycircumflex ((guint) 0x1000176) #define SKK_KEYSYMS_ycircumflex ((guint) 0x1000177) #define SKK_KEYSYMS_Babovedot ((guint) 0x1001e02) #define SKK_KEYSYMS_babovedot ((guint) 0x1001e03) #define SKK_KEYSYMS_Dabovedot ((guint) 0x1001e0a) #define SKK_KEYSYMS_dabovedot ((guint) 0x1001e0b) #define SKK_KEYSYMS_Fabovedot ((guint) 0x1001e1e) #define SKK_KEYSYMS_fabovedot ((guint) 0x1001e1f) #define SKK_KEYSYMS_Mabovedot ((guint) 0x1001e40) #define SKK_KEYSYMS_mabovedot ((guint) 0x1001e41) #define SKK_KEYSYMS_Pabovedot ((guint) 0x1001e56) #define SKK_KEYSYMS_pabovedot ((guint) 0x1001e57) #define SKK_KEYSYMS_Sabovedot ((guint) 0x1001e60) #define SKK_KEYSYMS_sabovedot ((guint) 0x1001e61) #define SKK_KEYSYMS_Tabovedot ((guint) 0x1001e6a) #define SKK_KEYSYMS_tabovedot ((guint) 0x1001e6b) #define SKK_KEYSYMS_Wgrave ((guint) 0x1001e80) #define SKK_KEYSYMS_wgrave ((guint) 0x1001e81) #define SKK_KEYSYMS_Wacute ((guint) 0x1001e82) #define SKK_KEYSYMS_wacute ((guint) 0x1001e83) #define SKK_KEYSYMS_Wdiaeresis ((guint) 0x1001e84) #define SKK_KEYSYMS_wdiaeresis ((guint) 0x1001e85) #define SKK_KEYSYMS_Ygrave ((guint) 0x1001ef2) #define SKK_KEYSYMS_ygrave ((guint) 0x1001ef3) #define SKK_KEYSYMS_OE ((guint) 0x13bc) #define SKK_KEYSYMS_oe ((guint) 0x13bd) #define SKK_KEYSYMS_Ydiaeresis ((guint) 0x13be) #define SKK_KEYSYMS_overline ((guint) 0x047e) #define SKK_KEYSYMS_kana_fullstop ((guint) 0x04a1) #define SKK_KEYSYMS_kana_openingbracket ((guint) 0x04a2) #define SKK_KEYSYMS_kana_closingbracket ((guint) 0x04a3) #define SKK_KEYSYMS_kana_comma ((guint) 0x04a4) #define SKK_KEYSYMS_kana_conjunctive ((guint) 0x04a5) #define SKK_KEYSYMS_kana_middledot ((guint) 0x04a5) #define SKK_KEYSYMS_kana_WO ((guint) 0x04a6) #define SKK_KEYSYMS_kana_a ((guint) 0x04a7) #define SKK_KEYSYMS_kana_i ((guint) 0x04a8) #define SKK_KEYSYMS_kana_u ((guint) 0x04a9) #define SKK_KEYSYMS_kana_e ((guint) 0x04aa) #define SKK_KEYSYMS_kana_o ((guint) 0x04ab) #define SKK_KEYSYMS_kana_ya ((guint) 0x04ac) #define SKK_KEYSYMS_kana_yu ((guint) 0x04ad) #define SKK_KEYSYMS_kana_yo ((guint) 0x04ae) #define SKK_KEYSYMS_kana_tsu ((guint) 0x04af) #define SKK_KEYSYMS_kana_tu ((guint) 0x04af) #define SKK_KEYSYMS_prolongedsound ((guint) 0x04b0) #define SKK_KEYSYMS_kana_A ((guint) 0x04b1) #define SKK_KEYSYMS_kana_I ((guint) 0x04b2) #define SKK_KEYSYMS_kana_U ((guint) 0x04b3) #define SKK_KEYSYMS_kana_E ((guint) 0x04b4) #define SKK_KEYSYMS_kana_O ((guint) 0x04b5) #define SKK_KEYSYMS_kana_KA ((guint) 0x04b6) #define SKK_KEYSYMS_kana_KI ((guint) 0x04b7) #define SKK_KEYSYMS_kana_KU ((guint) 0x04b8) #define SKK_KEYSYMS_kana_KE ((guint) 0x04b9) #define SKK_KEYSYMS_kana_KO ((guint) 0x04ba) #define SKK_KEYSYMS_kana_SA ((guint) 0x04bb) #define SKK_KEYSYMS_kana_SHI ((guint) 0x04bc) #define SKK_KEYSYMS_kana_SU ((guint) 0x04bd) #define SKK_KEYSYMS_kana_SE ((guint) 0x04be) #define SKK_KEYSYMS_kana_SO ((guint) 0x04bf) #define SKK_KEYSYMS_kana_TA ((guint) 0x04c0) #define SKK_KEYSYMS_kana_CHI ((guint) 0x04c1) #define SKK_KEYSYMS_kana_TI ((guint) 0x04c1) #define SKK_KEYSYMS_kana_TSU ((guint) 0x04c2) #define SKK_KEYSYMS_kana_TU ((guint) 0x04c2) #define SKK_KEYSYMS_kana_TE ((guint) 0x04c3) #define SKK_KEYSYMS_kana_TO ((guint) 0x04c4) #define SKK_KEYSYMS_kana_NA ((guint) 0x04c5) #define SKK_KEYSYMS_kana_NI ((guint) 0x04c6) #define SKK_KEYSYMS_kana_NU ((guint) 0x04c7) #define SKK_KEYSYMS_kana_NE ((guint) 0x04c8) #define SKK_KEYSYMS_kana_NO ((guint) 0x04c9) #define SKK_KEYSYMS_kana_HA ((guint) 0x04ca) #define SKK_KEYSYMS_kana_HI ((guint) 0x04cb) #define SKK_KEYSYMS_kana_FU ((guint) 0x04cc) #define SKK_KEYSYMS_kana_HU ((guint) 0x04cc) #define SKK_KEYSYMS_kana_HE ((guint) 0x04cd) #define SKK_KEYSYMS_kana_HO ((guint) 0x04ce) #define SKK_KEYSYMS_kana_MA ((guint) 0x04cf) #define SKK_KEYSYMS_kana_MI ((guint) 0x04d0) #define SKK_KEYSYMS_kana_MU ((guint) 0x04d1) #define SKK_KEYSYMS_kana_ME ((guint) 0x04d2) #define SKK_KEYSYMS_kana_MO ((guint) 0x04d3) #define SKK_KEYSYMS_kana_YA ((guint) 0x04d4) #define SKK_KEYSYMS_kana_YU ((guint) 0x04d5) #define SKK_KEYSYMS_kana_YO ((guint) 0x04d6) #define SKK_KEYSYMS_kana_RA ((guint) 0x04d7) #define SKK_KEYSYMS_kana_RI ((guint) 0x04d8) #define SKK_KEYSYMS_kana_RU ((guint) 0x04d9) #define SKK_KEYSYMS_kana_RE ((guint) 0x04da) #define SKK_KEYSYMS_kana_RO ((guint) 0x04db) #define SKK_KEYSYMS_kana_WA ((guint) 0x04dc) #define SKK_KEYSYMS_kana_N ((guint) 0x04dd) #define SKK_KEYSYMS_voicedsound ((guint) 0x04de) #define SKK_KEYSYMS_semivoicedsound ((guint) 0x04df) #define SKK_KEYSYMS_kana_switch ((guint) 0xff7e) #define SKK_KEYSYMS_Farsi_0 ((guint) 0x10006f0) #define SKK_KEYSYMS_Farsi_1 ((guint) 0x10006f1) #define SKK_KEYSYMS_Farsi_2 ((guint) 0x10006f2) #define SKK_KEYSYMS_Farsi_3 ((guint) 0x10006f3) #define SKK_KEYSYMS_Farsi_4 ((guint) 0x10006f4) #define SKK_KEYSYMS_Farsi_5 ((guint) 0x10006f5) #define SKK_KEYSYMS_Farsi_6 ((guint) 0x10006f6) #define SKK_KEYSYMS_Farsi_7 ((guint) 0x10006f7) #define SKK_KEYSYMS_Farsi_8 ((guint) 0x10006f8) #define SKK_KEYSYMS_Farsi_9 ((guint) 0x10006f9) #define SKK_KEYSYMS_Arabic_percent ((guint) 0x100066a) #define SKK_KEYSYMS_Arabic_superscript_alef ((guint) 0x1000670) #define SKK_KEYSYMS_Arabic_tteh ((guint) 0x1000679) #define SKK_KEYSYMS_Arabic_peh ((guint) 0x100067e) #define SKK_KEYSYMS_Arabic_tcheh ((guint) 0x1000686) #define SKK_KEYSYMS_Arabic_ddal ((guint) 0x1000688) #define SKK_KEYSYMS_Arabic_rreh ((guint) 0x1000691) #define SKK_KEYSYMS_Arabic_comma ((guint) 0x05ac) #define SKK_KEYSYMS_Arabic_fullstop ((guint) 0x10006d4) #define SKK_KEYSYMS_Arabic_0 ((guint) 0x1000660) #define SKK_KEYSYMS_Arabic_1 ((guint) 0x1000661) #define SKK_KEYSYMS_Arabic_2 ((guint) 0x1000662) #define SKK_KEYSYMS_Arabic_3 ((guint) 0x1000663) #define SKK_KEYSYMS_Arabic_4 ((guint) 0x1000664) #define SKK_KEYSYMS_Arabic_5 ((guint) 0x1000665) #define SKK_KEYSYMS_Arabic_6 ((guint) 0x1000666) #define SKK_KEYSYMS_Arabic_7 ((guint) 0x1000667) #define SKK_KEYSYMS_Arabic_8 ((guint) 0x1000668) #define SKK_KEYSYMS_Arabic_9 ((guint) 0x1000669) #define SKK_KEYSYMS_Arabic_semicolon ((guint) 0x05bb) #define SKK_KEYSYMS_Arabic_question_mark ((guint) 0x05bf) #define SKK_KEYSYMS_Arabic_hamza ((guint) 0x05c1) #define SKK_KEYSYMS_Arabic_maddaonalef ((guint) 0x05c2) #define SKK_KEYSYMS_Arabic_hamzaonalef ((guint) 0x05c3) #define SKK_KEYSYMS_Arabic_hamzaonwaw ((guint) 0x05c4) #define SKK_KEYSYMS_Arabic_hamzaunderalef ((guint) 0x05c5) #define SKK_KEYSYMS_Arabic_hamzaonyeh ((guint) 0x05c6) #define SKK_KEYSYMS_Arabic_alef ((guint) 0x05c7) #define SKK_KEYSYMS_Arabic_beh ((guint) 0x05c8) #define SKK_KEYSYMS_Arabic_tehmarbuta ((guint) 0x05c9) #define SKK_KEYSYMS_Arabic_teh ((guint) 0x05ca) #define SKK_KEYSYMS_Arabic_theh ((guint) 0x05cb) #define SKK_KEYSYMS_Arabic_jeem ((guint) 0x05cc) #define SKK_KEYSYMS_Arabic_hah ((guint) 0x05cd) #define SKK_KEYSYMS_Arabic_khah ((guint) 0x05ce) #define SKK_KEYSYMS_Arabic_dal ((guint) 0x05cf) #define SKK_KEYSYMS_Arabic_thal ((guint) 0x05d0) #define SKK_KEYSYMS_Arabic_ra ((guint) 0x05d1) #define SKK_KEYSYMS_Arabic_zain ((guint) 0x05d2) #define SKK_KEYSYMS_Arabic_seen ((guint) 0x05d3) #define SKK_KEYSYMS_Arabic_sheen ((guint) 0x05d4) #define SKK_KEYSYMS_Arabic_sad ((guint) 0x05d5) #define SKK_KEYSYMS_Arabic_dad ((guint) 0x05d6) #define SKK_KEYSYMS_Arabic_tah ((guint) 0x05d7) #define SKK_KEYSYMS_Arabic_zah ((guint) 0x05d8) #define SKK_KEYSYMS_Arabic_ain ((guint) 0x05d9) #define SKK_KEYSYMS_Arabic_ghain ((guint) 0x05da) #define SKK_KEYSYMS_Arabic_tatweel ((guint) 0x05e0) #define SKK_KEYSYMS_Arabic_feh ((guint) 0x05e1) #define SKK_KEYSYMS_Arabic_qaf ((guint) 0x05e2) #define SKK_KEYSYMS_Arabic_kaf ((guint) 0x05e3) #define SKK_KEYSYMS_Arabic_lam ((guint) 0x05e4) #define SKK_KEYSYMS_Arabic_meem ((guint) 0x05e5) #define SKK_KEYSYMS_Arabic_noon ((guint) 0x05e6) #define SKK_KEYSYMS_Arabic_ha ((guint) 0x05e7) #define SKK_KEYSYMS_Arabic_heh ((guint) 0x05e7) #define SKK_KEYSYMS_Arabic_waw ((guint) 0x05e8) #define SKK_KEYSYMS_Arabic_alefmaksura ((guint) 0x05e9) #define SKK_KEYSYMS_Arabic_yeh ((guint) 0x05ea) #define SKK_KEYSYMS_Arabic_fathatan ((guint) 0x05eb) #define SKK_KEYSYMS_Arabic_dammatan ((guint) 0x05ec) #define SKK_KEYSYMS_Arabic_kasratan ((guint) 0x05ed) #define SKK_KEYSYMS_Arabic_fatha ((guint) 0x05ee) #define SKK_KEYSYMS_Arabic_damma ((guint) 0x05ef) #define SKK_KEYSYMS_Arabic_kasra ((guint) 0x05f0) #define SKK_KEYSYMS_Arabic_shadda ((guint) 0x05f1) #define SKK_KEYSYMS_Arabic_sukun ((guint) 0x05f2) #define SKK_KEYSYMS_Arabic_madda_above ((guint) 0x1000653) #define SKK_KEYSYMS_Arabic_hamza_above ((guint) 0x1000654) #define SKK_KEYSYMS_Arabic_hamza_below ((guint) 0x1000655) #define SKK_KEYSYMS_Arabic_jeh ((guint) 0x1000698) #define SKK_KEYSYMS_Arabic_veh ((guint) 0x10006a4) #define SKK_KEYSYMS_Arabic_keheh ((guint) 0x10006a9) #define SKK_KEYSYMS_Arabic_gaf ((guint) 0x10006af) #define SKK_KEYSYMS_Arabic_noon_ghunna ((guint) 0x10006ba) #define SKK_KEYSYMS_Arabic_heh_doachashmee ((guint) 0x10006be) #define SKK_KEYSYMS_Farsi_yeh ((guint) 0x10006cc) #define SKK_KEYSYMS_Arabic_farsi_yeh ((guint) 0x10006cc) #define SKK_KEYSYMS_Arabic_yeh_baree ((guint) 0x10006d2) #define SKK_KEYSYMS_Arabic_heh_goal ((guint) 0x10006c1) #define SKK_KEYSYMS_Arabic_switch ((guint) 0xff7e) #define SKK_KEYSYMS_Cyrillic_GHE_bar ((guint) 0x1000492) #define SKK_KEYSYMS_Cyrillic_ghe_bar ((guint) 0x1000493) #define SKK_KEYSYMS_Cyrillic_ZHE_descender ((guint) 0x1000496) #define SKK_KEYSYMS_Cyrillic_zhe_descender ((guint) 0x1000497) #define SKK_KEYSYMS_Cyrillic_KA_descender ((guint) 0x100049a) #define SKK_KEYSYMS_Cyrillic_ka_descender ((guint) 0x100049b) #define SKK_KEYSYMS_Cyrillic_KA_vertstroke ((guint) 0x100049c) #define SKK_KEYSYMS_Cyrillic_ka_vertstroke ((guint) 0x100049d) #define SKK_KEYSYMS_Cyrillic_EN_descender ((guint) 0x10004a2) #define SKK_KEYSYMS_Cyrillic_en_descender ((guint) 0x10004a3) #define SKK_KEYSYMS_Cyrillic_U_straight ((guint) 0x10004ae) #define SKK_KEYSYMS_Cyrillic_u_straight ((guint) 0x10004af) #define SKK_KEYSYMS_Cyrillic_U_straight_bar ((guint) 0x10004b0) #define SKK_KEYSYMS_Cyrillic_u_straight_bar ((guint) 0x10004b1) #define SKK_KEYSYMS_Cyrillic_HA_descender ((guint) 0x10004b2) #define SKK_KEYSYMS_Cyrillic_ha_descender ((guint) 0x10004b3) #define SKK_KEYSYMS_Cyrillic_CHE_descender ((guint) 0x10004b6) #define SKK_KEYSYMS_Cyrillic_che_descender ((guint) 0x10004b7) #define SKK_KEYSYMS_Cyrillic_CHE_vertstroke ((guint) 0x10004b8) #define SKK_KEYSYMS_Cyrillic_che_vertstroke ((guint) 0x10004b9) #define SKK_KEYSYMS_Cyrillic_SHHA ((guint) 0x10004ba) #define SKK_KEYSYMS_Cyrillic_shha ((guint) 0x10004bb) #define SKK_KEYSYMS_Cyrillic_SCHWA ((guint) 0x10004d8) #define SKK_KEYSYMS_Cyrillic_schwa ((guint) 0x10004d9) #define SKK_KEYSYMS_Cyrillic_I_macron ((guint) 0x10004e2) #define SKK_KEYSYMS_Cyrillic_i_macron ((guint) 0x10004e3) #define SKK_KEYSYMS_Cyrillic_O_bar ((guint) 0x10004e8) #define SKK_KEYSYMS_Cyrillic_o_bar ((guint) 0x10004e9) #define SKK_KEYSYMS_Cyrillic_U_macron ((guint) 0x10004ee) #define SKK_KEYSYMS_Cyrillic_u_macron ((guint) 0x10004ef) #define SKK_KEYSYMS_Serbian_dje ((guint) 0x06a1) #define SKK_KEYSYMS_Macedonia_gje ((guint) 0x06a2) #define SKK_KEYSYMS_Cyrillic_io ((guint) 0x06a3) #define SKK_KEYSYMS_Ukrainian_ie ((guint) 0x06a4) #define SKK_KEYSYMS_Ukranian_je ((guint) 0x06a4) #define SKK_KEYSYMS_Macedonia_dse ((guint) 0x06a5) #define SKK_KEYSYMS_Ukrainian_i ((guint) 0x06a6) #define SKK_KEYSYMS_Ukranian_i ((guint) 0x06a6) #define SKK_KEYSYMS_Ukrainian_yi ((guint) 0x06a7) #define SKK_KEYSYMS_Ukranian_yi ((guint) 0x06a7) #define SKK_KEYSYMS_Cyrillic_je ((guint) 0x06a8) #define SKK_KEYSYMS_Serbian_je ((guint) 0x06a8) #define SKK_KEYSYMS_Cyrillic_lje ((guint) 0x06a9) #define SKK_KEYSYMS_Serbian_lje ((guint) 0x06a9) #define SKK_KEYSYMS_Cyrillic_nje ((guint) 0x06aa) #define SKK_KEYSYMS_Serbian_nje ((guint) 0x06aa) #define SKK_KEYSYMS_Serbian_tshe ((guint) 0x06ab) #define SKK_KEYSYMS_Macedonia_kje ((guint) 0x06ac) #define SKK_KEYSYMS_Ukrainian_ghe_with_upturn ((guint) 0x06ad) #define SKK_KEYSYMS_Byelorussian_shortu ((guint) 0x06ae) #define SKK_KEYSYMS_Cyrillic_dzhe ((guint) 0x06af) #define SKK_KEYSYMS_Serbian_dze ((guint) 0x06af) #define SKK_KEYSYMS_numerosign ((guint) 0x06b0) #define SKK_KEYSYMS_Serbian_DJE ((guint) 0x06b1) #define SKK_KEYSYMS_Macedonia_GJE ((guint) 0x06b2) #define SKK_KEYSYMS_Cyrillic_IO ((guint) 0x06b3) #define SKK_KEYSYMS_Ukrainian_IE ((guint) 0x06b4) #define SKK_KEYSYMS_Ukranian_JE ((guint) 0x06b4) #define SKK_KEYSYMS_Macedonia_DSE ((guint) 0x06b5) #define SKK_KEYSYMS_Ukrainian_I ((guint) 0x06b6) #define SKK_KEYSYMS_Ukranian_I ((guint) 0x06b6) #define SKK_KEYSYMS_Ukrainian_YI ((guint) 0x06b7) #define SKK_KEYSYMS_Ukranian_YI ((guint) 0x06b7) #define SKK_KEYSYMS_Cyrillic_JE ((guint) 0x06b8) #define SKK_KEYSYMS_Serbian_JE ((guint) 0x06b8) #define SKK_KEYSYMS_Cyrillic_LJE ((guint) 0x06b9) #define SKK_KEYSYMS_Serbian_LJE ((guint) 0x06b9) #define SKK_KEYSYMS_Cyrillic_NJE ((guint) 0x06ba) #define SKK_KEYSYMS_Serbian_NJE ((guint) 0x06ba) #define SKK_KEYSYMS_Serbian_TSHE ((guint) 0x06bb) #define SKK_KEYSYMS_Macedonia_KJE ((guint) 0x06bc) #define SKK_KEYSYMS_Ukrainian_GHE_WITH_UPTURN ((guint) 0x06bd) #define SKK_KEYSYMS_Byelorussian_SHORTU ((guint) 0x06be) #define SKK_KEYSYMS_Cyrillic_DZHE ((guint) 0x06bf) #define SKK_KEYSYMS_Serbian_DZE ((guint) 0x06bf) #define SKK_KEYSYMS_Cyrillic_yu ((guint) 0x06c0) #define SKK_KEYSYMS_Cyrillic_a ((guint) 0x06c1) #define SKK_KEYSYMS_Cyrillic_be ((guint) 0x06c2) #define SKK_KEYSYMS_Cyrillic_tse ((guint) 0x06c3) #define SKK_KEYSYMS_Cyrillic_de ((guint) 0x06c4) #define SKK_KEYSYMS_Cyrillic_ie ((guint) 0x06c5) #define SKK_KEYSYMS_Cyrillic_ef ((guint) 0x06c6) #define SKK_KEYSYMS_Cyrillic_ghe ((guint) 0x06c7) #define SKK_KEYSYMS_Cyrillic_ha ((guint) 0x06c8) #define SKK_KEYSYMS_Cyrillic_i ((guint) 0x06c9) #define SKK_KEYSYMS_Cyrillic_shorti ((guint) 0x06ca) #define SKK_KEYSYMS_Cyrillic_ka ((guint) 0x06cb) #define SKK_KEYSYMS_Cyrillic_el ((guint) 0x06cc) #define SKK_KEYSYMS_Cyrillic_em ((guint) 0x06cd) #define SKK_KEYSYMS_Cyrillic_en ((guint) 0x06ce) #define SKK_KEYSYMS_Cyrillic_o ((guint) 0x06cf) #define SKK_KEYSYMS_Cyrillic_pe ((guint) 0x06d0) #define SKK_KEYSYMS_Cyrillic_ya ((guint) 0x06d1) #define SKK_KEYSYMS_Cyrillic_er ((guint) 0x06d2) #define SKK_KEYSYMS_Cyrillic_es ((guint) 0x06d3) #define SKK_KEYSYMS_Cyrillic_te ((guint) 0x06d4) #define SKK_KEYSYMS_Cyrillic_u ((guint) 0x06d5) #define SKK_KEYSYMS_Cyrillic_zhe ((guint) 0x06d6) #define SKK_KEYSYMS_Cyrillic_ve ((guint) 0x06d7) #define SKK_KEYSYMS_Cyrillic_softsign ((guint) 0x06d8) #define SKK_KEYSYMS_Cyrillic_yeru ((guint) 0x06d9) #define SKK_KEYSYMS_Cyrillic_ze ((guint) 0x06da) #define SKK_KEYSYMS_Cyrillic_sha ((guint) 0x06db) #define SKK_KEYSYMS_Cyrillic_e ((guint) 0x06dc) #define SKK_KEYSYMS_Cyrillic_shcha ((guint) 0x06dd) #define SKK_KEYSYMS_Cyrillic_che ((guint) 0x06de) #define SKK_KEYSYMS_Cyrillic_hardsign ((guint) 0x06df) #define SKK_KEYSYMS_Cyrillic_YU ((guint) 0x06e0) #define SKK_KEYSYMS_Cyrillic_A ((guint) 0x06e1) #define SKK_KEYSYMS_Cyrillic_BE ((guint) 0x06e2) #define SKK_KEYSYMS_Cyrillic_TSE ((guint) 0x06e3) #define SKK_KEYSYMS_Cyrillic_DE ((guint) 0x06e4) #define SKK_KEYSYMS_Cyrillic_IE ((guint) 0x06e5) #define SKK_KEYSYMS_Cyrillic_EF ((guint) 0x06e6) #define SKK_KEYSYMS_Cyrillic_GHE ((guint) 0x06e7) #define SKK_KEYSYMS_Cyrillic_HA ((guint) 0x06e8) #define SKK_KEYSYMS_Cyrillic_I ((guint) 0x06e9) #define SKK_KEYSYMS_Cyrillic_SHORTI ((guint) 0x06ea) #define SKK_KEYSYMS_Cyrillic_KA ((guint) 0x06eb) #define SKK_KEYSYMS_Cyrillic_EL ((guint) 0x06ec) #define SKK_KEYSYMS_Cyrillic_EM ((guint) 0x06ed) #define SKK_KEYSYMS_Cyrillic_EN ((guint) 0x06ee) #define SKK_KEYSYMS_Cyrillic_O ((guint) 0x06ef) #define SKK_KEYSYMS_Cyrillic_PE ((guint) 0x06f0) #define SKK_KEYSYMS_Cyrillic_YA ((guint) 0x06f1) #define SKK_KEYSYMS_Cyrillic_ER ((guint) 0x06f2) #define SKK_KEYSYMS_Cyrillic_ES ((guint) 0x06f3) #define SKK_KEYSYMS_Cyrillic_TE ((guint) 0x06f4) #define SKK_KEYSYMS_Cyrillic_U ((guint) 0x06f5) #define SKK_KEYSYMS_Cyrillic_ZHE ((guint) 0x06f6) #define SKK_KEYSYMS_Cyrillic_VE ((guint) 0x06f7) #define SKK_KEYSYMS_Cyrillic_SOFTSIGN ((guint) 0x06f8) #define SKK_KEYSYMS_Cyrillic_YERU ((guint) 0x06f9) #define SKK_KEYSYMS_Cyrillic_ZE ((guint) 0x06fa) #define SKK_KEYSYMS_Cyrillic_SHA ((guint) 0x06fb) #define SKK_KEYSYMS_Cyrillic_E ((guint) 0x06fc) #define SKK_KEYSYMS_Cyrillic_SHCHA ((guint) 0x06fd) #define SKK_KEYSYMS_Cyrillic_CHE ((guint) 0x06fe) #define SKK_KEYSYMS_Cyrillic_HARDSIGN ((guint) 0x06ff) #define SKK_KEYSYMS_Greek_ALPHAaccent ((guint) 0x07a1) #define SKK_KEYSYMS_Greek_EPSILONaccent ((guint) 0x07a2) #define SKK_KEYSYMS_Greek_ETAaccent ((guint) 0x07a3) #define SKK_KEYSYMS_Greek_IOTAaccent ((guint) 0x07a4) #define SKK_KEYSYMS_Greek_IOTAdieresis ((guint) 0x07a5) #define SKK_KEYSYMS_Greek_IOTAdiaeresis ((guint) 0x07a5) #define SKK_KEYSYMS_Greek_OMICRONaccent ((guint) 0x07a7) #define SKK_KEYSYMS_Greek_UPSILONaccent ((guint) 0x07a8) #define SKK_KEYSYMS_Greek_UPSILONdieresis ((guint) 0x07a9) #define SKK_KEYSYMS_Greek_OMEGAaccent ((guint) 0x07ab) #define SKK_KEYSYMS_Greek_accentdieresis ((guint) 0x07ae) #define SKK_KEYSYMS_Greek_horizbar ((guint) 0x07af) #define SKK_KEYSYMS_Greek_alphaaccent ((guint) 0x07b1) #define SKK_KEYSYMS_Greek_epsilonaccent ((guint) 0x07b2) #define SKK_KEYSYMS_Greek_etaaccent ((guint) 0x07b3) #define SKK_KEYSYMS_Greek_iotaaccent ((guint) 0x07b4) #define SKK_KEYSYMS_Greek_iotadieresis ((guint) 0x07b5) #define SKK_KEYSYMS_Greek_iotaaccentdieresis ((guint) 0x07b6) #define SKK_KEYSYMS_Greek_omicronaccent ((guint) 0x07b7) #define SKK_KEYSYMS_Greek_upsilonaccent ((guint) 0x07b8) #define SKK_KEYSYMS_Greek_upsilondieresis ((guint) 0x07b9) #define SKK_KEYSYMS_Greek_upsilonaccentdieresis ((guint) 0x07ba) #define SKK_KEYSYMS_Greek_omegaaccent ((guint) 0x07bb) #define SKK_KEYSYMS_Greek_ALPHA ((guint) 0x07c1) #define SKK_KEYSYMS_Greek_BETA ((guint) 0x07c2) #define SKK_KEYSYMS_Greek_GAMMA ((guint) 0x07c3) #define SKK_KEYSYMS_Greek_DELTA ((guint) 0x07c4) #define SKK_KEYSYMS_Greek_EPSILON ((guint) 0x07c5) #define SKK_KEYSYMS_Greek_ZETA ((guint) 0x07c6) #define SKK_KEYSYMS_Greek_ETA ((guint) 0x07c7) #define SKK_KEYSYMS_Greek_THETA ((guint) 0x07c8) #define SKK_KEYSYMS_Greek_IOTA ((guint) 0x07c9) #define SKK_KEYSYMS_Greek_KAPPA ((guint) 0x07ca) #define SKK_KEYSYMS_Greek_LAMDA ((guint) 0x07cb) #define SKK_KEYSYMS_Greek_LAMBDA ((guint) 0x07cb) #define SKK_KEYSYMS_Greek_MU ((guint) 0x07cc) #define SKK_KEYSYMS_Greek_NU ((guint) 0x07cd) #define SKK_KEYSYMS_Greek_XI ((guint) 0x07ce) #define SKK_KEYSYMS_Greek_OMICRON ((guint) 0x07cf) #define SKK_KEYSYMS_Greek_PI ((guint) 0x07d0) #define SKK_KEYSYMS_Greek_RHO ((guint) 0x07d1) #define SKK_KEYSYMS_Greek_SIGMA ((guint) 0x07d2) #define SKK_KEYSYMS_Greek_TAU ((guint) 0x07d4) #define SKK_KEYSYMS_Greek_UPSILON ((guint) 0x07d5) #define SKK_KEYSYMS_Greek_PHI ((guint) 0x07d6) #define SKK_KEYSYMS_Greek_CHI ((guint) 0x07d7) #define SKK_KEYSYMS_Greek_PSI ((guint) 0x07d8) #define SKK_KEYSYMS_Greek_OMEGA ((guint) 0x07d9) #define SKK_KEYSYMS_Greek_alpha ((guint) 0x07e1) #define SKK_KEYSYMS_Greek_beta ((guint) 0x07e2) #define SKK_KEYSYMS_Greek_gamma ((guint) 0x07e3) #define SKK_KEYSYMS_Greek_delta ((guint) 0x07e4) #define SKK_KEYSYMS_Greek_epsilon ((guint) 0x07e5) #define SKK_KEYSYMS_Greek_zeta ((guint) 0x07e6) #define SKK_KEYSYMS_Greek_eta ((guint) 0x07e7) #define SKK_KEYSYMS_Greek_theta ((guint) 0x07e8) #define SKK_KEYSYMS_Greek_iota ((guint) 0x07e9) #define SKK_KEYSYMS_Greek_kappa ((guint) 0x07ea) #define SKK_KEYSYMS_Greek_lamda ((guint) 0x07eb) #define SKK_KEYSYMS_Greek_lambda ((guint) 0x07eb) #define SKK_KEYSYMS_Greek_mu ((guint) 0x07ec) #define SKK_KEYSYMS_Greek_nu ((guint) 0x07ed) #define SKK_KEYSYMS_Greek_xi ((guint) 0x07ee) #define SKK_KEYSYMS_Greek_omicron ((guint) 0x07ef) #define SKK_KEYSYMS_Greek_pi ((guint) 0x07f0) #define SKK_KEYSYMS_Greek_rho ((guint) 0x07f1) #define SKK_KEYSYMS_Greek_sigma ((guint) 0x07f2) #define SKK_KEYSYMS_Greek_finalsmallsigma ((guint) 0x07f3) #define SKK_KEYSYMS_Greek_tau ((guint) 0x07f4) #define SKK_KEYSYMS_Greek_upsilon ((guint) 0x07f5) #define SKK_KEYSYMS_Greek_phi ((guint) 0x07f6) #define SKK_KEYSYMS_Greek_chi ((guint) 0x07f7) #define SKK_KEYSYMS_Greek_psi ((guint) 0x07f8) #define SKK_KEYSYMS_Greek_omega ((guint) 0x07f9) #define SKK_KEYSYMS_Greek_switch ((guint) 0xff7e) #define SKK_KEYSYMS_leftradical ((guint) 0x08a1) #define SKK_KEYSYMS_topleftradical ((guint) 0x08a2) #define SKK_KEYSYMS_horizconnector ((guint) 0x08a3) #define SKK_KEYSYMS_topintegral ((guint) 0x08a4) #define SKK_KEYSYMS_botintegral ((guint) 0x08a5) #define SKK_KEYSYMS_vertconnector ((guint) 0x08a6) #define SKK_KEYSYMS_topleftsqbracket ((guint) 0x08a7) #define SKK_KEYSYMS_botleftsqbracket ((guint) 0x08a8) #define SKK_KEYSYMS_toprightsqbracket ((guint) 0x08a9) #define SKK_KEYSYMS_botrightsqbracket ((guint) 0x08aa) #define SKK_KEYSYMS_topleftparens ((guint) 0x08ab) #define SKK_KEYSYMS_botleftparens ((guint) 0x08ac) #define SKK_KEYSYMS_toprightparens ((guint) 0x08ad) #define SKK_KEYSYMS_botrightparens ((guint) 0x08ae) #define SKK_KEYSYMS_leftmiddlecurlybrace ((guint) 0x08af) #define SKK_KEYSYMS_rightmiddlecurlybrace ((guint) 0x08b0) #define SKK_KEYSYMS_topleftsummation ((guint) 0x08b1) #define SKK_KEYSYMS_botleftsummation ((guint) 0x08b2) #define SKK_KEYSYMS_topvertsummationconnector ((guint) 0x08b3) #define SKK_KEYSYMS_botvertsummationconnector ((guint) 0x08b4) #define SKK_KEYSYMS_toprightsummation ((guint) 0x08b5) #define SKK_KEYSYMS_botrightsummation ((guint) 0x08b6) #define SKK_KEYSYMS_rightmiddlesummation ((guint) 0x08b7) #define SKK_KEYSYMS_lessthanequal ((guint) 0x08bc) #define SKK_KEYSYMS_notequal ((guint) 0x08bd) #define SKK_KEYSYMS_greaterthanequal ((guint) 0x08be) #define SKK_KEYSYMS_integral ((guint) 0x08bf) #define SKK_KEYSYMS_therefore ((guint) 0x08c0) #define SKK_KEYSYMS_variation ((guint) 0x08c1) #define SKK_KEYSYMS_infinity ((guint) 0x08c2) #define SKK_KEYSYMS_nabla ((guint) 0x08c5) #define SKK_KEYSYMS_approximate ((guint) 0x08c8) #define SKK_KEYSYMS_similarequal ((guint) 0x08c9) #define SKK_KEYSYMS_ifonlyif ((guint) 0x08cd) #define SKK_KEYSYMS_implies ((guint) 0x08ce) #define SKK_KEYSYMS_identical ((guint) 0x08cf) #define SKK_KEYSYMS_radical ((guint) 0x08d6) #define SKK_KEYSYMS_includedin ((guint) 0x08da) #define SKK_KEYSYMS_includes ((guint) 0x08db) #define SKK_KEYSYMS_intersection ((guint) 0x08dc) #define SKK_KEYSYMS_union ((guint) 0x08dd) #define SKK_KEYSYMS_logicaland ((guint) 0x08de) #define SKK_KEYSYMS_logicalor ((guint) 0x08df) #define SKK_KEYSYMS_partialderivative ((guint) 0x08ef) #define SKK_KEYSYMS_function ((guint) 0x08f6) #define SKK_KEYSYMS_leftarrow ((guint) 0x08fb) #define SKK_KEYSYMS_uparrow ((guint) 0x08fc) #define SKK_KEYSYMS_rightarrow ((guint) 0x08fd) #define SKK_KEYSYMS_downarrow ((guint) 0x08fe) #define SKK_KEYSYMS_blank ((guint) 0x09df) #define SKK_KEYSYMS_soliddiamond ((guint) 0x09e0) #define SKK_KEYSYMS_checkerboard ((guint) 0x09e1) #define SKK_KEYSYMS_ht ((guint) 0x09e2) #define SKK_KEYSYMS_ff ((guint) 0x09e3) #define SKK_KEYSYMS_cr ((guint) 0x09e4) #define SKK_KEYSYMS_lf ((guint) 0x09e5) #define SKK_KEYSYMS_nl ((guint) 0x09e8) #define SKK_KEYSYMS_vt ((guint) 0x09e9) #define SKK_KEYSYMS_lowrightcorner ((guint) 0x09ea) #define SKK_KEYSYMS_uprightcorner ((guint) 0x09eb) #define SKK_KEYSYMS_upleftcorner ((guint) 0x09ec) #define SKK_KEYSYMS_lowleftcorner ((guint) 0x09ed) #define SKK_KEYSYMS_crossinglines ((guint) 0x09ee) #define SKK_KEYSYMS_horizlinescan1 ((guint) 0x09ef) #define SKK_KEYSYMS_horizlinescan3 ((guint) 0x09f0) #define SKK_KEYSYMS_horizlinescan5 ((guint) 0x09f1) #define SKK_KEYSYMS_horizlinescan7 ((guint) 0x09f2) #define SKK_KEYSYMS_horizlinescan9 ((guint) 0x09f3) #define SKK_KEYSYMS_leftt ((guint) 0x09f4) #define SKK_KEYSYMS_rightt ((guint) 0x09f5) #define SKK_KEYSYMS_bott ((guint) 0x09f6) #define SKK_KEYSYMS_topt ((guint) 0x09f7) #define SKK_KEYSYMS_vertbar ((guint) 0x09f8) #define SKK_KEYSYMS_emspace ((guint) 0x0aa1) #define SKK_KEYSYMS_enspace ((guint) 0x0aa2) #define SKK_KEYSYMS_em3space ((guint) 0x0aa3) #define SKK_KEYSYMS_em4space ((guint) 0x0aa4) #define SKK_KEYSYMS_digitspace ((guint) 0x0aa5) #define SKK_KEYSYMS_punctspace ((guint) 0x0aa6) #define SKK_KEYSYMS_thinspace ((guint) 0x0aa7) #define SKK_KEYSYMS_hairspace ((guint) 0x0aa8) #define SKK_KEYSYMS_emdash ((guint) 0x0aa9) #define SKK_KEYSYMS_endash ((guint) 0x0aaa) #define SKK_KEYSYMS_signifblank ((guint) 0x0aac) #define SKK_KEYSYMS_ellipsis ((guint) 0x0aae) #define SKK_KEYSYMS_doubbaselinedot ((guint) 0x0aaf) #define SKK_KEYSYMS_onethird ((guint) 0x0ab0) #define SKK_KEYSYMS_twothirds ((guint) 0x0ab1) #define SKK_KEYSYMS_onefifth ((guint) 0x0ab2) #define SKK_KEYSYMS_twofifths ((guint) 0x0ab3) #define SKK_KEYSYMS_threefifths ((guint) 0x0ab4) #define SKK_KEYSYMS_fourfifths ((guint) 0x0ab5) #define SKK_KEYSYMS_onesixth ((guint) 0x0ab6) #define SKK_KEYSYMS_fivesixths ((guint) 0x0ab7) #define SKK_KEYSYMS_careof ((guint) 0x0ab8) #define SKK_KEYSYMS_figdash ((guint) 0x0abb) #define SKK_KEYSYMS_leftanglebracket ((guint) 0x0abc) #define SKK_KEYSYMS_decimalpoint ((guint) 0x0abd) #define SKK_KEYSYMS_rightanglebracket ((guint) 0x0abe) #define SKK_KEYSYMS_marker ((guint) 0x0abf) #define SKK_KEYSYMS_oneeighth ((guint) 0x0ac3) #define SKK_KEYSYMS_threeeighths ((guint) 0x0ac4) #define SKK_KEYSYMS_fiveeighths ((guint) 0x0ac5) #define SKK_KEYSYMS_seveneighths ((guint) 0x0ac6) #define SKK_KEYSYMS_trademark ((guint) 0x0ac9) #define SKK_KEYSYMS_signaturemark ((guint) 0x0aca) #define SKK_KEYSYMS_trademarkincircle ((guint) 0x0acb) #define SKK_KEYSYMS_leftopentriangle ((guint) 0x0acc) #define SKK_KEYSYMS_rightopentriangle ((guint) 0x0acd) #define SKK_KEYSYMS_emopencircle ((guint) 0x0ace) #define SKK_KEYSYMS_emopenrectangle ((guint) 0x0acf) #define SKK_KEYSYMS_leftsinglequotemark ((guint) 0x0ad0) #define SKK_KEYSYMS_rightsinglequotemark ((guint) 0x0ad1) #define SKK_KEYSYMS_leftdoublequotemark ((guint) 0x0ad2) #define SKK_KEYSYMS_rightdoublequotemark ((guint) 0x0ad3) #define SKK_KEYSYMS_prescription ((guint) 0x0ad4) #define SKK_KEYSYMS_minutes ((guint) 0x0ad6) #define SKK_KEYSYMS_seconds ((guint) 0x0ad7) #define SKK_KEYSYMS_latincross ((guint) 0x0ad9) #define SKK_KEYSYMS_hexagram ((guint) 0x0ada) #define SKK_KEYSYMS_filledrectbullet ((guint) 0x0adb) #define SKK_KEYSYMS_filledlefttribullet ((guint) 0x0adc) #define SKK_KEYSYMS_filledrighttribullet ((guint) 0x0add) #define SKK_KEYSYMS_emfilledcircle ((guint) 0x0ade) #define SKK_KEYSYMS_emfilledrect ((guint) 0x0adf) #define SKK_KEYSYMS_enopencircbullet ((guint) 0x0ae0) #define SKK_KEYSYMS_enopensquarebullet ((guint) 0x0ae1) #define SKK_KEYSYMS_openrectbullet ((guint) 0x0ae2) #define SKK_KEYSYMS_opentribulletup ((guint) 0x0ae3) #define SKK_KEYSYMS_opentribulletdown ((guint) 0x0ae4) #define SKK_KEYSYMS_openstar ((guint) 0x0ae5) #define SKK_KEYSYMS_enfilledcircbullet ((guint) 0x0ae6) #define SKK_KEYSYMS_enfilledsqbullet ((guint) 0x0ae7) #define SKK_KEYSYMS_filledtribulletup ((guint) 0x0ae8) #define SKK_KEYSYMS_filledtribulletdown ((guint) 0x0ae9) #define SKK_KEYSYMS_leftpointer ((guint) 0x0aea) #define SKK_KEYSYMS_rightpointer ((guint) 0x0aeb) #define SKK_KEYSYMS_club ((guint) 0x0aec) #define SKK_KEYSYMS_diamond ((guint) 0x0aed) #define SKK_KEYSYMS_heart ((guint) 0x0aee) #define SKK_KEYSYMS_maltesecross ((guint) 0x0af0) #define SKK_KEYSYMS_dagger ((guint) 0x0af1) #define SKK_KEYSYMS_doubledagger ((guint) 0x0af2) #define SKK_KEYSYMS_checkmark ((guint) 0x0af3) #define SKK_KEYSYMS_ballotcross ((guint) 0x0af4) #define SKK_KEYSYMS_musicalsharp ((guint) 0x0af5) #define SKK_KEYSYMS_musicalflat ((guint) 0x0af6) #define SKK_KEYSYMS_malesymbol ((guint) 0x0af7) #define SKK_KEYSYMS_femalesymbol ((guint) 0x0af8) #define SKK_KEYSYMS_telephone ((guint) 0x0af9) #define SKK_KEYSYMS_telephonerecorder ((guint) 0x0afa) #define SKK_KEYSYMS_phonographcopyright ((guint) 0x0afb) #define SKK_KEYSYMS_caret ((guint) 0x0afc) #define SKK_KEYSYMS_singlelowquotemark ((guint) 0x0afd) #define SKK_KEYSYMS_doublelowquotemark ((guint) 0x0afe) #define SKK_KEYSYMS_cursor ((guint) 0x0aff) #define SKK_KEYSYMS_leftcaret ((guint) 0x0ba3) #define SKK_KEYSYMS_rightcaret ((guint) 0x0ba6) #define SKK_KEYSYMS_downcaret ((guint) 0x0ba8) #define SKK_KEYSYMS_upcaret ((guint) 0x0ba9) #define SKK_KEYSYMS_overbar ((guint) 0x0bc0) #define SKK_KEYSYMS_downtack ((guint) 0x0bc2) #define SKK_KEYSYMS_upshoe ((guint) 0x0bc3) #define SKK_KEYSYMS_downstile ((guint) 0x0bc4) #define SKK_KEYSYMS_underbar ((guint) 0x0bc6) #define SKK_KEYSYMS_jot ((guint) 0x0bca) #define SKK_KEYSYMS_quad ((guint) 0x0bcc) #define SKK_KEYSYMS_uptack ((guint) 0x0bce) #define SKK_KEYSYMS_circle ((guint) 0x0bcf) #define SKK_KEYSYMS_upstile ((guint) 0x0bd3) #define SKK_KEYSYMS_downshoe ((guint) 0x0bd6) #define SKK_KEYSYMS_rightshoe ((guint) 0x0bd8) #define SKK_KEYSYMS_leftshoe ((guint) 0x0bda) #define SKK_KEYSYMS_lefttack ((guint) 0x0bdc) #define SKK_KEYSYMS_righttack ((guint) 0x0bfc) #define SKK_KEYSYMS_hebrew_doublelowline ((guint) 0x0cdf) #define SKK_KEYSYMS_hebrew_aleph ((guint) 0x0ce0) #define SKK_KEYSYMS_hebrew_bet ((guint) 0x0ce1) #define SKK_KEYSYMS_hebrew_beth ((guint) 0x0ce1) #define SKK_KEYSYMS_hebrew_gimel ((guint) 0x0ce2) #define SKK_KEYSYMS_hebrew_gimmel ((guint) 0x0ce2) #define SKK_KEYSYMS_hebrew_dalet ((guint) 0x0ce3) #define SKK_KEYSYMS_hebrew_daleth ((guint) 0x0ce3) #define SKK_KEYSYMS_hebrew_he ((guint) 0x0ce4) #define SKK_KEYSYMS_hebrew_waw ((guint) 0x0ce5) #define SKK_KEYSYMS_hebrew_zain ((guint) 0x0ce6) #define SKK_KEYSYMS_hebrew_zayin ((guint) 0x0ce6) #define SKK_KEYSYMS_hebrew_chet ((guint) 0x0ce7) #define SKK_KEYSYMS_hebrew_het ((guint) 0x0ce7) #define SKK_KEYSYMS_hebrew_tet ((guint) 0x0ce8) #define SKK_KEYSYMS_hebrew_teth ((guint) 0x0ce8) #define SKK_KEYSYMS_hebrew_yod ((guint) 0x0ce9) #define SKK_KEYSYMS_hebrew_finalkaph ((guint) 0x0cea) #define SKK_KEYSYMS_hebrew_kaph ((guint) 0x0ceb) #define SKK_KEYSYMS_hebrew_lamed ((guint) 0x0cec) #define SKK_KEYSYMS_hebrew_finalmem ((guint) 0x0ced) #define SKK_KEYSYMS_hebrew_mem ((guint) 0x0cee) #define SKK_KEYSYMS_hebrew_finalnun ((guint) 0x0cef) #define SKK_KEYSYMS_hebrew_nun ((guint) 0x0cf0) #define SKK_KEYSYMS_hebrew_samech ((guint) 0x0cf1) #define SKK_KEYSYMS_hebrew_samekh ((guint) 0x0cf1) #define SKK_KEYSYMS_hebrew_ayin ((guint) 0x0cf2) #define SKK_KEYSYMS_hebrew_finalpe ((guint) 0x0cf3) #define SKK_KEYSYMS_hebrew_pe ((guint) 0x0cf4) #define SKK_KEYSYMS_hebrew_finalzade ((guint) 0x0cf5) #define SKK_KEYSYMS_hebrew_finalzadi ((guint) 0x0cf5) #define SKK_KEYSYMS_hebrew_zade ((guint) 0x0cf6) #define SKK_KEYSYMS_hebrew_zadi ((guint) 0x0cf6) #define SKK_KEYSYMS_hebrew_qoph ((guint) 0x0cf7) #define SKK_KEYSYMS_hebrew_kuf ((guint) 0x0cf7) #define SKK_KEYSYMS_hebrew_resh ((guint) 0x0cf8) #define SKK_KEYSYMS_hebrew_shin ((guint) 0x0cf9) #define SKK_KEYSYMS_hebrew_taw ((guint) 0x0cfa) #define SKK_KEYSYMS_hebrew_taf ((guint) 0x0cfa) #define SKK_KEYSYMS_Hebrew_switch ((guint) 0xff7e) #define SKK_KEYSYMS_Thai_kokai ((guint) 0x0da1) #define SKK_KEYSYMS_Thai_khokhai ((guint) 0x0da2) #define SKK_KEYSYMS_Thai_khokhuat ((guint) 0x0da3) #define SKK_KEYSYMS_Thai_khokhwai ((guint) 0x0da4) #define SKK_KEYSYMS_Thai_khokhon ((guint) 0x0da5) #define SKK_KEYSYMS_Thai_khorakhang ((guint) 0x0da6) #define SKK_KEYSYMS_Thai_ngongu ((guint) 0x0da7) #define SKK_KEYSYMS_Thai_chochan ((guint) 0x0da8) #define SKK_KEYSYMS_Thai_choching ((guint) 0x0da9) #define SKK_KEYSYMS_Thai_chochang ((guint) 0x0daa) #define SKK_KEYSYMS_Thai_soso ((guint) 0x0dab) #define SKK_KEYSYMS_Thai_chochoe ((guint) 0x0dac) #define SKK_KEYSYMS_Thai_yoying ((guint) 0x0dad) #define SKK_KEYSYMS_Thai_dochada ((guint) 0x0dae) #define SKK_KEYSYMS_Thai_topatak ((guint) 0x0daf) #define SKK_KEYSYMS_Thai_thothan ((guint) 0x0db0) #define SKK_KEYSYMS_Thai_thonangmontho ((guint) 0x0db1) #define SKK_KEYSYMS_Thai_thophuthao ((guint) 0x0db2) #define SKK_KEYSYMS_Thai_nonen ((guint) 0x0db3) #define SKK_KEYSYMS_Thai_dodek ((guint) 0x0db4) #define SKK_KEYSYMS_Thai_totao ((guint) 0x0db5) #define SKK_KEYSYMS_Thai_thothung ((guint) 0x0db6) #define SKK_KEYSYMS_Thai_thothahan ((guint) 0x0db7) #define SKK_KEYSYMS_Thai_thothong ((guint) 0x0db8) #define SKK_KEYSYMS_Thai_nonu ((guint) 0x0db9) #define SKK_KEYSYMS_Thai_bobaimai ((guint) 0x0dba) #define SKK_KEYSYMS_Thai_popla ((guint) 0x0dbb) #define SKK_KEYSYMS_Thai_phophung ((guint) 0x0dbc) #define SKK_KEYSYMS_Thai_fofa ((guint) 0x0dbd) #define SKK_KEYSYMS_Thai_phophan ((guint) 0x0dbe) #define SKK_KEYSYMS_Thai_fofan ((guint) 0x0dbf) #define SKK_KEYSYMS_Thai_phosamphao ((guint) 0x0dc0) #define SKK_KEYSYMS_Thai_moma ((guint) 0x0dc1) #define SKK_KEYSYMS_Thai_yoyak ((guint) 0x0dc2) #define SKK_KEYSYMS_Thai_rorua ((guint) 0x0dc3) #define SKK_KEYSYMS_Thai_ru ((guint) 0x0dc4) #define SKK_KEYSYMS_Thai_loling ((guint) 0x0dc5) #define SKK_KEYSYMS_Thai_lu ((guint) 0x0dc6) #define SKK_KEYSYMS_Thai_wowaen ((guint) 0x0dc7) #define SKK_KEYSYMS_Thai_sosala ((guint) 0x0dc8) #define SKK_KEYSYMS_Thai_sorusi ((guint) 0x0dc9) #define SKK_KEYSYMS_Thai_sosua ((guint) 0x0dca) #define SKK_KEYSYMS_Thai_hohip ((guint) 0x0dcb) #define SKK_KEYSYMS_Thai_lochula ((guint) 0x0dcc) #define SKK_KEYSYMS_Thai_oang ((guint) 0x0dcd) #define SKK_KEYSYMS_Thai_honokhuk ((guint) 0x0dce) #define SKK_KEYSYMS_Thai_paiyannoi ((guint) 0x0dcf) #define SKK_KEYSYMS_Thai_saraa ((guint) 0x0dd0) #define SKK_KEYSYMS_Thai_maihanakat ((guint) 0x0dd1) #define SKK_KEYSYMS_Thai_saraaa ((guint) 0x0dd2) #define SKK_KEYSYMS_Thai_saraam ((guint) 0x0dd3) #define SKK_KEYSYMS_Thai_sarai ((guint) 0x0dd4) #define SKK_KEYSYMS_Thai_saraii ((guint) 0x0dd5) #define SKK_KEYSYMS_Thai_saraue ((guint) 0x0dd6) #define SKK_KEYSYMS_Thai_sarauee ((guint) 0x0dd7) #define SKK_KEYSYMS_Thai_sarau ((guint) 0x0dd8) #define SKK_KEYSYMS_Thai_sarauu ((guint) 0x0dd9) #define SKK_KEYSYMS_Thai_phinthu ((guint) 0x0dda) #define SKK_KEYSYMS_Thai_maihanakat_maitho ((guint) 0x0dde) #define SKK_KEYSYMS_Thai_baht ((guint) 0x0ddf) #define SKK_KEYSYMS_Thai_sarae ((guint) 0x0de0) #define SKK_KEYSYMS_Thai_saraae ((guint) 0x0de1) #define SKK_KEYSYMS_Thai_sarao ((guint) 0x0de2) #define SKK_KEYSYMS_Thai_saraaimaimuan ((guint) 0x0de3) #define SKK_KEYSYMS_Thai_saraaimaimalai ((guint) 0x0de4) #define SKK_KEYSYMS_Thai_lakkhangyao ((guint) 0x0de5) #define SKK_KEYSYMS_Thai_maiyamok ((guint) 0x0de6) #define SKK_KEYSYMS_Thai_maitaikhu ((guint) 0x0de7) #define SKK_KEYSYMS_Thai_maiek ((guint) 0x0de8) #define SKK_KEYSYMS_Thai_maitho ((guint) 0x0de9) #define SKK_KEYSYMS_Thai_maitri ((guint) 0x0dea) #define SKK_KEYSYMS_Thai_maichattawa ((guint) 0x0deb) #define SKK_KEYSYMS_Thai_thanthakhat ((guint) 0x0dec) #define SKK_KEYSYMS_Thai_nikhahit ((guint) 0x0ded) #define SKK_KEYSYMS_Thai_leksun ((guint) 0x0df0) #define SKK_KEYSYMS_Thai_leknung ((guint) 0x0df1) #define SKK_KEYSYMS_Thai_leksong ((guint) 0x0df2) #define SKK_KEYSYMS_Thai_leksam ((guint) 0x0df3) #define SKK_KEYSYMS_Thai_leksi ((guint) 0x0df4) #define SKK_KEYSYMS_Thai_lekha ((guint) 0x0df5) #define SKK_KEYSYMS_Thai_lekhok ((guint) 0x0df6) #define SKK_KEYSYMS_Thai_lekchet ((guint) 0x0df7) #define SKK_KEYSYMS_Thai_lekpaet ((guint) 0x0df8) #define SKK_KEYSYMS_Thai_lekkao ((guint) 0x0df9) #define SKK_KEYSYMS_Hangul ((guint) 0xff31) #define SKK_KEYSYMS_Hangul_Start ((guint) 0xff32) #define SKK_KEYSYMS_Hangul_End ((guint) 0xff33) #define SKK_KEYSYMS_Hangul_Hanja ((guint) 0xff34) #define SKK_KEYSYMS_Hangul_Jamo ((guint) 0xff35) #define SKK_KEYSYMS_Hangul_Romaja ((guint) 0xff36) #define SKK_KEYSYMS_Hangul_Codeinput ((guint) 0xff37) #define SKK_KEYSYMS_Hangul_Jeonja ((guint) 0xff38) #define SKK_KEYSYMS_Hangul_Banja ((guint) 0xff39) #define SKK_KEYSYMS_Hangul_PreHanja ((guint) 0xff3a) #define SKK_KEYSYMS_Hangul_PostHanja ((guint) 0xff3b) #define SKK_KEYSYMS_Hangul_SingleCandidate ((guint) 0xff3c) #define SKK_KEYSYMS_Hangul_MultipleCandidate ((guint) 0xff3d) #define SKK_KEYSYMS_Hangul_PreviousCandidate ((guint) 0xff3e) #define SKK_KEYSYMS_Hangul_Special ((guint) 0xff3f) #define SKK_KEYSYMS_Hangul_switch ((guint) 0xff7e) #define SKK_KEYSYMS_Hangul_Kiyeog ((guint) 0x0ea1) #define SKK_KEYSYMS_Hangul_SsangKiyeog ((guint) 0x0ea2) #define SKK_KEYSYMS_Hangul_KiyeogSios ((guint) 0x0ea3) #define SKK_KEYSYMS_Hangul_Nieun ((guint) 0x0ea4) #define SKK_KEYSYMS_Hangul_NieunJieuj ((guint) 0x0ea5) #define SKK_KEYSYMS_Hangul_NieunHieuh ((guint) 0x0ea6) #define SKK_KEYSYMS_Hangul_Dikeud ((guint) 0x0ea7) #define SKK_KEYSYMS_Hangul_SsangDikeud ((guint) 0x0ea8) #define SKK_KEYSYMS_Hangul_Rieul ((guint) 0x0ea9) #define SKK_KEYSYMS_Hangul_RieulKiyeog ((guint) 0x0eaa) #define SKK_KEYSYMS_Hangul_RieulMieum ((guint) 0x0eab) #define SKK_KEYSYMS_Hangul_RieulPieub ((guint) 0x0eac) #define SKK_KEYSYMS_Hangul_RieulSios ((guint) 0x0ead) #define SKK_KEYSYMS_Hangul_RieulTieut ((guint) 0x0eae) #define SKK_KEYSYMS_Hangul_RieulPhieuf ((guint) 0x0eaf) #define SKK_KEYSYMS_Hangul_RieulHieuh ((guint) 0x0eb0) #define SKK_KEYSYMS_Hangul_Mieum ((guint) 0x0eb1) #define SKK_KEYSYMS_Hangul_Pieub ((guint) 0x0eb2) #define SKK_KEYSYMS_Hangul_SsangPieub ((guint) 0x0eb3) #define SKK_KEYSYMS_Hangul_PieubSios ((guint) 0x0eb4) #define SKK_KEYSYMS_Hangul_Sios ((guint) 0x0eb5) #define SKK_KEYSYMS_Hangul_SsangSios ((guint) 0x0eb6) #define SKK_KEYSYMS_Hangul_Ieung ((guint) 0x0eb7) #define SKK_KEYSYMS_Hangul_Jieuj ((guint) 0x0eb8) #define SKK_KEYSYMS_Hangul_SsangJieuj ((guint) 0x0eb9) #define SKK_KEYSYMS_Hangul_Cieuc ((guint) 0x0eba) #define SKK_KEYSYMS_Hangul_Khieuq ((guint) 0x0ebb) #define SKK_KEYSYMS_Hangul_Tieut ((guint) 0x0ebc) #define SKK_KEYSYMS_Hangul_Phieuf ((guint) 0x0ebd) #define SKK_KEYSYMS_Hangul_Hieuh ((guint) 0x0ebe) #define SKK_KEYSYMS_Hangul_A ((guint) 0x0ebf) #define SKK_KEYSYMS_Hangul_AE ((guint) 0x0ec0) #define SKK_KEYSYMS_Hangul_YA ((guint) 0x0ec1) #define SKK_KEYSYMS_Hangul_YAE ((guint) 0x0ec2) #define SKK_KEYSYMS_Hangul_EO ((guint) 0x0ec3) #define SKK_KEYSYMS_Hangul_E ((guint) 0x0ec4) #define SKK_KEYSYMS_Hangul_YEO ((guint) 0x0ec5) #define SKK_KEYSYMS_Hangul_YE ((guint) 0x0ec6) #define SKK_KEYSYMS_Hangul_O ((guint) 0x0ec7) #define SKK_KEYSYMS_Hangul_WA ((guint) 0x0ec8) #define SKK_KEYSYMS_Hangul_WAE ((guint) 0x0ec9) #define SKK_KEYSYMS_Hangul_OE ((guint) 0x0eca) #define SKK_KEYSYMS_Hangul_YO ((guint) 0x0ecb) #define SKK_KEYSYMS_Hangul_U ((guint) 0x0ecc) #define SKK_KEYSYMS_Hangul_WEO ((guint) 0x0ecd) #define SKK_KEYSYMS_Hangul_WE ((guint) 0x0ece) #define SKK_KEYSYMS_Hangul_WI ((guint) 0x0ecf) #define SKK_KEYSYMS_Hangul_YU ((guint) 0x0ed0) #define SKK_KEYSYMS_Hangul_EU ((guint) 0x0ed1) #define SKK_KEYSYMS_Hangul_YI ((guint) 0x0ed2) #define SKK_KEYSYMS_Hangul_I ((guint) 0x0ed3) #define SKK_KEYSYMS_Hangul_J_Kiyeog ((guint) 0x0ed4) #define SKK_KEYSYMS_Hangul_J_SsangKiyeog ((guint) 0x0ed5) #define SKK_KEYSYMS_Hangul_J_KiyeogSios ((guint) 0x0ed6) #define SKK_KEYSYMS_Hangul_J_Nieun ((guint) 0x0ed7) #define SKK_KEYSYMS_Hangul_J_NieunJieuj ((guint) 0x0ed8) #define SKK_KEYSYMS_Hangul_J_NieunHieuh ((guint) 0x0ed9) #define SKK_KEYSYMS_Hangul_J_Dikeud ((guint) 0x0eda) #define SKK_KEYSYMS_Hangul_J_Rieul ((guint) 0x0edb) #define SKK_KEYSYMS_Hangul_J_RieulKiyeog ((guint) 0x0edc) #define SKK_KEYSYMS_Hangul_J_RieulMieum ((guint) 0x0edd) #define SKK_KEYSYMS_Hangul_J_RieulPieub ((guint) 0x0ede) #define SKK_KEYSYMS_Hangul_J_RieulSios ((guint) 0x0edf) #define SKK_KEYSYMS_Hangul_J_RieulTieut ((guint) 0x0ee0) #define SKK_KEYSYMS_Hangul_J_RieulPhieuf ((guint) 0x0ee1) #define SKK_KEYSYMS_Hangul_J_RieulHieuh ((guint) 0x0ee2) #define SKK_KEYSYMS_Hangul_J_Mieum ((guint) 0x0ee3) #define SKK_KEYSYMS_Hangul_J_Pieub ((guint) 0x0ee4) #define SKK_KEYSYMS_Hangul_J_PieubSios ((guint) 0x0ee5) #define SKK_KEYSYMS_Hangul_J_Sios ((guint) 0x0ee6) #define SKK_KEYSYMS_Hangul_J_SsangSios ((guint) 0x0ee7) #define SKK_KEYSYMS_Hangul_J_Ieung ((guint) 0x0ee8) #define SKK_KEYSYMS_Hangul_J_Jieuj ((guint) 0x0ee9) #define SKK_KEYSYMS_Hangul_J_Cieuc ((guint) 0x0eea) #define SKK_KEYSYMS_Hangul_J_Khieuq ((guint) 0x0eeb) #define SKK_KEYSYMS_Hangul_J_Tieut ((guint) 0x0eec) #define SKK_KEYSYMS_Hangul_J_Phieuf ((guint) 0x0eed) #define SKK_KEYSYMS_Hangul_J_Hieuh ((guint) 0x0eee) #define SKK_KEYSYMS_Hangul_RieulYeorinHieuh ((guint) 0x0eef) #define SKK_KEYSYMS_Hangul_SunkyeongeumMieum ((guint) 0x0ef0) #define SKK_KEYSYMS_Hangul_SunkyeongeumPieub ((guint) 0x0ef1) #define SKK_KEYSYMS_Hangul_PanSios ((guint) 0x0ef2) #define SKK_KEYSYMS_Hangul_KkogjiDalrinIeung ((guint) 0x0ef3) #define SKK_KEYSYMS_Hangul_SunkyeongeumPhieuf ((guint) 0x0ef4) #define SKK_KEYSYMS_Hangul_YeorinHieuh ((guint) 0x0ef5) #define SKK_KEYSYMS_Hangul_AraeA ((guint) 0x0ef6) #define SKK_KEYSYMS_Hangul_AraeAE ((guint) 0x0ef7) #define SKK_KEYSYMS_Hangul_J_PanSios ((guint) 0x0ef8) #define SKK_KEYSYMS_Hangul_J_KkogjiDalrinIeung ((guint) 0x0ef9) #define SKK_KEYSYMS_Hangul_J_YeorinHieuh ((guint) 0x0efa) #define SKK_KEYSYMS_Korean_Won ((guint) 0x0eff) #define SKK_KEYSYMS_Armenian_ligature_ew ((guint) 0x1000587) #define SKK_KEYSYMS_Armenian_full_stop ((guint) 0x1000589) #define SKK_KEYSYMS_Armenian_verjaket ((guint) 0x1000589) #define SKK_KEYSYMS_Armenian_separation_mark ((guint) 0x100055d) #define SKK_KEYSYMS_Armenian_but ((guint) 0x100055d) #define SKK_KEYSYMS_Armenian_hyphen ((guint) 0x100058a) #define SKK_KEYSYMS_Armenian_yentamna ((guint) 0x100058a) #define SKK_KEYSYMS_Armenian_exclam ((guint) 0x100055c) #define SKK_KEYSYMS_Armenian_amanak ((guint) 0x100055c) #define SKK_KEYSYMS_Armenian_accent ((guint) 0x100055b) #define SKK_KEYSYMS_Armenian_shesht ((guint) 0x100055b) #define SKK_KEYSYMS_Armenian_question ((guint) 0x100055e) #define SKK_KEYSYMS_Armenian_paruyk ((guint) 0x100055e) #define SKK_KEYSYMS_Armenian_AYB ((guint) 0x1000531) #define SKK_KEYSYMS_Armenian_ayb ((guint) 0x1000561) #define SKK_KEYSYMS_Armenian_BEN ((guint) 0x1000532) #define SKK_KEYSYMS_Armenian_ben ((guint) 0x1000562) #define SKK_KEYSYMS_Armenian_GIM ((guint) 0x1000533) #define SKK_KEYSYMS_Armenian_gim ((guint) 0x1000563) #define SKK_KEYSYMS_Armenian_DA ((guint) 0x1000534) #define SKK_KEYSYMS_Armenian_da ((guint) 0x1000564) #define SKK_KEYSYMS_Armenian_YECH ((guint) 0x1000535) #define SKK_KEYSYMS_Armenian_yech ((guint) 0x1000565) #define SKK_KEYSYMS_Armenian_ZA ((guint) 0x1000536) #define SKK_KEYSYMS_Armenian_za ((guint) 0x1000566) #define SKK_KEYSYMS_Armenian_E ((guint) 0x1000537) #define SKK_KEYSYMS_Armenian_e ((guint) 0x1000567) #define SKK_KEYSYMS_Armenian_AT ((guint) 0x1000538) #define SKK_KEYSYMS_Armenian_at ((guint) 0x1000568) #define SKK_KEYSYMS_Armenian_TO ((guint) 0x1000539) #define SKK_KEYSYMS_Armenian_to ((guint) 0x1000569) #define SKK_KEYSYMS_Armenian_ZHE ((guint) 0x100053a) #define SKK_KEYSYMS_Armenian_zhe ((guint) 0x100056a) #define SKK_KEYSYMS_Armenian_INI ((guint) 0x100053b) #define SKK_KEYSYMS_Armenian_ini ((guint) 0x100056b) #define SKK_KEYSYMS_Armenian_LYUN ((guint) 0x100053c) #define SKK_KEYSYMS_Armenian_lyun ((guint) 0x100056c) #define SKK_KEYSYMS_Armenian_KHE ((guint) 0x100053d) #define SKK_KEYSYMS_Armenian_khe ((guint) 0x100056d) #define SKK_KEYSYMS_Armenian_TSA ((guint) 0x100053e) #define SKK_KEYSYMS_Armenian_tsa ((guint) 0x100056e) #define SKK_KEYSYMS_Armenian_KEN ((guint) 0x100053f) #define SKK_KEYSYMS_Armenian_ken ((guint) 0x100056f) #define SKK_KEYSYMS_Armenian_HO ((guint) 0x1000540) #define SKK_KEYSYMS_Armenian_ho ((guint) 0x1000570) #define SKK_KEYSYMS_Armenian_DZA ((guint) 0x1000541) #define SKK_KEYSYMS_Armenian_dza ((guint) 0x1000571) #define SKK_KEYSYMS_Armenian_GHAT ((guint) 0x1000542) #define SKK_KEYSYMS_Armenian_ghat ((guint) 0x1000572) #define SKK_KEYSYMS_Armenian_TCHE ((guint) 0x1000543) #define SKK_KEYSYMS_Armenian_tche ((guint) 0x1000573) #define SKK_KEYSYMS_Armenian_MEN ((guint) 0x1000544) #define SKK_KEYSYMS_Armenian_men ((guint) 0x1000574) #define SKK_KEYSYMS_Armenian_HI ((guint) 0x1000545) #define SKK_KEYSYMS_Armenian_hi ((guint) 0x1000575) #define SKK_KEYSYMS_Armenian_NU ((guint) 0x1000546) #define SKK_KEYSYMS_Armenian_nu ((guint) 0x1000576) #define SKK_KEYSYMS_Armenian_SHA ((guint) 0x1000547) #define SKK_KEYSYMS_Armenian_sha ((guint) 0x1000577) #define SKK_KEYSYMS_Armenian_VO ((guint) 0x1000548) #define SKK_KEYSYMS_Armenian_vo ((guint) 0x1000578) #define SKK_KEYSYMS_Armenian_CHA ((guint) 0x1000549) #define SKK_KEYSYMS_Armenian_cha ((guint) 0x1000579) #define SKK_KEYSYMS_Armenian_PE ((guint) 0x100054a) #define SKK_KEYSYMS_Armenian_pe ((guint) 0x100057a) #define SKK_KEYSYMS_Armenian_JE ((guint) 0x100054b) #define SKK_KEYSYMS_Armenian_je ((guint) 0x100057b) #define SKK_KEYSYMS_Armenian_RA ((guint) 0x100054c) #define SKK_KEYSYMS_Armenian_ra ((guint) 0x100057c) #define SKK_KEYSYMS_Armenian_SE ((guint) 0x100054d) #define SKK_KEYSYMS_Armenian_se ((guint) 0x100057d) #define SKK_KEYSYMS_Armenian_VEV ((guint) 0x100054e) #define SKK_KEYSYMS_Armenian_vev ((guint) 0x100057e) #define SKK_KEYSYMS_Armenian_TYUN ((guint) 0x100054f) #define SKK_KEYSYMS_Armenian_tyun ((guint) 0x100057f) #define SKK_KEYSYMS_Armenian_RE ((guint) 0x1000550) #define SKK_KEYSYMS_Armenian_re ((guint) 0x1000580) #define SKK_KEYSYMS_Armenian_TSO ((guint) 0x1000551) #define SKK_KEYSYMS_Armenian_tso ((guint) 0x1000581) #define SKK_KEYSYMS_Armenian_VYUN ((guint) 0x1000552) #define SKK_KEYSYMS_Armenian_vyun ((guint) 0x1000582) #define SKK_KEYSYMS_Armenian_PYUR ((guint) 0x1000553) #define SKK_KEYSYMS_Armenian_pyur ((guint) 0x1000583) #define SKK_KEYSYMS_Armenian_KE ((guint) 0x1000554) #define SKK_KEYSYMS_Armenian_ke ((guint) 0x1000584) #define SKK_KEYSYMS_Armenian_O ((guint) 0x1000555) #define SKK_KEYSYMS_Armenian_o ((guint) 0x1000585) #define SKK_KEYSYMS_Armenian_FE ((guint) 0x1000556) #define SKK_KEYSYMS_Armenian_fe ((guint) 0x1000586) #define SKK_KEYSYMS_Armenian_apostrophe ((guint) 0x100055a) #define SKK_KEYSYMS_Georgian_an ((guint) 0x10010d0) #define SKK_KEYSYMS_Georgian_ban ((guint) 0x10010d1) #define SKK_KEYSYMS_Georgian_gan ((guint) 0x10010d2) #define SKK_KEYSYMS_Georgian_don ((guint) 0x10010d3) #define SKK_KEYSYMS_Georgian_en ((guint) 0x10010d4) #define SKK_KEYSYMS_Georgian_vin ((guint) 0x10010d5) #define SKK_KEYSYMS_Georgian_zen ((guint) 0x10010d6) #define SKK_KEYSYMS_Georgian_tan ((guint) 0x10010d7) #define SKK_KEYSYMS_Georgian_in ((guint) 0x10010d8) #define SKK_KEYSYMS_Georgian_kan ((guint) 0x10010d9) #define SKK_KEYSYMS_Georgian_las ((guint) 0x10010da) #define SKK_KEYSYMS_Georgian_man ((guint) 0x10010db) #define SKK_KEYSYMS_Georgian_nar ((guint) 0x10010dc) #define SKK_KEYSYMS_Georgian_on ((guint) 0x10010dd) #define SKK_KEYSYMS_Georgian_par ((guint) 0x10010de) #define SKK_KEYSYMS_Georgian_zhar ((guint) 0x10010df) #define SKK_KEYSYMS_Georgian_rae ((guint) 0x10010e0) #define SKK_KEYSYMS_Georgian_san ((guint) 0x10010e1) #define SKK_KEYSYMS_Georgian_tar ((guint) 0x10010e2) #define SKK_KEYSYMS_Georgian_un ((guint) 0x10010e3) #define SKK_KEYSYMS_Georgian_phar ((guint) 0x10010e4) #define SKK_KEYSYMS_Georgian_khar ((guint) 0x10010e5) #define SKK_KEYSYMS_Georgian_ghan ((guint) 0x10010e6) #define SKK_KEYSYMS_Georgian_qar ((guint) 0x10010e7) #define SKK_KEYSYMS_Georgian_shin ((guint) 0x10010e8) #define SKK_KEYSYMS_Georgian_chin ((guint) 0x10010e9) #define SKK_KEYSYMS_Georgian_can ((guint) 0x10010ea) #define SKK_KEYSYMS_Georgian_jil ((guint) 0x10010eb) #define SKK_KEYSYMS_Georgian_cil ((guint) 0x10010ec) #define SKK_KEYSYMS_Georgian_char ((guint) 0x10010ed) #define SKK_KEYSYMS_Georgian_xan ((guint) 0x10010ee) #define SKK_KEYSYMS_Georgian_jhan ((guint) 0x10010ef) #define SKK_KEYSYMS_Georgian_hae ((guint) 0x10010f0) #define SKK_KEYSYMS_Georgian_he ((guint) 0x10010f1) #define SKK_KEYSYMS_Georgian_hie ((guint) 0x10010f2) #define SKK_KEYSYMS_Georgian_we ((guint) 0x10010f3) #define SKK_KEYSYMS_Georgian_har ((guint) 0x10010f4) #define SKK_KEYSYMS_Georgian_hoe ((guint) 0x10010f5) #define SKK_KEYSYMS_Georgian_fi ((guint) 0x10010f6) #define SKK_KEYSYMS_Xabovedot ((guint) 0x1001e8a) #define SKK_KEYSYMS_Ibreve ((guint) 0x100012c) #define SKK_KEYSYMS_Zstroke ((guint) 0x10001b5) #define SKK_KEYSYMS_Gcaron ((guint) 0x10001e6) #define SKK_KEYSYMS_Ocaron ((guint) 0x10001d1) #define SKK_KEYSYMS_Obarred ((guint) 0x100019f) #define SKK_KEYSYMS_xabovedot ((guint) 0x1001e8b) #define SKK_KEYSYMS_ibreve ((guint) 0x100012d) #define SKK_KEYSYMS_zstroke ((guint) 0x10001b6) #define SKK_KEYSYMS_gcaron ((guint) 0x10001e7) #define SKK_KEYSYMS_ocaron ((guint) 0x10001d2) #define SKK_KEYSYMS_obarred ((guint) 0x1000275) #define SKK_KEYSYMS_SCHWA ((guint) 0x100018f) #define SKK_KEYSYMS_schwa ((guint) 0x1000259) #define SKK_KEYSYMS_Lbelowdot ((guint) 0x1001e36) #define SKK_KEYSYMS_lbelowdot ((guint) 0x1001e37) #define SKK_KEYSYMS_Abelowdot ((guint) 0x1001ea0) #define SKK_KEYSYMS_abelowdot ((guint) 0x1001ea1) #define SKK_KEYSYMS_Ahook ((guint) 0x1001ea2) #define SKK_KEYSYMS_ahook ((guint) 0x1001ea3) #define SKK_KEYSYMS_Acircumflexacute ((guint) 0x1001ea4) #define SKK_KEYSYMS_acircumflexacute ((guint) 0x1001ea5) #define SKK_KEYSYMS_Acircumflexgrave ((guint) 0x1001ea6) #define SKK_KEYSYMS_acircumflexgrave ((guint) 0x1001ea7) #define SKK_KEYSYMS_Acircumflexhook ((guint) 0x1001ea8) #define SKK_KEYSYMS_acircumflexhook ((guint) 0x1001ea9) #define SKK_KEYSYMS_Acircumflextilde ((guint) 0x1001eaa) #define SKK_KEYSYMS_acircumflextilde ((guint) 0x1001eab) #define SKK_KEYSYMS_Acircumflexbelowdot ((guint) 0x1001eac) #define SKK_KEYSYMS_acircumflexbelowdot ((guint) 0x1001ead) #define SKK_KEYSYMS_Abreveacute ((guint) 0x1001eae) #define SKK_KEYSYMS_abreveacute ((guint) 0x1001eaf) #define SKK_KEYSYMS_Abrevegrave ((guint) 0x1001eb0) #define SKK_KEYSYMS_abrevegrave ((guint) 0x1001eb1) #define SKK_KEYSYMS_Abrevehook ((guint) 0x1001eb2) #define SKK_KEYSYMS_abrevehook ((guint) 0x1001eb3) #define SKK_KEYSYMS_Abrevetilde ((guint) 0x1001eb4) #define SKK_KEYSYMS_abrevetilde ((guint) 0x1001eb5) #define SKK_KEYSYMS_Abrevebelowdot ((guint) 0x1001eb6) #define SKK_KEYSYMS_abrevebelowdot ((guint) 0x1001eb7) #define SKK_KEYSYMS_Ebelowdot ((guint) 0x1001eb8) #define SKK_KEYSYMS_ebelowdot ((guint) 0x1001eb9) #define SKK_KEYSYMS_Ehook ((guint) 0x1001eba) #define SKK_KEYSYMS_ehook ((guint) 0x1001ebb) #define SKK_KEYSYMS_Etilde ((guint) 0x1001ebc) #define SKK_KEYSYMS_etilde ((guint) 0x1001ebd) #define SKK_KEYSYMS_Ecircumflexacute ((guint) 0x1001ebe) #define SKK_KEYSYMS_ecircumflexacute ((guint) 0x1001ebf) #define SKK_KEYSYMS_Ecircumflexgrave ((guint) 0x1001ec0) #define SKK_KEYSYMS_ecircumflexgrave ((guint) 0x1001ec1) #define SKK_KEYSYMS_Ecircumflexhook ((guint) 0x1001ec2) #define SKK_KEYSYMS_ecircumflexhook ((guint) 0x1001ec3) #define SKK_KEYSYMS_Ecircumflextilde ((guint) 0x1001ec4) #define SKK_KEYSYMS_ecircumflextilde ((guint) 0x1001ec5) #define SKK_KEYSYMS_Ecircumflexbelowdot ((guint) 0x1001ec6) #define SKK_KEYSYMS_ecircumflexbelowdot ((guint) 0x1001ec7) #define SKK_KEYSYMS_Ihook ((guint) 0x1001ec8) #define SKK_KEYSYMS_ihook ((guint) 0x1001ec9) #define SKK_KEYSYMS_Ibelowdot ((guint) 0x1001eca) #define SKK_KEYSYMS_ibelowdot ((guint) 0x1001ecb) #define SKK_KEYSYMS_Obelowdot ((guint) 0x1001ecc) #define SKK_KEYSYMS_obelowdot ((guint) 0x1001ecd) #define SKK_KEYSYMS_Ohook ((guint) 0x1001ece) #define SKK_KEYSYMS_ohook ((guint) 0x1001ecf) #define SKK_KEYSYMS_Ocircumflexacute ((guint) 0x1001ed0) #define SKK_KEYSYMS_ocircumflexacute ((guint) 0x1001ed1) #define SKK_KEYSYMS_Ocircumflexgrave ((guint) 0x1001ed2) #define SKK_KEYSYMS_ocircumflexgrave ((guint) 0x1001ed3) #define SKK_KEYSYMS_Ocircumflexhook ((guint) 0x1001ed4) #define SKK_KEYSYMS_ocircumflexhook ((guint) 0x1001ed5) #define SKK_KEYSYMS_Ocircumflextilde ((guint) 0x1001ed6) #define SKK_KEYSYMS_ocircumflextilde ((guint) 0x1001ed7) #define SKK_KEYSYMS_Ocircumflexbelowdot ((guint) 0x1001ed8) #define SKK_KEYSYMS_ocircumflexbelowdot ((guint) 0x1001ed9) #define SKK_KEYSYMS_Ohornacute ((guint) 0x1001eda) #define SKK_KEYSYMS_ohornacute ((guint) 0x1001edb) #define SKK_KEYSYMS_Ohorngrave ((guint) 0x1001edc) #define SKK_KEYSYMS_ohorngrave ((guint) 0x1001edd) #define SKK_KEYSYMS_Ohornhook ((guint) 0x1001ede) #define SKK_KEYSYMS_ohornhook ((guint) 0x1001edf) #define SKK_KEYSYMS_Ohorntilde ((guint) 0x1001ee0) #define SKK_KEYSYMS_ohorntilde ((guint) 0x1001ee1) #define SKK_KEYSYMS_Ohornbelowdot ((guint) 0x1001ee2) #define SKK_KEYSYMS_ohornbelowdot ((guint) 0x1001ee3) #define SKK_KEYSYMS_Ubelowdot ((guint) 0x1001ee4) #define SKK_KEYSYMS_ubelowdot ((guint) 0x1001ee5) #define SKK_KEYSYMS_Uhook ((guint) 0x1001ee6) #define SKK_KEYSYMS_uhook ((guint) 0x1001ee7) #define SKK_KEYSYMS_Uhornacute ((guint) 0x1001ee8) #define SKK_KEYSYMS_uhornacute ((guint) 0x1001ee9) #define SKK_KEYSYMS_Uhorngrave ((guint) 0x1001eea) #define SKK_KEYSYMS_uhorngrave ((guint) 0x1001eeb) #define SKK_KEYSYMS_Uhornhook ((guint) 0x1001eec) #define SKK_KEYSYMS_uhornhook ((guint) 0x1001eed) #define SKK_KEYSYMS_Uhorntilde ((guint) 0x1001eee) #define SKK_KEYSYMS_uhorntilde ((guint) 0x1001eef) #define SKK_KEYSYMS_Uhornbelowdot ((guint) 0x1001ef0) #define SKK_KEYSYMS_uhornbelowdot ((guint) 0x1001ef1) #define SKK_KEYSYMS_Ybelowdot ((guint) 0x1001ef4) #define SKK_KEYSYMS_ybelowdot ((guint) 0x1001ef5) #define SKK_KEYSYMS_Yhook ((guint) 0x1001ef6) #define SKK_KEYSYMS_yhook ((guint) 0x1001ef7) #define SKK_KEYSYMS_Ytilde ((guint) 0x1001ef8) #define SKK_KEYSYMS_ytilde ((guint) 0x1001ef9) #define SKK_KEYSYMS_Ohorn ((guint) 0x10001a0) #define SKK_KEYSYMS_ohorn ((guint) 0x10001a1) #define SKK_KEYSYMS_Uhorn ((guint) 0x10001af) #define SKK_KEYSYMS_uhorn ((guint) 0x10001b0) #define SKK_KEYSYMS_EcuSign ((guint) 0x10020a0) #define SKK_KEYSYMS_ColonSign ((guint) 0x10020a1) #define SKK_KEYSYMS_CruzeiroSign ((guint) 0x10020a2) #define SKK_KEYSYMS_FFrancSign ((guint) 0x10020a3) #define SKK_KEYSYMS_LiraSign ((guint) 0x10020a4) #define SKK_KEYSYMS_MillSign ((guint) 0x10020a5) #define SKK_KEYSYMS_NairaSign ((guint) 0x10020a6) #define SKK_KEYSYMS_PesetaSign ((guint) 0x10020a7) #define SKK_KEYSYMS_RupeeSign ((guint) 0x10020a8) #define SKK_KEYSYMS_WonSign ((guint) 0x10020a9) #define SKK_KEYSYMS_NewSheqelSign ((guint) 0x10020aa) #define SKK_KEYSYMS_DongSign ((guint) 0x10020ab) #define SKK_KEYSYMS_EuroSign ((guint) 0x20ac) #define SKK_KEYSYMS_zerosuperior ((guint) 0x1002070) #define SKK_KEYSYMS_foursuperior ((guint) 0x1002074) #define SKK_KEYSYMS_fivesuperior ((guint) 0x1002075) #define SKK_KEYSYMS_sixsuperior ((guint) 0x1002076) #define SKK_KEYSYMS_sevensuperior ((guint) 0x1002077) #define SKK_KEYSYMS_eightsuperior ((guint) 0x1002078) #define SKK_KEYSYMS_ninesuperior ((guint) 0x1002079) #define SKK_KEYSYMS_zerosubscript ((guint) 0x1002080) #define SKK_KEYSYMS_onesubscript ((guint) 0x1002081) #define SKK_KEYSYMS_twosubscript ((guint) 0x1002082) #define SKK_KEYSYMS_threesubscript ((guint) 0x1002083) #define SKK_KEYSYMS_foursubscript ((guint) 0x1002084) #define SKK_KEYSYMS_fivesubscript ((guint) 0x1002085) #define SKK_KEYSYMS_sixsubscript ((guint) 0x1002086) #define SKK_KEYSYMS_sevensubscript ((guint) 0x1002087) #define SKK_KEYSYMS_eightsubscript ((guint) 0x1002088) #define SKK_KEYSYMS_ninesubscript ((guint) 0x1002089) #define SKK_KEYSYMS_partdifferential ((guint) 0x1002202) #define SKK_KEYSYMS_emptyset ((guint) 0x1002205) #define SKK_KEYSYMS_elementof ((guint) 0x1002208) #define SKK_KEYSYMS_notelementof ((guint) 0x1002209) #define SKK_KEYSYMS_containsas ((guint) 0x100220B) #define SKK_KEYSYMS_squareroot ((guint) 0x100221A) #define SKK_KEYSYMS_cuberoot ((guint) 0x100221B) #define SKK_KEYSYMS_fourthroot ((guint) 0x100221C) #define SKK_KEYSYMS_dintegral ((guint) 0x100222C) #define SKK_KEYSYMS_tintegral ((guint) 0x100222D) #define SKK_KEYSYMS_because ((guint) 0x1002235) #define SKK_KEYSYMS_approxeq ((guint) 0x1002248) #define SKK_KEYSYMS_notapproxeq ((guint) 0x1002247) #define SKK_KEYSYMS_notidentical ((guint) 0x1002262) #define SKK_KEYSYMS_stricteq ((guint) 0x1002263) #define SKK_KEYSYMS_braille_dot_1 ((guint) 0xfff1) #define SKK_KEYSYMS_braille_dot_2 ((guint) 0xfff2) #define SKK_KEYSYMS_braille_dot_3 ((guint) 0xfff3) #define SKK_KEYSYMS_braille_dot_4 ((guint) 0xfff4) #define SKK_KEYSYMS_braille_dot_5 ((guint) 0xfff5) #define SKK_KEYSYMS_braille_dot_6 ((guint) 0xfff6) #define SKK_KEYSYMS_braille_dot_7 ((guint) 0xfff7) #define SKK_KEYSYMS_braille_dot_8 ((guint) 0xfff8) #define SKK_KEYSYMS_braille_dot_9 ((guint) 0xfff9) #define SKK_KEYSYMS_braille_dot_10 ((guint) 0xfffa) #define SKK_KEYSYMS_braille_blank ((guint) 0x1002800) #define SKK_KEYSYMS_braille_dots_1 ((guint) 0x1002801) #define SKK_KEYSYMS_braille_dots_2 ((guint) 0x1002802) #define SKK_KEYSYMS_braille_dots_12 ((guint) 0x1002803) #define SKK_KEYSYMS_braille_dots_3 ((guint) 0x1002804) #define SKK_KEYSYMS_braille_dots_13 ((guint) 0x1002805) #define SKK_KEYSYMS_braille_dots_23 ((guint) 0x1002806) #define SKK_KEYSYMS_braille_dots_123 ((guint) 0x1002807) #define SKK_KEYSYMS_braille_dots_4 ((guint) 0x1002808) #define SKK_KEYSYMS_braille_dots_14 ((guint) 0x1002809) #define SKK_KEYSYMS_braille_dots_24 ((guint) 0x100280a) #define SKK_KEYSYMS_braille_dots_124 ((guint) 0x100280b) #define SKK_KEYSYMS_braille_dots_34 ((guint) 0x100280c) #define SKK_KEYSYMS_braille_dots_134 ((guint) 0x100280d) #define SKK_KEYSYMS_braille_dots_234 ((guint) 0x100280e) #define SKK_KEYSYMS_braille_dots_1234 ((guint) 0x100280f) #define SKK_KEYSYMS_braille_dots_5 ((guint) 0x1002810) #define SKK_KEYSYMS_braille_dots_15 ((guint) 0x1002811) #define SKK_KEYSYMS_braille_dots_25 ((guint) 0x1002812) #define SKK_KEYSYMS_braille_dots_125 ((guint) 0x1002813) #define SKK_KEYSYMS_braille_dots_35 ((guint) 0x1002814) #define SKK_KEYSYMS_braille_dots_135 ((guint) 0x1002815) #define SKK_KEYSYMS_braille_dots_235 ((guint) 0x1002816) #define SKK_KEYSYMS_braille_dots_1235 ((guint) 0x1002817) #define SKK_KEYSYMS_braille_dots_45 ((guint) 0x1002818) #define SKK_KEYSYMS_braille_dots_145 ((guint) 0x1002819) #define SKK_KEYSYMS_braille_dots_245 ((guint) 0x100281a) #define SKK_KEYSYMS_braille_dots_1245 ((guint) 0x100281b) #define SKK_KEYSYMS_braille_dots_345 ((guint) 0x100281c) #define SKK_KEYSYMS_braille_dots_1345 ((guint) 0x100281d) #define SKK_KEYSYMS_braille_dots_2345 ((guint) 0x100281e) #define SKK_KEYSYMS_braille_dots_12345 ((guint) 0x100281f) #define SKK_KEYSYMS_braille_dots_6 ((guint) 0x1002820) #define SKK_KEYSYMS_braille_dots_16 ((guint) 0x1002821) #define SKK_KEYSYMS_braille_dots_26 ((guint) 0x1002822) #define SKK_KEYSYMS_braille_dots_126 ((guint) 0x1002823) #define SKK_KEYSYMS_braille_dots_36 ((guint) 0x1002824) #define SKK_KEYSYMS_braille_dots_136 ((guint) 0x1002825) #define SKK_KEYSYMS_braille_dots_236 ((guint) 0x1002826) #define SKK_KEYSYMS_braille_dots_1236 ((guint) 0x1002827) #define SKK_KEYSYMS_braille_dots_46 ((guint) 0x1002828) #define SKK_KEYSYMS_braille_dots_146 ((guint) 0x1002829) #define SKK_KEYSYMS_braille_dots_246 ((guint) 0x100282a) #define SKK_KEYSYMS_braille_dots_1246 ((guint) 0x100282b) #define SKK_KEYSYMS_braille_dots_346 ((guint) 0x100282c) #define SKK_KEYSYMS_braille_dots_1346 ((guint) 0x100282d) #define SKK_KEYSYMS_braille_dots_2346 ((guint) 0x100282e) #define SKK_KEYSYMS_braille_dots_12346 ((guint) 0x100282f) #define SKK_KEYSYMS_braille_dots_56 ((guint) 0x1002830) #define SKK_KEYSYMS_braille_dots_156 ((guint) 0x1002831) #define SKK_KEYSYMS_braille_dots_256 ((guint) 0x1002832) #define SKK_KEYSYMS_braille_dots_1256 ((guint) 0x1002833) #define SKK_KEYSYMS_braille_dots_356 ((guint) 0x1002834) #define SKK_KEYSYMS_braille_dots_1356 ((guint) 0x1002835) #define SKK_KEYSYMS_braille_dots_2356 ((guint) 0x1002836) #define SKK_KEYSYMS_braille_dots_12356 ((guint) 0x1002837) #define SKK_KEYSYMS_braille_dots_456 ((guint) 0x1002838) #define SKK_KEYSYMS_braille_dots_1456 ((guint) 0x1002839) #define SKK_KEYSYMS_braille_dots_2456 ((guint) 0x100283a) #define SKK_KEYSYMS_braille_dots_12456 ((guint) 0x100283b) #define SKK_KEYSYMS_braille_dots_3456 ((guint) 0x100283c) #define SKK_KEYSYMS_braille_dots_13456 ((guint) 0x100283d) #define SKK_KEYSYMS_braille_dots_23456 ((guint) 0x100283e) #define SKK_KEYSYMS_braille_dots_123456 ((guint) 0x100283f) #define SKK_KEYSYMS_braille_dots_7 ((guint) 0x1002840) #define SKK_KEYSYMS_braille_dots_17 ((guint) 0x1002841) #define SKK_KEYSYMS_braille_dots_27 ((guint) 0x1002842) #define SKK_KEYSYMS_braille_dots_127 ((guint) 0x1002843) #define SKK_KEYSYMS_braille_dots_37 ((guint) 0x1002844) #define SKK_KEYSYMS_braille_dots_137 ((guint) 0x1002845) #define SKK_KEYSYMS_braille_dots_237 ((guint) 0x1002846) #define SKK_KEYSYMS_braille_dots_1237 ((guint) 0x1002847) #define SKK_KEYSYMS_braille_dots_47 ((guint) 0x1002848) #define SKK_KEYSYMS_braille_dots_147 ((guint) 0x1002849) #define SKK_KEYSYMS_braille_dots_247 ((guint) 0x100284a) #define SKK_KEYSYMS_braille_dots_1247 ((guint) 0x100284b) #define SKK_KEYSYMS_braille_dots_347 ((guint) 0x100284c) #define SKK_KEYSYMS_braille_dots_1347 ((guint) 0x100284d) #define SKK_KEYSYMS_braille_dots_2347 ((guint) 0x100284e) #define SKK_KEYSYMS_braille_dots_12347 ((guint) 0x100284f) #define SKK_KEYSYMS_braille_dots_57 ((guint) 0x1002850) #define SKK_KEYSYMS_braille_dots_157 ((guint) 0x1002851) #define SKK_KEYSYMS_braille_dots_257 ((guint) 0x1002852) #define SKK_KEYSYMS_braille_dots_1257 ((guint) 0x1002853) #define SKK_KEYSYMS_braille_dots_357 ((guint) 0x1002854) #define SKK_KEYSYMS_braille_dots_1357 ((guint) 0x1002855) #define SKK_KEYSYMS_braille_dots_2357 ((guint) 0x1002856) #define SKK_KEYSYMS_braille_dots_12357 ((guint) 0x1002857) #define SKK_KEYSYMS_braille_dots_457 ((guint) 0x1002858) #define SKK_KEYSYMS_braille_dots_1457 ((guint) 0x1002859) #define SKK_KEYSYMS_braille_dots_2457 ((guint) 0x100285a) #define SKK_KEYSYMS_braille_dots_12457 ((guint) 0x100285b) #define SKK_KEYSYMS_braille_dots_3457 ((guint) 0x100285c) #define SKK_KEYSYMS_braille_dots_13457 ((guint) 0x100285d) #define SKK_KEYSYMS_braille_dots_23457 ((guint) 0x100285e) #define SKK_KEYSYMS_braille_dots_123457 ((guint) 0x100285f) #define SKK_KEYSYMS_braille_dots_67 ((guint) 0x1002860) #define SKK_KEYSYMS_braille_dots_167 ((guint) 0x1002861) #define SKK_KEYSYMS_braille_dots_267 ((guint) 0x1002862) #define SKK_KEYSYMS_braille_dots_1267 ((guint) 0x1002863) #define SKK_KEYSYMS_braille_dots_367 ((guint) 0x1002864) #define SKK_KEYSYMS_braille_dots_1367 ((guint) 0x1002865) #define SKK_KEYSYMS_braille_dots_2367 ((guint) 0x1002866) #define SKK_KEYSYMS_braille_dots_12367 ((guint) 0x1002867) #define SKK_KEYSYMS_braille_dots_467 ((guint) 0x1002868) #define SKK_KEYSYMS_braille_dots_1467 ((guint) 0x1002869) #define SKK_KEYSYMS_braille_dots_2467 ((guint) 0x100286a) #define SKK_KEYSYMS_braille_dots_12467 ((guint) 0x100286b) #define SKK_KEYSYMS_braille_dots_3467 ((guint) 0x100286c) #define SKK_KEYSYMS_braille_dots_13467 ((guint) 0x100286d) #define SKK_KEYSYMS_braille_dots_23467 ((guint) 0x100286e) #define SKK_KEYSYMS_braille_dots_123467 ((guint) 0x100286f) #define SKK_KEYSYMS_braille_dots_567 ((guint) 0x1002870) #define SKK_KEYSYMS_braille_dots_1567 ((guint) 0x1002871) #define SKK_KEYSYMS_braille_dots_2567 ((guint) 0x1002872) #define SKK_KEYSYMS_braille_dots_12567 ((guint) 0x1002873) #define SKK_KEYSYMS_braille_dots_3567 ((guint) 0x1002874) #define SKK_KEYSYMS_braille_dots_13567 ((guint) 0x1002875) #define SKK_KEYSYMS_braille_dots_23567 ((guint) 0x1002876) #define SKK_KEYSYMS_braille_dots_123567 ((guint) 0x1002877) #define SKK_KEYSYMS_braille_dots_4567 ((guint) 0x1002878) #define SKK_KEYSYMS_braille_dots_14567 ((guint) 0x1002879) #define SKK_KEYSYMS_braille_dots_24567 ((guint) 0x100287a) #define SKK_KEYSYMS_braille_dots_124567 ((guint) 0x100287b) #define SKK_KEYSYMS_braille_dots_34567 ((guint) 0x100287c) #define SKK_KEYSYMS_braille_dots_134567 ((guint) 0x100287d) #define SKK_KEYSYMS_braille_dots_234567 ((guint) 0x100287e) #define SKK_KEYSYMS_braille_dots_1234567 ((guint) 0x100287f) #define SKK_KEYSYMS_braille_dots_8 ((guint) 0x1002880) #define SKK_KEYSYMS_braille_dots_18 ((guint) 0x1002881) #define SKK_KEYSYMS_braille_dots_28 ((guint) 0x1002882) #define SKK_KEYSYMS_braille_dots_128 ((guint) 0x1002883) #define SKK_KEYSYMS_braille_dots_38 ((guint) 0x1002884) #define SKK_KEYSYMS_braille_dots_138 ((guint) 0x1002885) #define SKK_KEYSYMS_braille_dots_238 ((guint) 0x1002886) #define SKK_KEYSYMS_braille_dots_1238 ((guint) 0x1002887) #define SKK_KEYSYMS_braille_dots_48 ((guint) 0x1002888) #define SKK_KEYSYMS_braille_dots_148 ((guint) 0x1002889) #define SKK_KEYSYMS_braille_dots_248 ((guint) 0x100288a) #define SKK_KEYSYMS_braille_dots_1248 ((guint) 0x100288b) #define SKK_KEYSYMS_braille_dots_348 ((guint) 0x100288c) #define SKK_KEYSYMS_braille_dots_1348 ((guint) 0x100288d) #define SKK_KEYSYMS_braille_dots_2348 ((guint) 0x100288e) #define SKK_KEYSYMS_braille_dots_12348 ((guint) 0x100288f) #define SKK_KEYSYMS_braille_dots_58 ((guint) 0x1002890) #define SKK_KEYSYMS_braille_dots_158 ((guint) 0x1002891) #define SKK_KEYSYMS_braille_dots_258 ((guint) 0x1002892) #define SKK_KEYSYMS_braille_dots_1258 ((guint) 0x1002893) #define SKK_KEYSYMS_braille_dots_358 ((guint) 0x1002894) #define SKK_KEYSYMS_braille_dots_1358 ((guint) 0x1002895) #define SKK_KEYSYMS_braille_dots_2358 ((guint) 0x1002896) #define SKK_KEYSYMS_braille_dots_12358 ((guint) 0x1002897) #define SKK_KEYSYMS_braille_dots_458 ((guint) 0x1002898) #define SKK_KEYSYMS_braille_dots_1458 ((guint) 0x1002899) #define SKK_KEYSYMS_braille_dots_2458 ((guint) 0x100289a) #define SKK_KEYSYMS_braille_dots_12458 ((guint) 0x100289b) #define SKK_KEYSYMS_braille_dots_3458 ((guint) 0x100289c) #define SKK_KEYSYMS_braille_dots_13458 ((guint) 0x100289d) #define SKK_KEYSYMS_braille_dots_23458 ((guint) 0x100289e) #define SKK_KEYSYMS_braille_dots_123458 ((guint) 0x100289f) #define SKK_KEYSYMS_braille_dots_68 ((guint) 0x10028a0) #define SKK_KEYSYMS_braille_dots_168 ((guint) 0x10028a1) #define SKK_KEYSYMS_braille_dots_268 ((guint) 0x10028a2) #define SKK_KEYSYMS_braille_dots_1268 ((guint) 0x10028a3) #define SKK_KEYSYMS_braille_dots_368 ((guint) 0x10028a4) #define SKK_KEYSYMS_braille_dots_1368 ((guint) 0x10028a5) #define SKK_KEYSYMS_braille_dots_2368 ((guint) 0x10028a6) #define SKK_KEYSYMS_braille_dots_12368 ((guint) 0x10028a7) #define SKK_KEYSYMS_braille_dots_468 ((guint) 0x10028a8) #define SKK_KEYSYMS_braille_dots_1468 ((guint) 0x10028a9) #define SKK_KEYSYMS_braille_dots_2468 ((guint) 0x10028aa) #define SKK_KEYSYMS_braille_dots_12468 ((guint) 0x10028ab) #define SKK_KEYSYMS_braille_dots_3468 ((guint) 0x10028ac) #define SKK_KEYSYMS_braille_dots_13468 ((guint) 0x10028ad) #define SKK_KEYSYMS_braille_dots_23468 ((guint) 0x10028ae) #define SKK_KEYSYMS_braille_dots_123468 ((guint) 0x10028af) #define SKK_KEYSYMS_braille_dots_568 ((guint) 0x10028b0) #define SKK_KEYSYMS_braille_dots_1568 ((guint) 0x10028b1) #define SKK_KEYSYMS_braille_dots_2568 ((guint) 0x10028b2) #define SKK_KEYSYMS_braille_dots_12568 ((guint) 0x10028b3) #define SKK_KEYSYMS_braille_dots_3568 ((guint) 0x10028b4) #define SKK_KEYSYMS_braille_dots_13568 ((guint) 0x10028b5) #define SKK_KEYSYMS_braille_dots_23568 ((guint) 0x10028b6) #define SKK_KEYSYMS_braille_dots_123568 ((guint) 0x10028b7) #define SKK_KEYSYMS_braille_dots_4568 ((guint) 0x10028b8) #define SKK_KEYSYMS_braille_dots_14568 ((guint) 0x10028b9) #define SKK_KEYSYMS_braille_dots_24568 ((guint) 0x10028ba) #define SKK_KEYSYMS_braille_dots_124568 ((guint) 0x10028bb) #define SKK_KEYSYMS_braille_dots_34568 ((guint) 0x10028bc) #define SKK_KEYSYMS_braille_dots_134568 ((guint) 0x10028bd) #define SKK_KEYSYMS_braille_dots_234568 ((guint) 0x10028be) #define SKK_KEYSYMS_braille_dots_1234568 ((guint) 0x10028bf) #define SKK_KEYSYMS_braille_dots_78 ((guint) 0x10028c0) #define SKK_KEYSYMS_braille_dots_178 ((guint) 0x10028c1) #define SKK_KEYSYMS_braille_dots_278 ((guint) 0x10028c2) #define SKK_KEYSYMS_braille_dots_1278 ((guint) 0x10028c3) #define SKK_KEYSYMS_braille_dots_378 ((guint) 0x10028c4) #define SKK_KEYSYMS_braille_dots_1378 ((guint) 0x10028c5) #define SKK_KEYSYMS_braille_dots_2378 ((guint) 0x10028c6) #define SKK_KEYSYMS_braille_dots_12378 ((guint) 0x10028c7) #define SKK_KEYSYMS_braille_dots_478 ((guint) 0x10028c8) #define SKK_KEYSYMS_braille_dots_1478 ((guint) 0x10028c9) #define SKK_KEYSYMS_braille_dots_2478 ((guint) 0x10028ca) #define SKK_KEYSYMS_braille_dots_12478 ((guint) 0x10028cb) #define SKK_KEYSYMS_braille_dots_3478 ((guint) 0x10028cc) #define SKK_KEYSYMS_braille_dots_13478 ((guint) 0x10028cd) #define SKK_KEYSYMS_braille_dots_23478 ((guint) 0x10028ce) #define SKK_KEYSYMS_braille_dots_123478 ((guint) 0x10028cf) #define SKK_KEYSYMS_braille_dots_578 ((guint) 0x10028d0) #define SKK_KEYSYMS_braille_dots_1578 ((guint) 0x10028d1) #define SKK_KEYSYMS_braille_dots_2578 ((guint) 0x10028d2) #define SKK_KEYSYMS_braille_dots_12578 ((guint) 0x10028d3) #define SKK_KEYSYMS_braille_dots_3578 ((guint) 0x10028d4) #define SKK_KEYSYMS_braille_dots_13578 ((guint) 0x10028d5) #define SKK_KEYSYMS_braille_dots_23578 ((guint) 0x10028d6) #define SKK_KEYSYMS_braille_dots_123578 ((guint) 0x10028d7) #define SKK_KEYSYMS_braille_dots_4578 ((guint) 0x10028d8) #define SKK_KEYSYMS_braille_dots_14578 ((guint) 0x10028d9) #define SKK_KEYSYMS_braille_dots_24578 ((guint) 0x10028da) #define SKK_KEYSYMS_braille_dots_124578 ((guint) 0x10028db) #define SKK_KEYSYMS_braille_dots_34578 ((guint) 0x10028dc) #define SKK_KEYSYMS_braille_dots_134578 ((guint) 0x10028dd) #define SKK_KEYSYMS_braille_dots_234578 ((guint) 0x10028de) #define SKK_KEYSYMS_braille_dots_1234578 ((guint) 0x10028df) #define SKK_KEYSYMS_braille_dots_678 ((guint) 0x10028e0) #define SKK_KEYSYMS_braille_dots_1678 ((guint) 0x10028e1) #define SKK_KEYSYMS_braille_dots_2678 ((guint) 0x10028e2) #define SKK_KEYSYMS_braille_dots_12678 ((guint) 0x10028e3) #define SKK_KEYSYMS_braille_dots_3678 ((guint) 0x10028e4) #define SKK_KEYSYMS_braille_dots_13678 ((guint) 0x10028e5) #define SKK_KEYSYMS_braille_dots_23678 ((guint) 0x10028e6) #define SKK_KEYSYMS_braille_dots_123678 ((guint) 0x10028e7) #define SKK_KEYSYMS_braille_dots_4678 ((guint) 0x10028e8) #define SKK_KEYSYMS_braille_dots_14678 ((guint) 0x10028e9) #define SKK_KEYSYMS_braille_dots_24678 ((guint) 0x10028ea) #define SKK_KEYSYMS_braille_dots_124678 ((guint) 0x10028eb) #define SKK_KEYSYMS_braille_dots_34678 ((guint) 0x10028ec) #define SKK_KEYSYMS_braille_dots_134678 ((guint) 0x10028ed) #define SKK_KEYSYMS_braille_dots_234678 ((guint) 0x10028ee) #define SKK_KEYSYMS_braille_dots_1234678 ((guint) 0x10028ef) #define SKK_KEYSYMS_braille_dots_5678 ((guint) 0x10028f0) #define SKK_KEYSYMS_braille_dots_15678 ((guint) 0x10028f1) #define SKK_KEYSYMS_braille_dots_25678 ((guint) 0x10028f2) #define SKK_KEYSYMS_braille_dots_125678 ((guint) 0x10028f3) #define SKK_KEYSYMS_braille_dots_35678 ((guint) 0x10028f4) #define SKK_KEYSYMS_braille_dots_135678 ((guint) 0x10028f5) #define SKK_KEYSYMS_braille_dots_235678 ((guint) 0x10028f6) #define SKK_KEYSYMS_braille_dots_1235678 ((guint) 0x10028f7) #define SKK_KEYSYMS_braille_dots_45678 ((guint) 0x10028f8) #define SKK_KEYSYMS_braille_dots_145678 ((guint) 0x10028f9) #define SKK_KEYSYMS_braille_dots_245678 ((guint) 0x10028fa) #define SKK_KEYSYMS_braille_dots_1245678 ((guint) 0x10028fb) #define SKK_KEYSYMS_braille_dots_345678 ((guint) 0x10028fc) #define SKK_KEYSYMS_braille_dots_1345678 ((guint) 0x10028fd) #define SKK_KEYSYMS_braille_dots_2345678 ((guint) 0x10028fe) #define SKK_KEYSYMS_braille_dots_12345678 ((guint) 0x10028ff) #define SKK_KEYSYMS_Sinh_ng ((guint) 0x1000d82) #define SKK_KEYSYMS_Sinh_h2 ((guint) 0x1000d83) #define SKK_KEYSYMS_Sinh_a ((guint) 0x1000d85) #define SKK_KEYSYMS_Sinh_aa ((guint) 0x1000d86) #define SKK_KEYSYMS_Sinh_ae ((guint) 0x1000d87) #define SKK_KEYSYMS_Sinh_aee ((guint) 0x1000d88) #define SKK_KEYSYMS_Sinh_i ((guint) 0x1000d89) #define SKK_KEYSYMS_Sinh_ii ((guint) 0x1000d8a) #define SKK_KEYSYMS_Sinh_u ((guint) 0x1000d8b) #define SKK_KEYSYMS_Sinh_uu ((guint) 0x1000d8c) #define SKK_KEYSYMS_Sinh_ri ((guint) 0x1000d8d) #define SKK_KEYSYMS_Sinh_rii ((guint) 0x1000d8e) #define SKK_KEYSYMS_Sinh_lu ((guint) 0x1000d8f) #define SKK_KEYSYMS_Sinh_luu ((guint) 0x1000d90) #define SKK_KEYSYMS_Sinh_e ((guint) 0x1000d91) #define SKK_KEYSYMS_Sinh_ee ((guint) 0x1000d92) #define SKK_KEYSYMS_Sinh_ai ((guint) 0x1000d93) #define SKK_KEYSYMS_Sinh_o ((guint) 0x1000d94) #define SKK_KEYSYMS_Sinh_oo ((guint) 0x1000d95) #define SKK_KEYSYMS_Sinh_au ((guint) 0x1000d96) #define SKK_KEYSYMS_Sinh_ka ((guint) 0x1000d9a) #define SKK_KEYSYMS_Sinh_kha ((guint) 0x1000d9b) #define SKK_KEYSYMS_Sinh_ga ((guint) 0x1000d9c) #define SKK_KEYSYMS_Sinh_gha ((guint) 0x1000d9d) #define SKK_KEYSYMS_Sinh_ng2 ((guint) 0x1000d9e) #define SKK_KEYSYMS_Sinh_nga ((guint) 0x1000d9f) #define SKK_KEYSYMS_Sinh_ca ((guint) 0x1000da0) #define SKK_KEYSYMS_Sinh_cha ((guint) 0x1000da1) #define SKK_KEYSYMS_Sinh_ja ((guint) 0x1000da2) #define SKK_KEYSYMS_Sinh_jha ((guint) 0x1000da3) #define SKK_KEYSYMS_Sinh_nya ((guint) 0x1000da4) #define SKK_KEYSYMS_Sinh_jnya ((guint) 0x1000da5) #define SKK_KEYSYMS_Sinh_nja ((guint) 0x1000da6) #define SKK_KEYSYMS_Sinh_tta ((guint) 0x1000da7) #define SKK_KEYSYMS_Sinh_ttha ((guint) 0x1000da8) #define SKK_KEYSYMS_Sinh_dda ((guint) 0x1000da9) #define SKK_KEYSYMS_Sinh_ddha ((guint) 0x1000daa) #define SKK_KEYSYMS_Sinh_nna ((guint) 0x1000dab) #define SKK_KEYSYMS_Sinh_ndda ((guint) 0x1000dac) #define SKK_KEYSYMS_Sinh_tha ((guint) 0x1000dad) #define SKK_KEYSYMS_Sinh_thha ((guint) 0x1000dae) #define SKK_KEYSYMS_Sinh_dha ((guint) 0x1000daf) #define SKK_KEYSYMS_Sinh_dhha ((guint) 0x1000db0) #define SKK_KEYSYMS_Sinh_na ((guint) 0x1000db1) #define SKK_KEYSYMS_Sinh_ndha ((guint) 0x1000db3) #define SKK_KEYSYMS_Sinh_pa ((guint) 0x1000db4) #define SKK_KEYSYMS_Sinh_pha ((guint) 0x1000db5) #define SKK_KEYSYMS_Sinh_ba ((guint) 0x1000db6) #define SKK_KEYSYMS_Sinh_bha ((guint) 0x1000db7) #define SKK_KEYSYMS_Sinh_ma ((guint) 0x1000db8) #define SKK_KEYSYMS_Sinh_mba ((guint) 0x1000db9) #define SKK_KEYSYMS_Sinh_ya ((guint) 0x1000dba) #define SKK_KEYSYMS_Sinh_ra ((guint) 0x1000dbb) #define SKK_KEYSYMS_Sinh_la ((guint) 0x1000dbd) #define SKK_KEYSYMS_Sinh_va ((guint) 0x1000dc0) #define SKK_KEYSYMS_Sinh_sha ((guint) 0x1000dc1) #define SKK_KEYSYMS_Sinh_ssha ((guint) 0x1000dc2) #define SKK_KEYSYMS_Sinh_sa ((guint) 0x1000dc3) #define SKK_KEYSYMS_Sinh_ha ((guint) 0x1000dc4) #define SKK_KEYSYMS_Sinh_lla ((guint) 0x1000dc5) #define SKK_KEYSYMS_Sinh_fa ((guint) 0x1000dc6) #define SKK_KEYSYMS_Sinh_al ((guint) 0x1000dca) #define SKK_KEYSYMS_Sinh_aa2 ((guint) 0x1000dcf) #define SKK_KEYSYMS_Sinh_ae2 ((guint) 0x1000dd0) #define SKK_KEYSYMS_Sinh_aee2 ((guint) 0x1000dd1) #define SKK_KEYSYMS_Sinh_i2 ((guint) 0x1000dd2) #define SKK_KEYSYMS_Sinh_ii2 ((guint) 0x1000dd3) #define SKK_KEYSYMS_Sinh_u2 ((guint) 0x1000dd4) #define SKK_KEYSYMS_Sinh_uu2 ((guint) 0x1000dd6) #define SKK_KEYSYMS_Sinh_ru2 ((guint) 0x1000dd8) #define SKK_KEYSYMS_Sinh_e2 ((guint) 0x1000dd9) #define SKK_KEYSYMS_Sinh_ee2 ((guint) 0x1000dda) #define SKK_KEYSYMS_Sinh_ai2 ((guint) 0x1000ddb) #define SKK_KEYSYMS_Sinh_o2 ((guint) 0x1000ddc) #define SKK_KEYSYMS_Sinh_oo2 ((guint) 0x1000ddd) #define SKK_KEYSYMS_Sinh_au2 ((guint) 0x1000dde) #define SKK_KEYSYMS_Sinh_lu2 ((guint) 0x1000ddf) #define SKK_KEYSYMS_Sinh_ruu2 ((guint) 0x1000df2) #define SKK_KEYSYMS_Sinh_luu2 ((guint) 0x1000df3) #define SKK_KEYSYMS_Sinh_kunddaliya ((guint) 0x1000df4) libskk-1.0.0/libskk/key-event-filter.vala0000664000076400007640000000407311703506543015250 00000000000000/* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ namespace Skk { /** * Base class of a key event filter. */ public abstract class KeyEventFilter : Object { /** * Convert a key event to another. * * @param key a key event * * @return a KeyEvent or `null` if the result cannot be * fetched immediately */ public abstract KeyEvent? filter_key_event (KeyEvent key); /** * Signal emitted when a new key event is generated in the filter. * * @param key a key event */ public signal void forwarded (KeyEvent key); /** * Reset the filter. */ public virtual void reset () { } } /** * Simple implementation of a key event filter. * * This class is rarely used in programs but specified as "filter" * property in rule metadata. * * @see Rule */ class SimpleKeyEventFilter : KeyEventFilter { /** * {@inheritDoc} */ public override KeyEvent? filter_key_event (KeyEvent key) { // ignore key release event if ((key.modifiers & ModifierType.RELEASE_MASK) != 0) return null; // clear shift mask key.modifiers &= ~ModifierType.SHIFT_MASK; return key; } } }libskk-1.0.0/libskk/Makefile.am0000664000076400007640000000612611722621200013233 00000000000000# Copyright (C) 2011-2012 Daiki Ueno # Copyright (C) 2011-2012 Red Hat, 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 3 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, see . # force include config.h before gi18n.h. AM_CPPFLAGS = -include $(CONFIG_HEADER) lib_LTLIBRARIES = libskk.la libskk_la_VALAFLAGS = \ --includedir=libskk \ -H libskk.h \ --vapi skk-@SKK_API_VERSION@.vapi \ -h libskk-internals.h \ --vapidir=. \ --pkg config \ --pkg glib-2.0 \ --pkg gio-2.0 \ --pkg gee-1.0 \ --pkg posix \ --pkg json-glib-1.0 \ --internal-vapi skk-internals-@SKK_API_VERSION@.vapi \ --library skk-@SKK_API_VERSION@ \ --gir Skk-@SKK_API_VERSION@.gir \ --symbols libskk.symbols \ $(VALAFLAGS) \ $(NULL) libskk_la_CFLAGS = \ $(CODE_COVERAGE_CFLAGS) \ $(LIBSKK_CFLAGS) \ -DPKGDATADIR=\"$(pkgdatadir)\" \ $(NULL) libskk_la_LIBADD = $(LIBSKK_LIBS) libskk_la_LDFLAGS = \ $(CODE_COVERAGE_LDFLAGS) \ -version-info "$(LT_CURRENT)":"$(LT_REVISION)":"$(LT_AGE)" \ -export-dynamic \ -export-symbols $(srcdir)/libskk.symbols \ $(NULL) libskkincludedir = $(includedir)/libskk libskkinclude_HEADERS = libskk.h libskk_la_SOURCES = \ rom-kana.vala \ kana-kan.vala \ encoding.vala \ dict.vala \ file-dict.vala \ cdb-dict.vala \ user-dict.vala \ skkserv.vala \ key-event.vala \ key-event-filter.vala \ keymap.vala \ rule.vala \ map-file.vala \ state.vala \ context.vala \ candidate.vala \ candidate-list.vala \ nicola.vala \ expr.vala \ util.vala \ keysyms.vala \ $(NULL) if HAVE_INTROSPECTION girdir = $(datadir)/gir-1.0 gir_DATA = Skk-@SKK_API_VERSION@.gir typelibdir = $(libdir)/girepository-1.0 typelib_DATA = Skk-@SKK_API_VERSION@.typelib Skk-@SKK_API_VERSION@.typelib: Skk-@SKK_API_VERSION@.gir @INTROSPECTION_COMPILER@ --shared-library=libskk -o $@ $^ endif Skk-@SKK_API_VERSION@.gir skk-internals-@SKK_API_VERSION@.vapi skk-@SKK_API_VERSION@.vapi: libskk.la GITIGNOREFILES = \ $(libskk_la_SOURCES:.vala=.c) \ libskk_la_vala.stamp \ libskk.h \ libskk-internals.h \ libskk.symbols \ $(NULL) CLEANFILES = \ skk-@SKK_API_VERSION@.vapi \ skk-internals-@SKK_API_VERSION@.vapi \ Skk-@SKK_API_VERSION@.typelib \ Skk-@SKK_API_VERSION@.gir \ libskk.pc \ $(NULL) pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = libskk.pc vapi_DATA = skk-1.0.vapi skk-1.0.deps vapidir = $(datadir)/vala/vapi EXTRA_DIST = config.vapi skk-1.0.deps libskk.symbols -include $(top_srcdir)/git.mk libskk-1.0.0/libskk/file-dict.vala0000664000076400007640000003003711774270725013725 00000000000000/* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ using Gee; namespace Skk { /** * Read-only file based implementation of Dict. */ public class FileDict : Dict { // Read a line near offset and move offset to the beginning of // the line. string read_line (ref long offset) { return_val_if_fail (offset < mmap.length, null); char *p = ((char *)mmap.memory + offset); for (; offset > 0; offset--, p--) { if (*p == '\n') break; } if (offset > 0) { offset++; p++; } var builder = new StringBuilder (); long _offset = offset; for (; _offset < mmap.length; _offset++, p++) { if (*p == '\n') break; builder.append_c (*p); } return builder.str; } // can only called after read*_line string? read_previous_line (ref long pos, string line) { if (pos < 2) { return null; } // place the cursor at the end of the previous line pos -= 2; return read_line (ref pos); } // can only called after read*_line string? read_next_line (ref long pos, string line) { if (pos + line.length + 1 >= mmap.length) { return null; } // place the cursor at "\n" of the current line pos += line.length + 1; return read_line (ref pos); } // Skip until the first occurrence of line. This moves offset // at the beginning of the next line. bool read_until (ref long offset, string line) { return_val_if_fail (offset < mmap.length, null); while (offset + line.length < mmap.length) { char *p = ((char *)mmap.memory + offset); if (*p == '\n' && Memory.cmp (p + 1, (void *)line, line.length) == 0) { offset += line.length; return true; } offset++; } return false; } void load () throws SkkDictError { mmap.remap (); long offset = 0; var line = read_line (ref offset); if (line == null) { throw new SkkDictError.MALFORMED_INPUT ( "can't read the first line"); } var coding = EncodingConverter.extract_coding_system (line); if (coding != null) { try { var _converter = new EncodingConverter.from_coding_system ( coding); if (_converter != null) { converter = _converter; } } catch (Error e) { warning ("can't create converter from coding system %s: %s", coding, e.message); } } offset = 0; if (!read_until (ref offset, ";; okuri-ari entries.\n")) { throw new SkkDictError.MALFORMED_INPUT ( "no okuri-ari boundary"); } okuri_ari_offset = offset; if (!read_until (ref offset, ";; okuri-nasi entries.\n")) { throw new SkkDictError.MALFORMED_INPUT ( "no okuri-nasi boundary"); } okuri_nasi_offset = offset; } /** * {@inheritDoc} */ public override void reload () throws GLib.Error { #if VALA_0_16 string attributes = FileAttribute.ETAG_VALUE; #else string attributes = FILE_ATTRIBUTE_ETAG_VALUE; #endif FileInfo info = file.query_info (attributes, FileQueryInfoFlags.NONE); if (info.get_etag () != etag) { try { load (); etag = info.get_etag (); } catch (SkkDictError e) { warning ("error loading file dictionary %s %s", file.get_path (), e.message); } } } bool search_pos (string midasi, long start_offset, long end_offset, CompareFunc cmp, out long pos, out string? line, int direction) { long offset = start_offset + (end_offset - start_offset) / 2; while (start_offset <= end_offset) { assert (offset < mmap.length); string _line = read_line (ref offset); int index = _line.index_of (" "); if (index < 1) { warning ("corrupted dictionary entry: %s", _line); break; } int r = cmp (_line[0:index], midasi); if (r == 0) { pos = offset; line = _line; return true; } if (r * direction > 0) { end_offset = offset - 2; } else { start_offset = offset + _line.length + 1; } offset = start_offset + (end_offset - start_offset) / 2; } pos = -1; line = null; return false; } /** * {@inheritDoc} */ public override Candidate[] lookup (string midasi, bool okuri = false) { if (mmap.memory == null) return new Candidate[0]; long start_offset, end_offset; if (okuri) { start_offset = okuri_ari_offset; end_offset = okuri_nasi_offset; } else { start_offset = okuri_nasi_offset; end_offset = (long) mmap.length - 1; } string _midasi; try { _midasi = converter.encode (midasi); } catch (GLib.Error e) { warning ("can't encode %s: %s", midasi, e.message); return new Candidate[0]; } long pos; string line; if (search_pos (_midasi, start_offset, end_offset, strcmp, out pos, out line, okuri ? -1 : 1)) { int index = line.index_of (" "); string _line; if (index > 0) { try { _line = converter.decode (line[index:line.length]); } catch (GLib.Error e) { warning ("can't decode line %s: %s", line, e.message); return new Candidate[0]; } return split_candidates (midasi, okuri, _line); } } return new Candidate[0]; } static int strcmp_prefix (string a, string b) { if (a.has_prefix (b)) return 0; return strcmp (a, b); } /** * {@inheritDoc} */ public override string[] complete (string midasi) { if (mmap.memory == null) return new string[0]; var completion = new ArrayList (); long start_offset, end_offset; start_offset = okuri_nasi_offset; end_offset = (long) mmap.length; string _midasi; try { _midasi = converter.encode (midasi); } catch (GLib.Error e) { warning ("can't decode %s: %s", midasi, e.message); return completion.to_array (); } long pos; string line; if (search_pos (_midasi, start_offset, end_offset, strcmp_prefix, out pos, out line, 1)) { long _pos = pos; string _line = line; // search backward do { int index = line.index_of (" "); if (index < 0) { warning ("corrupted dictionary entry: %s", line); } else { var completed = line[0:index]; // don't add midasi word itself if (completed != _midasi) { try { string decoded = converter.decode (completed); completion.insert (0, decoded); } catch (GLib.Error e) { warning ("can't decode line %s: %s", line, e.message); } } } } while ((line = read_previous_line (ref pos, line)) != null && line.has_prefix (_midasi)); // search forward pos = _pos; line = _line; while ((line = read_next_line (ref pos, line)) != null && line.has_prefix (_midasi)) { int index = line.index_of (" "); if (index < 0) { warning ("corrupted dictionary entry: %s", line); } else { var completed = line[0:index]; // don't add midasi word itself if (completed != _midasi) { try { string decoded = converter.decode (completed); completion.add (decoded); } catch (GLib.Error e) { warning ("can't decode line %s: %s", line, e.message); } } } } } return completion.to_array (); } /** * {@inheritDoc} */ public override bool read_only { get { return true; } } File file; MemoryMappedFile mmap; string etag; EncodingConverter converter; long okuri_ari_offset; long okuri_nasi_offset; /** * Create a new FileDict. * * @param path a path to the file * @param encoding encoding of the file (default EUC-JP) * * @return a new FileDict * @throws GLib.Error if opening the file is failed */ public FileDict (string path, string encoding = "EUC-JP") throws GLib.Error { this.file = File.new_for_path (path); this.mmap = new MemoryMappedFile (file); this.etag = ""; this.converter = new EncodingConverter (encoding); reload (); } } } libskk-1.0.0/libskk/candidate-list.c0000664000076400007640000017741012016556644014255 00000000000000/* candidate-list.c generated by valac 0.16.0, the Vala compiler * generated from candidate-list.vala, do not modify */ /* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ #include #include #include #include #include #define SKK_TYPE_CANDIDATE_LIST (skk_candidate_list_get_type ()) #define SKK_CANDIDATE_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_CANDIDATE_LIST, SkkCandidateList)) #define SKK_CANDIDATE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_CANDIDATE_LIST, SkkCandidateListClass)) #define SKK_IS_CANDIDATE_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_CANDIDATE_LIST)) #define SKK_IS_CANDIDATE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_CANDIDATE_LIST)) #define SKK_CANDIDATE_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_CANDIDATE_LIST, SkkCandidateListClass)) typedef struct _SkkCandidateList SkkCandidateList; typedef struct _SkkCandidateListClass SkkCandidateListClass; typedef struct _SkkCandidateListPrivate SkkCandidateListPrivate; #define SKK_TYPE_CANDIDATE (skk_candidate_get_type ()) #define SKK_CANDIDATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_CANDIDATE, SkkCandidate)) #define SKK_CANDIDATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_CANDIDATE, SkkCandidateClass)) #define SKK_IS_CANDIDATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_CANDIDATE)) #define SKK_IS_CANDIDATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_CANDIDATE)) #define SKK_CANDIDATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_CANDIDATE, SkkCandidateClass)) typedef struct _SkkCandidate SkkCandidate; typedef struct _SkkCandidateClass SkkCandidateClass; #define SKK_TYPE_SIMPLE_CANDIDATE_LIST (skk_simple_candidate_list_get_type ()) #define SKK_SIMPLE_CANDIDATE_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_SIMPLE_CANDIDATE_LIST, SkkSimpleCandidateList)) #define SKK_SIMPLE_CANDIDATE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_SIMPLE_CANDIDATE_LIST, SkkSimpleCandidateListClass)) #define SKK_IS_SIMPLE_CANDIDATE_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_SIMPLE_CANDIDATE_LIST)) #define SKK_IS_SIMPLE_CANDIDATE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_SIMPLE_CANDIDATE_LIST)) #define SKK_SIMPLE_CANDIDATE_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_SIMPLE_CANDIDATE_LIST, SkkSimpleCandidateListClass)) typedef struct _SkkSimpleCandidateList SkkSimpleCandidateList; typedef struct _SkkSimpleCandidateListClass SkkSimpleCandidateListClass; typedef struct _SkkSimpleCandidateListPrivate SkkSimpleCandidateListPrivate; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) #define SKK_TYPE_PROXY_CANDIDATE_LIST (skk_proxy_candidate_list_get_type ()) #define SKK_PROXY_CANDIDATE_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_PROXY_CANDIDATE_LIST, SkkProxyCandidateList)) #define SKK_PROXY_CANDIDATE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_PROXY_CANDIDATE_LIST, SkkProxyCandidateListClass)) #define SKK_IS_PROXY_CANDIDATE_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_PROXY_CANDIDATE_LIST)) #define SKK_IS_PROXY_CANDIDATE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_PROXY_CANDIDATE_LIST)) #define SKK_PROXY_CANDIDATE_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_PROXY_CANDIDATE_LIST, SkkProxyCandidateListClass)) typedef struct _SkkProxyCandidateList SkkProxyCandidateList; typedef struct _SkkProxyCandidateListClass SkkProxyCandidateListClass; typedef struct _SkkProxyCandidateListPrivate SkkProxyCandidateListPrivate; struct _SkkCandidateList { GObject parent_instance; SkkCandidateListPrivate * priv; }; struct _SkkCandidateListClass { GObjectClass parent_class; SkkCandidate* (*get) (SkkCandidateList* self, gint index); void (*clear) (SkkCandidateList* self); void (*add_candidates) (SkkCandidateList* self, SkkCandidate** array, int array_length1); void (*add_candidates_end) (SkkCandidateList* self); gboolean (*cursor_up) (SkkCandidateList* self); gboolean (*cursor_down) (SkkCandidateList* self); gboolean (*page_up) (SkkCandidateList* self); gboolean (*page_down) (SkkCandidateList* self); gboolean (*next) (SkkCandidateList* self); gboolean (*previous) (SkkCandidateList* self); gboolean (*select_at) (SkkCandidateList* self, guint index_in_page); void (*select) (SkkCandidateList* self); gint (*get_cursor_pos) (SkkCandidateList* self); gint (*get_size) (SkkCandidateList* self); guint (*get_page_start) (SkkCandidateList* self); void (*set_page_start) (SkkCandidateList* self, guint value); guint (*get_page_size) (SkkCandidateList* self); void (*set_page_size) (SkkCandidateList* self, guint value); gboolean (*get_page_visible) (SkkCandidateList* self); }; struct _SkkSimpleCandidateList { SkkCandidateList parent_instance; SkkSimpleCandidateListPrivate * priv; }; struct _SkkSimpleCandidateListClass { SkkCandidateListClass parent_class; }; struct _SkkSimpleCandidateListPrivate { GeeArrayList* _candidates; gint _cursor_pos; GeeSet* seen; gint _page_start; gint _page_size; }; struct _SkkProxyCandidateList { SkkCandidateList parent_instance; SkkProxyCandidateListPrivate * priv; }; struct _SkkProxyCandidateListClass { SkkCandidateListClass parent_class; }; struct _SkkProxyCandidateListPrivate { SkkCandidateList* _candidates; }; static gpointer skk_candidate_list_parent_class = NULL; static gpointer skk_simple_candidate_list_parent_class = NULL; static gpointer skk_proxy_candidate_list_parent_class = NULL; GType skk_candidate_list_get_type (void) G_GNUC_CONST; GType skk_candidate_get_type (void) G_GNUC_CONST; enum { SKK_CANDIDATE_LIST_DUMMY_PROPERTY, SKK_CANDIDATE_LIST_CURSOR_POS, SKK_CANDIDATE_LIST_SIZE, SKK_CANDIDATE_LIST_PAGE_START, SKK_CANDIDATE_LIST_PAGE_SIZE, SKK_CANDIDATE_LIST_PAGE_VISIBLE }; SkkCandidate* skk_candidate_list_get (SkkCandidateList* self, gint index); static SkkCandidate* skk_candidate_list_real_get (SkkCandidateList* self, gint index); void skk_candidate_list_clear (SkkCandidateList* self); static void skk_candidate_list_real_clear (SkkCandidateList* self); void skk_candidate_list_add_candidates (SkkCandidateList* self, SkkCandidate** array, int array_length1); static void skk_candidate_list_real_add_candidates (SkkCandidateList* self, SkkCandidate** array, int array_length1); void skk_candidate_list_add_candidates_end (SkkCandidateList* self); static void skk_candidate_list_real_add_candidates_end (SkkCandidateList* self); gboolean skk_candidate_list_cursor_up (SkkCandidateList* self); static gboolean skk_candidate_list_real_cursor_up (SkkCandidateList* self); gboolean skk_candidate_list_cursor_down (SkkCandidateList* self); static gboolean skk_candidate_list_real_cursor_down (SkkCandidateList* self); gboolean skk_candidate_list_page_up (SkkCandidateList* self); static gboolean skk_candidate_list_real_page_up (SkkCandidateList* self); gboolean skk_candidate_list_page_down (SkkCandidateList* self); static gboolean skk_candidate_list_real_page_down (SkkCandidateList* self); gboolean skk_candidate_list_next (SkkCandidateList* self); static gboolean skk_candidate_list_real_next (SkkCandidateList* self); gint skk_candidate_list_get_cursor_pos (SkkCandidateList* self); guint skk_candidate_list_get_page_start (SkkCandidateList* self); gboolean skk_candidate_list_previous (SkkCandidateList* self); static gboolean skk_candidate_list_real_previous (SkkCandidateList* self); guint skk_candidate_list_get_page_start_cursor_pos (SkkCandidateList* self); guint skk_candidate_list_get_page_size (SkkCandidateList* self); gboolean skk_candidate_list_select_at (SkkCandidateList* self, guint index_in_page); static gboolean skk_candidate_list_real_select_at (SkkCandidateList* self, guint index_in_page); void skk_candidate_list_select (SkkCandidateList* self); static void skk_candidate_list_real_select (SkkCandidateList* self); SkkCandidateList* skk_candidate_list_construct (GType object_type); gint skk_candidate_list_get_size (SkkCandidateList* self); void skk_candidate_list_set_page_start (SkkCandidateList* self, guint value); void skk_candidate_list_set_page_size (SkkCandidateList* self, guint value); gboolean skk_candidate_list_get_page_visible (SkkCandidateList* self); static void _vala_skk_candidate_list_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); static void _vala_skk_candidate_list_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec); GType skk_simple_candidate_list_get_type (void) G_GNUC_CONST; #define SKK_SIMPLE_CANDIDATE_LIST_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SKK_TYPE_SIMPLE_CANDIDATE_LIST, SkkSimpleCandidateListPrivate)) enum { SKK_SIMPLE_CANDIDATE_LIST_DUMMY_PROPERTY, SKK_SIMPLE_CANDIDATE_LIST_CURSOR_POS, SKK_SIMPLE_CANDIDATE_LIST_SIZE, SKK_SIMPLE_CANDIDATE_LIST_PAGE_START, SKK_SIMPLE_CANDIDATE_LIST_PAGE_SIZE, SKK_SIMPLE_CANDIDATE_LIST_PAGE_VISIBLE }; static SkkCandidate* skk_simple_candidate_list_real_get (SkkCandidateList* base, gint index); static void skk_simple_candidate_list_real_clear (SkkCandidateList* base); static void skk_simple_candidate_list_real_add_candidates (SkkCandidateList* base, SkkCandidate** array, int array_length1); const gchar* skk_candidate_get_output (SkkCandidate* self); static void skk_simple_candidate_list_real_add_candidates_end (SkkCandidateList* base); static gboolean skk_simple_candidate_list_real_select_at (SkkCandidateList* base, guint index_in_page); static void skk_simple_candidate_list_real_select (SkkCandidateList* base); SkkSimpleCandidateList* skk_simple_candidate_list_new (guint page_start, guint page_size); SkkSimpleCandidateList* skk_simple_candidate_list_construct (GType object_type, guint page_start, guint page_size); static gboolean skk_simple_candidate_list_real_cursor_up (SkkCandidateList* base); static gboolean skk_simple_candidate_list_real_cursor_down (SkkCandidateList* base); static gboolean skk_simple_candidate_list_real_page_up (SkkCandidateList* base); static gboolean skk_simple_candidate_list_real_page_down (SkkCandidateList* base); static void skk_simple_candidate_list_finalize (GObject* obj); static void _vala_skk_simple_candidate_list_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); static void _vala_skk_simple_candidate_list_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec); GType skk_proxy_candidate_list_get_type (void) G_GNUC_CONST; #define SKK_PROXY_CANDIDATE_LIST_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SKK_TYPE_PROXY_CANDIDATE_LIST, SkkProxyCandidateListPrivate)) enum { SKK_PROXY_CANDIDATE_LIST_DUMMY_PROPERTY, SKK_PROXY_CANDIDATE_LIST_CANDIDATES, SKK_PROXY_CANDIDATE_LIST_CURSOR_POS, SKK_PROXY_CANDIDATE_LIST_SIZE, SKK_PROXY_CANDIDATE_LIST_PAGE_START, SKK_PROXY_CANDIDATE_LIST_PAGE_SIZE, SKK_PROXY_CANDIDATE_LIST_PAGE_VISIBLE }; static void skk_proxy_candidate_list_notify_cursor_pos_cb (SkkProxyCandidateList* self, GObject* s, GParamSpec* p); static void skk_proxy_candidate_list_populated_cb (SkkProxyCandidateList* self); static void skk_proxy_candidate_list_selected_cb (SkkProxyCandidateList* self, SkkCandidate* c); static SkkCandidate* skk_proxy_candidate_list_real_get (SkkCandidateList* base, gint index); SkkCandidateList* skk_proxy_candidate_list_get_candidates (SkkProxyCandidateList* self); static void skk_proxy_candidate_list_real_clear (SkkCandidateList* base); static void skk_proxy_candidate_list_real_add_candidates (SkkCandidateList* base, SkkCandidate** array, int array_length1); static void skk_proxy_candidate_list_real_add_candidates_end (SkkCandidateList* base); static gboolean skk_proxy_candidate_list_real_select_at (SkkCandidateList* base, guint index_in_page); static void skk_proxy_candidate_list_real_select (SkkCandidateList* base); SkkProxyCandidateList* skk_proxy_candidate_list_new (SkkCandidateList* candidates); SkkProxyCandidateList* skk_proxy_candidate_list_construct (GType object_type, SkkCandidateList* candidates); void skk_proxy_candidate_list_set_candidates (SkkProxyCandidateList* self, SkkCandidateList* value); static gboolean skk_proxy_candidate_list_real_cursor_up (SkkCandidateList* base); static gboolean skk_proxy_candidate_list_real_cursor_down (SkkCandidateList* base); static gboolean skk_proxy_candidate_list_real_page_up (SkkCandidateList* base); static gboolean skk_proxy_candidate_list_real_page_down (SkkCandidateList* base); static void _skk_proxy_candidate_list_notify_cursor_pos_cb_g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self); static void _skk_proxy_candidate_list_populated_cb_skk_candidate_list_populated (SkkCandidateList* _sender, gpointer self); static void _skk_proxy_candidate_list_selected_cb_skk_candidate_list_selected (SkkCandidateList* _sender, SkkCandidate* candidate, gpointer self); static void skk_proxy_candidate_list_finalize (GObject* obj); static void _vala_skk_proxy_candidate_list_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); static void _vala_skk_proxy_candidate_list_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec); /** * Get the current candidate at the given index. * * @param index candidate position (-1 for the current cursor position) * * @return a Candidate */ static SkkCandidate* skk_candidate_list_real_get (SkkCandidateList* self, gint index) { g_critical ("Type `%s' does not implement abstract method `skk_candidate_list_get'", g_type_name (G_TYPE_FROM_INSTANCE (self))); return NULL; } SkkCandidate* skk_candidate_list_get (SkkCandidateList* self, gint index) { g_return_val_if_fail (self != NULL, NULL); return SKK_CANDIDATE_LIST_GET_CLASS (self)->get (self, index); } static void skk_candidate_list_real_clear (SkkCandidateList* self) { g_critical ("Type `%s' does not implement abstract method `skk_candidate_list_clear'", g_type_name (G_TYPE_FROM_INSTANCE (self))); return; } void skk_candidate_list_clear (SkkCandidateList* self) { g_return_if_fail (self != NULL); SKK_CANDIDATE_LIST_GET_CLASS (self)->clear (self); } static void skk_candidate_list_real_add_candidates (SkkCandidateList* self, SkkCandidate** array, int array_length1) { g_critical ("Type `%s' does not implement abstract method `skk_candidate_list_add_candidates'", g_type_name (G_TYPE_FROM_INSTANCE (self))); return; } void skk_candidate_list_add_candidates (SkkCandidateList* self, SkkCandidate** array, int array_length1) { g_return_if_fail (self != NULL); SKK_CANDIDATE_LIST_GET_CLASS (self)->add_candidates (self, array, array_length1); } static void skk_candidate_list_real_add_candidates_end (SkkCandidateList* self) { g_critical ("Type `%s' does not implement abstract method `skk_candidate_list_add_candidates_end'", g_type_name (G_TYPE_FROM_INSTANCE (self))); return; } void skk_candidate_list_add_candidates_end (SkkCandidateList* self) { g_return_if_fail (self != NULL); SKK_CANDIDATE_LIST_GET_CLASS (self)->add_candidates_end (self); } /** * Move cursor to the previous candidate. * * @return `true` if cursor position has changed, `false` otherwise. */ static gboolean skk_candidate_list_real_cursor_up (SkkCandidateList* self) { g_critical ("Type `%s' does not implement abstract method `skk_candidate_list_cursor_up'", g_type_name (G_TYPE_FROM_INSTANCE (self))); return FALSE; } gboolean skk_candidate_list_cursor_up (SkkCandidateList* self) { g_return_val_if_fail (self != NULL, FALSE); return SKK_CANDIDATE_LIST_GET_CLASS (self)->cursor_up (self); } /** * Move cursor to the next candidate. * * @return `true` if cursor position has changed, `false` otherwise */ static gboolean skk_candidate_list_real_cursor_down (SkkCandidateList* self) { g_critical ("Type `%s' does not implement abstract method `skk_candidate_list_cursor_down'", g_type_name (G_TYPE_FROM_INSTANCE (self))); return FALSE; } gboolean skk_candidate_list_cursor_down (SkkCandidateList* self) { g_return_val_if_fail (self != NULL, FALSE); return SKK_CANDIDATE_LIST_GET_CLASS (self)->cursor_down (self); } /** * Move cursor to the previous page. * * @return `true` if cursor position has changed, `false` otherwise */ static gboolean skk_candidate_list_real_page_up (SkkCandidateList* self) { g_critical ("Type `%s' does not implement abstract method `skk_candidate_list_page_up'", g_type_name (G_TYPE_FROM_INSTANCE (self))); return FALSE; } gboolean skk_candidate_list_page_up (SkkCandidateList* self) { g_return_val_if_fail (self != NULL, FALSE); return SKK_CANDIDATE_LIST_GET_CLASS (self)->page_up (self); } /** * Move cursor to the next page. * * @return `true` if cursor position has changed, `false` otherwise */ static gboolean skk_candidate_list_real_page_down (SkkCandidateList* self) { g_critical ("Type `%s' does not implement abstract method `skk_candidate_list_page_down'", g_type_name (G_TYPE_FROM_INSTANCE (self))); return FALSE; } gboolean skk_candidate_list_page_down (SkkCandidateList* self) { g_return_val_if_fail (self != NULL, FALSE); return SKK_CANDIDATE_LIST_GET_CLASS (self)->page_down (self); } /** * Move cursor forward. * * @return `true` if cursor position has changed, `false` otherwise */ static gboolean skk_candidate_list_real_next (SkkCandidateList* self) { gboolean result = FALSE; gint _tmp0_; gint _tmp1_; guint _tmp2_; guint _tmp3_; _tmp0_ = skk_candidate_list_get_cursor_pos (self); _tmp1_ = _tmp0_; _tmp2_ = skk_candidate_list_get_page_start (self); _tmp3_ = _tmp2_; if (((guint) _tmp1_) < _tmp3_) { gboolean _tmp4_ = FALSE; _tmp4_ = skk_candidate_list_cursor_down (self); result = _tmp4_; return result; } else { gboolean _tmp5_ = FALSE; _tmp5_ = skk_candidate_list_page_down (self); result = _tmp5_; return result; } } gboolean skk_candidate_list_next (SkkCandidateList* self) { g_return_val_if_fail (self != NULL, FALSE); return SKK_CANDIDATE_LIST_GET_CLASS (self)->next (self); } /** * Move cursor backward. * * @return `true` if cursor position has changed, `false` otherwise */ static gboolean skk_candidate_list_real_previous (SkkCandidateList* self) { gboolean result = FALSE; gint _tmp0_; gint _tmp1_; guint _tmp2_; guint _tmp3_; _tmp0_ = skk_candidate_list_get_cursor_pos (self); _tmp1_ = _tmp0_; _tmp2_ = skk_candidate_list_get_page_start (self); _tmp3_ = _tmp2_; if (((guint) _tmp1_) <= _tmp3_) { gboolean _tmp4_ = FALSE; _tmp4_ = skk_candidate_list_cursor_up (self); result = _tmp4_; return result; } else { gboolean _tmp5_ = FALSE; _tmp5_ = skk_candidate_list_page_up (self); result = _tmp5_; return result; } } gboolean skk_candidate_list_previous (SkkCandidateList* self) { g_return_val_if_fail (self != NULL, FALSE); return SKK_CANDIDATE_LIST_GET_CLASS (self)->previous (self); } /** * Return cursor position of the beginning of the current page. * * @return cursor position */ guint skk_candidate_list_get_page_start_cursor_pos (SkkCandidateList* self) { guint result = 0U; gint _tmp0_; gint _tmp1_; guint _tmp2_; guint _tmp3_; guint _tmp4_; guint _tmp5_; guint pages; guint _tmp6_; guint _tmp7_; guint _tmp8_; guint _tmp9_; g_return_val_if_fail (self != NULL, 0U); _tmp0_ = skk_candidate_list_get_cursor_pos (self); _tmp1_ = _tmp0_; _tmp2_ = skk_candidate_list_get_page_start (self); _tmp3_ = _tmp2_; _tmp4_ = skk_candidate_list_get_page_size (self); _tmp5_ = _tmp4_; pages = (_tmp1_ - _tmp3_) / _tmp5_; _tmp6_ = skk_candidate_list_get_page_size (self); _tmp7_ = _tmp6_; _tmp8_ = skk_candidate_list_get_page_start (self); _tmp9_ = _tmp8_; result = (pages * _tmp7_) + _tmp9_; return result; } /** * Select a candidate in the current page. * * @param index_in_page cursor position in the page to select * * @return `true` if a candidate is selected, `false` otherwise */ static gboolean skk_candidate_list_real_select_at (SkkCandidateList* self, guint index_in_page) { g_critical ("Type `%s' does not implement abstract method `skk_candidate_list_select_at'", g_type_name (G_TYPE_FROM_INSTANCE (self))); return FALSE; } gboolean skk_candidate_list_select_at (SkkCandidateList* self, guint index_in_page) { g_return_val_if_fail (self != NULL, FALSE); return SKK_CANDIDATE_LIST_GET_CLASS (self)->select_at (self, index_in_page); } /** * Select the current candidate. */ static void skk_candidate_list_real_select (SkkCandidateList* self) { g_critical ("Type `%s' does not implement abstract method `skk_candidate_list_select'", g_type_name (G_TYPE_FROM_INSTANCE (self))); return; } void skk_candidate_list_select (SkkCandidateList* self) { g_return_if_fail (self != NULL); SKK_CANDIDATE_LIST_GET_CLASS (self)->select (self); } SkkCandidateList* skk_candidate_list_construct (GType object_type) { SkkCandidateList * self = NULL; self = (SkkCandidateList*) g_object_new (object_type, NULL); return self; } gint skk_candidate_list_get_cursor_pos (SkkCandidateList* self) { g_return_val_if_fail (self != NULL, 0); return SKK_CANDIDATE_LIST_GET_CLASS (self)->get_cursor_pos (self); } gint skk_candidate_list_get_size (SkkCandidateList* self) { g_return_val_if_fail (self != NULL, 0); return SKK_CANDIDATE_LIST_GET_CLASS (self)->get_size (self); } guint skk_candidate_list_get_page_start (SkkCandidateList* self) { g_return_val_if_fail (self != NULL, 0U); return SKK_CANDIDATE_LIST_GET_CLASS (self)->get_page_start (self); } void skk_candidate_list_set_page_start (SkkCandidateList* self, guint value) { g_return_if_fail (self != NULL); SKK_CANDIDATE_LIST_GET_CLASS (self)->set_page_start (self, value); } guint skk_candidate_list_get_page_size (SkkCandidateList* self) { g_return_val_if_fail (self != NULL, 0U); return SKK_CANDIDATE_LIST_GET_CLASS (self)->get_page_size (self); } void skk_candidate_list_set_page_size (SkkCandidateList* self, guint value) { g_return_if_fail (self != NULL); SKK_CANDIDATE_LIST_GET_CLASS (self)->set_page_size (self, value); } gboolean skk_candidate_list_get_page_visible (SkkCandidateList* self) { g_return_val_if_fail (self != NULL, FALSE); return SKK_CANDIDATE_LIST_GET_CLASS (self)->get_page_visible (self); } static void skk_candidate_list_class_init (SkkCandidateListClass * klass) { skk_candidate_list_parent_class = g_type_class_peek_parent (klass); SKK_CANDIDATE_LIST_CLASS (klass)->get = skk_candidate_list_real_get; SKK_CANDIDATE_LIST_CLASS (klass)->clear = skk_candidate_list_real_clear; SKK_CANDIDATE_LIST_CLASS (klass)->add_candidates = skk_candidate_list_real_add_candidates; SKK_CANDIDATE_LIST_CLASS (klass)->add_candidates_end = skk_candidate_list_real_add_candidates_end; SKK_CANDIDATE_LIST_CLASS (klass)->cursor_up = skk_candidate_list_real_cursor_up; SKK_CANDIDATE_LIST_CLASS (klass)->cursor_down = skk_candidate_list_real_cursor_down; SKK_CANDIDATE_LIST_CLASS (klass)->page_up = skk_candidate_list_real_page_up; SKK_CANDIDATE_LIST_CLASS (klass)->page_down = skk_candidate_list_real_page_down; SKK_CANDIDATE_LIST_CLASS (klass)->next = skk_candidate_list_real_next; SKK_CANDIDATE_LIST_CLASS (klass)->previous = skk_candidate_list_real_previous; SKK_CANDIDATE_LIST_CLASS (klass)->select_at = skk_candidate_list_real_select_at; SKK_CANDIDATE_LIST_CLASS (klass)->select = skk_candidate_list_real_select; G_OBJECT_CLASS (klass)->get_property = _vala_skk_candidate_list_get_property; G_OBJECT_CLASS (klass)->set_property = _vala_skk_candidate_list_set_property; /** * Current cursor position. */ g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_CANDIDATE_LIST_CURSOR_POS, g_param_spec_int ("cursor-pos", "cursor-pos", "cursor-pos", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE)); /** * The number of candidate in the candidate list. */ g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_CANDIDATE_LIST_SIZE, g_param_spec_int ("size", "size", "size", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE)); /** * Starting index of paging. */ g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_CANDIDATE_LIST_PAGE_START, g_param_spec_uint ("page-start", "page-start", "page-start", 0, G_MAXUINT, 0U, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); /** * Page size. */ g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_CANDIDATE_LIST_PAGE_SIZE, g_param_spec_uint ("page-size", "page-size", "page-size", 0, G_MAXUINT, 0U, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); /** * Flag to indicate whether page (lookup table) is visible. */ g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_CANDIDATE_LIST_PAGE_VISIBLE, g_param_spec_boolean ("page-visible", "page-visible", "page-visible", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE)); /** * Signal emitted when candidates are filled and ready for traversal. */ g_signal_new ("populated", SKK_TYPE_CANDIDATE_LIST, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); /** * Signal emitted when a candidate is selected. * * @param candidate selected candidate */ g_signal_new ("selected", SKK_TYPE_CANDIDATE_LIST, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, SKK_TYPE_CANDIDATE); } static void skk_candidate_list_instance_init (SkkCandidateList * self) { } /** * Base abstract class of candidate list. */ GType skk_candidate_list_get_type (void) { static volatile gsize skk_candidate_list_type_id__volatile = 0; if (g_once_init_enter (&skk_candidate_list_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkCandidateListClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_candidate_list_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkCandidateList), 0, (GInstanceInitFunc) skk_candidate_list_instance_init, NULL }; GType skk_candidate_list_type_id; skk_candidate_list_type_id = g_type_register_static (G_TYPE_OBJECT, "SkkCandidateList", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); g_once_init_leave (&skk_candidate_list_type_id__volatile, skk_candidate_list_type_id); } return skk_candidate_list_type_id__volatile; } static void _vala_skk_candidate_list_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { SkkCandidateList * self; self = SKK_CANDIDATE_LIST (object); switch (property_id) { default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } static void _vala_skk_candidate_list_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { SkkCandidateList * self; self = SKK_CANDIDATE_LIST (object); switch (property_id) { default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } static SkkCandidate* skk_simple_candidate_list_real_get (SkkCandidateList* base, gint index) { SkkSimpleCandidateList * self; SkkCandidate* result = NULL; gint _tmp0_; gboolean _tmp2_ = FALSE; gint _tmp3_; gboolean _tmp7_; GeeArrayList* _tmp8_; gint _tmp9_; gpointer _tmp10_ = NULL; self = (SkkSimpleCandidateList*) base; _tmp0_ = index; if (_tmp0_ < 0) { gint _tmp1_; _tmp1_ = self->priv->_cursor_pos; index = _tmp1_; } _tmp3_ = index; if (0 <= _tmp3_) { gint _tmp4_; gint _tmp5_; gint _tmp6_; _tmp4_ = index; _tmp5_ = skk_candidate_list_get_size ((SkkCandidateList*) self); _tmp6_ = _tmp5_; _tmp2_ = _tmp4_ < _tmp6_; } else { _tmp2_ = FALSE; } _tmp7_ = _tmp2_; g_assert (_tmp7_); _tmp8_ = self->priv->_candidates; _tmp9_ = index; _tmp10_ = gee_abstract_list_get ((GeeAbstractList*) _tmp8_, _tmp9_); result = (SkkCandidate*) _tmp10_; return result; } static void skk_simple_candidate_list_real_clear (SkkCandidateList* base) { SkkSimpleCandidateList * self; gboolean is_populated; gboolean is_cursor_changed; GeeSet* _tmp0_; GeeArrayList* _tmp1_; gint _tmp2_; gint _tmp3_; gint _tmp5_; gboolean _tmp6_; gboolean _tmp7_; self = (SkkSimpleCandidateList*) base; is_populated = FALSE; is_cursor_changed = FALSE; _tmp0_ = self->priv->seen; gee_collection_clear ((GeeCollection*) _tmp0_); _tmp1_ = self->priv->_candidates; _tmp2_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp1_); _tmp3_ = _tmp2_; if (_tmp3_ > 0) { GeeArrayList* _tmp4_; _tmp4_ = self->priv->_candidates; gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp4_); is_populated = TRUE; } _tmp5_ = self->priv->_cursor_pos; if (_tmp5_ >= 0) { self->priv->_cursor_pos = -1; is_cursor_changed = TRUE; } _tmp6_ = is_populated; if (_tmp6_) { g_signal_emit_by_name ((SkkCandidateList*) self, "populated"); } _tmp7_ = is_cursor_changed; if (_tmp7_) { g_object_notify ((GObject*) self, "cursor-pos"); } } static gpointer _g_object_ref0 (gpointer self) { return self ? g_object_ref (self) : NULL; } static void skk_simple_candidate_list_real_add_candidates (SkkCandidateList* base, SkkCandidate** array, int array_length1) { SkkSimpleCandidateList * self; SkkCandidate** _tmp0_; gint _tmp0__length1; self = (SkkSimpleCandidateList*) base; _tmp0_ = array; _tmp0__length1 = array_length1; { SkkCandidate** c_collection = NULL; gint c_collection_length1 = 0; gint _c_collection_size_ = 0; gint c_it = 0; c_collection = _tmp0_; c_collection_length1 = _tmp0__length1; for (c_it = 0; c_it < _tmp0__length1; c_it = c_it + 1) { SkkCandidate* _tmp1_; SkkCandidate* c = NULL; _tmp1_ = _g_object_ref0 (c_collection[c_it]); c = _tmp1_; { GeeSet* _tmp2_; SkkCandidate* _tmp3_; const gchar* _tmp4_; const gchar* _tmp5_; gboolean _tmp6_ = FALSE; _tmp2_ = self->priv->seen; _tmp3_ = c; _tmp4_ = skk_candidate_get_output (_tmp3_); _tmp5_ = _tmp4_; _tmp6_ = gee_collection_contains ((GeeCollection*) _tmp2_, _tmp5_); if (!_tmp6_) { GeeArrayList* _tmp7_; SkkCandidate* _tmp8_; GeeSet* _tmp9_; SkkCandidate* _tmp10_; const gchar* _tmp11_; const gchar* _tmp12_; _tmp7_ = self->priv->_candidates; _tmp8_ = c; gee_abstract_collection_add ((GeeAbstractCollection*) _tmp7_, _tmp8_); _tmp9_ = self->priv->seen; _tmp10_ = c; _tmp11_ = skk_candidate_get_output (_tmp10_); _tmp12_ = _tmp11_; gee_collection_add ((GeeCollection*) _tmp9_, _tmp12_); } _g_object_unref0 (c); } } } } static void skk_simple_candidate_list_real_add_candidates_end (SkkCandidateList* base) { SkkSimpleCandidateList * self; GeeArrayList* _tmp0_; gint _tmp1_; gint _tmp2_; self = (SkkSimpleCandidateList*) base; _tmp0_ = self->priv->_candidates; _tmp1_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp0_); _tmp2_ = _tmp1_; if (_tmp2_ > 0) { self->priv->_cursor_pos = 0; } g_object_notify ((GObject*) self, "cursor-pos"); g_signal_emit_by_name ((SkkCandidateList*) self, "populated"); } static gboolean skk_simple_candidate_list_real_select_at (SkkCandidateList* base, guint index_in_page) { SkkSimpleCandidateList * self; gboolean result = FALSE; guint _tmp0_; guint _tmp1_; guint _tmp2_; guint _tmp3_ = 0U; guint page_offset; guint _tmp4_; guint _tmp5_; gint _tmp6_; gint _tmp7_; self = (SkkSimpleCandidateList*) base; _tmp0_ = index_in_page; _tmp1_ = skk_candidate_list_get_page_size ((SkkCandidateList*) self); _tmp2_ = _tmp1_; g_assert (_tmp0_ < _tmp2_); _tmp3_ = skk_candidate_list_get_page_start_cursor_pos ((SkkCandidateList*) self); page_offset = _tmp3_; _tmp4_ = page_offset; _tmp5_ = index_in_page; _tmp6_ = skk_candidate_list_get_size ((SkkCandidateList*) self); _tmp7_ = _tmp6_; if ((_tmp4_ + _tmp5_) < ((guint) _tmp7_)) { guint _tmp8_; guint _tmp9_; _tmp8_ = page_offset; _tmp9_ = index_in_page; self->priv->_cursor_pos = (gint) (_tmp8_ + _tmp9_); g_object_notify ((GObject*) self, "cursor-pos"); skk_candidate_list_select ((SkkCandidateList*) self); result = TRUE; return result; } result = FALSE; return result; } static void skk_simple_candidate_list_real_select (SkkCandidateList* base) { SkkSimpleCandidateList * self; SkkCandidate* _tmp0_ = NULL; SkkCandidate* candidate; self = (SkkSimpleCandidateList*) base; _tmp0_ = skk_candidate_list_get ((SkkCandidateList*) self, -1); candidate = _tmp0_; g_signal_emit_by_name ((SkkCandidateList*) self, "selected", candidate); _g_object_unref0 (candidate); } SkkSimpleCandidateList* skk_simple_candidate_list_construct (GType object_type, guint page_start, guint page_size) { SkkSimpleCandidateList * self = NULL; guint _tmp0_; guint _tmp1_; self = (SkkSimpleCandidateList*) skk_candidate_list_construct (object_type); _tmp0_ = page_start; self->priv->_page_start = (gint) _tmp0_; _tmp1_ = page_size; self->priv->_page_size = (gint) _tmp1_; return self; } SkkSimpleCandidateList* skk_simple_candidate_list_new (guint page_start, guint page_size) { return skk_simple_candidate_list_construct (SKK_TYPE_SIMPLE_CANDIDATE_LIST, page_start, page_size); } static gboolean skk_simple_candidate_list_real_cursor_up (SkkCandidateList* base) { SkkSimpleCandidateList * self; gboolean result = FALSE; gint _tmp0_; gint _tmp1_; self = (SkkSimpleCandidateList*) base; _tmp0_ = self->priv->_cursor_pos; g_assert (_tmp0_ >= 0); _tmp1_ = self->priv->_cursor_pos; if (_tmp1_ > 0) { gint _tmp2_; _tmp2_ = self->priv->_cursor_pos; self->priv->_cursor_pos = _tmp2_ - 1; g_object_notify ((GObject*) self, "cursor-pos"); result = TRUE; return result; } result = FALSE; return result; } static gboolean skk_simple_candidate_list_real_cursor_down (SkkCandidateList* base) { SkkSimpleCandidateList * self; gboolean result = FALSE; gint _tmp0_; gint _tmp1_; GeeArrayList* _tmp2_; gint _tmp3_; gint _tmp4_; self = (SkkSimpleCandidateList*) base; _tmp0_ = self->priv->_cursor_pos; g_assert (_tmp0_ >= 0); _tmp1_ = self->priv->_cursor_pos; _tmp2_ = self->priv->_candidates; _tmp3_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp2_); _tmp4_ = _tmp3_; if (_tmp1_ < (_tmp4_ - 1)) { gint _tmp5_; _tmp5_ = self->priv->_cursor_pos; self->priv->_cursor_pos = _tmp5_ + 1; g_object_notify ((GObject*) self, "cursor-pos"); result = TRUE; return result; } result = FALSE; return result; } static gboolean skk_simple_candidate_list_real_page_up (SkkCandidateList* base) { SkkSimpleCandidateList * self; gboolean result = FALSE; gint _tmp0_; gint _tmp1_; gint _tmp2_; gint _tmp3_; self = (SkkSimpleCandidateList*) base; _tmp0_ = self->priv->_cursor_pos; g_assert (_tmp0_ >= 0); _tmp1_ = self->priv->_cursor_pos; _tmp2_ = self->priv->_page_start; _tmp3_ = self->priv->_page_size; if (_tmp1_ >= (_tmp2_ + _tmp3_)) { gint _tmp4_; gint _tmp5_; guint _tmp6_ = 0U; _tmp4_ = self->priv->_cursor_pos; _tmp5_ = self->priv->_page_size; self->priv->_cursor_pos = _tmp4_ - _tmp5_; _tmp6_ = skk_candidate_list_get_page_start_cursor_pos ((SkkCandidateList*) self); self->priv->_cursor_pos = (gint) _tmp6_; g_object_notify ((GObject*) self, "cursor-pos"); result = TRUE; return result; } result = FALSE; return result; } static gboolean skk_simple_candidate_list_real_page_down (SkkCandidateList* base) { SkkSimpleCandidateList * self; gboolean result = FALSE; gint _tmp0_; gboolean _tmp1_ = FALSE; gint _tmp2_; gint _tmp3_; gboolean _tmp9_; self = (SkkSimpleCandidateList*) base; _tmp0_ = self->priv->_cursor_pos; g_assert (_tmp0_ >= 0); _tmp2_ = self->priv->_cursor_pos; _tmp3_ = self->priv->_page_start; if (_tmp2_ >= _tmp3_) { gint _tmp4_; GeeArrayList* _tmp5_; gint _tmp6_; gint _tmp7_; gint _tmp8_; _tmp4_ = self->priv->_cursor_pos; _tmp5_ = self->priv->_candidates; _tmp6_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp5_); _tmp7_ = _tmp6_; _tmp8_ = self->priv->_page_size; _tmp1_ = _tmp4_ < (_tmp7_ - _tmp8_); } else { _tmp1_ = FALSE; } _tmp9_ = _tmp1_; if (_tmp9_) { gint _tmp10_; gint _tmp11_; guint _tmp12_ = 0U; _tmp10_ = self->priv->_cursor_pos; _tmp11_ = self->priv->_page_size; self->priv->_cursor_pos = _tmp10_ + _tmp11_; _tmp12_ = skk_candidate_list_get_page_start_cursor_pos ((SkkCandidateList*) self); self->priv->_cursor_pos = (gint) _tmp12_; g_object_notify ((GObject*) self, "cursor-pos"); result = TRUE; return result; } result = FALSE; return result; } static gint skk_simple_candidate_list_real_get_cursor_pos (SkkCandidateList* base) { gint result; SkkSimpleCandidateList* self; gint _tmp0_; self = (SkkSimpleCandidateList*) base; _tmp0_ = self->priv->_cursor_pos; result = _tmp0_; return result; } static gint skk_simple_candidate_list_real_get_size (SkkCandidateList* base) { gint result; SkkSimpleCandidateList* self; GeeArrayList* _tmp0_; gint _tmp1_; gint _tmp2_; self = (SkkSimpleCandidateList*) base; _tmp0_ = self->priv->_candidates; _tmp1_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp0_); _tmp2_ = _tmp1_; result = _tmp2_; return result; } static guint skk_simple_candidate_list_real_get_page_start (SkkCandidateList* base) { guint result; SkkSimpleCandidateList* self; gint _tmp0_; self = (SkkSimpleCandidateList*) base; _tmp0_ = self->priv->_page_start; result = (guint) _tmp0_; return result; } static void skk_simple_candidate_list_real_set_page_start (SkkCandidateList* base, guint value) { SkkSimpleCandidateList* self; guint _tmp0_; self = (SkkSimpleCandidateList*) base; _tmp0_ = value; self->priv->_page_start = (gint) _tmp0_; g_object_notify ((GObject *) self, "page-start"); } static guint skk_simple_candidate_list_real_get_page_size (SkkCandidateList* base) { guint result; SkkSimpleCandidateList* self; gint _tmp0_; self = (SkkSimpleCandidateList*) base; _tmp0_ = self->priv->_page_size; result = (guint) _tmp0_; return result; } static void skk_simple_candidate_list_real_set_page_size (SkkCandidateList* base, guint value) { SkkSimpleCandidateList* self; guint _tmp0_; self = (SkkSimpleCandidateList*) base; _tmp0_ = value; self->priv->_page_size = (gint) _tmp0_; g_object_notify ((GObject *) self, "page-size"); } static gboolean skk_simple_candidate_list_real_get_page_visible (SkkCandidateList* base) { gboolean result; SkkSimpleCandidateList* self; gint _tmp0_; gint _tmp1_; self = (SkkSimpleCandidateList*) base; _tmp0_ = self->priv->_cursor_pos; _tmp1_ = self->priv->_page_start; result = _tmp0_ >= _tmp1_; return result; } static void skk_simple_candidate_list_class_init (SkkSimpleCandidateListClass * klass) { skk_simple_candidate_list_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (SkkSimpleCandidateListPrivate)); SKK_CANDIDATE_LIST_CLASS (klass)->get = skk_simple_candidate_list_real_get; SKK_CANDIDATE_LIST_CLASS (klass)->clear = skk_simple_candidate_list_real_clear; SKK_CANDIDATE_LIST_CLASS (klass)->add_candidates = skk_simple_candidate_list_real_add_candidates; SKK_CANDIDATE_LIST_CLASS (klass)->add_candidates_end = skk_simple_candidate_list_real_add_candidates_end; SKK_CANDIDATE_LIST_CLASS (klass)->select_at = skk_simple_candidate_list_real_select_at; SKK_CANDIDATE_LIST_CLASS (klass)->select = skk_simple_candidate_list_real_select; SKK_CANDIDATE_LIST_CLASS (klass)->cursor_up = skk_simple_candidate_list_real_cursor_up; SKK_CANDIDATE_LIST_CLASS (klass)->cursor_down = skk_simple_candidate_list_real_cursor_down; SKK_CANDIDATE_LIST_CLASS (klass)->page_up = skk_simple_candidate_list_real_page_up; SKK_CANDIDATE_LIST_CLASS (klass)->page_down = skk_simple_candidate_list_real_page_down; SKK_CANDIDATE_LIST_CLASS (klass)->get_cursor_pos = skk_simple_candidate_list_real_get_cursor_pos; SKK_CANDIDATE_LIST_CLASS (klass)->get_size = skk_simple_candidate_list_real_get_size; SKK_CANDIDATE_LIST_CLASS (klass)->get_page_start = skk_simple_candidate_list_real_get_page_start; SKK_CANDIDATE_LIST_CLASS (klass)->set_page_start = skk_simple_candidate_list_real_set_page_start; SKK_CANDIDATE_LIST_CLASS (klass)->get_page_size = skk_simple_candidate_list_real_get_page_size; SKK_CANDIDATE_LIST_CLASS (klass)->set_page_size = skk_simple_candidate_list_real_set_page_size; SKK_CANDIDATE_LIST_CLASS (klass)->get_page_visible = skk_simple_candidate_list_real_get_page_visible; G_OBJECT_CLASS (klass)->get_property = _vala_skk_simple_candidate_list_get_property; G_OBJECT_CLASS (klass)->set_property = _vala_skk_simple_candidate_list_set_property; G_OBJECT_CLASS (klass)->finalize = skk_simple_candidate_list_finalize; g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_SIMPLE_CANDIDATE_LIST_CURSOR_POS, g_param_spec_int ("cursor-pos", "cursor-pos", "cursor-pos", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE)); g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_SIMPLE_CANDIDATE_LIST_SIZE, g_param_spec_int ("size", "size", "size", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE)); g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_SIMPLE_CANDIDATE_LIST_PAGE_START, g_param_spec_uint ("page-start", "page-start", "page-start", 0, G_MAXUINT, 0U, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_SIMPLE_CANDIDATE_LIST_PAGE_SIZE, g_param_spec_uint ("page-size", "page-size", "page-size", 0, G_MAXUINT, 0U, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_SIMPLE_CANDIDATE_LIST_PAGE_VISIBLE, g_param_spec_boolean ("page-visible", "page-visible", "page-visible", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE)); } static void skk_simple_candidate_list_instance_init (SkkSimpleCandidateList * self) { GeeArrayList* _tmp0_; GeeHashSet* _tmp1_; self->priv = SKK_SIMPLE_CANDIDATE_LIST_GET_PRIVATE (self); _tmp0_ = gee_array_list_new (SKK_TYPE_CANDIDATE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL); self->priv->_candidates = _tmp0_; _tmp1_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL); self->priv->seen = (GeeSet*) _tmp1_; } static void skk_simple_candidate_list_finalize (GObject* obj) { SkkSimpleCandidateList * self; self = SKK_SIMPLE_CANDIDATE_LIST (obj); _g_object_unref0 (self->priv->_candidates); _g_object_unref0 (self->priv->seen); G_OBJECT_CLASS (skk_simple_candidate_list_parent_class)->finalize (obj); } GType skk_simple_candidate_list_get_type (void) { static volatile gsize skk_simple_candidate_list_type_id__volatile = 0; if (g_once_init_enter (&skk_simple_candidate_list_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkSimpleCandidateListClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_simple_candidate_list_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkSimpleCandidateList), 0, (GInstanceInitFunc) skk_simple_candidate_list_instance_init, NULL }; GType skk_simple_candidate_list_type_id; skk_simple_candidate_list_type_id = g_type_register_static (SKK_TYPE_CANDIDATE_LIST, "SkkSimpleCandidateList", &g_define_type_info, 0); g_once_init_leave (&skk_simple_candidate_list_type_id__volatile, skk_simple_candidate_list_type_id); } return skk_simple_candidate_list_type_id__volatile; } static void _vala_skk_simple_candidate_list_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { SkkSimpleCandidateList * self; self = SKK_SIMPLE_CANDIDATE_LIST (object); switch (property_id) { case SKK_SIMPLE_CANDIDATE_LIST_CURSOR_POS: g_value_set_int (value, skk_candidate_list_get_cursor_pos ((SkkCandidateList*) self)); break; case SKK_SIMPLE_CANDIDATE_LIST_SIZE: g_value_set_int (value, skk_candidate_list_get_size ((SkkCandidateList*) self)); break; case SKK_SIMPLE_CANDIDATE_LIST_PAGE_START: g_value_set_uint (value, skk_candidate_list_get_page_start ((SkkCandidateList*) self)); break; case SKK_SIMPLE_CANDIDATE_LIST_PAGE_SIZE: g_value_set_uint (value, skk_candidate_list_get_page_size ((SkkCandidateList*) self)); break; case SKK_SIMPLE_CANDIDATE_LIST_PAGE_VISIBLE: g_value_set_boolean (value, skk_candidate_list_get_page_visible ((SkkCandidateList*) self)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } static void _vala_skk_simple_candidate_list_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { SkkSimpleCandidateList * self; self = SKK_SIMPLE_CANDIDATE_LIST (object); switch (property_id) { case SKK_SIMPLE_CANDIDATE_LIST_PAGE_START: skk_candidate_list_set_page_start ((SkkCandidateList*) self, g_value_get_uint (value)); break; case SKK_SIMPLE_CANDIDATE_LIST_PAGE_SIZE: skk_candidate_list_set_page_size ((SkkCandidateList*) self, g_value_get_uint (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } static void skk_proxy_candidate_list_notify_cursor_pos_cb (SkkProxyCandidateList* self, GObject* s, GParamSpec* p) { g_return_if_fail (self != NULL); g_return_if_fail (s != NULL); g_object_notify ((GObject*) self, "cursor-pos"); } static void skk_proxy_candidate_list_populated_cb (SkkProxyCandidateList* self) { g_return_if_fail (self != NULL); g_signal_emit_by_name ((SkkCandidateList*) self, "populated"); } static void skk_proxy_candidate_list_selected_cb (SkkProxyCandidateList* self, SkkCandidate* c) { SkkCandidate* _tmp0_; g_return_if_fail (self != NULL); g_return_if_fail (c != NULL); _tmp0_ = c; g_signal_emit_by_name ((SkkCandidateList*) self, "selected", _tmp0_); } static SkkCandidate* skk_proxy_candidate_list_real_get (SkkCandidateList* base, gint index) { SkkProxyCandidateList * self; SkkCandidate* result = NULL; SkkCandidateList* _tmp0_; SkkCandidateList* _tmp1_; gint _tmp2_; SkkCandidate* _tmp3_ = NULL; self = (SkkProxyCandidateList*) base; _tmp0_ = skk_proxy_candidate_list_get_candidates (self); _tmp1_ = _tmp0_; _tmp2_ = index; _tmp3_ = skk_candidate_list_get (_tmp1_, _tmp2_); result = _tmp3_; return result; } static void skk_proxy_candidate_list_real_clear (SkkCandidateList* base) { SkkProxyCandidateList * self; SkkCandidateList* _tmp0_; SkkCandidateList* _tmp1_; self = (SkkProxyCandidateList*) base; _tmp0_ = skk_proxy_candidate_list_get_candidates (self); _tmp1_ = _tmp0_; skk_candidate_list_clear (_tmp1_); } static void skk_proxy_candidate_list_real_add_candidates (SkkCandidateList* base, SkkCandidate** array, int array_length1) { SkkProxyCandidateList * self; SkkCandidateList* _tmp0_; SkkCandidateList* _tmp1_; SkkCandidate** _tmp2_; gint _tmp2__length1; self = (SkkProxyCandidateList*) base; _tmp0_ = skk_proxy_candidate_list_get_candidates (self); _tmp1_ = _tmp0_; _tmp2_ = array; _tmp2__length1 = array_length1; skk_candidate_list_add_candidates (_tmp1_, _tmp2_, _tmp2__length1); } static void skk_proxy_candidate_list_real_add_candidates_end (SkkCandidateList* base) { SkkProxyCandidateList * self; SkkCandidateList* _tmp0_; SkkCandidateList* _tmp1_; self = (SkkProxyCandidateList*) base; _tmp0_ = skk_proxy_candidate_list_get_candidates (self); _tmp1_ = _tmp0_; skk_candidate_list_add_candidates_end (_tmp1_); } static gboolean skk_proxy_candidate_list_real_select_at (SkkCandidateList* base, guint index_in_page) { SkkProxyCandidateList * self; gboolean result = FALSE; SkkCandidateList* _tmp0_; SkkCandidateList* _tmp1_; guint _tmp2_; gboolean _tmp3_ = FALSE; self = (SkkProxyCandidateList*) base; _tmp0_ = skk_proxy_candidate_list_get_candidates (self); _tmp1_ = _tmp0_; _tmp2_ = index_in_page; _tmp3_ = skk_candidate_list_select_at (_tmp1_, _tmp2_); result = _tmp3_; return result; } static void skk_proxy_candidate_list_real_select (SkkCandidateList* base) { SkkProxyCandidateList * self; SkkCandidateList* _tmp0_; SkkCandidateList* _tmp1_; self = (SkkProxyCandidateList*) base; _tmp0_ = skk_proxy_candidate_list_get_candidates (self); _tmp1_ = _tmp0_; skk_candidate_list_select (_tmp1_); } SkkProxyCandidateList* skk_proxy_candidate_list_construct (GType object_type, SkkCandidateList* candidates) { SkkProxyCandidateList * self = NULL; SkkCandidateList* _tmp0_; g_return_val_if_fail (candidates != NULL, NULL); self = (SkkProxyCandidateList*) skk_candidate_list_construct (object_type); _tmp0_ = candidates; skk_proxy_candidate_list_set_candidates (self, _tmp0_); return self; } SkkProxyCandidateList* skk_proxy_candidate_list_new (SkkCandidateList* candidates) { return skk_proxy_candidate_list_construct (SKK_TYPE_PROXY_CANDIDATE_LIST, candidates); } static gboolean skk_proxy_candidate_list_real_cursor_up (SkkCandidateList* base) { SkkProxyCandidateList * self; gboolean result = FALSE; SkkCandidateList* _tmp0_; SkkCandidateList* _tmp1_; gboolean _tmp2_ = FALSE; self = (SkkProxyCandidateList*) base; _tmp0_ = skk_proxy_candidate_list_get_candidates (self); _tmp1_ = _tmp0_; _tmp2_ = skk_candidate_list_cursor_up (_tmp1_); result = _tmp2_; return result; } static gboolean skk_proxy_candidate_list_real_cursor_down (SkkCandidateList* base) { SkkProxyCandidateList * self; gboolean result = FALSE; SkkCandidateList* _tmp0_; SkkCandidateList* _tmp1_; gboolean _tmp2_ = FALSE; self = (SkkProxyCandidateList*) base; _tmp0_ = skk_proxy_candidate_list_get_candidates (self); _tmp1_ = _tmp0_; _tmp2_ = skk_candidate_list_cursor_down (_tmp1_); result = _tmp2_; return result; } static gboolean skk_proxy_candidate_list_real_page_up (SkkCandidateList* base) { SkkProxyCandidateList * self; gboolean result = FALSE; SkkCandidateList* _tmp0_; SkkCandidateList* _tmp1_; gboolean _tmp2_ = FALSE; self = (SkkProxyCandidateList*) base; _tmp0_ = skk_proxy_candidate_list_get_candidates (self); _tmp1_ = _tmp0_; _tmp2_ = skk_candidate_list_page_up (_tmp1_); result = _tmp2_; return result; } static gboolean skk_proxy_candidate_list_real_page_down (SkkCandidateList* base) { SkkProxyCandidateList * self; gboolean result = FALSE; SkkCandidateList* _tmp0_; SkkCandidateList* _tmp1_; gboolean _tmp2_ = FALSE; self = (SkkProxyCandidateList*) base; _tmp0_ = skk_proxy_candidate_list_get_candidates (self); _tmp1_ = _tmp0_; _tmp2_ = skk_candidate_list_page_down (_tmp1_); result = _tmp2_; return result; } SkkCandidateList* skk_proxy_candidate_list_get_candidates (SkkProxyCandidateList* self) { SkkCandidateList* result; SkkCandidateList* _tmp0_; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = self->priv->_candidates; result = _tmp0_; return result; } static void _skk_proxy_candidate_list_notify_cursor_pos_cb_g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) { skk_proxy_candidate_list_notify_cursor_pos_cb (self, _sender, pspec); } static void _skk_proxy_candidate_list_populated_cb_skk_candidate_list_populated (SkkCandidateList* _sender, gpointer self) { skk_proxy_candidate_list_populated_cb (self); } static void _skk_proxy_candidate_list_selected_cb_skk_candidate_list_selected (SkkCandidateList* _sender, SkkCandidate* candidate, gpointer self) { skk_proxy_candidate_list_selected_cb (self, candidate); } void skk_proxy_candidate_list_set_candidates (SkkProxyCandidateList* self, SkkCandidateList* value) { SkkCandidateList* _tmp0_; SkkCandidateList* _tmp1_; g_return_if_fail (self != NULL); _tmp0_ = self->priv->_candidates; _tmp1_ = value; if (_tmp0_ != _tmp1_) { SkkCandidateList* _tmp2_; SkkCandidateList* _tmp10_; SkkCandidateList* _tmp11_; SkkCandidateList* _tmp12_; SkkCandidateList* _tmp13_; SkkCandidateList* _tmp14_; _tmp2_ = self->priv->_candidates; if (_tmp2_ != NULL) { SkkCandidateList* _tmp3_; guint _tmp4_ = 0U; GQuark _tmp5_ = 0U; SkkCandidateList* _tmp6_; guint _tmp7_ = 0U; SkkCandidateList* _tmp8_; guint _tmp9_ = 0U; _tmp3_ = self->priv->_candidates; g_signal_parse_name ("notify::cursor-pos", G_TYPE_OBJECT, &_tmp4_, &_tmp5_, TRUE); g_signal_handlers_disconnect_matched ((GObject*) _tmp3_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_DETAIL | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp4_, _tmp5_, NULL, (GCallback) _skk_proxy_candidate_list_notify_cursor_pos_cb_g_object_notify, self); _tmp6_ = self->priv->_candidates; g_signal_parse_name ("populated", SKK_TYPE_CANDIDATE_LIST, &_tmp7_, NULL, FALSE); g_signal_handlers_disconnect_matched (_tmp6_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp7_, 0, NULL, (GCallback) _skk_proxy_candidate_list_populated_cb_skk_candidate_list_populated, self); _tmp8_ = self->priv->_candidates; g_signal_parse_name ("selected", SKK_TYPE_CANDIDATE_LIST, &_tmp9_, NULL, FALSE); g_signal_handlers_disconnect_matched (_tmp8_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp9_, 0, NULL, (GCallback) _skk_proxy_candidate_list_selected_cb_skk_candidate_list_selected, self); } _tmp10_ = value; _tmp11_ = _g_object_ref0 (_tmp10_); _g_object_unref0 (self->priv->_candidates); self->priv->_candidates = _tmp11_; _tmp12_ = self->priv->_candidates; g_signal_connect_object ((GObject*) _tmp12_, "notify::cursor-pos", (GCallback) _skk_proxy_candidate_list_notify_cursor_pos_cb_g_object_notify, self, 0); _tmp13_ = self->priv->_candidates; g_signal_connect_object (_tmp13_, "populated", (GCallback) _skk_proxy_candidate_list_populated_cb_skk_candidate_list_populated, self, 0); _tmp14_ = self->priv->_candidates; g_signal_connect_object (_tmp14_, "selected", (GCallback) _skk_proxy_candidate_list_selected_cb_skk_candidate_list_selected, self, 0); g_signal_emit_by_name ((SkkCandidateList*) self, "populated"); } g_object_notify ((GObject *) self, "candidates"); } static gint skk_proxy_candidate_list_real_get_cursor_pos (SkkCandidateList* base) { gint result; SkkProxyCandidateList* self; SkkCandidateList* _tmp0_; SkkCandidateList* _tmp1_; gint _tmp2_; gint _tmp3_; self = (SkkProxyCandidateList*) base; _tmp0_ = skk_proxy_candidate_list_get_candidates (self); _tmp1_ = _tmp0_; _tmp2_ = skk_candidate_list_get_cursor_pos (_tmp1_); _tmp3_ = _tmp2_; result = _tmp3_; return result; } static gint skk_proxy_candidate_list_real_get_size (SkkCandidateList* base) { gint result; SkkProxyCandidateList* self; SkkCandidateList* _tmp0_; SkkCandidateList* _tmp1_; gint _tmp2_; gint _tmp3_; self = (SkkProxyCandidateList*) base; _tmp0_ = skk_proxy_candidate_list_get_candidates (self); _tmp1_ = _tmp0_; _tmp2_ = skk_candidate_list_get_size (_tmp1_); _tmp3_ = _tmp2_; result = _tmp3_; return result; } static guint skk_proxy_candidate_list_real_get_page_start (SkkCandidateList* base) { guint result; SkkProxyCandidateList* self; SkkCandidateList* _tmp0_; SkkCandidateList* _tmp1_; guint _tmp2_; guint _tmp3_; self = (SkkProxyCandidateList*) base; _tmp0_ = skk_proxy_candidate_list_get_candidates (self); _tmp1_ = _tmp0_; _tmp2_ = skk_candidate_list_get_page_start (_tmp1_); _tmp3_ = _tmp2_; result = _tmp3_; return result; } static void skk_proxy_candidate_list_real_set_page_start (SkkCandidateList* base, guint value) { SkkProxyCandidateList* self; SkkCandidateList* _tmp0_; SkkCandidateList* _tmp1_; guint _tmp2_; self = (SkkProxyCandidateList*) base; _tmp0_ = skk_proxy_candidate_list_get_candidates (self); _tmp1_ = _tmp0_; _tmp2_ = value; skk_candidate_list_set_page_start (_tmp1_, _tmp2_); g_object_notify ((GObject *) self, "page-start"); } static guint skk_proxy_candidate_list_real_get_page_size (SkkCandidateList* base) { guint result; SkkProxyCandidateList* self; SkkCandidateList* _tmp0_; SkkCandidateList* _tmp1_; guint _tmp2_; guint _tmp3_; self = (SkkProxyCandidateList*) base; _tmp0_ = skk_proxy_candidate_list_get_candidates (self); _tmp1_ = _tmp0_; _tmp2_ = skk_candidate_list_get_page_size (_tmp1_); _tmp3_ = _tmp2_; result = _tmp3_; return result; } static void skk_proxy_candidate_list_real_set_page_size (SkkCandidateList* base, guint value) { SkkProxyCandidateList* self; SkkCandidateList* _tmp0_; SkkCandidateList* _tmp1_; guint _tmp2_; self = (SkkProxyCandidateList*) base; _tmp0_ = skk_proxy_candidate_list_get_candidates (self); _tmp1_ = _tmp0_; _tmp2_ = value; skk_candidate_list_set_page_size (_tmp1_, _tmp2_); g_object_notify ((GObject *) self, "page-size"); } static gboolean skk_proxy_candidate_list_real_get_page_visible (SkkCandidateList* base) { gboolean result; SkkProxyCandidateList* self; SkkCandidateList* _tmp0_; SkkCandidateList* _tmp1_; gboolean _tmp2_; gboolean _tmp3_; self = (SkkProxyCandidateList*) base; _tmp0_ = skk_proxy_candidate_list_get_candidates (self); _tmp1_ = _tmp0_; _tmp2_ = skk_candidate_list_get_page_visible (_tmp1_); _tmp3_ = _tmp2_; result = _tmp3_; return result; } static void skk_proxy_candidate_list_class_init (SkkProxyCandidateListClass * klass) { skk_proxy_candidate_list_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (SkkProxyCandidateListPrivate)); SKK_CANDIDATE_LIST_CLASS (klass)->get = skk_proxy_candidate_list_real_get; SKK_CANDIDATE_LIST_CLASS (klass)->clear = skk_proxy_candidate_list_real_clear; SKK_CANDIDATE_LIST_CLASS (klass)->add_candidates = skk_proxy_candidate_list_real_add_candidates; SKK_CANDIDATE_LIST_CLASS (klass)->add_candidates_end = skk_proxy_candidate_list_real_add_candidates_end; SKK_CANDIDATE_LIST_CLASS (klass)->select_at = skk_proxy_candidate_list_real_select_at; SKK_CANDIDATE_LIST_CLASS (klass)->select = skk_proxy_candidate_list_real_select; SKK_CANDIDATE_LIST_CLASS (klass)->cursor_up = skk_proxy_candidate_list_real_cursor_up; SKK_CANDIDATE_LIST_CLASS (klass)->cursor_down = skk_proxy_candidate_list_real_cursor_down; SKK_CANDIDATE_LIST_CLASS (klass)->page_up = skk_proxy_candidate_list_real_page_up; SKK_CANDIDATE_LIST_CLASS (klass)->page_down = skk_proxy_candidate_list_real_page_down; SKK_CANDIDATE_LIST_CLASS (klass)->get_cursor_pos = skk_proxy_candidate_list_real_get_cursor_pos; SKK_CANDIDATE_LIST_CLASS (klass)->get_size = skk_proxy_candidate_list_real_get_size; SKK_CANDIDATE_LIST_CLASS (klass)->get_page_start = skk_proxy_candidate_list_real_get_page_start; SKK_CANDIDATE_LIST_CLASS (klass)->set_page_start = skk_proxy_candidate_list_real_set_page_start; SKK_CANDIDATE_LIST_CLASS (klass)->get_page_size = skk_proxy_candidate_list_real_get_page_size; SKK_CANDIDATE_LIST_CLASS (klass)->set_page_size = skk_proxy_candidate_list_real_set_page_size; SKK_CANDIDATE_LIST_CLASS (klass)->get_page_visible = skk_proxy_candidate_list_real_get_page_visible; G_OBJECT_CLASS (klass)->get_property = _vala_skk_proxy_candidate_list_get_property; G_OBJECT_CLASS (klass)->set_property = _vala_skk_proxy_candidate_list_set_property; G_OBJECT_CLASS (klass)->finalize = skk_proxy_candidate_list_finalize; g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_PROXY_CANDIDATE_LIST_CANDIDATES, g_param_spec_object ("candidates", "candidates", "candidates", SKK_TYPE_CANDIDATE_LIST, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_PROXY_CANDIDATE_LIST_CURSOR_POS, g_param_spec_int ("cursor-pos", "cursor-pos", "cursor-pos", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE)); g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_PROXY_CANDIDATE_LIST_SIZE, g_param_spec_int ("size", "size", "size", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE)); g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_PROXY_CANDIDATE_LIST_PAGE_START, g_param_spec_uint ("page-start", "page-start", "page-start", 0, G_MAXUINT, 0U, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_PROXY_CANDIDATE_LIST_PAGE_SIZE, g_param_spec_uint ("page-size", "page-size", "page-size", 0, G_MAXUINT, 0U, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_PROXY_CANDIDATE_LIST_PAGE_VISIBLE, g_param_spec_boolean ("page-visible", "page-visible", "page-visible", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE)); } static void skk_proxy_candidate_list_instance_init (SkkProxyCandidateList * self) { self->priv = SKK_PROXY_CANDIDATE_LIST_GET_PRIVATE (self); } static void skk_proxy_candidate_list_finalize (GObject* obj) { SkkProxyCandidateList * self; self = SKK_PROXY_CANDIDATE_LIST (obj); _g_object_unref0 (self->priv->_candidates); G_OBJECT_CLASS (skk_proxy_candidate_list_parent_class)->finalize (obj); } GType skk_proxy_candidate_list_get_type (void) { static volatile gsize skk_proxy_candidate_list_type_id__volatile = 0; if (g_once_init_enter (&skk_proxy_candidate_list_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkProxyCandidateListClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_proxy_candidate_list_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkProxyCandidateList), 0, (GInstanceInitFunc) skk_proxy_candidate_list_instance_init, NULL }; GType skk_proxy_candidate_list_type_id; skk_proxy_candidate_list_type_id = g_type_register_static (SKK_TYPE_CANDIDATE_LIST, "SkkProxyCandidateList", &g_define_type_info, 0); g_once_init_leave (&skk_proxy_candidate_list_type_id__volatile, skk_proxy_candidate_list_type_id); } return skk_proxy_candidate_list_type_id__volatile; } static void _vala_skk_proxy_candidate_list_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { SkkProxyCandidateList * self; self = SKK_PROXY_CANDIDATE_LIST (object); switch (property_id) { case SKK_PROXY_CANDIDATE_LIST_CANDIDATES: g_value_set_object (value, skk_proxy_candidate_list_get_candidates (self)); break; case SKK_PROXY_CANDIDATE_LIST_CURSOR_POS: g_value_set_int (value, skk_candidate_list_get_cursor_pos ((SkkCandidateList*) self)); break; case SKK_PROXY_CANDIDATE_LIST_SIZE: g_value_set_int (value, skk_candidate_list_get_size ((SkkCandidateList*) self)); break; case SKK_PROXY_CANDIDATE_LIST_PAGE_START: g_value_set_uint (value, skk_candidate_list_get_page_start ((SkkCandidateList*) self)); break; case SKK_PROXY_CANDIDATE_LIST_PAGE_SIZE: g_value_set_uint (value, skk_candidate_list_get_page_size ((SkkCandidateList*) self)); break; case SKK_PROXY_CANDIDATE_LIST_PAGE_VISIBLE: g_value_set_boolean (value, skk_candidate_list_get_page_visible ((SkkCandidateList*) self)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } static void _vala_skk_proxy_candidate_list_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { SkkProxyCandidateList * self; self = SKK_PROXY_CANDIDATE_LIST (object); switch (property_id) { case SKK_PROXY_CANDIDATE_LIST_CANDIDATES: skk_proxy_candidate_list_set_candidates (self, g_value_get_object (value)); break; case SKK_PROXY_CANDIDATE_LIST_PAGE_START: skk_candidate_list_set_page_start ((SkkCandidateList*) self, g_value_get_uint (value)); break; case SKK_PROXY_CANDIDATE_LIST_PAGE_SIZE: skk_candidate_list_set_page_size ((SkkCandidateList*) self, g_value_get_uint (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } libskk-1.0.0/libskk/context.c0000664000076400007640000027532112016556644013054 00000000000000/* context.c generated by valac 0.16.0, the Vala compiler * generated from context.vala, do not modify */ /* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ #include #include #include #include #include #define SKK_TYPE_UTIL (skk_util_get_type ()) #define SKK_UTIL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_UTIL, SkkUtil)) #define SKK_UTIL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_UTIL, SkkUtilClass)) #define SKK_IS_UTIL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_UTIL)) #define SKK_IS_UTIL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_UTIL)) #define SKK_UTIL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_UTIL, SkkUtilClass)) typedef struct _SkkUtil SkkUtil; typedef struct _SkkUtilClass SkkUtilClass; #define _g_type_class_unref0(var) ((var == NULL) ? NULL : (var = (g_type_class_unref (var), NULL))) #define SKK_TYPE_RULE (skk_rule_get_type ()) #define SKK_RULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_RULE, SkkRule)) #define SKK_RULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_RULE, SkkRuleClass)) #define SKK_IS_RULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_RULE)) #define SKK_IS_RULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_RULE)) #define SKK_RULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_RULE, SkkRuleClass)) typedef struct _SkkRule SkkRule; typedef struct _SkkRuleClass SkkRuleClass; #define SKK_TYPE_ENCODING_CONVERTER (skk_encoding_converter_get_type ()) #define SKK_ENCODING_CONVERTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_ENCODING_CONVERTER, SkkEncodingConverter)) #define SKK_ENCODING_CONVERTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_ENCODING_CONVERTER, SkkEncodingConverterClass)) #define SKK_IS_ENCODING_CONVERTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_ENCODING_CONVERTER)) #define SKK_IS_ENCODING_CONVERTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_ENCODING_CONVERTER)) #define SKK_ENCODING_CONVERTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_ENCODING_CONVERTER, SkkEncodingConverterClass)) typedef struct _SkkEncodingConverter SkkEncodingConverter; typedef struct _SkkEncodingConverterClass SkkEncodingConverterClass; #define SKK_TYPE_KANA_MODE (skk_kana_mode_get_type ()) #define SKK_TYPE_INPUT_MODE (skk_input_mode_get_type ()) #define SKK_TYPE_CONTEXT (skk_context_get_type ()) #define SKK_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_CONTEXT, SkkContext)) #define SKK_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_CONTEXT, SkkContextClass)) #define SKK_IS_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_CONTEXT)) #define SKK_IS_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_CONTEXT)) #define SKK_CONTEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_CONTEXT, SkkContextClass)) typedef struct _SkkContext SkkContext; typedef struct _SkkContextClass SkkContextClass; typedef struct _SkkContextPrivate SkkContextPrivate; #define SKK_TYPE_DICT (skk_dict_get_type ()) #define SKK_DICT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_DICT, SkkDict)) #define SKK_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_DICT, SkkDictClass)) #define SKK_IS_DICT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_DICT)) #define SKK_IS_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_DICT)) #define SKK_DICT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_DICT, SkkDictClass)) typedef struct _SkkDict SkkDict; typedef struct _SkkDictClass SkkDictClass; #define SKK_TYPE_CANDIDATE_LIST (skk_candidate_list_get_type ()) #define SKK_CANDIDATE_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_CANDIDATE_LIST, SkkCandidateList)) #define SKK_CANDIDATE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_CANDIDATE_LIST, SkkCandidateListClass)) #define SKK_IS_CANDIDATE_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_CANDIDATE_LIST)) #define SKK_IS_CANDIDATE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_CANDIDATE_LIST)) #define SKK_CANDIDATE_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_CANDIDATE_LIST, SkkCandidateListClass)) typedef struct _SkkCandidateList SkkCandidateList; typedef struct _SkkCandidateListClass SkkCandidateListClass; #define SKK_TYPE_STATE (skk_state_get_type ()) #define SKK_STATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_STATE, SkkState)) #define SKK_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_STATE, SkkStateClass)) #define SKK_IS_STATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_STATE)) #define SKK_IS_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_STATE)) #define SKK_STATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_STATE, SkkStateClass)) typedef struct _SkkState SkkState; typedef struct _SkkStateClass SkkStateClass; #define SKK_TYPE_STATE_HANDLER (skk_state_handler_get_type ()) #define SKK_STATE_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_STATE_HANDLER, SkkStateHandler)) #define SKK_STATE_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_STATE_HANDLER, SkkStateHandlerClass)) #define SKK_IS_STATE_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_STATE_HANDLER)) #define SKK_IS_STATE_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_STATE_HANDLER)) #define SKK_STATE_HANDLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_STATE_HANDLER, SkkStateHandlerClass)) typedef struct _SkkStateHandler SkkStateHandler; typedef struct _SkkStateHandlerClass SkkStateHandlerClass; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) #define _g_free0(var) (var = (g_free (var), NULL)) #define SKK_TYPE_KEY_EVENT (skk_key_event_get_type ()) #define SKK_KEY_EVENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KEY_EVENT, SkkKeyEvent)) #define SKK_KEY_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KEY_EVENT, SkkKeyEventClass)) #define SKK_IS_KEY_EVENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KEY_EVENT)) #define SKK_IS_KEY_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KEY_EVENT)) #define SKK_KEY_EVENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KEY_EVENT, SkkKeyEventClass)) typedef struct _SkkKeyEvent SkkKeyEvent; typedef struct _SkkKeyEventClass SkkKeyEventClass; #define SKK_TYPE_NONE_STATE_HANDLER (skk_none_state_handler_get_type ()) #define SKK_NONE_STATE_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_NONE_STATE_HANDLER, SkkNoneStateHandler)) #define SKK_NONE_STATE_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_NONE_STATE_HANDLER, SkkNoneStateHandlerClass)) #define SKK_IS_NONE_STATE_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_NONE_STATE_HANDLER)) #define SKK_IS_NONE_STATE_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_NONE_STATE_HANDLER)) #define SKK_NONE_STATE_HANDLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_NONE_STATE_HANDLER, SkkNoneStateHandlerClass)) typedef struct _SkkNoneStateHandler SkkNoneStateHandler; typedef struct _SkkNoneStateHandlerClass SkkNoneStateHandlerClass; #define SKK_TYPE_START_STATE_HANDLER (skk_start_state_handler_get_type ()) #define SKK_START_STATE_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_START_STATE_HANDLER, SkkStartStateHandler)) #define SKK_START_STATE_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_START_STATE_HANDLER, SkkStartStateHandlerClass)) #define SKK_IS_START_STATE_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_START_STATE_HANDLER)) #define SKK_IS_START_STATE_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_START_STATE_HANDLER)) #define SKK_START_STATE_HANDLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_START_STATE_HANDLER, SkkStartStateHandlerClass)) typedef struct _SkkStartStateHandler SkkStartStateHandler; typedef struct _SkkStartStateHandlerClass SkkStartStateHandlerClass; #define SKK_TYPE_SELECT_STATE_HANDLER (skk_select_state_handler_get_type ()) #define SKK_SELECT_STATE_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_SELECT_STATE_HANDLER, SkkSelectStateHandler)) #define SKK_SELECT_STATE_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_SELECT_STATE_HANDLER, SkkSelectStateHandlerClass)) #define SKK_IS_SELECT_STATE_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_SELECT_STATE_HANDLER)) #define SKK_IS_SELECT_STATE_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_SELECT_STATE_HANDLER)) #define SKK_SELECT_STATE_HANDLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_SELECT_STATE_HANDLER, SkkSelectStateHandlerClass)) typedef struct _SkkSelectStateHandler SkkSelectStateHandler; typedef struct _SkkSelectStateHandlerClass SkkSelectStateHandlerClass; #define SKK_TYPE_ABBREV_STATE_HANDLER (skk_abbrev_state_handler_get_type ()) #define SKK_ABBREV_STATE_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_ABBREV_STATE_HANDLER, SkkAbbrevStateHandler)) #define SKK_ABBREV_STATE_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_ABBREV_STATE_HANDLER, SkkAbbrevStateHandlerClass)) #define SKK_IS_ABBREV_STATE_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_ABBREV_STATE_HANDLER)) #define SKK_IS_ABBREV_STATE_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_ABBREV_STATE_HANDLER)) #define SKK_ABBREV_STATE_HANDLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_ABBREV_STATE_HANDLER, SkkAbbrevStateHandlerClass)) typedef struct _SkkAbbrevStateHandler SkkAbbrevStateHandler; typedef struct _SkkAbbrevStateHandlerClass SkkAbbrevStateHandlerClass; #define SKK_TYPE_KUTEN_STATE_HANDLER (skk_kuten_state_handler_get_type ()) #define SKK_KUTEN_STATE_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KUTEN_STATE_HANDLER, SkkKutenStateHandler)) #define SKK_KUTEN_STATE_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KUTEN_STATE_HANDLER, SkkKutenStateHandlerClass)) #define SKK_IS_KUTEN_STATE_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KUTEN_STATE_HANDLER)) #define SKK_IS_KUTEN_STATE_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KUTEN_STATE_HANDLER)) #define SKK_KUTEN_STATE_HANDLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KUTEN_STATE_HANDLER, SkkKutenStateHandlerClass)) typedef struct _SkkKutenStateHandler SkkKutenStateHandler; typedef struct _SkkKutenStateHandlerClass SkkKutenStateHandlerClass; typedef struct _SkkStatePrivate SkkStatePrivate; #define SKK_TYPE_ROM_KANA_CONVERTER (skk_rom_kana_converter_get_type ()) #define SKK_ROM_KANA_CONVERTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_ROM_KANA_CONVERTER, SkkRomKanaConverter)) #define SKK_ROM_KANA_CONVERTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_ROM_KANA_CONVERTER, SkkRomKanaConverterClass)) #define SKK_IS_ROM_KANA_CONVERTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_ROM_KANA_CONVERTER)) #define SKK_IS_ROM_KANA_CONVERTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_ROM_KANA_CONVERTER)) #define SKK_ROM_KANA_CONVERTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_ROM_KANA_CONVERTER, SkkRomKanaConverterClass)) typedef struct _SkkRomKanaConverter SkkRomKanaConverter; typedef struct _SkkRomKanaConverterClass SkkRomKanaConverterClass; #define SKK_TYPE_UNICODE_STRING (skk_unicode_string_get_type ()) #define SKK_UNICODE_STRING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_UNICODE_STRING, SkkUnicodeString)) #define SKK_UNICODE_STRING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_UNICODE_STRING, SkkUnicodeStringClass)) #define SKK_IS_UNICODE_STRING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_UNICODE_STRING)) #define SKK_IS_UNICODE_STRING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_UNICODE_STRING)) #define SKK_UNICODE_STRING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_UNICODE_STRING, SkkUnicodeStringClass)) typedef struct _SkkUnicodeString SkkUnicodeString; typedef struct _SkkUnicodeStringClass SkkUnicodeStringClass; #define SKK_TYPE_PROXY_CANDIDATE_LIST (skk_proxy_candidate_list_get_type ()) #define SKK_PROXY_CANDIDATE_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_PROXY_CANDIDATE_LIST, SkkProxyCandidateList)) #define SKK_PROXY_CANDIDATE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_PROXY_CANDIDATE_LIST, SkkProxyCandidateListClass)) #define SKK_IS_PROXY_CANDIDATE_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_PROXY_CANDIDATE_LIST)) #define SKK_IS_PROXY_CANDIDATE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_PROXY_CANDIDATE_LIST)) #define SKK_PROXY_CANDIDATE_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_PROXY_CANDIDATE_LIST, SkkProxyCandidateListClass)) typedef struct _SkkProxyCandidateList SkkProxyCandidateList; typedef struct _SkkProxyCandidateListClass SkkProxyCandidateListClass; #define SKK_TYPE_CANDIDATE (skk_candidate_get_type ()) #define SKK_CANDIDATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_CANDIDATE, SkkCandidate)) #define SKK_CANDIDATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_CANDIDATE, SkkCandidateClass)) #define SKK_IS_CANDIDATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_CANDIDATE)) #define SKK_IS_CANDIDATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_CANDIDATE)) #define SKK_CANDIDATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_CANDIDATE, SkkCandidateClass)) typedef struct _SkkCandidate SkkCandidate; typedef struct _SkkCandidateClass SkkCandidateClass; #define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL))) #define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL))) #define SKK_TYPE_KEY_EVENT_FILTER (skk_key_event_filter_get_type ()) #define SKK_KEY_EVENT_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KEY_EVENT_FILTER, SkkKeyEventFilter)) #define SKK_KEY_EVENT_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KEY_EVENT_FILTER, SkkKeyEventFilterClass)) #define SKK_IS_KEY_EVENT_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KEY_EVENT_FILTER)) #define SKK_IS_KEY_EVENT_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KEY_EVENT_FILTER)) #define SKK_KEY_EVENT_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KEY_EVENT_FILTER, SkkKeyEventFilterClass)) typedef struct _SkkKeyEventFilter SkkKeyEventFilter; typedef struct _SkkKeyEventFilterClass SkkKeyEventFilterClass; #define SKK_TYPE_PERIOD_STYLE (skk_period_style_get_type ()) typedef enum { SKK_KANA_MODE_HIRAGANA, SKK_KANA_MODE_KATAKANA, SKK_KANA_MODE_HANKAKU_KATAKANA } SkkKanaMode; typedef enum { SKK_INPUT_MODE_HIRAGANA = SKK_KANA_MODE_HIRAGANA, SKK_INPUT_MODE_KATAKANA = SKK_KANA_MODE_KATAKANA, SKK_INPUT_MODE_HANKAKU_KATAKANA = SKK_KANA_MODE_HANKAKU_KATAKANA, SKK_INPUT_MODE_LATIN, SKK_INPUT_MODE_WIDE_LATIN, SKK_INPUT_MODE_LAST, SKK_INPUT_MODE_DEFAULT = SKK_INPUT_MODE_HIRAGANA } SkkInputMode; struct _SkkContext { GObject parent_instance; SkkContextPrivate * priv; }; struct _SkkContextClass { GObjectClass parent_class; }; struct _SkkContextPrivate { GeeList* _dictionaries; SkkCandidateList* _candidates; GeeLinkedList* state_stack; GeeMap* handlers; gchar* _preedit; guint preedit_underline_offset; guint preedit_underline_nchars; }; struct _SkkState { GObject parent_instance; SkkStatePrivate * priv; GType handler_type; GeeList* dictionaries; SkkCandidateList* candidates; SkkRomKanaConverter* rom_kana_converter; SkkRomKanaConverter* okuri_rom_kana_converter; gboolean okuri; gchar* midasi; GString* output; GString* abbrev; GString* kuten; GeeIterator* completion_iterator; gchar** auto_start_henkan_keywords; gint auto_start_henkan_keywords_length1; gint _auto_start_henkan_keywords_size_; gchar* auto_start_henkan_keyword; gboolean egg_like_newline; SkkUnicodeString* surrounding_text; guint surrounding_end; }; struct _SkkStateClass { GObjectClass parent_class; }; typedef enum { SKK_KEY_EVENT_FORMAT_ERROR_PARSE_FAILED, SKK_KEY_EVENT_FORMAT_ERROR_KEYSYM_NOT_FOUND } SkkKeyEventFormatError; #define SKK_KEY_EVENT_FORMAT_ERROR skk_key_event_format_error_quark () typedef enum { SKK_PERIOD_STYLE_JA_JA, SKK_PERIOD_STYLE_EN_EN, SKK_PERIOD_STYLE_JA_EN, SKK_PERIOD_STYLE_EN_JA } SkkPeriodStyle; static gpointer skk_context_parent_class = NULL; void skk_init (void); GType skk_util_get_type (void) G_GNUC_CONST; GType skk_rule_get_type (void) G_GNUC_CONST; GType skk_encoding_converter_get_type (void) G_GNUC_CONST; GType skk_kana_mode_get_type (void) G_GNUC_CONST; GType skk_input_mode_get_type (void) G_GNUC_CONST; GType skk_context_get_type (void) G_GNUC_CONST; GType skk_dict_get_type (void) G_GNUC_CONST; GType skk_candidate_list_get_type (void) G_GNUC_CONST; GType skk_state_get_type (void) G_GNUC_CONST; GType skk_state_handler_get_type (void) G_GNUC_CONST; #define SKK_CONTEXT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SKK_TYPE_CONTEXT, SkkContextPrivate)) enum { SKK_CONTEXT_DUMMY_PROPERTY, SKK_CONTEXT_CANDIDATES, SKK_CONTEXT_INPUT_MODE, SKK_CONTEXT_AUTO_START_HENKAN_KEYWORDS, SKK_CONTEXT_EGG_LIKE_NEWLINE, SKK_CONTEXT_PERIOD_STYLE, SKK_CONTEXT_TYPING_RULE, SKK_CONTEXT_KEY_EVENT_FILTER, SKK_CONTEXT_PREEDIT }; void skk_context_add_dictionary (SkkContext* self, SkkDict* dict); void skk_context_remove_dictionary (SkkContext* self, SkkDict* dict); GType skk_key_event_get_type (void) G_GNUC_CONST; static void skk_context_filter_forwarded_cb (SkkContext* self, SkkKeyEvent* key); static gboolean skk_context_process_key_event_internal (SkkContext* self, SkkKeyEvent* key); SkkContext* skk_context_new (SkkDict** dictionaries, int dictionaries_length1); SkkContext* skk_context_construct (GType object_type, SkkDict** dictionaries, int dictionaries_length1); GType skk_none_state_handler_get_type (void) G_GNUC_CONST; SkkNoneStateHandler* skk_none_state_handler_new (void); SkkNoneStateHandler* skk_none_state_handler_construct (GType object_type); GType skk_start_state_handler_get_type (void) G_GNUC_CONST; SkkStartStateHandler* skk_start_state_handler_new (void); SkkStartStateHandler* skk_start_state_handler_construct (GType object_type); GType skk_select_state_handler_get_type (void) G_GNUC_CONST; SkkSelectStateHandler* skk_select_state_handler_new (void); SkkSelectStateHandler* skk_select_state_handler_construct (GType object_type); GType skk_abbrev_state_handler_get_type (void) G_GNUC_CONST; SkkAbbrevStateHandler* skk_abbrev_state_handler_new (void); SkkAbbrevStateHandler* skk_abbrev_state_handler_construct (GType object_type); GType skk_kuten_state_handler_get_type (void) G_GNUC_CONST; SkkKutenStateHandler* skk_kuten_state_handler_new (void); SkkKutenStateHandler* skk_kuten_state_handler_construct (GType object_type); SkkState* skk_state_new (GeeList* dictionaries); SkkState* skk_state_construct (GType object_type, GeeList* dictionaries); GType skk_rom_kana_converter_get_type (void) G_GNUC_CONST; GType skk_unicode_string_get_type (void) G_GNUC_CONST; SkkProxyCandidateList* skk_proxy_candidate_list_new (SkkCandidateList* candidates); SkkProxyCandidateList* skk_proxy_candidate_list_construct (GType object_type, SkkCandidateList* candidates); GType skk_proxy_candidate_list_get_type (void) G_GNUC_CONST; static void skk_context_push_state (SkkContext* self, SkkState* state); static void __lambda5_ (SkkContext* self); gint skk_candidate_list_get_cursor_pos (SkkCandidateList* self); static void skk_context_update_preedit (SkkContext* self); static void ___lambda5__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self); GType skk_candidate_get_type (void) G_GNUC_CONST; static void __lambda6_ (SkkContext* self, SkkCandidate* candidate); static gboolean skk_context_select_candidate_in_dictionaries (SkkContext* self, SkkCandidate* candidate); void skk_context_save_dictionaries (SkkContext* self, GError** error); static void ___lambda6__skk_candidate_list_selected (SkkCandidateList* _sender, SkkCandidate* candidate, gpointer self); static void skk_context_notify_input_mode_cb (SkkContext* self, GObject* s, GParamSpec* p); static gboolean skk_context_retrieve_surrounding_text_cb (SkkContext* self, gchar** text, guint* cursor_pos); static gboolean skk_context_delete_surrounding_text_cb (SkkContext* self, gint offset, guint nchars); static void skk_context_connect_state_signals (SkkContext* self, SkkState* state); static void skk_context_start_dict_edit (SkkContext* self, const gchar* midasi, gboolean okuri); static void _skk_context_start_dict_edit_skk_state_recursive_edit_start (SkkState* _sender, const gchar* midasi, gboolean okuri, gpointer self); static gboolean skk_context_end_dict_edit (SkkContext* self, const gchar* text); static gboolean _skk_context_end_dict_edit_skk_state_recursive_edit_end (SkkState* _sender, const gchar* text, gpointer self); static gboolean skk_context_abort_dict_edit (SkkContext* self); static gboolean _skk_context_abort_dict_edit_skk_state_recursive_edit_abort (SkkState* _sender, gpointer self); static void _skk_context_notify_input_mode_cb_g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self); static gboolean _skk_context_retrieve_surrounding_text_cb_skk_state_retrieve_surrounding_text (SkkState* _sender, gchar** text, guint* cursor_pos, gpointer self); static gboolean _skk_context_delete_surrounding_text_cb_skk_state_delete_surrounding_text (SkkState* _sender, gint offset, guint nchars, gpointer self); static void skk_context_disconnect_state_signals (SkkContext* self, SkkState* state); SkkDict** skk_context_get_dictionaries (SkkContext* self, int* result_length1); gboolean skk_dict_get_read_only (SkkDict* self); gboolean skk_dict_select_candidate (SkkDict* self, SkkCandidate* candidate); static guint skk_context_dict_edit_level (SkkContext* self); SkkCandidateList* skk_proxy_candidate_list_get_candidates (SkkProxyCandidateList* self); void skk_proxy_candidate_list_set_candidates (SkkProxyCandidateList* self, SkkCandidateList* value); static void skk_context_pop_state (SkkContext* self); static gboolean skk_context_leave_dict_edit (SkkContext* self, gchar** midasi, gboolean** okuri); SkkCandidate* skk_candidate_new (const gchar* midasi, gboolean okuri, const gchar* text, const gchar* annotation, const gchar* output); SkkCandidate* skk_candidate_construct (GType object_type, const gchar* midasi, gboolean okuri, const gchar* text, const gchar* annotation, const gchar* output); void skk_state_reset (SkkState* self); static gboolean* _bool_dup (gboolean* self); void skk_state_cancel_okuri (SkkState* self); gboolean skk_context_process_key_events (SkkContext* self, const gchar* keyseq); GQuark skk_key_event_format_error_quark (void); SkkKeyEvent* skk_key_event_new_from_string (const gchar* key, GError** error); SkkKeyEvent* skk_key_event_construct_from_string (GType object_type, const gchar* key, GError** error); gboolean skk_context_process_key_event (SkkContext* self, SkkKeyEvent* key); GType skk_key_event_filter_get_type (void) G_GNUC_CONST; SkkKeyEventFilter* skk_context_get_key_event_filter (SkkContext* self); SkkKeyEvent* skk_key_event_filter_filter_key_event (SkkKeyEventFilter* self, SkkKeyEvent* key); SkkKeyEvent* skk_key_event_copy (SkkKeyEvent* self); gboolean skk_state_handler_process_key_event (SkkStateHandler* self, SkkState* state, SkkKeyEvent** key); void skk_context_reset (SkkContext* self); void skk_context_clear_output (SkkContext* self); static void skk_context_set_preedit (SkkContext* self, const gchar* value); gchar* skk_context_get_output (SkkContext* self); gchar* skk_context_poll_output (SkkContext* self); static gchar* skk_context_retrieve_output (SkkContext* self, gboolean clear); gchar* skk_state_handler_get_output (SkkStateHandler* self, SkkState* state); gchar* skk_context_peek_output (SkkContext* self); gchar* skk_state_handler_get_preedit (SkkStateHandler* self, SkkState* state, guint* underline_offset, guint* underline_nchars); const gchar* skk_context_get_preedit (SkkContext* self); void skk_context_get_preedit_underline (SkkContext* self, guint* offset, guint* nchars); void skk_dict_save (SkkDict* self, GError** error); void skk_context_set_dictionaries (SkkContext* self, SkkDict** value, int value_length1); SkkCandidateList* skk_context_get_candidates (SkkContext* self); SkkInputMode skk_context_get_input_mode (SkkContext* self); SkkInputMode skk_state_get_input_mode (SkkState* self); void skk_context_set_input_mode (SkkContext* self, SkkInputMode value); void skk_state_set_input_mode (SkkState* self, SkkInputMode value); gchar** skk_context_get_auto_start_henkan_keywords (SkkContext* self, int* result_length1); void skk_context_set_auto_start_henkan_keywords (SkkContext* self, gchar** value, int value_length1); static gchar** _vala_array_dup4 (gchar** self, int length); gboolean skk_context_get_egg_like_newline (SkkContext* self); void skk_context_set_egg_like_newline (SkkContext* self, gboolean value); GType skk_period_style_get_type (void) G_GNUC_CONST; SkkPeriodStyle skk_context_get_period_style (SkkContext* self); SkkPeriodStyle skk_state_get_period_style (SkkState* self); void skk_context_set_period_style (SkkContext* self, SkkPeriodStyle value); void skk_state_set_period_style (SkkState* self, SkkPeriodStyle value); SkkRule* skk_context_get_typing_rule (SkkContext* self); SkkRule* skk_state_get_typing_rule (SkkState* self); void skk_context_set_typing_rule (SkkContext* self, SkkRule* value); SkkKeyEventFilter* skk_rule_get_filter (SkkRule* self); static void _skk_context_filter_forwarded_cb_skk_key_event_filter_forwarded (SkkKeyEventFilter* _sender, SkkKeyEvent* key, gpointer self); void skk_state_set_typing_rule (SkkState* self, SkkRule* value); static void g_cclosure_user_marshal_BOOLEAN__POINTER_POINTER (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data); static void g_cclosure_user_marshal_BOOLEAN__INT_UINT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data); static void skk_context_finalize (GObject* obj); static void _vala_skk_context_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); static void _vala_skk_context_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec); static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func); /** * Initialize libskk. * * Must be called before using any functions in libskk. */ void skk_init (void) { GTypeClass* _tmp0_ = NULL; GTypeClass* _tmp1_; GTypeClass* _tmp2_ = NULL; GTypeClass* _tmp3_; GTypeClass* _tmp4_ = NULL; GTypeClass* _tmp5_; _tmp0_ = g_type_class_ref (SKK_TYPE_UTIL); _tmp1_ = _tmp0_; _g_type_class_unref0 (_tmp1_); _tmp2_ = g_type_class_ref (SKK_TYPE_RULE); _tmp3_ = _tmp2_; _g_type_class_unref0 (_tmp3_); _tmp4_ = g_type_class_ref (SKK_TYPE_ENCODING_CONVERTER); _tmp5_ = _tmp4_; _g_type_class_unref0 (_tmp5_); } /** * Type to specify input modes. */ GType skk_input_mode_get_type (void) { static volatile gsize skk_input_mode_type_id__volatile = 0; if (g_once_init_enter (&skk_input_mode_type_id__volatile)) { static const GEnumValue values[] = {{SKK_INPUT_MODE_HIRAGANA, "SKK_INPUT_MODE_HIRAGANA", "hiragana"}, {SKK_INPUT_MODE_KATAKANA, "SKK_INPUT_MODE_KATAKANA", "katakana"}, {SKK_INPUT_MODE_HANKAKU_KATAKANA, "SKK_INPUT_MODE_HANKAKU_KATAKANA", "hankaku-katakana"}, {SKK_INPUT_MODE_LATIN, "SKK_INPUT_MODE_LATIN", "latin"}, {SKK_INPUT_MODE_WIDE_LATIN, "SKK_INPUT_MODE_WIDE_LATIN", "wide-latin"}, {SKK_INPUT_MODE_LAST, "SKK_INPUT_MODE_LAST", "last"}, {SKK_INPUT_MODE_DEFAULT, "SKK_INPUT_MODE_DEFAULT", "default"}, {0, NULL, NULL}}; GType skk_input_mode_type_id; skk_input_mode_type_id = g_enum_register_static ("SkkInputMode", values); g_once_init_leave (&skk_input_mode_type_id__volatile, skk_input_mode_type_id); } return skk_input_mode_type_id__volatile; } /** * Register dictionary. * * @param dict a dictionary * @since 0.0.8 */ void skk_context_add_dictionary (SkkContext* self, SkkDict* dict) { GeeList* _tmp0_; SkkDict* _tmp1_; g_return_if_fail (self != NULL); g_return_if_fail (dict != NULL); _tmp0_ = self->priv->_dictionaries; _tmp1_ = dict; gee_collection_add ((GeeCollection*) _tmp0_, _tmp1_); } /** * Unregister dictionary. * * @param dict a dictionary * @since 0.0.8 */ void skk_context_remove_dictionary (SkkContext* self, SkkDict* dict) { GeeList* _tmp0_; SkkDict* _tmp1_; g_return_if_fail (self != NULL); g_return_if_fail (dict != NULL); _tmp0_ = self->priv->_dictionaries; _tmp1_ = dict; gee_collection_remove ((GeeCollection*) _tmp0_, _tmp1_); } static void skk_context_filter_forwarded_cb (SkkContext* self, SkkKeyEvent* key) { SkkKeyEvent* _tmp0_; g_return_if_fail (self != NULL); g_return_if_fail (key != NULL); _tmp0_ = key; skk_context_process_key_event_internal (self, _tmp0_); } /** * Create a new Context. * * @param dictionaries an array of Dict * * @return a new Context */ static gpointer _g_object_ref0 (gpointer self) { return self ? g_object_ref (self) : NULL; } static void __lambda5_ (SkkContext* self) { SkkCandidateList* _tmp0_; gint _tmp1_; gint _tmp2_; _tmp0_ = self->priv->_candidates; _tmp1_ = skk_candidate_list_get_cursor_pos (_tmp0_); _tmp2_ = _tmp1_; if (_tmp2_ >= 0) { skk_context_update_preedit (self); } } static void ___lambda5__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) { __lambda5_ (self); } static void __lambda6_ (SkkContext* self, SkkCandidate* candidate) { SkkCandidate* _tmp0_; gboolean _tmp1_ = FALSE; GError * _inner_error_ = NULL; g_return_if_fail (candidate != NULL); _tmp0_ = candidate; _tmp1_ = skk_context_select_candidate_in_dictionaries (self, _tmp0_); if (_tmp1_) { { skk_context_save_dictionaries (self, &_inner_error_); if (_inner_error_ != NULL) { goto __catch36_g_error; } } goto __finally36; __catch36_g_error: { GError* e = NULL; GError* _tmp2_; const gchar* _tmp3_; e = _inner_error_; _inner_error_ = NULL; _tmp2_ = e; _tmp3_ = _tmp2_->message; g_warning ("context.vala:243: error saving dictionaries %s", _tmp3_); _g_error_free0 (e); } __finally36: if (_inner_error_ != NULL) { g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } } skk_context_update_preedit (self); } static void ___lambda6__skk_candidate_list_selected (SkkCandidateList* _sender, SkkCandidate* candidate, gpointer self) { __lambda6_ (self, candidate); } SkkContext* skk_context_construct (GType object_type, SkkDict** dictionaries, int dictionaries_length1) { SkkContext * self = NULL; SkkDict** _tmp0_; gint _tmp0__length1; GeeMap* _tmp3_; SkkNoneStateHandler* _tmp4_; SkkNoneStateHandler* _tmp5_; GeeMap* _tmp6_; SkkStartStateHandler* _tmp7_; SkkStartStateHandler* _tmp8_; GeeMap* _tmp9_; SkkSelectStateHandler* _tmp10_; SkkSelectStateHandler* _tmp11_; GeeMap* _tmp12_; SkkAbbrevStateHandler* _tmp13_; SkkAbbrevStateHandler* _tmp14_; GeeMap* _tmp15_; SkkKutenStateHandler* _tmp16_; SkkKutenStateHandler* _tmp17_; GeeList* _tmp18_; SkkState* _tmp19_; SkkState* state; SkkCandidateList* _tmp20_; SkkProxyCandidateList* _tmp21_; SkkCandidateList* _tmp22_; SkkCandidateList* _tmp23_; self = (SkkContext*) g_object_new (object_type, NULL); _tmp0_ = dictionaries; _tmp0__length1 = dictionaries_length1; { SkkDict** dict_collection = NULL; gint dict_collection_length1 = 0; gint _dict_collection_size_ = 0; gint dict_it = 0; dict_collection = _tmp0_; dict_collection_length1 = _tmp0__length1; for (dict_it = 0; dict_it < _tmp0__length1; dict_it = dict_it + 1) { SkkDict* _tmp1_; SkkDict* dict = NULL; _tmp1_ = _g_object_ref0 (dict_collection[dict_it]); dict = _tmp1_; { SkkDict* _tmp2_; _tmp2_ = dict; skk_context_add_dictionary (self, _tmp2_); _g_object_unref0 (dict); } } } _tmp3_ = self->priv->handlers; _tmp4_ = skk_none_state_handler_new (); _tmp5_ = _tmp4_; gee_map_set (_tmp3_, GINT_TO_POINTER (SKK_TYPE_NONE_STATE_HANDLER), (SkkStateHandler*) _tmp5_); _g_object_unref0 (_tmp5_); _tmp6_ = self->priv->handlers; _tmp7_ = skk_start_state_handler_new (); _tmp8_ = _tmp7_; gee_map_set (_tmp6_, GINT_TO_POINTER (SKK_TYPE_START_STATE_HANDLER), (SkkStateHandler*) _tmp8_); _g_object_unref0 (_tmp8_); _tmp9_ = self->priv->handlers; _tmp10_ = skk_select_state_handler_new (); _tmp11_ = _tmp10_; gee_map_set (_tmp9_, GINT_TO_POINTER (SKK_TYPE_SELECT_STATE_HANDLER), (SkkStateHandler*) _tmp11_); _g_object_unref0 (_tmp11_); _tmp12_ = self->priv->handlers; _tmp13_ = skk_abbrev_state_handler_new (); _tmp14_ = _tmp13_; gee_map_set (_tmp12_, GINT_TO_POINTER (SKK_TYPE_ABBREV_STATE_HANDLER), (SkkStateHandler*) _tmp14_); _g_object_unref0 (_tmp14_); _tmp15_ = self->priv->handlers; _tmp16_ = skk_kuten_state_handler_new (); _tmp17_ = _tmp16_; gee_map_set (_tmp15_, GINT_TO_POINTER (SKK_TYPE_KUTEN_STATE_HANDLER), (SkkStateHandler*) _tmp17_); _g_object_unref0 (_tmp17_); _tmp18_ = self->priv->_dictionaries; _tmp19_ = skk_state_new (_tmp18_); state = _tmp19_; _tmp20_ = state->candidates; _tmp21_ = skk_proxy_candidate_list_new (_tmp20_); _g_object_unref0 (self->priv->_candidates); self->priv->_candidates = (SkkCandidateList*) _tmp21_; skk_context_push_state (self, state); _tmp22_ = self->priv->_candidates; g_signal_connect_object ((GObject*) _tmp22_, "notify::cursor-pos", (GCallback) ___lambda5__g_object_notify, self, 0); _tmp23_ = self->priv->_candidates; g_signal_connect_object (_tmp23_, "selected", (GCallback) ___lambda6__skk_candidate_list_selected, self, 0); _g_object_unref0 (state); return self; } SkkContext* skk_context_new (SkkDict** dictionaries, int dictionaries_length1) { return skk_context_construct (SKK_TYPE_CONTEXT, dictionaries, dictionaries_length1); } static void skk_context_notify_input_mode_cb (SkkContext* self, GObject* s, GParamSpec* p) { g_return_if_fail (self != NULL); g_return_if_fail (s != NULL); g_object_notify ((GObject*) self, "input-mode"); } static gboolean skk_context_retrieve_surrounding_text_cb (SkkContext* self, gchar** text, guint* cursor_pos) { gchar* _vala_text = NULL; guint _vala_cursor_pos = 0U; gboolean result = FALSE; gchar* _tmp0_ = NULL; guint _tmp1_ = 0U; gboolean _tmp2_ = FALSE; g_return_val_if_fail (self != NULL, FALSE); g_signal_emit_by_name (self, "retrieve-surrounding-text", &_tmp0_, &_tmp1_, &_tmp2_); _g_free0 (_vala_text); _vala_text = _tmp0_; _vala_cursor_pos = _tmp1_; result = _tmp2_; if (text) { *text = _vala_text; } else { _g_free0 (_vala_text); } if (cursor_pos) { *cursor_pos = _vala_cursor_pos; } return result; } static gboolean skk_context_delete_surrounding_text_cb (SkkContext* self, gint offset, guint nchars) { gboolean result = FALSE; gint _tmp0_; guint _tmp1_; gboolean _tmp2_ = FALSE; g_return_val_if_fail (self != NULL, FALSE); _tmp0_ = offset; _tmp1_ = nchars; g_signal_emit_by_name (self, "delete-surrounding-text", _tmp0_, _tmp1_, &_tmp2_); result = _tmp2_; return result; } static void _skk_context_start_dict_edit_skk_state_recursive_edit_start (SkkState* _sender, const gchar* midasi, gboolean okuri, gpointer self) { skk_context_start_dict_edit (self, midasi, okuri); } static gboolean _skk_context_end_dict_edit_skk_state_recursive_edit_end (SkkState* _sender, const gchar* text, gpointer self) { gboolean result; result = skk_context_end_dict_edit (self, text); return result; } static gboolean _skk_context_abort_dict_edit_skk_state_recursive_edit_abort (SkkState* _sender, gpointer self) { gboolean result; result = skk_context_abort_dict_edit (self); return result; } static void _skk_context_notify_input_mode_cb_g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) { skk_context_notify_input_mode_cb (self, _sender, pspec); } static gboolean _skk_context_retrieve_surrounding_text_cb_skk_state_retrieve_surrounding_text (SkkState* _sender, gchar** text, guint* cursor_pos, gpointer self) { gboolean result; result = skk_context_retrieve_surrounding_text_cb (self, text, cursor_pos); return result; } static gboolean _skk_context_delete_surrounding_text_cb_skk_state_delete_surrounding_text (SkkState* _sender, gint offset, guint nchars, gpointer self) { gboolean result; result = skk_context_delete_surrounding_text_cb (self, offset, nchars); return result; } static void skk_context_connect_state_signals (SkkContext* self, SkkState* state) { SkkState* _tmp0_; SkkState* _tmp1_; SkkState* _tmp2_; SkkState* _tmp3_; SkkState* _tmp4_; SkkState* _tmp5_; g_return_if_fail (self != NULL); g_return_if_fail (state != NULL); _tmp0_ = state; g_signal_connect_object (_tmp0_, "recursive-edit-start", (GCallback) _skk_context_start_dict_edit_skk_state_recursive_edit_start, self, 0); _tmp1_ = state; g_signal_connect_object (_tmp1_, "recursive-edit-end", (GCallback) _skk_context_end_dict_edit_skk_state_recursive_edit_end, self, 0); _tmp2_ = state; g_signal_connect_object (_tmp2_, "recursive-edit-abort", (GCallback) _skk_context_abort_dict_edit_skk_state_recursive_edit_abort, self, 0); _tmp3_ = state; g_signal_connect_object ((GObject*) _tmp3_, "notify::input-mode", (GCallback) _skk_context_notify_input_mode_cb_g_object_notify, self, 0); _tmp4_ = state; g_signal_connect_object (_tmp4_, "retrieve-surrounding-text", (GCallback) _skk_context_retrieve_surrounding_text_cb_skk_state_retrieve_surrounding_text, self, 0); _tmp5_ = state; g_signal_connect_object (_tmp5_, "delete-surrounding-text", (GCallback) _skk_context_delete_surrounding_text_cb_skk_state_delete_surrounding_text, self, 0); } static void skk_context_disconnect_state_signals (SkkContext* self, SkkState* state) { SkkState* _tmp0_; guint _tmp1_ = 0U; SkkState* _tmp2_; guint _tmp3_ = 0U; SkkState* _tmp4_; guint _tmp5_ = 0U; SkkState* _tmp6_; guint _tmp7_ = 0U; GQuark _tmp8_ = 0U; SkkState* _tmp9_; guint _tmp10_ = 0U; SkkState* _tmp11_; guint _tmp12_ = 0U; g_return_if_fail (self != NULL); g_return_if_fail (state != NULL); _tmp0_ = state; g_signal_parse_name ("recursive-edit-start", SKK_TYPE_STATE, &_tmp1_, NULL, FALSE); g_signal_handlers_disconnect_matched (_tmp0_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _skk_context_start_dict_edit_skk_state_recursive_edit_start, self); _tmp2_ = state; g_signal_parse_name ("recursive-edit-end", SKK_TYPE_STATE, &_tmp3_, NULL, FALSE); g_signal_handlers_disconnect_matched (_tmp2_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _skk_context_end_dict_edit_skk_state_recursive_edit_end, self); _tmp4_ = state; g_signal_parse_name ("recursive-edit-abort", SKK_TYPE_STATE, &_tmp5_, NULL, FALSE); g_signal_handlers_disconnect_matched (_tmp4_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp5_, 0, NULL, (GCallback) _skk_context_abort_dict_edit_skk_state_recursive_edit_abort, self); _tmp6_ = state; g_signal_parse_name ("notify::input-mode", G_TYPE_OBJECT, &_tmp7_, &_tmp8_, TRUE); g_signal_handlers_disconnect_matched ((GObject*) _tmp6_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_DETAIL | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp7_, _tmp8_, NULL, (GCallback) _skk_context_notify_input_mode_cb_g_object_notify, self); _tmp9_ = state; g_signal_parse_name ("retrieve-surrounding-text", SKK_TYPE_STATE, &_tmp10_, NULL, FALSE); g_signal_handlers_disconnect_matched (_tmp9_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp10_, 0, NULL, (GCallback) _skk_context_retrieve_surrounding_text_cb_skk_state_retrieve_surrounding_text, self); _tmp11_ = state; g_signal_parse_name ("delete-surrounding-text", SKK_TYPE_STATE, &_tmp12_, NULL, FALSE); g_signal_handlers_disconnect_matched (_tmp11_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp12_, 0, NULL, (GCallback) _skk_context_delete_surrounding_text_cb_skk_state_delete_surrounding_text, self); } static gboolean skk_context_select_candidate_in_dictionaries (SkkContext* self, SkkCandidate* candidate) { gboolean result = FALSE; gboolean changed; SkkDict** _tmp0_; gint _tmp0__length1; SkkDict** _tmp1_; gint _tmp1__length1; g_return_val_if_fail (self != NULL, FALSE); g_return_val_if_fail (candidate != NULL, FALSE); changed = FALSE; _tmp0_ = skk_context_get_dictionaries (self, &_tmp0__length1); _tmp1_ = _tmp0_; _tmp1__length1 = _tmp0__length1; { SkkDict** dict_collection = NULL; gint dict_collection_length1 = 0; gint _dict_collection_size_ = 0; gint dict_it = 0; dict_collection = _tmp1_; dict_collection_length1 = _tmp1__length1; for (dict_it = 0; dict_it < _tmp1__length1; dict_it = dict_it + 1) { SkkDict* _tmp2_; SkkDict* dict = NULL; _tmp2_ = _g_object_ref0 (dict_collection[dict_it]); dict = _tmp2_; { gboolean _tmp3_ = FALSE; SkkDict* _tmp4_; gboolean _tmp5_; gboolean _tmp6_; gboolean _tmp10_; _tmp4_ = dict; _tmp5_ = skk_dict_get_read_only (_tmp4_); _tmp6_ = _tmp5_; if (!_tmp6_) { SkkDict* _tmp7_; SkkCandidate* _tmp8_; gboolean _tmp9_ = FALSE; _tmp7_ = dict; _tmp8_ = candidate; _tmp9_ = skk_dict_select_candidate (_tmp7_, _tmp8_); _tmp3_ = _tmp9_; } else { _tmp3_ = FALSE; } _tmp10_ = _tmp3_; if (_tmp10_) { changed = TRUE; } _g_object_unref0 (dict); } } dict_collection = (_vala_array_free (dict_collection, dict_collection_length1, (GDestroyNotify) g_object_unref), NULL); } result = changed; return result; } static guint skk_context_dict_edit_level (SkkContext* self) { guint result = 0U; GeeLinkedList* _tmp0_; gint _tmp1_; gint _tmp2_; g_return_val_if_fail (self != NULL, 0U); _tmp0_ = self->priv->state_stack; _tmp1_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp0_); _tmp2_ = _tmp1_; result = (guint) (_tmp2_ - 1); return result; } static void skk_context_push_state (SkkContext* self, SkkState* state) { GeeLinkedList* _tmp0_; gboolean _tmp1_; gboolean _tmp2_; GeeLinkedList* _tmp6_; SkkState* _tmp7_; SkkState* _tmp8_; SkkCandidateList* _tmp9_; SkkProxyCandidateList* _tmp10_; SkkProxyCandidateList* pcandidates; SkkProxyCandidateList* _tmp11_; SkkCandidateList* _tmp12_; SkkCandidateList* _tmp13_; SkkState* _tmp14_; SkkCandidateList* _tmp15_; g_return_if_fail (self != NULL); g_return_if_fail (state != NULL); _tmp0_ = self->priv->state_stack; _tmp1_ = gee_abstract_collection_get_is_empty ((GeeAbstractCollection*) _tmp0_); _tmp2_ = _tmp1_; if (!_tmp2_) { GeeLinkedList* _tmp3_; gpointer _tmp4_ = NULL; SkkState* _tmp5_; _tmp3_ = self->priv->state_stack; _tmp4_ = gee_deque_peek_head ((GeeDeque*) _tmp3_); _tmp5_ = (SkkState*) _tmp4_; skk_context_disconnect_state_signals (self, _tmp5_); _g_object_unref0 (_tmp5_); } _tmp6_ = self->priv->state_stack; _tmp7_ = state; gee_deque_offer_head ((GeeDeque*) _tmp6_, _tmp7_); _tmp8_ = state; skk_context_connect_state_signals (self, _tmp8_); _tmp9_ = self->priv->_candidates; _tmp10_ = _g_object_ref0 (SKK_PROXY_CANDIDATE_LIST (_tmp9_)); pcandidates = _tmp10_; _tmp11_ = pcandidates; _tmp12_ = skk_proxy_candidate_list_get_candidates (_tmp11_); _tmp13_ = _tmp12_; _tmp14_ = state; _tmp15_ = _tmp14_->candidates; if (_tmp13_ != _tmp15_) { SkkProxyCandidateList* _tmp16_; SkkState* _tmp17_; SkkCandidateList* _tmp18_; _tmp16_ = pcandidates; _tmp17_ = state; _tmp18_ = _tmp17_->candidates; skk_proxy_candidate_list_set_candidates (_tmp16_, _tmp18_); } _g_object_unref0 (pcandidates); } static void skk_context_pop_state (SkkContext* self) { GeeLinkedList* _tmp0_; gboolean _tmp1_; gboolean _tmp2_; GeeLinkedList* _tmp3_; gpointer _tmp4_ = NULL; SkkState* _tmp5_; GeeLinkedList* _tmp6_; gboolean _tmp7_; gboolean _tmp8_; g_return_if_fail (self != NULL); _tmp0_ = self->priv->state_stack; _tmp1_ = gee_abstract_collection_get_is_empty ((GeeAbstractCollection*) _tmp0_); _tmp2_ = _tmp1_; g_assert (!_tmp2_); _tmp3_ = self->priv->state_stack; _tmp4_ = gee_deque_poll_head ((GeeDeque*) _tmp3_); _tmp5_ = (SkkState*) _tmp4_; skk_context_disconnect_state_signals (self, _tmp5_); _g_object_unref0 (_tmp5_); _tmp6_ = self->priv->state_stack; _tmp7_ = gee_abstract_collection_get_is_empty ((GeeAbstractCollection*) _tmp6_); _tmp8_ = _tmp7_; if (!_tmp8_) { GeeLinkedList* _tmp9_; gpointer _tmp10_ = NULL; SkkState* state; SkkState* _tmp11_; SkkCandidateList* _tmp12_; SkkProxyCandidateList* _tmp13_; SkkProxyCandidateList* pcandidates; SkkProxyCandidateList* _tmp14_; SkkCandidateList* _tmp15_; SkkCandidateList* _tmp16_; SkkState* _tmp17_; SkkCandidateList* _tmp18_; _tmp9_ = self->priv->state_stack; _tmp10_ = gee_deque_peek_head ((GeeDeque*) _tmp9_); state = (SkkState*) _tmp10_; _tmp11_ = state; skk_context_connect_state_signals (self, _tmp11_); _tmp12_ = self->priv->_candidates; _tmp13_ = _g_object_ref0 (SKK_PROXY_CANDIDATE_LIST (_tmp12_)); pcandidates = _tmp13_; _tmp14_ = pcandidates; _tmp15_ = skk_proxy_candidate_list_get_candidates (_tmp14_); _tmp16_ = _tmp15_; _tmp17_ = state; _tmp18_ = _tmp17_->candidates; if (_tmp16_ != _tmp18_) { SkkProxyCandidateList* _tmp19_; SkkState* _tmp20_; SkkCandidateList* _tmp21_; _tmp19_ = pcandidates; _tmp20_ = state; _tmp21_ = _tmp20_->candidates; skk_proxy_candidate_list_set_candidates (_tmp19_, _tmp21_); } _g_object_unref0 (pcandidates); _g_object_unref0 (state); } } static void skk_context_start_dict_edit (SkkContext* self, const gchar* midasi, gboolean okuri) { GeeList* _tmp0_; SkkState* _tmp1_; SkkState* state; const gchar* _tmp2_; gchar* _tmp3_; gboolean _tmp4_; g_return_if_fail (self != NULL); g_return_if_fail (midasi != NULL); _tmp0_ = self->priv->_dictionaries; _tmp1_ = skk_state_new (_tmp0_); state = _tmp1_; _tmp2_ = midasi; _tmp3_ = g_strdup (_tmp2_); _g_free0 (state->midasi); state->midasi = _tmp3_; _tmp4_ = okuri; state->okuri = _tmp4_; skk_context_push_state (self, state); skk_context_update_preedit (self); _g_object_unref0 (state); } static gboolean skk_context_end_dict_edit (SkkContext* self, const gchar* text) { gboolean result = FALSE; gchar* midasi = NULL; gboolean* okuri = NULL; gchar* _tmp0_ = NULL; gboolean* _tmp1_ = NULL; gboolean _tmp2_ = FALSE; GError * _inner_error_ = NULL; g_return_val_if_fail (self != NULL, FALSE); g_return_val_if_fail (text != NULL, FALSE); _tmp2_ = skk_context_leave_dict_edit (self, &_tmp0_, &_tmp1_); _g_free0 (midasi); midasi = _tmp0_; _g_free0 (okuri); okuri = _tmp1_; if (_tmp2_) { const gchar* _tmp3_; gboolean* _tmp4_; const gchar* _tmp5_; SkkCandidate* _tmp6_; SkkCandidate* candidate; SkkCandidate* _tmp7_; gboolean _tmp8_ = FALSE; GeeLinkedList* _tmp11_; gpointer _tmp12_ = NULL; SkkState* state; SkkState* _tmp13_; SkkState* _tmp14_; GString* _tmp15_; const gchar* _tmp16_; _tmp3_ = midasi; _tmp4_ = okuri; _tmp5_ = text; _tmp6_ = skk_candidate_new (_tmp3_, *_tmp4_, _tmp5_, NULL, NULL); candidate = _tmp6_; _tmp7_ = candidate; _tmp8_ = skk_context_select_candidate_in_dictionaries (self, _tmp7_); if (_tmp8_) { { skk_context_save_dictionaries (self, &_inner_error_); if (_inner_error_ != NULL) { goto __catch37_g_error; } } goto __finally37; __catch37_g_error: { GError* e = NULL; GError* _tmp9_; const gchar* _tmp10_; e = _inner_error_; _inner_error_ = NULL; _tmp9_ = e; _tmp10_ = _tmp9_->message; g_warning ("context.vala:370: error saving dictionaries %s", _tmp10_); _g_error_free0 (e); } __finally37: if (_inner_error_ != NULL) { _g_object_unref0 (candidate); _g_free0 (okuri); _g_free0 (midasi); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return FALSE; } } _tmp11_ = self->priv->state_stack; _tmp12_ = gee_deque_peek_head ((GeeDeque*) _tmp11_); state = (SkkState*) _tmp12_; _tmp13_ = state; skk_state_reset (_tmp13_); _tmp14_ = state; _tmp15_ = _tmp14_->output; _tmp16_ = text; g_string_assign (_tmp15_, _tmp16_); skk_context_update_preedit (self); result = TRUE; _g_object_unref0 (state); _g_object_unref0 (candidate); _g_free0 (okuri); _g_free0 (midasi); return result; } result = FALSE; _g_free0 (okuri); _g_free0 (midasi); return result; } static gboolean* _bool_dup (gboolean* self) { gboolean* dup; dup = g_new0 (gboolean, 1); memcpy (dup, self, sizeof (gboolean)); return dup; } static gpointer __bool_dup0 (gpointer self) { return self ? _bool_dup (self) : NULL; } static gboolean skk_context_leave_dict_edit (SkkContext* self, gchar** midasi, gboolean** okuri) { gchar* _vala_midasi = NULL; gboolean* _vala_okuri = NULL; gboolean result = FALSE; guint _tmp0_ = 0U; gboolean _tmp12_; gboolean* _tmp13_; g_return_val_if_fail (self != NULL, FALSE); _tmp0_ = skk_context_dict_edit_level (self); if (_tmp0_ > ((guint) 0)) { GeeLinkedList* _tmp1_; gpointer _tmp2_ = NULL; SkkState* state; SkkState* _tmp3_; const gchar* _tmp4_; gchar* _tmp5_; SkkState* _tmp6_; gboolean _tmp7_; gboolean* _tmp8_; GeeLinkedList* _tmp9_; gpointer _tmp10_ = NULL; SkkState* _tmp11_; _tmp1_ = self->priv->state_stack; _tmp2_ = gee_deque_peek_head ((GeeDeque*) _tmp1_); state = (SkkState*) _tmp2_; _tmp3_ = state; _tmp4_ = _tmp3_->midasi; _tmp5_ = g_strdup (_tmp4_); _g_free0 (_vala_midasi); _vala_midasi = _tmp5_; _tmp6_ = state; _tmp7_ = _tmp6_->okuri; _tmp8_ = __bool_dup0 (&_tmp7_); _g_free0 (_vala_okuri); _vala_okuri = _tmp8_; skk_context_pop_state (self); _tmp9_ = self->priv->state_stack; _tmp10_ = gee_deque_peek_head ((GeeDeque*) _tmp9_); _g_object_unref0 (state); state = (SkkState*) _tmp10_; _tmp11_ = state; skk_state_cancel_okuri (_tmp11_); result = TRUE; _g_object_unref0 (state); if (midasi) { *midasi = _vala_midasi; } else { _g_free0 (_vala_midasi); } if (okuri) { *okuri = _vala_okuri; } else { _g_free0 (_vala_okuri); } return result; } _g_free0 (_vala_midasi); _vala_midasi = NULL; _tmp12_ = FALSE; _tmp13_ = __bool_dup0 (&_tmp12_); _g_free0 (_vala_okuri); _vala_okuri = _tmp13_; result = FALSE; if (midasi) { *midasi = _vala_midasi; } else { _g_free0 (_vala_midasi); } if (okuri) { *okuri = _vala_okuri; } else { _g_free0 (_vala_okuri); } return result; } static gboolean skk_context_abort_dict_edit (SkkContext* self) { gboolean result = FALSE; gchar* midasi = NULL; gboolean* okuri = NULL; gchar* _tmp0_ = NULL; gboolean* _tmp1_ = NULL; gboolean _tmp2_ = FALSE; g_return_val_if_fail (self != NULL, FALSE); _tmp2_ = skk_context_leave_dict_edit (self, &_tmp0_, &_tmp1_); _g_free0 (midasi); midasi = _tmp0_; _g_free0 (okuri); okuri = _tmp1_; if (_tmp2_) { skk_context_update_preedit (self); result = TRUE; _g_free0 (okuri); _g_free0 (midasi); return result; } result = FALSE; _g_free0 (okuri); _g_free0 (midasi); return result; } /** * Pass key events (separated by spaces) to the context. * * This function is rarely used in programs but in unit tests. * * @param keyseq a string representing key events, seperated by " " * * @return `true` if any of key events are handled, `false` otherwise */ static gboolean string_get_next_char (const gchar* self, gint* index, gunichar* c) { gunichar _vala_c = 0U; gboolean result = FALSE; gint _tmp0_; gunichar _tmp1_ = 0U; gunichar _tmp2_; g_return_val_if_fail (self != NULL, FALSE); _tmp0_ = *index; _tmp1_ = g_utf8_get_char (((gchar*) self) + _tmp0_); _vala_c = _tmp1_; _tmp2_ = _vala_c; if (_tmp2_ != ((gunichar) 0)) { gint _tmp3_; gchar* _tmp4_ = NULL; _tmp3_ = *index; _tmp4_ = g_utf8_next_char (((gchar*) self) + _tmp3_); *index = (gint) (_tmp4_ - ((gchar*) self)); result = TRUE; if (c) { *c = _vala_c; } return result; } else { result = FALSE; if (c) { *c = _vala_c; } return result; } if (c) { *c = _vala_c; } } gboolean skk_context_process_key_events (SkkContext* self, const gchar* keyseq) { gboolean result = FALSE; GeeArrayList* _tmp0_; GeeList* keys; GString* _tmp1_; GString* builder; gboolean complex; gboolean escaped; gint index; gunichar uc = 0U; gboolean _tmp30_; GString* _tmp31_; gssize _tmp32_; gboolean retval; GError * _inner_error_ = NULL; g_return_val_if_fail (self != NULL, FALSE); g_return_val_if_fail (keyseq != NULL, FALSE); _tmp0_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL); keys = (GeeList*) _tmp0_; _tmp1_ = g_string_new (""); builder = _tmp1_; complex = FALSE; escaped = FALSE; index = 0; while (TRUE) { const gchar* _tmp2_; gunichar _tmp3_ = 0U; gboolean _tmp4_ = FALSE; gboolean _tmp5_; gunichar _tmp8_; _tmp2_ = keyseq; _tmp4_ = string_get_next_char (_tmp2_, &index, &_tmp3_); uc = _tmp3_; if (!_tmp4_) { break; } _tmp5_ = escaped; if (_tmp5_) { GString* _tmp6_; gunichar _tmp7_; _tmp6_ = builder; _tmp7_ = uc; g_string_append_unichar (_tmp6_, _tmp7_); escaped = FALSE; continue; } _tmp8_ = uc; switch (_tmp8_) { case '\\': { escaped = TRUE; break; } case '(': { gboolean _tmp9_; GString* _tmp10_; gunichar _tmp11_; _tmp9_ = complex; if (_tmp9_) { g_warning ("context.vala:435: bare '(' is not allowed in complex keyseq"); result = FALSE; _g_string_free0 (builder); _g_object_unref0 (keys); return result; } complex = TRUE; _tmp10_ = builder; _tmp11_ = uc; g_string_append_unichar (_tmp10_, _tmp11_); break; } case ')': { gboolean _tmp12_; GString* _tmp13_; gunichar _tmp14_; GeeList* _tmp15_; GString* _tmp16_; const gchar* _tmp17_; GString* _tmp18_; _tmp12_ = complex; if (!_tmp12_) { g_warning ("context.vala:443: bare ')' is not allowed in simple keyseq"); result = FALSE; _g_string_free0 (builder); _g_object_unref0 (keys); return result; } complex = FALSE; _tmp13_ = builder; _tmp14_ = uc; g_string_append_unichar (_tmp13_, _tmp14_); _tmp15_ = keys; _tmp16_ = builder; _tmp17_ = _tmp16_->str; gee_collection_add ((GeeCollection*) _tmp15_, _tmp17_); _tmp18_ = builder; g_string_erase (_tmp18_, (gssize) 0, (gssize) (-1)); break; } case ' ': { gboolean _tmp19_; _tmp19_ = complex; if (_tmp19_) { GString* _tmp20_; gunichar _tmp21_; _tmp20_ = builder; _tmp21_ = uc; g_string_append_unichar (_tmp20_, _tmp21_); } else { GString* _tmp22_; gssize _tmp23_; _tmp22_ = builder; _tmp23_ = _tmp22_->len; if (_tmp23_ > ((gssize) 0)) { GeeList* _tmp24_; GString* _tmp25_; const gchar* _tmp26_; GString* _tmp27_; _tmp24_ = keys; _tmp25_ = builder; _tmp26_ = _tmp25_->str; gee_collection_add ((GeeCollection*) _tmp24_, _tmp26_); _tmp27_ = builder; g_string_erase (_tmp27_, (gssize) 0, (gssize) (-1)); } } break; } default: { GString* _tmp28_; gunichar _tmp29_; _tmp28_ = builder; _tmp29_ = uc; g_string_append_unichar (_tmp28_, _tmp29_); break; } } } _tmp30_ = complex; if (_tmp30_) { g_warning ("context.vala:466: premature end of key events"); result = FALSE; _g_string_free0 (builder); _g_object_unref0 (keys); return result; } _tmp31_ = builder; _tmp32_ = _tmp31_->len; if (_tmp32_ > ((gssize) 0)) { GeeList* _tmp33_; GString* _tmp34_; const gchar* _tmp35_; _tmp33_ = keys; _tmp34_ = builder; _tmp35_ = _tmp34_->str; gee_collection_add ((GeeCollection*) _tmp33_, _tmp35_); } retval = FALSE; { GeeList* _tmp36_; GeeList* _tmp37_; GeeList* _key_list; GeeList* _tmp38_; gint _tmp39_; gint _tmp40_; gint _key_size; gint _key_index; _tmp36_ = keys; _tmp37_ = _g_object_ref0 (_tmp36_); _key_list = _tmp37_; _tmp38_ = _key_list; _tmp39_ = gee_collection_get_size ((GeeCollection*) _tmp38_); _tmp40_ = _tmp39_; _key_size = _tmp40_; _key_index = -1; while (TRUE) { gint _tmp41_; gint _tmp42_; gint _tmp43_; GeeList* _tmp44_; gint _tmp45_; gpointer _tmp46_ = NULL; gchar* key; const gchar* _tmp47_; SkkKeyEvent* ev = NULL; gboolean _tmp61_ = FALSE; SkkKeyEvent* _tmp62_; gboolean _tmp63_ = FALSE; gboolean _tmp65_; _tmp41_ = _key_index; _key_index = _tmp41_ + 1; _tmp42_ = _key_index; _tmp43_ = _key_size; if (!(_tmp42_ < _tmp43_)) { break; } _tmp44_ = _key_list; _tmp45_ = _key_index; _tmp46_ = gee_list_get (_tmp44_, _tmp45_); key = (gchar*) _tmp46_; _tmp47_ = key; if (g_strcmp0 (_tmp47_, "SPC") == 0) { gchar* _tmp48_; _tmp48_ = g_strdup (" "); _g_free0 (key); key = _tmp48_; } else { const gchar* _tmp49_; _tmp49_ = key; if (g_strcmp0 (_tmp49_, "TAB") == 0) { gchar* _tmp50_; _tmp50_ = g_strdup ("\t"); _g_free0 (key); key = _tmp50_; } else { const gchar* _tmp51_; _tmp51_ = key; if (g_strcmp0 (_tmp51_, "RET") == 0) { gchar* _tmp52_; _tmp52_ = g_strdup ("\n"); _g_free0 (key); key = _tmp52_; } else { const gchar* _tmp53_; _tmp53_ = key; if (g_strcmp0 (_tmp53_, "DEL") == 0) { gchar* _tmp54_; _tmp54_ = g_strdup ("\b"); _g_free0 (key); key = _tmp54_; } } } } { const gchar* _tmp55_; SkkKeyEvent* _tmp56_; SkkKeyEvent* _tmp57_; _tmp55_ = key; _tmp56_ = skk_key_event_new_from_string (_tmp55_, &_inner_error_); _tmp57_ = _tmp56_; if (_inner_error_ != NULL) { if (_inner_error_->domain == SKK_KEY_EVENT_FORMAT_ERROR) { goto __catch38_skk_key_event_format_error; } _g_object_unref0 (ev); _g_free0 (key); _g_object_unref0 (_key_list); _g_string_free0 (builder); _g_object_unref0 (keys); g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return FALSE; } _g_object_unref0 (ev); ev = _tmp57_; } goto __finally38; __catch38_skk_key_event_format_error: { GError* e = NULL; const gchar* _tmp58_; GError* _tmp59_; const gchar* _tmp60_; e = _inner_error_; _inner_error_ = NULL; _tmp58_ = key; _tmp59_ = e; _tmp60_ = _tmp59_->message; g_warning ("context.vala:488: can't get key event from string %s: %s", _tmp58_, _tmp60_); result = FALSE; _g_error_free0 (e); _g_object_unref0 (ev); _g_free0 (key); _g_object_unref0 (_key_list); _g_string_free0 (builder); _g_object_unref0 (keys); return result; } __finally38: if (_inner_error_ != NULL) { _g_object_unref0 (ev); _g_free0 (key); _g_object_unref0 (_key_list); _g_string_free0 (builder); _g_object_unref0 (keys); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return FALSE; } _tmp62_ = ev; _tmp63_ = skk_context_process_key_event (self, _tmp62_); if (_tmp63_) { gboolean _tmp64_; _tmp64_ = retval; _tmp61_ = !_tmp64_; } else { _tmp61_ = FALSE; } _tmp65_ = _tmp61_; if (_tmp65_) { retval = TRUE; } _g_object_unref0 (ev); _g_free0 (key); } _g_object_unref0 (_key_list); } result = retval; _g_string_free0 (builder); _g_object_unref0 (keys); return result; } /** * Pass one key event to the context. * * @param key a key event * * @return `true` if the key event is handled, `false` otherwise */ gboolean skk_context_process_key_event (SkkContext* self, SkkKeyEvent* key) { gboolean result = FALSE; SkkKeyEventFilter* _tmp0_; SkkKeyEventFilter* _tmp1_; SkkKeyEventFilter* _tmp2_; SkkKeyEvent* _tmp3_; SkkKeyEvent* _tmp4_ = NULL; SkkKeyEvent* _tmp5_; SkkKeyEvent* _key; SkkKeyEvent* _tmp6_; SkkKeyEvent* _tmp7_; gboolean _tmp8_ = FALSE; g_return_val_if_fail (self != NULL, FALSE); g_return_val_if_fail (key != NULL, FALSE); _tmp0_ = skk_context_get_key_event_filter (self); _tmp1_ = _tmp0_; _tmp2_ = _tmp1_; _tmp3_ = key; _tmp4_ = skk_key_event_filter_filter_key_event (_tmp2_, _tmp3_); _tmp5_ = _tmp4_; _g_object_unref0 (_tmp2_); _key = _tmp5_; _tmp6_ = _key; if (_tmp6_ == NULL) { result = TRUE; _g_object_unref0 (_key); return result; } _tmp7_ = _key; _tmp8_ = skk_context_process_key_event_internal (self, _tmp7_); result = _tmp8_; _g_object_unref0 (_key); return result; } static gboolean skk_context_process_key_event_internal (SkkContext* self, SkkKeyEvent* key) { gboolean result = FALSE; SkkKeyEvent* _tmp0_; SkkKeyEvent* _tmp1_ = NULL; SkkKeyEvent* _key; GeeLinkedList* _tmp2_; gpointer _tmp3_ = NULL; SkkState* state; g_return_val_if_fail (self != NULL, FALSE); g_return_val_if_fail (key != NULL, FALSE); _tmp0_ = key; _tmp1_ = skk_key_event_copy (_tmp0_); _key = _tmp1_; _tmp2_ = self->priv->state_stack; _tmp3_ = gee_deque_peek_head ((GeeDeque*) _tmp2_); state = (SkkState*) _tmp3_; while (TRUE) { SkkState* _tmp4_; GType _tmp5_; GType handler_type; GeeMap* _tmp6_; GType _tmp7_; gpointer _tmp8_ = NULL; SkkStateHandler* handler; SkkStateHandler* _tmp9_; SkkState* _tmp10_; gboolean _tmp11_ = FALSE; GType _tmp12_; SkkState* _tmp13_; GType _tmp14_; _tmp4_ = state; _tmp5_ = _tmp4_->handler_type; handler_type = _tmp5_; _tmp6_ = self->priv->handlers; _tmp7_ = handler_type; _tmp8_ = gee_map_get (_tmp6_, GINT_TO_POINTER (_tmp7_)); handler = (SkkStateHandler*) _tmp8_; _tmp9_ = handler; _tmp10_ = state; _tmp11_ = skk_state_handler_process_key_event (_tmp9_, _tmp10_, &_key); if (_tmp11_) { skk_context_update_preedit (self); result = TRUE; _g_object_unref0 (handler); _g_object_unref0 (state); _g_object_unref0 (_key); return result; } _tmp12_ = handler_type; _tmp13_ = state; _tmp14_ = _tmp13_->handler_type; if (_tmp12_ == _tmp14_) { guint _tmp15_ = 0U; _tmp15_ = skk_context_dict_edit_level (self); result = _tmp15_ > ((guint) 0); _g_object_unref0 (handler); _g_object_unref0 (state); _g_object_unref0 (_key); return result; } _g_object_unref0 (handler); } _g_object_unref0 (state); _g_object_unref0 (_key); } /** * Reset the context. */ void skk_context_reset (SkkContext* self) { GeeLinkedList* _tmp4_; gpointer _tmp5_ = NULL; SkkState* state; SkkCandidateList* _tmp6_; SkkCandidateList* _tmp7_; g_return_if_fail (self != NULL); while (TRUE) { guint _tmp0_ = 0U; GeeLinkedList* _tmp1_; gpointer _tmp2_ = NULL; SkkState* _tmp3_; _tmp0_ = skk_context_dict_edit_level (self); if (!(_tmp0_ > ((guint) 0))) { break; } skk_context_pop_state (self); _tmp1_ = self->priv->state_stack; _tmp2_ = gee_deque_peek_head ((GeeDeque*) _tmp1_); _tmp3_ = (SkkState*) _tmp2_; skk_state_cancel_okuri (_tmp3_); _g_object_unref0 (_tmp3_); } _tmp4_ = self->priv->state_stack; _tmp5_ = gee_deque_peek_head ((GeeDeque*) _tmp4_); state = (SkkState*) _tmp5_; skk_state_reset (state); _tmp6_ = self->priv->_candidates; _tmp7_ = state->candidates; skk_proxy_candidate_list_set_candidates (SKK_PROXY_CANDIDATE_LIST (_tmp6_), _tmp7_); skk_context_clear_output (self); skk_context_set_preedit (self, ""); _g_object_unref0 (state); } /** * This is replaced with {@link poll_output}. * * @return an output string * Deprecated: 0.0.6 */ gchar* skk_context_get_output (SkkContext* self) { gchar* result = NULL; gchar* _tmp0_ = NULL; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = skk_context_poll_output (self); result = _tmp0_; return result; } static gchar* skk_context_retrieve_output (SkkContext* self, gboolean clear) { gchar* result = NULL; GeeLinkedList* _tmp0_; gpointer _tmp1_ = NULL; SkkState* state; GeeMap* _tmp2_; SkkState* _tmp3_; GType _tmp4_; gpointer _tmp5_ = NULL; SkkStateHandler* handler; SkkStateHandler* _tmp6_; SkkState* _tmp7_; gchar* _tmp8_ = NULL; gchar* output; gboolean _tmp9_; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = self->priv->state_stack; _tmp1_ = gee_abstract_list_last ((GeeAbstractList*) _tmp0_); state = (SkkState*) _tmp1_; _tmp2_ = self->priv->handlers; _tmp3_ = state; _tmp4_ = _tmp3_->handler_type; _tmp5_ = gee_map_get (_tmp2_, GINT_TO_POINTER (_tmp4_)); handler = (SkkStateHandler*) _tmp5_; _tmp6_ = handler; _tmp7_ = state; _tmp8_ = skk_state_handler_get_output (_tmp6_, _tmp7_); output = _tmp8_; _tmp9_ = clear; if (_tmp9_) { SkkState* _tmp10_; GString* _tmp11_; _tmp10_ = state; _tmp11_ = _tmp10_->output; g_string_erase (_tmp11_, (gssize) 0, (gssize) (-1)); } result = output; _g_object_unref0 (handler); _g_object_unref0 (state); return result; } /** * Peek (retrieve, but not remove) the current output string. * * @return an output string * @since 0.0.6 */ gchar* skk_context_peek_output (SkkContext* self) { gchar* result = NULL; gchar* _tmp0_ = NULL; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = skk_context_retrieve_output (self, FALSE); result = _tmp0_; return result; } /** * Poll (retrieve and remove) the current output string. * * @return an output string * @since 0.0.6 */ gchar* skk_context_poll_output (SkkContext* self) { gchar* result = NULL; gchar* _tmp0_ = NULL; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = skk_context_retrieve_output (self, TRUE); result = _tmp0_; return result; } /** * Clear the output buffer. * * @since 0.0.6 */ void skk_context_clear_output (SkkContext* self) { GeeLinkedList* _tmp0_; gpointer _tmp1_ = NULL; SkkState* _tmp2_; GString* _tmp3_; g_return_if_fail (self != NULL); _tmp0_ = self->priv->state_stack; _tmp1_ = gee_deque_peek_head ((GeeDeque*) _tmp0_); _tmp2_ = (SkkState*) _tmp1_; _tmp3_ = _tmp2_->output; g_string_erase (_tmp3_, (gssize) 0, (gssize) (-1)); _g_object_unref0 (_tmp2_); } static void skk_context_update_preedit (SkkContext* self) { GString* _tmp0_; GString* builder; GeeLinkedList* _tmp1_; GeeListIterator* _tmp2_ = NULL; GeeListIterator* iter; GeeListIterator* _tmp3_; GeeLinkedList* _tmp27_; gpointer _tmp28_ = NULL; SkkState* state; GeeMap* _tmp29_; SkkState* _tmp30_; GType _tmp31_; gpointer _tmp32_ = NULL; SkkStateHandler* handler; guint _tmp33_ = 0U; GString* _tmp39_; const gchar* _tmp40_; gint _tmp41_ = 0; guint start; guint offset = 0U; guint nchars = 0U; GString* _tmp42_; SkkStateHandler* _tmp43_; SkkState* _tmp44_; guint _tmp45_ = 0U; guint _tmp46_ = 0U; gchar* _tmp47_ = NULL; gchar* _tmp48_; guint _tmp49_; guint _tmp50_; guint _tmp51_ = 0U; guint level; gboolean changed; const gchar* _tmp58_; GString* _tmp59_; const gchar* _tmp60_; gboolean _tmp63_ = FALSE; guint _tmp64_; guint _tmp65_; gboolean _tmp68_; gboolean _tmp71_; g_return_if_fail (self != NULL); _tmp0_ = g_string_new (""); builder = _tmp0_; _tmp1_ = self->priv->state_stack; _tmp2_ = gee_abstract_list_list_iterator ((GeeAbstractList*) _tmp1_); iter = _tmp2_; _tmp3_ = iter; gee_bidir_iterator_last ((GeeBidirIterator*) _tmp3_); while (TRUE) { GeeListIterator* _tmp4_; gboolean _tmp5_ = FALSE; GeeListIterator* _tmp6_; gpointer _tmp7_ = NULL; SkkState* state; GeeMap* _tmp8_; SkkState* _tmp9_; GType _tmp10_; gpointer _tmp11_ = NULL; SkkStateHandler* handler; GeeListIterator* _tmp12_; gboolean _tmp13_ = FALSE; GeeListIterator* _tmp19_; GeeListIterator* _tmp20_; gpointer _tmp21_ = NULL; GString* _tmp22_; GString* _tmp23_; SkkState* _tmp24_; const gchar* _tmp25_; GString* _tmp26_; _tmp4_ = iter; _tmp5_ = gee_bidir_iterator_has_previous ((GeeBidirIterator*) _tmp4_); if (!_tmp5_) { break; } _tmp6_ = iter; _tmp7_ = gee_iterator_get ((GeeIterator*) _tmp6_); state = (SkkState*) _tmp7_; _tmp8_ = self->priv->handlers; _tmp9_ = state; _tmp10_ = _tmp9_->handler_type; _tmp11_ = gee_map_get (_tmp8_, GINT_TO_POINTER (_tmp10_)); handler = (SkkStateHandler*) _tmp11_; _tmp12_ = iter; _tmp13_ = gee_iterator_has_next ((GeeIterator*) _tmp12_); if (_tmp13_) { GString* _tmp14_; SkkStateHandler* _tmp15_; SkkState* _tmp16_; gchar* _tmp17_ = NULL; gchar* _tmp18_; _tmp14_ = builder; _tmp15_ = handler; _tmp16_ = state; _tmp17_ = skk_state_handler_get_output (_tmp15_, _tmp16_); _tmp18_ = _tmp17_; g_string_append (_tmp14_, _tmp18_); _g_free0 (_tmp18_); } _tmp19_ = iter; gee_bidir_iterator_previous ((GeeBidirIterator*) _tmp19_); _tmp20_ = iter; _tmp21_ = gee_iterator_get ((GeeIterator*) _tmp20_); _g_object_unref0 (state); state = (SkkState*) _tmp21_; _tmp22_ = builder; g_string_append (_tmp22_, "â–¼"); _tmp23_ = builder; _tmp24_ = state; _tmp25_ = _tmp24_->midasi; g_string_append (_tmp23_, _tmp25_); _tmp26_ = builder; g_string_append (_tmp26_, "ã€"); _g_object_unref0 (handler); _g_object_unref0 (state); } _tmp27_ = self->priv->state_stack; _tmp28_ = gee_deque_peek_head ((GeeDeque*) _tmp27_); state = (SkkState*) _tmp28_; _tmp29_ = self->priv->handlers; _tmp30_ = state; _tmp31_ = _tmp30_->handler_type; _tmp32_ = gee_map_get (_tmp29_, GINT_TO_POINTER (_tmp31_)); handler = (SkkStateHandler*) _tmp32_; _tmp33_ = skk_context_dict_edit_level (self); if (_tmp33_ > ((guint) 0)) { GString* _tmp34_; SkkStateHandler* _tmp35_; SkkState* _tmp36_; gchar* _tmp37_ = NULL; gchar* _tmp38_; _tmp34_ = builder; _tmp35_ = handler; _tmp36_ = state; _tmp37_ = skk_state_handler_get_output (_tmp35_, _tmp36_); _tmp38_ = _tmp37_; g_string_append (_tmp34_, _tmp38_); _g_free0 (_tmp38_); } _tmp39_ = builder; _tmp40_ = _tmp39_->str; _tmp41_ = g_utf8_strlen (_tmp40_, (gssize) (-1)); start = (guint) _tmp41_; _tmp42_ = builder; _tmp43_ = handler; _tmp44_ = state; _tmp47_ = skk_state_handler_get_preedit (_tmp43_, _tmp44_, &_tmp45_, &_tmp46_); offset = _tmp45_; nchars = _tmp46_; _tmp48_ = _tmp47_; g_string_append (_tmp42_, _tmp48_); _g_free0 (_tmp48_); _tmp49_ = offset; _tmp50_ = start; offset = _tmp49_ + _tmp50_; _tmp51_ = skk_context_dict_edit_level (self); level = _tmp51_; { gint i; i = 0; { gboolean _tmp52_; _tmp52_ = TRUE; while (TRUE) { gboolean _tmp53_; gint _tmp55_; guint _tmp56_; GString* _tmp57_; _tmp53_ = _tmp52_; if (!_tmp53_) { gint _tmp54_; _tmp54_ = i; i = _tmp54_ + 1; } _tmp52_ = FALSE; _tmp55_ = i; _tmp56_ = level; if (!(((guint) _tmp55_) < _tmp56_)) { break; } _tmp57_ = builder; g_string_append (_tmp57_, "】"); } } } changed = FALSE; _tmp58_ = self->priv->_preedit; _tmp59_ = builder; _tmp60_ = _tmp59_->str; if (g_strcmp0 (_tmp58_, _tmp60_) != 0) { GString* _tmp61_; const gchar* _tmp62_; _tmp61_ = builder; _tmp62_ = _tmp61_->str; skk_context_set_preedit (self, _tmp62_); changed = TRUE; } _tmp64_ = self->priv->preedit_underline_offset; _tmp65_ = offset; if (_tmp64_ != _tmp65_) { _tmp63_ = TRUE; } else { guint _tmp66_; guint _tmp67_; _tmp66_ = self->priv->preedit_underline_nchars; _tmp67_ = nchars; _tmp63_ = _tmp66_ != _tmp67_; } _tmp68_ = _tmp63_; if (_tmp68_) { guint _tmp69_; guint _tmp70_; _tmp69_ = offset; self->priv->preedit_underline_offset = _tmp69_; _tmp70_ = nchars; self->priv->preedit_underline_nchars = _tmp70_; changed = TRUE; } _tmp71_ = changed; if (_tmp71_) { g_object_notify ((GObject*) self, "preedit"); } _g_object_unref0 (handler); _g_object_unref0 (state); _g_object_unref0 (iter); _g_string_free0 (builder); } /** * Get underlined range of preedit. * * @param offset starting offset (in chars) of underline * @param nchars number of characters to be underlined * @since 0.0.6 */ void skk_context_get_preedit_underline (SkkContext* self, guint* offset, guint* nchars) { guint _vala_offset = 0U; guint _vala_nchars = 0U; guint _tmp0_; guint _tmp1_; g_return_if_fail (self != NULL); _tmp0_ = self->priv->preedit_underline_offset; _vala_offset = _tmp0_; _tmp1_ = self->priv->preedit_underline_nchars; _vala_nchars = _tmp1_; if (offset) { *offset = _vala_offset; } if (nchars) { *nchars = _vala_nchars; } } /** * Save dictionaries on to disk. */ void skk_context_save_dictionaries (SkkContext* self, GError** error) { SkkDict** _tmp0_; gint _tmp0__length1; SkkDict** _tmp1_; gint _tmp1__length1; GError * _inner_error_ = NULL; g_return_if_fail (self != NULL); _tmp0_ = skk_context_get_dictionaries (self, &_tmp0__length1); _tmp1_ = _tmp0_; _tmp1__length1 = _tmp0__length1; { SkkDict** dict_collection = NULL; gint dict_collection_length1 = 0; gint _dict_collection_size_ = 0; gint dict_it = 0; dict_collection = _tmp1_; dict_collection_length1 = _tmp1__length1; for (dict_it = 0; dict_it < _tmp1__length1; dict_it = dict_it + 1) { SkkDict* _tmp2_; SkkDict* dict = NULL; _tmp2_ = _g_object_ref0 (dict_collection[dict_it]); dict = _tmp2_; { SkkDict* _tmp3_; gboolean _tmp4_; gboolean _tmp5_; _tmp3_ = dict; _tmp4_ = skk_dict_get_read_only (_tmp3_); _tmp5_ = _tmp4_; if (!_tmp5_) { SkkDict* _tmp6_; _tmp6_ = dict; skk_dict_save (_tmp6_, &_inner_error_); if (_inner_error_ != NULL) { g_propagate_error (error, _inner_error_); _g_object_unref0 (dict); dict_collection = (_vala_array_free (dict_collection, dict_collection_length1, (GDestroyNotify) g_object_unref), NULL); return; } } _g_object_unref0 (dict); } } dict_collection = (_vala_array_free (dict_collection, dict_collection_length1, (GDestroyNotify) g_object_unref), NULL); } } SkkDict** skk_context_get_dictionaries (SkkContext* self, int* result_length1) { SkkDict** result; GeeList* _tmp0_; gint _tmp1_ = 0; gpointer* _tmp2_ = NULL; SkkDict** _tmp3_; gint _tmp3__length1; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = self->priv->_dictionaries; _tmp2_ = gee_collection_to_array ((GeeCollection*) _tmp0_, &_tmp1_); _tmp3_ = _tmp2_; _tmp3__length1 = _tmp1_; if (result_length1) { *result_length1 = _tmp3__length1; } result = _tmp3_; return result; } void skk_context_set_dictionaries (SkkContext* self, SkkDict** value, int value_length1) { GeeList* _tmp0_; SkkDict** _tmp1_; gint _tmp1__length1; g_return_if_fail (self != NULL); _tmp0_ = self->priv->_dictionaries; gee_collection_clear ((GeeCollection*) _tmp0_); _tmp1_ = value; _tmp1__length1 = value_length1; { SkkDict** dict_collection = NULL; gint dict_collection_length1 = 0; gint _dict_collection_size_ = 0; gint dict_it = 0; dict_collection = _tmp1_; dict_collection_length1 = _tmp1__length1; for (dict_it = 0; dict_it < _tmp1__length1; dict_it = dict_it + 1) { SkkDict* _tmp2_; SkkDict* dict = NULL; _tmp2_ = _g_object_ref0 (dict_collection[dict_it]); dict = _tmp2_; { GeeList* _tmp3_; SkkDict* _tmp4_; _tmp3_ = self->priv->_dictionaries; _tmp4_ = dict; gee_collection_add ((GeeCollection*) _tmp3_, _tmp4_); _g_object_unref0 (dict); } } } } SkkCandidateList* skk_context_get_candidates (SkkContext* self) { SkkCandidateList* result; SkkCandidateList* _tmp0_; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = self->priv->_candidates; result = _tmp0_; return result; } SkkInputMode skk_context_get_input_mode (SkkContext* self) { SkkInputMode result; GeeLinkedList* _tmp0_; gpointer _tmp1_ = NULL; SkkState* _tmp2_; SkkInputMode _tmp3_; SkkInputMode _tmp4_; SkkInputMode _tmp5_; g_return_val_if_fail (self != NULL, 0); _tmp0_ = self->priv->state_stack; _tmp1_ = gee_deque_peek_head ((GeeDeque*) _tmp0_); _tmp2_ = (SkkState*) _tmp1_; _tmp3_ = skk_state_get_input_mode (_tmp2_); _tmp4_ = _tmp3_; _tmp5_ = _tmp4_; _g_object_unref0 (_tmp2_); result = _tmp5_; return result; } void skk_context_set_input_mode (SkkContext* self, SkkInputMode value) { GeeLinkedList* _tmp0_; gpointer _tmp1_ = NULL; SkkState* _tmp2_; SkkInputMode _tmp3_; g_return_if_fail (self != NULL); _tmp0_ = self->priv->state_stack; _tmp1_ = gee_deque_peek_head ((GeeDeque*) _tmp0_); _tmp2_ = (SkkState*) _tmp1_; _tmp3_ = value; skk_state_set_input_mode (_tmp2_, _tmp3_); _g_object_unref0 (_tmp2_); g_object_notify ((GObject *) self, "input-mode"); } gchar** skk_context_get_auto_start_henkan_keywords (SkkContext* self, int* result_length1) { gchar** result; GeeLinkedList* _tmp0_; gpointer _tmp1_ = NULL; SkkState* _tmp2_; gchar** _tmp3_; gint _tmp3__length1; gchar** _tmp4_; gint _tmp4__length1; gchar** _tmp5_; gint _tmp5__length1; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = self->priv->state_stack; _tmp1_ = gee_deque_peek_head ((GeeDeque*) _tmp0_); _tmp2_ = (SkkState*) _tmp1_; _tmp3_ = _tmp2_->auto_start_henkan_keywords; _tmp3__length1 = _tmp2_->auto_start_henkan_keywords_length1; _tmp4_ = _tmp3_; _tmp4__length1 = _tmp3__length1; _g_object_unref0 (_tmp2_); _tmp5_ = _tmp4_; _tmp5__length1 = _tmp4__length1; if (result_length1) { *result_length1 = _tmp5__length1; } result = _tmp5_; return result; } static gchar** _vala_array_dup4 (gchar** self, int length) { gchar** result; int i; result = g_new0 (gchar*, length + 1); for (i = 0; i < length; i++) { gchar* _tmp0_; _tmp0_ = g_strdup (self[i]); result[i] = _tmp0_; } return result; } void skk_context_set_auto_start_henkan_keywords (SkkContext* self, gchar** value, int value_length1) { GeeLinkedList* _tmp0_; gpointer _tmp1_ = NULL; SkkState* _tmp2_; gchar** _tmp3_; gint _tmp3__length1; gchar** _tmp4_; gint _tmp4__length1; g_return_if_fail (self != NULL); _tmp0_ = self->priv->state_stack; _tmp1_ = gee_deque_peek_head ((GeeDeque*) _tmp0_); _tmp2_ = (SkkState*) _tmp1_; _tmp3_ = value; _tmp3__length1 = value_length1; _tmp4_ = (_tmp3_ != NULL) ? _vala_array_dup4 (_tmp3_, _tmp3__length1) : ((gpointer) _tmp3_); _tmp4__length1 = _tmp3__length1; _tmp2_->auto_start_henkan_keywords = (_vala_array_free (_tmp2_->auto_start_henkan_keywords, _tmp2_->auto_start_henkan_keywords_length1, (GDestroyNotify) g_free), NULL); _tmp2_->auto_start_henkan_keywords = _tmp4_; _tmp2_->auto_start_henkan_keywords_length1 = _tmp4__length1; _tmp2_->_auto_start_henkan_keywords_size_ = _tmp2_->auto_start_henkan_keywords_length1; _g_object_unref0 (_tmp2_); g_object_notify ((GObject *) self, "auto-start-henkan-keywords"); } gboolean skk_context_get_egg_like_newline (SkkContext* self) { gboolean result; GeeLinkedList* _tmp0_; gpointer _tmp1_ = NULL; SkkState* _tmp2_; gboolean _tmp3_; gboolean _tmp4_; g_return_val_if_fail (self != NULL, FALSE); _tmp0_ = self->priv->state_stack; _tmp1_ = gee_deque_peek_head ((GeeDeque*) _tmp0_); _tmp2_ = (SkkState*) _tmp1_; _tmp3_ = _tmp2_->egg_like_newline; _tmp4_ = _tmp3_; _g_object_unref0 (_tmp2_); result = _tmp4_; return result; } void skk_context_set_egg_like_newline (SkkContext* self, gboolean value) { GeeLinkedList* _tmp0_; gpointer _tmp1_ = NULL; SkkState* _tmp2_; gboolean _tmp3_; g_return_if_fail (self != NULL); _tmp0_ = self->priv->state_stack; _tmp1_ = gee_deque_peek_head ((GeeDeque*) _tmp0_); _tmp2_ = (SkkState*) _tmp1_; _tmp3_ = value; _tmp2_->egg_like_newline = _tmp3_; _g_object_unref0 (_tmp2_); g_object_notify ((GObject *) self, "egg-like-newline"); } SkkPeriodStyle skk_context_get_period_style (SkkContext* self) { SkkPeriodStyle result; GeeLinkedList* _tmp0_; gpointer _tmp1_ = NULL; SkkState* _tmp2_; SkkPeriodStyle _tmp3_; SkkPeriodStyle _tmp4_; SkkPeriodStyle _tmp5_; g_return_val_if_fail (self != NULL, 0); _tmp0_ = self->priv->state_stack; _tmp1_ = gee_deque_peek_head ((GeeDeque*) _tmp0_); _tmp2_ = (SkkState*) _tmp1_; _tmp3_ = skk_state_get_period_style (_tmp2_); _tmp4_ = _tmp3_; _tmp5_ = _tmp4_; _g_object_unref0 (_tmp2_); result = _tmp5_; return result; } void skk_context_set_period_style (SkkContext* self, SkkPeriodStyle value) { GeeLinkedList* _tmp0_; gpointer _tmp1_ = NULL; SkkState* _tmp2_; SkkPeriodStyle _tmp3_; g_return_if_fail (self != NULL); _tmp0_ = self->priv->state_stack; _tmp1_ = gee_deque_peek_head ((GeeDeque*) _tmp0_); _tmp2_ = (SkkState*) _tmp1_; _tmp3_ = value; skk_state_set_period_style (_tmp2_, _tmp3_); _g_object_unref0 (_tmp2_); g_object_notify ((GObject *) self, "period-style"); } SkkRule* skk_context_get_typing_rule (SkkContext* self) { SkkRule* result; GeeLinkedList* _tmp0_; gpointer _tmp1_ = NULL; SkkState* _tmp2_; SkkRule* _tmp3_; SkkRule* _tmp4_; SkkRule* _tmp5_; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = self->priv->state_stack; _tmp1_ = gee_deque_peek_head ((GeeDeque*) _tmp0_); _tmp2_ = (SkkState*) _tmp1_; _tmp3_ = skk_state_get_typing_rule (_tmp2_); _tmp4_ = _tmp3_; _tmp5_ = _tmp4_; _g_object_unref0 (_tmp2_); result = _tmp5_; return result; } static void _skk_context_filter_forwarded_cb_skk_key_event_filter_forwarded (SkkKeyEventFilter* _sender, SkkKeyEvent* key, gpointer self) { skk_context_filter_forwarded_cb (self, key); } void skk_context_set_typing_rule (SkkContext* self, SkkRule* value) { GeeLinkedList* _tmp0_; gpointer _tmp1_ = NULL; SkkState* state; SkkRule* _tmp2_; SkkRule* _tmp3_; SkkKeyEventFilter* _tmp4_ = NULL; SkkKeyEventFilter* _tmp5_; guint _tmp6_ = 0U; SkkRule* _tmp7_; SkkRule* _tmp8_; SkkRule* _tmp9_; SkkKeyEventFilter* _tmp10_ = NULL; SkkKeyEventFilter* _tmp11_; g_return_if_fail (self != NULL); _tmp0_ = self->priv->state_stack; _tmp1_ = gee_deque_peek_head ((GeeDeque*) _tmp0_); state = (SkkState*) _tmp1_; _tmp2_ = skk_state_get_typing_rule (state); _tmp3_ = _tmp2_; _tmp4_ = skk_rule_get_filter (_tmp3_); _tmp5_ = _tmp4_; g_signal_parse_name ("forwarded", SKK_TYPE_KEY_EVENT_FILTER, &_tmp6_, NULL, FALSE); g_signal_handlers_disconnect_matched (_tmp5_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp6_, 0, NULL, (GCallback) _skk_context_filter_forwarded_cb_skk_key_event_filter_forwarded, self); _g_object_unref0 (_tmp5_); _tmp7_ = value; skk_state_set_typing_rule (state, _tmp7_); _tmp8_ = skk_state_get_typing_rule (state); _tmp9_ = _tmp8_; _tmp10_ = skk_rule_get_filter (_tmp9_); _tmp11_ = _tmp10_; g_signal_connect_object (_tmp11_, "forwarded", (GCallback) _skk_context_filter_forwarded_cb_skk_key_event_filter_forwarded, self, 0); _g_object_unref0 (_tmp11_); _g_object_unref0 (state); g_object_notify ((GObject *) self, "typing-rule"); } SkkKeyEventFilter* skk_context_get_key_event_filter (SkkContext* self) { SkkKeyEventFilter* result; GeeLinkedList* _tmp0_; gpointer _tmp1_ = NULL; SkkState* _tmp2_; SkkRule* _tmp3_; SkkRule* _tmp4_; SkkKeyEventFilter* _tmp5_ = NULL; SkkKeyEventFilter* _tmp6_; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = self->priv->state_stack; _tmp1_ = gee_deque_peek_head ((GeeDeque*) _tmp0_); _tmp2_ = (SkkState*) _tmp1_; _tmp3_ = skk_state_get_typing_rule (_tmp2_); _tmp4_ = _tmp3_; _tmp5_ = skk_rule_get_filter (_tmp4_); _tmp6_ = _tmp5_; _g_object_unref0 (_tmp2_); result = _tmp6_; return result; } const gchar* skk_context_get_preedit (SkkContext* self) { const gchar* result; const gchar* _tmp0_; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = self->priv->_preedit; result = _tmp0_; return result; } static void skk_context_set_preedit (SkkContext* self, const gchar* value) { const gchar* _tmp0_; gchar* _tmp1_; g_return_if_fail (self != NULL); _tmp0_ = value; _tmp1_ = g_strdup (_tmp0_); _g_free0 (self->priv->_preedit); self->priv->_preedit = _tmp1_; } static void g_cclosure_user_marshal_BOOLEAN__POINTER_POINTER (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) { typedef gboolean (*GMarshalFunc_BOOLEAN__POINTER_POINTER) (gpointer data1, gpointer arg_1, gpointer arg_2, gpointer data2); register GMarshalFunc_BOOLEAN__POINTER_POINTER callback; register GCClosure * cc; register gpointer data1; register gpointer data2; gboolean v_return; cc = (GCClosure *) closure; g_return_if_fail (return_value != NULL); g_return_if_fail (n_param_values == 3); if (G_CCLOSURE_SWAP_DATA (closure)) { data1 = closure->data; data2 = param_values->data[0].v_pointer; } else { data1 = param_values->data[0].v_pointer; data2 = closure->data; } callback = (GMarshalFunc_BOOLEAN__POINTER_POINTER) (marshal_data ? marshal_data : cc->callback); v_return = callback (data1, g_value_get_pointer (param_values + 1), g_value_get_pointer (param_values + 2), data2); g_value_set_boolean (return_value, v_return); } static void g_cclosure_user_marshal_BOOLEAN__INT_UINT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) { typedef gboolean (*GMarshalFunc_BOOLEAN__INT_UINT) (gpointer data1, gint arg_1, guint arg_2, gpointer data2); register GMarshalFunc_BOOLEAN__INT_UINT callback; register GCClosure * cc; register gpointer data1; register gpointer data2; gboolean v_return; cc = (GCClosure *) closure; g_return_if_fail (return_value != NULL); g_return_if_fail (n_param_values == 3); if (G_CCLOSURE_SWAP_DATA (closure)) { data1 = closure->data; data2 = param_values->data[0].v_pointer; } else { data1 = param_values->data[0].v_pointer; data2 = closure->data; } callback = (GMarshalFunc_BOOLEAN__INT_UINT) (marshal_data ? marshal_data : cc->callback); v_return = callback (data1, g_value_get_int (param_values + 1), g_value_get_uint (param_values + 2), data2); g_value_set_boolean (return_value, v_return); } static void skk_context_class_init (SkkContextClass * klass) { skk_context_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (SkkContextPrivate)); G_OBJECT_CLASS (klass)->get_property = _vala_skk_context_get_property; G_OBJECT_CLASS (klass)->set_property = _vala_skk_context_set_property; G_OBJECT_CLASS (klass)->finalize = skk_context_finalize; /** * Current candidates. */ g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_CONTEXT_CANDIDATES, g_param_spec_object ("candidates", "candidates", "candidates", SKK_TYPE_CANDIDATE_LIST, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE)); /** * Current input mode. */ g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_CONTEXT_INPUT_MODE, g_param_spec_enum ("input-mode", "input-mode", "input-mode", SKK_TYPE_INPUT_MODE, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); /** * Array of strings which triggers automatic conversion. */ g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_CONTEXT_AUTO_START_HENKAN_KEYWORDS, g_param_spec_boxed ("auto-start-henkan-keywords", "auto-start-henkan-keywords", "auto-start-henkan-keywords", G_TYPE_STRV, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); /** * Flag to indicate whether or not "\n" is consumed on commit. */ g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_CONTEXT_EGG_LIKE_NEWLINE, g_param_spec_boolean ("egg-like-newline", "egg-like-newline", "egg-like-newline", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); /** * Period style used in romaji-to-kana conversion. */ g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_CONTEXT_PERIOD_STYLE, g_param_spec_enum ("period-style", "period-style", "period-style", SKK_TYPE_PERIOD_STYLE, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); /** * The name of typing rule. */ g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_CONTEXT_TYPING_RULE, g_param_spec_object ("typing-rule", "typing-rule", "typing-rule", SKK_TYPE_RULE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); /** * Filter which runs before process_key_event. * * This is particularly useful for NICOLA. * @see NicolaKeyEventFilter */ g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_CONTEXT_KEY_EVENT_FILTER, g_param_spec_object ("key-event-filter", "key-event-filter", "key-event-filter", SKK_TYPE_KEY_EVENT_FILTER, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE)); /** * Current preedit string. */ g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_CONTEXT_PREEDIT, g_param_spec_string ("preedit", "preedit", "preedit", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE)); /** * Signal emitted when the context requires surrounding-text. * * @param text surrounding text * @param cursor_pos cursor position in text * * @return `true` on success, `false` on failure */ g_signal_new ("retrieve_surrounding_text", SKK_TYPE_CONTEXT, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_BOOLEAN__POINTER_POINTER, G_TYPE_BOOLEAN, 2, G_TYPE_POINTER, G_TYPE_POINTER); /** * Signal emitted when the context requests deletion of * surrounding-text. * * @param offset character offset from the cursor position. * @param nchars number of characters to delete. * * @return `true` on success, `false` on failure */ g_signal_new ("delete_surrounding_text", SKK_TYPE_CONTEXT, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_BOOLEAN__INT_UINT, G_TYPE_BOOLEAN, 2, G_TYPE_INT, G_TYPE_UINT); } static void skk_context_instance_init (SkkContext * self) { GeeArrayList* _tmp0_; GeeLinkedList* _tmp1_; GeeHashMap* _tmp2_; gchar* _tmp3_; self->priv = SKK_CONTEXT_GET_PRIVATE (self); _tmp0_ = gee_array_list_new (SKK_TYPE_DICT, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL); self->priv->_dictionaries = (GeeList*) _tmp0_; _tmp1_ = gee_linked_list_new (SKK_TYPE_STATE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL); self->priv->state_stack = _tmp1_; _tmp2_ = gee_hash_map_new (G_TYPE_GTYPE, NULL, NULL, SKK_TYPE_STATE_HANDLER, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL); self->priv->handlers = (GeeMap*) _tmp2_; _tmp3_ = g_strdup (""); self->priv->_preedit = _tmp3_; self->priv->preedit_underline_offset = (guint) 0; self->priv->preedit_underline_nchars = (guint) 0; } static void skk_context_finalize (GObject* obj) { SkkContext * self; GeeList* _tmp0_; self = SKK_CONTEXT (obj); _tmp0_ = self->priv->_dictionaries; gee_collection_clear ((GeeCollection*) _tmp0_); _g_object_unref0 (self->priv->_dictionaries); _g_object_unref0 (self->priv->_candidates); _g_object_unref0 (self->priv->state_stack); _g_object_unref0 (self->priv->handlers); _g_free0 (self->priv->_preedit); G_OBJECT_CLASS (skk_context_parent_class)->finalize (obj); } /** * Main entry point of libskk. * * Context represents an input context with support for SKK * kana-kanji conversion method. */ GType skk_context_get_type (void) { static volatile gsize skk_context_type_id__volatile = 0; if (g_once_init_enter (&skk_context_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkContextClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_context_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkContext), 0, (GInstanceInitFunc) skk_context_instance_init, NULL }; GType skk_context_type_id; skk_context_type_id = g_type_register_static (G_TYPE_OBJECT, "SkkContext", &g_define_type_info, 0); g_once_init_leave (&skk_context_type_id__volatile, skk_context_type_id); } return skk_context_type_id__volatile; } static void _vala_skk_context_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { SkkContext * self; self = SKK_CONTEXT (object); switch (property_id) { case SKK_CONTEXT_CANDIDATES: g_value_set_object (value, skk_context_get_candidates (self)); break; case SKK_CONTEXT_INPUT_MODE: g_value_set_enum (value, skk_context_get_input_mode (self)); break; case SKK_CONTEXT_AUTO_START_HENKAN_KEYWORDS: { int length; g_value_set_boxed (value, skk_context_get_auto_start_henkan_keywords (self, &length)); } break; case SKK_CONTEXT_EGG_LIKE_NEWLINE: g_value_set_boolean (value, skk_context_get_egg_like_newline (self)); break; case SKK_CONTEXT_PERIOD_STYLE: g_value_set_enum (value, skk_context_get_period_style (self)); break; case SKK_CONTEXT_TYPING_RULE: g_value_set_object (value, skk_context_get_typing_rule (self)); break; case SKK_CONTEXT_KEY_EVENT_FILTER: g_value_take_object (value, skk_context_get_key_event_filter (self)); break; case SKK_CONTEXT_PREEDIT: g_value_set_string (value, skk_context_get_preedit (self)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } static void _vala_skk_context_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { SkkContext * self; self = SKK_CONTEXT (object); switch (property_id) { case SKK_CONTEXT_INPUT_MODE: skk_context_set_input_mode (self, g_value_get_enum (value)); break; case SKK_CONTEXT_AUTO_START_HENKAN_KEYWORDS: { gpointer boxed; boxed = g_value_get_boxed (value); skk_context_set_auto_start_henkan_keywords (self, boxed, g_strv_length (boxed)); } break; case SKK_CONTEXT_EGG_LIKE_NEWLINE: skk_context_set_egg_like_newline (self, g_value_get_boolean (value)); break; case SKK_CONTEXT_PERIOD_STYLE: skk_context_set_period_style (self, g_value_get_enum (value)); break; case SKK_CONTEXT_TYPING_RULE: skk_context_set_typing_rule (self, g_value_get_object (value)); break; case SKK_CONTEXT_PREEDIT: skk_context_set_preedit (self, g_value_get_string (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { int i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); } } } } static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) { _vala_array_destroy (array, array_length, destroy_func); g_free (array); } libskk-1.0.0/libskk/key-event-filter.c0000664000076400007640000002634612016556644014563 00000000000000/* key-event-filter.c generated by valac 0.16.0, the Vala compiler * generated from key-event-filter.vala, do not modify */ /* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ #include #include #define SKK_TYPE_KEY_EVENT_FILTER (skk_key_event_filter_get_type ()) #define SKK_KEY_EVENT_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KEY_EVENT_FILTER, SkkKeyEventFilter)) #define SKK_KEY_EVENT_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KEY_EVENT_FILTER, SkkKeyEventFilterClass)) #define SKK_IS_KEY_EVENT_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KEY_EVENT_FILTER)) #define SKK_IS_KEY_EVENT_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KEY_EVENT_FILTER)) #define SKK_KEY_EVENT_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KEY_EVENT_FILTER, SkkKeyEventFilterClass)) typedef struct _SkkKeyEventFilter SkkKeyEventFilter; typedef struct _SkkKeyEventFilterClass SkkKeyEventFilterClass; typedef struct _SkkKeyEventFilterPrivate SkkKeyEventFilterPrivate; #define SKK_TYPE_KEY_EVENT (skk_key_event_get_type ()) #define SKK_KEY_EVENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_KEY_EVENT, SkkKeyEvent)) #define SKK_KEY_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_KEY_EVENT, SkkKeyEventClass)) #define SKK_IS_KEY_EVENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_KEY_EVENT)) #define SKK_IS_KEY_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_KEY_EVENT)) #define SKK_KEY_EVENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_KEY_EVENT, SkkKeyEventClass)) typedef struct _SkkKeyEvent SkkKeyEvent; typedef struct _SkkKeyEventClass SkkKeyEventClass; #define SKK_TYPE_SIMPLE_KEY_EVENT_FILTER (skk_simple_key_event_filter_get_type ()) #define SKK_SIMPLE_KEY_EVENT_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_SIMPLE_KEY_EVENT_FILTER, SkkSimpleKeyEventFilter)) #define SKK_SIMPLE_KEY_EVENT_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_SIMPLE_KEY_EVENT_FILTER, SkkSimpleKeyEventFilterClass)) #define SKK_IS_SIMPLE_KEY_EVENT_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_SIMPLE_KEY_EVENT_FILTER)) #define SKK_IS_SIMPLE_KEY_EVENT_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_SIMPLE_KEY_EVENT_FILTER)) #define SKK_SIMPLE_KEY_EVENT_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_SIMPLE_KEY_EVENT_FILTER, SkkSimpleKeyEventFilterClass)) typedef struct _SkkSimpleKeyEventFilter SkkSimpleKeyEventFilter; typedef struct _SkkSimpleKeyEventFilterClass SkkSimpleKeyEventFilterClass; typedef struct _SkkSimpleKeyEventFilterPrivate SkkSimpleKeyEventFilterPrivate; #define SKK_TYPE_MODIFIER_TYPE (skk_modifier_type_get_type ()) struct _SkkKeyEventFilter { GObject parent_instance; SkkKeyEventFilterPrivate * priv; }; struct _SkkKeyEventFilterClass { GObjectClass parent_class; SkkKeyEvent* (*filter_key_event) (SkkKeyEventFilter* self, SkkKeyEvent* key); void (*reset) (SkkKeyEventFilter* self); }; struct _SkkSimpleKeyEventFilter { SkkKeyEventFilter parent_instance; SkkSimpleKeyEventFilterPrivate * priv; }; struct _SkkSimpleKeyEventFilterClass { SkkKeyEventFilterClass parent_class; }; typedef enum { SKK_MODIFIER_TYPE_NONE = 0, SKK_MODIFIER_TYPE_SHIFT_MASK = 1 << 0, SKK_MODIFIER_TYPE_LOCK_MASK = 1 << 1, SKK_MODIFIER_TYPE_CONTROL_MASK = 1 << 2, SKK_MODIFIER_TYPE_MOD1_MASK = 1 << 3, SKK_MODIFIER_TYPE_MOD2_MASK = 1 << 4, SKK_MODIFIER_TYPE_MOD3_MASK = 1 << 5, SKK_MODIFIER_TYPE_MOD4_MASK = 1 << 6, SKK_MODIFIER_TYPE_MOD5_MASK = 1 << 7, SKK_MODIFIER_TYPE_LSHIFT_MASK = 1 << 22, SKK_MODIFIER_TYPE_RSHIFT_MASK = 1 << 23, SKK_MODIFIER_TYPE_USLEEP_MASK = 1 << 24, SKK_MODIFIER_TYPE_SUPER_MASK = 1 << 26, SKK_MODIFIER_TYPE_HYPER_MASK = 1 << 27, SKK_MODIFIER_TYPE_META_MASK = 1 << 28, SKK_MODIFIER_TYPE_RELEASE_MASK = 1 << 30 } SkkModifierType; static gpointer skk_key_event_filter_parent_class = NULL; static gpointer skk_simple_key_event_filter_parent_class = NULL; GType skk_key_event_filter_get_type (void) G_GNUC_CONST; GType skk_key_event_get_type (void) G_GNUC_CONST; enum { SKK_KEY_EVENT_FILTER_DUMMY_PROPERTY }; SkkKeyEvent* skk_key_event_filter_filter_key_event (SkkKeyEventFilter* self, SkkKeyEvent* key); static SkkKeyEvent* skk_key_event_filter_real_filter_key_event (SkkKeyEventFilter* self, SkkKeyEvent* key); void skk_key_event_filter_reset (SkkKeyEventFilter* self); static void skk_key_event_filter_real_reset (SkkKeyEventFilter* self); SkkKeyEventFilter* skk_key_event_filter_construct (GType object_type); GType skk_simple_key_event_filter_get_type (void) G_GNUC_CONST; enum { SKK_SIMPLE_KEY_EVENT_FILTER_DUMMY_PROPERTY }; static SkkKeyEvent* skk_simple_key_event_filter_real_filter_key_event (SkkKeyEventFilter* base, SkkKeyEvent* key); GType skk_modifier_type_get_type (void) G_GNUC_CONST; SkkModifierType skk_key_event_get_modifiers (SkkKeyEvent* self); void skk_key_event_set_modifiers (SkkKeyEvent* self, SkkModifierType value); SkkSimpleKeyEventFilter* skk_simple_key_event_filter_new (void); SkkSimpleKeyEventFilter* skk_simple_key_event_filter_construct (GType object_type); /** * Convert a key event to another. * * @param key a key event * * @return a KeyEvent or `null` if the result cannot be * fetched immediately */ static SkkKeyEvent* skk_key_event_filter_real_filter_key_event (SkkKeyEventFilter* self, SkkKeyEvent* key) { g_critical ("Type `%s' does not implement abstract method `skk_key_event_filter_filter_key_event'", g_type_name (G_TYPE_FROM_INSTANCE (self))); return NULL; } SkkKeyEvent* skk_key_event_filter_filter_key_event (SkkKeyEventFilter* self, SkkKeyEvent* key) { g_return_val_if_fail (self != NULL, NULL); return SKK_KEY_EVENT_FILTER_GET_CLASS (self)->filter_key_event (self, key); } /** * Reset the filter. */ static void skk_key_event_filter_real_reset (SkkKeyEventFilter* self) { } void skk_key_event_filter_reset (SkkKeyEventFilter* self) { g_return_if_fail (self != NULL); SKK_KEY_EVENT_FILTER_GET_CLASS (self)->reset (self); } SkkKeyEventFilter* skk_key_event_filter_construct (GType object_type) { SkkKeyEventFilter * self = NULL; self = (SkkKeyEventFilter*) g_object_new (object_type, NULL); return self; } static void skk_key_event_filter_class_init (SkkKeyEventFilterClass * klass) { skk_key_event_filter_parent_class = g_type_class_peek_parent (klass); SKK_KEY_EVENT_FILTER_CLASS (klass)->filter_key_event = skk_key_event_filter_real_filter_key_event; SKK_KEY_EVENT_FILTER_CLASS (klass)->reset = skk_key_event_filter_real_reset; /** * Signal emitted when a new key event is generated in the filter. * * @param key a key event */ g_signal_new ("forwarded", SKK_TYPE_KEY_EVENT_FILTER, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, SKK_TYPE_KEY_EVENT); } static void skk_key_event_filter_instance_init (SkkKeyEventFilter * self) { } /** * Base class of a key event filter. */ GType skk_key_event_filter_get_type (void) { static volatile gsize skk_key_event_filter_type_id__volatile = 0; if (g_once_init_enter (&skk_key_event_filter_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkKeyEventFilterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_key_event_filter_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkKeyEventFilter), 0, (GInstanceInitFunc) skk_key_event_filter_instance_init, NULL }; GType skk_key_event_filter_type_id; skk_key_event_filter_type_id = g_type_register_static (G_TYPE_OBJECT, "SkkKeyEventFilter", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); g_once_init_leave (&skk_key_event_filter_type_id__volatile, skk_key_event_filter_type_id); } return skk_key_event_filter_type_id__volatile; } /** * {@inheritDoc} */ static gpointer _g_object_ref0 (gpointer self) { return self ? g_object_ref (self) : NULL; } static SkkKeyEvent* skk_simple_key_event_filter_real_filter_key_event (SkkKeyEventFilter* base, SkkKeyEvent* key) { SkkSimpleKeyEventFilter * self; SkkKeyEvent* result = NULL; SkkKeyEvent* _tmp0_; SkkModifierType _tmp1_; SkkModifierType _tmp2_; SkkKeyEvent* _tmp3_; SkkKeyEvent* _tmp4_; SkkModifierType _tmp5_; SkkModifierType _tmp6_; SkkKeyEvent* _tmp7_; SkkKeyEvent* _tmp8_; self = (SkkSimpleKeyEventFilter*) base; g_return_val_if_fail (key != NULL, NULL); _tmp0_ = key; _tmp1_ = skk_key_event_get_modifiers (_tmp0_); _tmp2_ = _tmp1_; if ((_tmp2_ & SKK_MODIFIER_TYPE_RELEASE_MASK) != 0) { result = NULL; return result; } _tmp3_ = key; _tmp4_ = key; _tmp5_ = skk_key_event_get_modifiers (_tmp4_); _tmp6_ = _tmp5_; skk_key_event_set_modifiers (_tmp4_, _tmp6_ & (~SKK_MODIFIER_TYPE_SHIFT_MASK)); _tmp7_ = key; _tmp8_ = _g_object_ref0 (_tmp7_); result = _tmp8_; return result; } SkkSimpleKeyEventFilter* skk_simple_key_event_filter_construct (GType object_type) { SkkSimpleKeyEventFilter * self = NULL; self = (SkkSimpleKeyEventFilter*) skk_key_event_filter_construct (object_type); return self; } SkkSimpleKeyEventFilter* skk_simple_key_event_filter_new (void) { return skk_simple_key_event_filter_construct (SKK_TYPE_SIMPLE_KEY_EVENT_FILTER); } static void skk_simple_key_event_filter_class_init (SkkSimpleKeyEventFilterClass * klass) { skk_simple_key_event_filter_parent_class = g_type_class_peek_parent (klass); SKK_KEY_EVENT_FILTER_CLASS (klass)->filter_key_event = skk_simple_key_event_filter_real_filter_key_event; } static void skk_simple_key_event_filter_instance_init (SkkSimpleKeyEventFilter * self) { } /** * Simple implementation of a key event filter. * * This class is rarely used in programs but specified as "filter" * property in rule metadata. * * @see Rule */ GType skk_simple_key_event_filter_get_type (void) { static volatile gsize skk_simple_key_event_filter_type_id__volatile = 0; if (g_once_init_enter (&skk_simple_key_event_filter_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkSimpleKeyEventFilterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_simple_key_event_filter_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkSimpleKeyEventFilter), 0, (GInstanceInitFunc) skk_simple_key_event_filter_instance_init, NULL }; GType skk_simple_key_event_filter_type_id; skk_simple_key_event_filter_type_id = g_type_register_static (SKK_TYPE_KEY_EVENT_FILTER, "SkkSimpleKeyEventFilter", &g_define_type_info, 0); g_once_init_leave (&skk_simple_key_event_filter_type_id__volatile, skk_simple_key_event_filter_type_id); } return skk_simple_key_event_filter_type_id__volatile; } libskk-1.0.0/libskk/encoding.vala0000664000076400007640000001055711713647777013670 00000000000000/* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ namespace Skk { // XXX: we use Vala string to represent byte array, assuming that // it does not contain null element class EncodingConverter : Object { static const int BUFSIZ = 4096; static const string INTERNAL_ENCODING = "UTF-8"; static const Entry ENCODING_TO_CODING_SYSTEM_RULE[] = { { "UTF-8", "utf-8" }, { "EUC-JP", "euc-jp" }, { "Shift_JIS", "shift_jis" }, { "ISO-2022-JP", "iso-2022-jp" }, { "EUC-JISX0213", "euc-jisx0213" }, { "EUC-JISX0213", "euc-jis-2004" }, { "SHIFT_JISX0213", "shift_jis-2004" } }; static Regex coding_cookie_regex; static construct { try { coding_cookie_regex = new Regex ( "-\\*-.*[ \t]coding:[ \t]*([^ \t;]+?)[ \t;].*-\\*-"); } catch (GLib.RegexError e) { assert_not_reached (); } } internal static string? extract_coding_system (string line) { MatchInfo info = null; if (coding_cookie_regex.match (line, 0, out info)) { return info.fetch (1); } return null; } internal string? get_coding_system () { foreach (var entry in ENCODING_TO_CODING_SYSTEM_RULE) { if (entry.key == encoding) { return entry.value; } } return null; } internal string encoding { get; private set; } CharsetConverter encoder; CharsetConverter decoder; internal EncodingConverter (string encoding) throws GLib.Error { this.encoding = encoding; encoder = new CharsetConverter (encoding, INTERNAL_ENCODING); decoder = new CharsetConverter (INTERNAL_ENCODING, encoding); } internal EncodingConverter.from_coding_system (string coding) throws GLib.Error { foreach (var entry in ENCODING_TO_CODING_SYSTEM_RULE) { if (entry.value == coding) { this (entry.key); return; } } assert_not_reached (); } string convert (CharsetConverter converter, string str) throws GLib.Error { uint8[] inbuf = str.data; uint8[] outbuf = new uint8[BUFSIZ]; StringBuilder builder = new StringBuilder (); size_t total_bytes_read = 0; while (total_bytes_read < inbuf.length) { size_t bytes_read, bytes_written; // FIXME: we could split inbuf to small segments (< // BUFSIZ) here to reduce memory copy. However it // requires proper error handling when the end of // segmented buffer lies across a UTF-8 character // boundary. converter.convert (inbuf[total_bytes_read : inbuf.length], outbuf, ConverterFlags.INPUT_AT_END, out bytes_read, out bytes_written); for (int i = 0; i < bytes_written; i++) builder.append_c ((char)outbuf[i]); total_bytes_read += bytes_read; } return builder.str; } internal string encode (string internal_str) throws GLib.Error { return convert (encoder, internal_str); } internal string decode (string external_str) throws GLib.Error { return convert (decoder, external_str); } } } libskk-1.0.0/libskk/skkserv.c0000664000076400007640000011044312016556644013051 00000000000000/* skkserv.c generated by valac 0.16.0, the Vala compiler * generated from skkserv.vala, do not modify */ /* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ #include #include #include #include #include #define SKK_TYPE_DICT (skk_dict_get_type ()) #define SKK_DICT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_DICT, SkkDict)) #define SKK_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_DICT, SkkDictClass)) #define SKK_IS_DICT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_DICT)) #define SKK_IS_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_DICT)) #define SKK_DICT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_DICT, SkkDictClass)) typedef struct _SkkDict SkkDict; typedef struct _SkkDictClass SkkDictClass; typedef struct _SkkDictPrivate SkkDictPrivate; #define SKK_TYPE_CANDIDATE (skk_candidate_get_type ()) #define SKK_CANDIDATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_CANDIDATE, SkkCandidate)) #define SKK_CANDIDATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_CANDIDATE, SkkCandidateClass)) #define SKK_IS_CANDIDATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_CANDIDATE)) #define SKK_IS_CANDIDATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_CANDIDATE)) #define SKK_CANDIDATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_CANDIDATE, SkkCandidateClass)) typedef struct _SkkCandidate SkkCandidate; typedef struct _SkkCandidateClass SkkCandidateClass; #define SKK_TYPE_SKK_SERV (skk_skk_serv_get_type ()) #define SKK_SKK_SERV(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_SKK_SERV, SkkSkkServ)) #define SKK_SKK_SERV_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_SKK_SERV, SkkSkkServClass)) #define SKK_IS_SKK_SERV(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_SKK_SERV)) #define SKK_IS_SKK_SERV_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_SKK_SERV)) #define SKK_SKK_SERV_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_SKK_SERV, SkkSkkServClass)) typedef struct _SkkSkkServ SkkSkkServ; typedef struct _SkkSkkServClass SkkSkkServClass; typedef struct _SkkSkkServPrivate SkkSkkServPrivate; #define SKK_TYPE_ENCODING_CONVERTER (skk_encoding_converter_get_type ()) #define SKK_ENCODING_CONVERTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_ENCODING_CONVERTER, SkkEncodingConverter)) #define SKK_ENCODING_CONVERTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_ENCODING_CONVERTER, SkkEncodingConverterClass)) #define SKK_IS_ENCODING_CONVERTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_ENCODING_CONVERTER)) #define SKK_IS_ENCODING_CONVERTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_ENCODING_CONVERTER)) #define SKK_ENCODING_CONVERTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_ENCODING_CONVERTER, SkkEncodingConverterClass)) typedef struct _SkkEncodingConverter SkkEncodingConverter; typedef struct _SkkEncodingConverterClass SkkEncodingConverterClass; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) #define _g_free0(var) (var = (g_free (var), NULL)) #define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL))) #define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL))) typedef enum { SKK_SKK_SERV_ERROR_NOT_READABLE, SKK_SKK_SERV_ERROR_INVALID_RESPONSE } SkkSkkServError; #define SKK_SKK_SERV_ERROR skk_skk_serv_error_quark () struct _SkkDict { GObject parent_instance; SkkDictPrivate * priv; }; struct _SkkDictClass { GObjectClass parent_class; void (*reload) (SkkDict* self, GError** error); SkkCandidate** (*lookup) (SkkDict* self, const gchar* midasi, gboolean okuri, int* result_length1); gchar** (*complete) (SkkDict* self, const gchar* midasi, int* result_length1); gboolean (*select_candidate) (SkkDict* self, SkkCandidate* candidate); gboolean (*purge_candidate) (SkkDict* self, SkkCandidate* candidate); void (*save) (SkkDict* self, GError** error); gboolean (*get_read_only) (SkkDict* self); }; struct _SkkSkkServ { SkkDict parent_instance; SkkSkkServPrivate * priv; }; struct _SkkSkkServClass { SkkDictClass parent_class; }; struct _SkkSkkServPrivate { GSocketConnection* connection; guint8 buffer[4096]; gchar* host; guint16 port; SkkEncodingConverter* converter; }; static gpointer skk_skk_serv_parent_class = NULL; GQuark skk_skk_serv_error_quark (void); GType skk_dict_get_type (void) G_GNUC_CONST; GType skk_candidate_get_type (void) G_GNUC_CONST; GType skk_skk_serv_get_type (void) G_GNUC_CONST; GType skk_encoding_converter_get_type (void) G_GNUC_CONST; #define SKK_SKK_SERV_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SKK_TYPE_SKK_SERV, SkkSkkServPrivate)) enum { SKK_SKK_SERV_DUMMY_PROPERTY, SKK_SKK_SERV_READ_ONLY }; static void skk_skk_serv_close_connection (SkkSkkServ* self); static void skk_skk_serv_real_reload (SkkDict* base, GError** error); static gchar* skk_skk_serv_read_response (SkkSkkServ* self, GError** error); static SkkCandidate** skk_skk_serv_real_lookup (SkkDict* base, const gchar* midasi, gboolean okuri, int* result_length1); gchar* skk_encoding_converter_encode (SkkEncodingConverter* self, const gchar* internal_str, GError** error); gchar* skk_encoding_converter_decode (SkkEncodingConverter* self, const gchar* external_str, GError** error); SkkCandidate** skk_dict_split_candidates (SkkDict* self, const gchar* midasi, gboolean okuri, const gchar* line, int* result_length1); static gchar** skk_skk_serv_real_complete (SkkDict* base, const gchar* midasi, int* result_length1); SkkSkkServ* skk_skk_serv_new (const gchar* host, guint16 port, const gchar* encoding, GError** error); SkkSkkServ* skk_skk_serv_construct (GType object_type, const gchar* host, guint16 port, const gchar* encoding, GError** error); SkkDict* skk_dict_construct (GType object_type); SkkEncodingConverter* skk_encoding_converter_new (const gchar* encoding, GError** error); SkkEncodingConverter* skk_encoding_converter_construct (GType object_type, const gchar* encoding, GError** error); void skk_dict_reload (SkkDict* self, GError** error); static void skk_skk_serv_finalize (GObject* obj); gboolean skk_dict_get_read_only (SkkDict* self); static void _vala_skk_skk_serv_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); static gint _vala_array_length (gpointer array); GQuark skk_skk_serv_error_quark (void) { return g_quark_from_static_string ("skk_skk_serv_error-quark"); } static void skk_skk_serv_close_connection (SkkSkkServ* self) { GSocketConnection* _tmp0_; GError * _inner_error_ = NULL; g_return_if_fail (self != NULL); _tmp0_ = self->priv->connection; if (_tmp0_ != NULL) { { guint8 _tmp1_; gsize bytes_written = 0UL; GSocketConnection* _tmp2_; GOutputStream* _tmp3_; GOutputStream* _tmp4_; gsize _tmp5_ = 0UL; GSocketConnection* _tmp6_; GOutputStream* _tmp7_; GOutputStream* _tmp8_; GSocketConnection* _tmp9_; self->priv->buffer[0] = (guint8) '0'; _tmp1_ = self->priv->buffer[0]; _tmp2_ = self->priv->connection; _tmp3_ = g_io_stream_get_output_stream ((GIOStream*) _tmp2_); _tmp4_ = _tmp3_; g_output_stream_write_all (_tmp4_, self->priv->buffer + 0, (gsize) (1 - 0), &_tmp5_, NULL, &_inner_error_); bytes_written = _tmp5_; if (_inner_error_ != NULL) { goto __catch16_g_error; } _tmp6_ = self->priv->connection; _tmp7_ = g_io_stream_get_output_stream ((GIOStream*) _tmp6_); _tmp8_ = _tmp7_; g_output_stream_flush (_tmp8_, NULL, &_inner_error_); if (_inner_error_ != NULL) { goto __catch16_g_error; } _tmp9_ = self->priv->connection; g_io_stream_close ((GIOStream*) _tmp9_, NULL, &_inner_error_); if (_inner_error_ != NULL) { goto __catch16_g_error; } } goto __finally16; __catch16_g_error: { GError* e = NULL; GError* _tmp10_; const gchar* _tmp11_; e = _inner_error_; _inner_error_ = NULL; _tmp10_ = e; _tmp11_ = _tmp10_->message; g_warning ("skkserv.vala:43: can't close skkserv: %s", _tmp11_); _g_error_free0 (e); } __finally16: if (_inner_error_ != NULL) { g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } _g_object_unref0 (self->priv->connection); self->priv->connection = NULL; } } /** * {@inheritDoc} */ static void skk_skk_serv_real_reload (SkkDict* base, GError** error) { SkkSkkServ * self; GError * _inner_error_ = NULL; self = (SkkSkkServ*) base; skk_skk_serv_close_connection (self); { GSocketClient* _tmp0_; GSocketClient* client; GSocketClient* _tmp1_; const gchar* _tmp2_; guint16 _tmp3_; GSocketConnection* _tmp4_ = NULL; GSocketConnection* _tmp5_; guint8 _tmp6_; gsize bytes_written = 0UL; GSocketConnection* _tmp7_; GOutputStream* _tmp8_; GOutputStream* _tmp9_; gsize _tmp10_ = 0UL; GSocketConnection* _tmp11_; GOutputStream* _tmp12_; GOutputStream* _tmp13_; GSocketConnection* _tmp14_; GInputStream* _tmp15_; GInputStream* _tmp16_; gssize _tmp17_ = 0L; gssize len; gssize _tmp18_; _tmp0_ = g_socket_client_new (); client = _tmp0_; _tmp1_ = client; _tmp2_ = self->priv->host; _tmp3_ = self->priv->port; _tmp4_ = g_socket_client_connect_to_host (_tmp1_, _tmp2_, _tmp3_, NULL, &_inner_error_); _tmp5_ = _tmp4_; if (_inner_error_ != NULL) { _g_object_unref0 (client); goto __catch17_g_error; } _g_object_unref0 (self->priv->connection); self->priv->connection = _tmp5_; self->priv->buffer[0] = (guint8) '2'; _tmp6_ = self->priv->buffer[0]; _tmp7_ = self->priv->connection; _tmp8_ = g_io_stream_get_output_stream ((GIOStream*) _tmp7_); _tmp9_ = _tmp8_; g_output_stream_write_all (_tmp9_, self->priv->buffer + 0, (gsize) (1 - 0), &_tmp10_, NULL, &_inner_error_); bytes_written = _tmp10_; if (_inner_error_ != NULL) { _g_object_unref0 (client); goto __catch17_g_error; } _tmp11_ = self->priv->connection; _tmp12_ = g_io_stream_get_output_stream ((GIOStream*) _tmp11_); _tmp13_ = _tmp12_; g_output_stream_flush (_tmp13_, NULL, &_inner_error_); if (_inner_error_ != NULL) { _g_object_unref0 (client); goto __catch17_g_error; } _tmp14_ = self->priv->connection; _tmp15_ = g_io_stream_get_input_stream ((GIOStream*) _tmp14_); _tmp16_ = _tmp15_; _tmp17_ = g_input_stream_read (_tmp16_, self->priv->buffer, (gsize) 4096, NULL, &_inner_error_); len = _tmp17_; if (_inner_error_ != NULL) { _g_object_unref0 (client); goto __catch17_g_error; } _tmp18_ = len; if (_tmp18_ <= ((gssize) 0)) { skk_skk_serv_close_connection (self); } _g_object_unref0 (client); } goto __finally17; __catch17_g_error: { GError* e = NULL; const gchar* _tmp19_; guint16 _tmp20_; GError* _tmp21_; const gchar* _tmp22_; e = _inner_error_; _inner_error_ = NULL; _tmp19_ = self->priv->host; _tmp20_ = self->priv->port; _tmp21_ = e; _tmp22_ = _tmp21_->message; g_warning ("skkserv.vala:67: can't open skkserv at %s:%u: %s", _tmp19_, (guint) _tmp20_, _tmp22_); skk_skk_serv_close_connection (self); _g_error_free0 (e); } __finally17: if (_inner_error_ != NULL) { g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } } static gint string_index_of_char (const gchar* self, gunichar c, gint start_index) { gint result = 0; gint _tmp0_; gunichar _tmp1_; gchar* _tmp2_ = NULL; gchar* _result_; gchar* _tmp3_; g_return_val_if_fail (self != NULL, 0); _tmp0_ = start_index; _tmp1_ = c; _tmp2_ = g_utf8_strchr (((gchar*) self) + _tmp0_, (gssize) (-1), _tmp1_); _result_ = _tmp2_; _tmp3_ = _result_; if (_tmp3_ != NULL) { gchar* _tmp4_; _tmp4_ = _result_; result = (gint) (_tmp4_ - ((gchar*) self)); return result; } else { result = -1; return result; } } static gchar* string_slice (const gchar* self, glong start, glong end) { gchar* result = NULL; gint _tmp0_; gint _tmp1_; glong string_length; glong _tmp2_; glong _tmp5_; gboolean _tmp8_ = FALSE; glong _tmp9_; gboolean _tmp12_; gboolean _tmp13_ = FALSE; glong _tmp14_; gboolean _tmp17_; glong _tmp18_; glong _tmp19_; glong _tmp20_; glong _tmp21_; glong _tmp22_; gchar* _tmp23_ = NULL; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = strlen (self); _tmp1_ = _tmp0_; string_length = (glong) _tmp1_; _tmp2_ = start; if (_tmp2_ < ((glong) 0)) { glong _tmp3_; glong _tmp4_; _tmp3_ = string_length; _tmp4_ = start; start = _tmp3_ + _tmp4_; } _tmp5_ = end; if (_tmp5_ < ((glong) 0)) { glong _tmp6_; glong _tmp7_; _tmp6_ = string_length; _tmp7_ = end; end = _tmp6_ + _tmp7_; } _tmp9_ = start; if (_tmp9_ >= ((glong) 0)) { glong _tmp10_; glong _tmp11_; _tmp10_ = start; _tmp11_ = string_length; _tmp8_ = _tmp10_ <= _tmp11_; } else { _tmp8_ = FALSE; } _tmp12_ = _tmp8_; g_return_val_if_fail (_tmp12_, NULL); _tmp14_ = end; if (_tmp14_ >= ((glong) 0)) { glong _tmp15_; glong _tmp16_; _tmp15_ = end; _tmp16_ = string_length; _tmp13_ = _tmp15_ <= _tmp16_; } else { _tmp13_ = FALSE; } _tmp17_ = _tmp13_; g_return_val_if_fail (_tmp17_, NULL); _tmp18_ = start; _tmp19_ = end; g_return_val_if_fail (_tmp18_ <= _tmp19_, NULL); _tmp20_ = start; _tmp21_ = end; _tmp22_ = start; _tmp23_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) (_tmp21_ - _tmp22_)); result = _tmp23_; return result; } static gchar* skk_skk_serv_read_response (SkkSkkServ* self, GError** error) { gchar* result = NULL; GString* _tmp0_; GString* builder; GString* _tmp21_; const gchar* _tmp22_; gint _tmp23_ = 0; gint index; gint _tmp24_; GString* _tmp26_; const gchar* _tmp27_; gint _tmp28_; gchar* _tmp29_ = NULL; GError * _inner_error_ = NULL; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = g_string_new (""); builder = _tmp0_; while (TRUE) { GString* _tmp1_; const gchar* _tmp2_; gint _tmp3_ = 0; GSocketConnection* _tmp4_; GInputStream* _tmp5_; GInputStream* _tmp6_; gssize _tmp7_ = 0L; gssize len; gssize _tmp8_; _tmp1_ = builder; _tmp2_ = _tmp1_->str; _tmp3_ = string_index_of_char (_tmp2_, (gunichar) '\n', 0); if (!(_tmp3_ < 0)) { break; } _tmp4_ = self->priv->connection; _tmp5_ = g_io_stream_get_input_stream ((GIOStream*) _tmp4_); _tmp6_ = _tmp5_; _tmp7_ = g_input_stream_read (_tmp6_, self->priv->buffer, (gsize) 4096, NULL, &_inner_error_); len = _tmp7_; if (_inner_error_ != NULL) { if ((_inner_error_->domain == SKK_SKK_SERV_ERROR) || (_inner_error_->domain == G_IO_ERROR)) { g_propagate_error (error, _inner_error_); _g_string_free0 (builder); return NULL; } else { _g_string_free0 (builder); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } } _tmp8_ = len; if (_tmp8_ < ((gssize) 0)) { GError* _tmp9_; _tmp9_ = g_error_new_literal (SKK_SKK_SERV_ERROR, SKK_SKK_SERV_ERROR_NOT_READABLE, "read error"); _inner_error_ = _tmp9_; if ((_inner_error_->domain == SKK_SKK_SERV_ERROR) || (_inner_error_->domain == G_IO_ERROR)) { g_propagate_error (error, _inner_error_); _g_string_free0 (builder); return NULL; } else { _g_string_free0 (builder); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } } else { gssize _tmp10_; _tmp10_ = len; if (_tmp10_ == ((gssize) 0)) { break; } else { gssize _tmp11_; _tmp11_ = len; if (_tmp11_ > ((gssize) 0)) { guint8 _tmp12_; gssize _tmp14_; gchar* _tmp15_ = NULL; gchar* data; gint data_length1; gint _data_size_; gchar* _tmp16_; gint _tmp16__length1; gssize _tmp17_; gint _tmp18_; GString* _tmp19_; gchar* _tmp20_; gint _tmp20__length1; _tmp12_ = self->priv->buffer[0]; if (_tmp12_ != ((guint8) '1')) { GError* _tmp13_; _tmp13_ = g_error_new_literal (SKK_SKK_SERV_ERROR, SKK_SKK_SERV_ERROR_INVALID_RESPONSE, "invalid response code"); _inner_error_ = _tmp13_; if ((_inner_error_->domain == SKK_SKK_SERV_ERROR) || (_inner_error_->domain == G_IO_ERROR)) { g_propagate_error (error, _inner_error_); _g_string_free0 (builder); return NULL; } else { _g_string_free0 (builder); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } } _tmp14_ = len; _tmp15_ = g_new0 (gchar, _tmp14_ + 1); data = _tmp15_; data_length1 = _tmp14_ + 1; _data_size_ = data_length1; _tmp16_ = data; _tmp16__length1 = data_length1; _tmp17_ = len; memcpy (_tmp16_, self->priv->buffer, (gsize) _tmp17_); _tmp18_ = data_length1; data_length1 = _tmp18_ - 1; _tmp19_ = builder; _tmp20_ = data; _tmp20__length1 = data_length1; g_string_append (_tmp19_, (const gchar*) _tmp20_); data = (g_free (data), NULL); } } } } _tmp21_ = builder; _tmp22_ = _tmp21_->str; _tmp23_ = string_index_of_char (_tmp22_, (gunichar) '\n', 0); index = _tmp23_; _tmp24_ = index; if (_tmp24_ < 0) { GError* _tmp25_; _tmp25_ = g_error_new_literal (SKK_SKK_SERV_ERROR, SKK_SKK_SERV_ERROR_INVALID_RESPONSE, "missing newline"); _inner_error_ = _tmp25_; if ((_inner_error_->domain == SKK_SKK_SERV_ERROR) || (_inner_error_->domain == G_IO_ERROR)) { g_propagate_error (error, _inner_error_); _g_string_free0 (builder); return NULL; } else { _g_string_free0 (builder); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } } _tmp26_ = builder; _tmp27_ = _tmp26_->str; _tmp28_ = index; _tmp29_ = string_slice (_tmp27_, (glong) 0, (glong) _tmp28_); result = _tmp29_; _g_string_free0 (builder); return result; } /** * {@inheritDoc} */ static guint8* string_get_data (const gchar* self, int* result_length1) { guint8* result; guint8* res; gint res_length1; gint _res_size_; gint _tmp0_; gint _tmp1_; gint _tmp2_; guint8* _tmp3_; gint _tmp3__length1; guint8* _tmp4_; gint _tmp4__length1; g_return_val_if_fail (self != NULL, NULL); res = (guint8*) self; res_length1 = -1; _res_size_ = res_length1; _tmp0_ = strlen (self); _tmp1_ = _tmp0_; res_length1 = (gint) _tmp1_; _tmp2_ = res_length1; _tmp3_ = res; _tmp3__length1 = res_length1; _tmp4_ = _tmp3_; _tmp4__length1 = _tmp3__length1; if (result_length1) { *result_length1 = _tmp4__length1; } result = _tmp4_; return result; } static SkkCandidate** skk_skk_serv_real_lookup (SkkDict* base, const gchar* midasi, gboolean okuri, int* result_length1) { SkkSkkServ * self; SkkCandidate** result = NULL; GSocketConnection* _tmp0_; gchar* _midasi = NULL; GError * _inner_error_ = NULL; self = (SkkSkkServ*) base; g_return_val_if_fail (midasi != NULL, NULL); _tmp0_ = self->priv->connection; if (_tmp0_ == NULL) { SkkCandidate** _tmp1_ = NULL; SkkCandidate** _tmp2_; gint _tmp2__length1; _tmp1_ = g_new0 (SkkCandidate*, 0 + 1); _tmp2_ = _tmp1_; _tmp2__length1 = 0; if (result_length1) { *result_length1 = _tmp2__length1; } result = _tmp2_; return result; } { SkkEncodingConverter* _tmp3_; const gchar* _tmp4_; gchar* _tmp5_ = NULL; gchar* _tmp6_; _tmp3_ = self->priv->converter; _tmp4_ = midasi; _tmp5_ = skk_encoding_converter_encode (_tmp3_, _tmp4_, &_inner_error_); _tmp6_ = _tmp5_; if (_inner_error_ != NULL) { goto __catch18_g_error; } _g_free0 (_midasi); _midasi = _tmp6_; } goto __finally18; __catch18_g_error: { GError* e = NULL; SkkCandidate** _tmp7_ = NULL; SkkCandidate** _tmp8_; gint _tmp8__length1; e = _inner_error_; _inner_error_ = NULL; _tmp7_ = g_new0 (SkkCandidate*, 0 + 1); _tmp8_ = _tmp7_; _tmp8__length1 = 0; if (result_length1) { *result_length1 = _tmp8__length1; } result = _tmp8_; _g_error_free0 (e); _g_free0 (_midasi); return result; } __finally18: if (_inner_error_ != NULL) { _g_free0 (_midasi); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } { gsize bytes_written = 0UL; GSocketConnection* _tmp9_; GOutputStream* _tmp10_; GOutputStream* _tmp11_; const gchar* _tmp12_; gchar* _tmp13_ = NULL; gchar* _tmp14_; guint8* _tmp15_; gint _tmp15__length1; guint8* _tmp16_; gint _tmp16__length1; gsize _tmp17_ = 0UL; GSocketConnection* _tmp18_; GOutputStream* _tmp19_; GOutputStream* _tmp20_; gchar* _tmp21_ = NULL; gchar* response; const gchar* _tmp22_; gint _tmp23_; gint _tmp24_; SkkEncodingConverter* _tmp27_; const gchar* _tmp28_; const gchar* _tmp29_; gint _tmp30_; gint _tmp31_; gchar* _tmp32_ = NULL; gchar* _tmp33_; gchar* _tmp34_ = NULL; gchar* _tmp35_; gchar* _tmp36_; const gchar* _tmp37_; gboolean _tmp38_; gchar* _tmp39_; gint _tmp40_ = 0; SkkCandidate** _tmp41_ = NULL; SkkCandidate** _tmp42_; gint _tmp42__length1; SkkCandidate** _tmp43_; gint _tmp43__length1; _tmp9_ = self->priv->connection; _tmp10_ = g_io_stream_get_output_stream ((GIOStream*) _tmp9_); _tmp11_ = _tmp10_; _tmp12_ = _midasi; _tmp13_ = g_strdup_printf ("1%s ", _tmp12_); _tmp14_ = _tmp13_; _tmp15_ = string_get_data (_tmp14_, &_tmp15__length1); _tmp16_ = _tmp15_; _tmp16__length1 = _tmp15__length1; g_output_stream_write_all (_tmp11_, _tmp16_, (gsize) _tmp16__length1, &_tmp17_, NULL, &_inner_error_); bytes_written = _tmp17_; _g_free0 (_tmp14_); if (_inner_error_ != NULL) { if (_inner_error_->domain == SKK_SKK_SERV_ERROR) { goto __catch19_skk_skk_serv_error; } goto __catch19_g_error; } _tmp18_ = self->priv->connection; _tmp19_ = g_io_stream_get_output_stream ((GIOStream*) _tmp18_); _tmp20_ = _tmp19_; g_output_stream_flush (_tmp20_, NULL, &_inner_error_); if (_inner_error_ != NULL) { if (_inner_error_->domain == SKK_SKK_SERV_ERROR) { goto __catch19_skk_skk_serv_error; } goto __catch19_g_error; } _tmp21_ = skk_skk_serv_read_response (self, &_inner_error_); response = _tmp21_; if (_inner_error_ != NULL) { if (_inner_error_->domain == SKK_SKK_SERV_ERROR) { goto __catch19_skk_skk_serv_error; } goto __catch19_g_error; } _tmp22_ = response; _tmp23_ = strlen (_tmp22_); _tmp24_ = _tmp23_; if (_tmp24_ == 0) { SkkCandidate** _tmp25_ = NULL; SkkCandidate** _tmp26_; gint _tmp26__length1; _tmp25_ = g_new0 (SkkCandidate*, 0 + 1); _tmp26_ = _tmp25_; _tmp26__length1 = 0; if (result_length1) { *result_length1 = _tmp26__length1; } result = _tmp26_; _g_free0 (response); _g_free0 (_midasi); return result; } _tmp27_ = self->priv->converter; _tmp28_ = response; _tmp29_ = response; _tmp30_ = strlen (_tmp29_); _tmp31_ = _tmp30_; _tmp32_ = string_slice (_tmp28_, (glong) 1, (glong) _tmp31_); _tmp33_ = _tmp32_; _tmp34_ = skk_encoding_converter_decode (_tmp27_, _tmp33_, &_inner_error_); _tmp35_ = _tmp34_; _g_free0 (_tmp33_); _tmp36_ = _tmp35_; if (_inner_error_ != NULL) { _g_free0 (response); if (_inner_error_->domain == SKK_SKK_SERV_ERROR) { goto __catch19_skk_skk_serv_error; } goto __catch19_g_error; } _tmp37_ = midasi; _tmp38_ = okuri; _tmp39_ = _tmp36_; _tmp41_ = skk_dict_split_candidates ((SkkDict*) self, _tmp37_, _tmp38_, _tmp39_, &_tmp40_); _tmp42_ = _tmp41_; _tmp42__length1 = _tmp40_; _g_free0 (_tmp39_); _tmp43_ = _tmp42_; _tmp43__length1 = _tmp42__length1; if (result_length1) { *result_length1 = _tmp43__length1; } result = _tmp43_; _g_free0 (response); _g_free0 (_midasi); return result; } goto __finally19; __catch19_skk_skk_serv_error: { GError* e = NULL; SkkCandidate** _tmp44_ = NULL; SkkCandidate** _tmp45_; gint _tmp45__length1; e = _inner_error_; _inner_error_ = NULL; _tmp44_ = g_new0 (SkkCandidate*, 0 + 1); _tmp45_ = _tmp44_; _tmp45__length1 = 0; if (result_length1) { *result_length1 = _tmp45__length1; } result = _tmp45_; _g_error_free0 (e); _g_free0 (_midasi); return result; } goto __finally19; __catch19_g_error: { GError* e = NULL; SkkCandidate** _tmp46_ = NULL; SkkCandidate** _tmp47_; gint _tmp47__length1; e = _inner_error_; _inner_error_ = NULL; _tmp46_ = g_new0 (SkkCandidate*, 0 + 1); _tmp47_ = _tmp46_; _tmp47__length1 = 0; if (result_length1) { *result_length1 = _tmp47__length1; } result = _tmp47_; _g_error_free0 (e); _g_free0 (_midasi); return result; } __finally19: _g_free0 (_midasi); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } /** * {@inheritDoc} */ static gchar** skk_skk_serv_real_complete (SkkDict* base, const gchar* midasi, int* result_length1) { SkkSkkServ * self; gchar** result = NULL; GSocketConnection* _tmp0_; gchar* _midasi = NULL; GError * _inner_error_ = NULL; self = (SkkSkkServ*) base; g_return_val_if_fail (midasi != NULL, NULL); _tmp0_ = self->priv->connection; if (_tmp0_ == NULL) { gchar** _tmp1_ = NULL; gchar** _tmp2_; gint _tmp2__length1; _tmp1_ = g_new0 (gchar*, 0 + 1); _tmp2_ = _tmp1_; _tmp2__length1 = 0; if (result_length1) { *result_length1 = _tmp2__length1; } result = _tmp2_; return result; } { SkkEncodingConverter* _tmp3_; const gchar* _tmp4_; gchar* _tmp5_ = NULL; gchar* _tmp6_; _tmp3_ = self->priv->converter; _tmp4_ = midasi; _tmp5_ = skk_encoding_converter_encode (_tmp3_, _tmp4_, &_inner_error_); _tmp6_ = _tmp5_; if (_inner_error_ != NULL) { goto __catch20_g_error; } _g_free0 (_midasi); _midasi = _tmp6_; } goto __finally20; __catch20_g_error: { GError* e = NULL; gchar** _tmp7_ = NULL; gchar** _tmp8_; gint _tmp8__length1; e = _inner_error_; _inner_error_ = NULL; _tmp7_ = g_new0 (gchar*, 0 + 1); _tmp8_ = _tmp7_; _tmp8__length1 = 0; if (result_length1) { *result_length1 = _tmp8__length1; } result = _tmp8_; _g_error_free0 (e); _g_free0 (_midasi); return result; } __finally20: if (_inner_error_ != NULL) { _g_free0 (_midasi); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } { gsize bytes_written = 0UL; GSocketConnection* _tmp9_; GOutputStream* _tmp10_; GOutputStream* _tmp11_; const gchar* _tmp12_; gchar* _tmp13_ = NULL; gchar* _tmp14_; guint8* _tmp15_; gint _tmp15__length1; guint8* _tmp16_; gint _tmp16__length1; gsize _tmp17_ = 0UL; GSocketConnection* _tmp18_; GOutputStream* _tmp19_; GOutputStream* _tmp20_; gchar* _tmp21_ = NULL; gchar* response; const gchar* _tmp22_; gint _tmp23_; gint _tmp24_; SkkEncodingConverter* _tmp27_; const gchar* _tmp28_; gchar* _tmp29_ = NULL; gchar* _tmp30_; gchar* _tmp31_ = NULL; gchar* _tmp32_; gchar* _tmp33_; gchar* _tmp34_; gchar** _tmp35_; gchar** _tmp36_ = NULL; gchar** _tmp37_; gint _tmp37__length1; gchar** _tmp38_; gint _tmp38__length1; _tmp9_ = self->priv->connection; _tmp10_ = g_io_stream_get_output_stream ((GIOStream*) _tmp9_); _tmp11_ = _tmp10_; _tmp12_ = _midasi; _tmp13_ = g_strdup_printf ("4%s ", _tmp12_); _tmp14_ = _tmp13_; _tmp15_ = string_get_data (_tmp14_, &_tmp15__length1); _tmp16_ = _tmp15_; _tmp16__length1 = _tmp15__length1; g_output_stream_write_all (_tmp11_, _tmp16_, (gsize) _tmp16__length1, &_tmp17_, NULL, &_inner_error_); bytes_written = _tmp17_; _g_free0 (_tmp14_); if (_inner_error_ != NULL) { if (_inner_error_->domain == SKK_SKK_SERV_ERROR) { goto __catch21_skk_skk_serv_error; } goto __catch21_g_error; } _tmp18_ = self->priv->connection; _tmp19_ = g_io_stream_get_output_stream ((GIOStream*) _tmp18_); _tmp20_ = _tmp19_; g_output_stream_flush (_tmp20_, NULL, &_inner_error_); if (_inner_error_ != NULL) { if (_inner_error_->domain == SKK_SKK_SERV_ERROR) { goto __catch21_skk_skk_serv_error; } goto __catch21_g_error; } _tmp21_ = skk_skk_serv_read_response (self, &_inner_error_); response = _tmp21_; if (_inner_error_ != NULL) { if (_inner_error_->domain == SKK_SKK_SERV_ERROR) { goto __catch21_skk_skk_serv_error; } goto __catch21_g_error; } _tmp22_ = response; _tmp23_ = strlen (_tmp22_); _tmp24_ = _tmp23_; if (_tmp24_ < 2) { gchar** _tmp25_ = NULL; gchar** _tmp26_; gint _tmp26__length1; _tmp25_ = g_new0 (gchar*, 0 + 1); _tmp26_ = _tmp25_; _tmp26__length1 = 0; if (result_length1) { *result_length1 = _tmp26__length1; } result = _tmp26_; _g_free0 (response); _g_free0 (_midasi); return result; } _tmp27_ = self->priv->converter; _tmp28_ = response; _tmp29_ = string_slice (_tmp28_, (glong) 2, (glong) (-1)); _tmp30_ = _tmp29_; _tmp31_ = skk_encoding_converter_decode (_tmp27_, _tmp30_, &_inner_error_); _tmp32_ = _tmp31_; _g_free0 (_tmp30_); _tmp33_ = _tmp32_; if (_inner_error_ != NULL) { _g_free0 (response); if (_inner_error_->domain == SKK_SKK_SERV_ERROR) { goto __catch21_skk_skk_serv_error; } goto __catch21_g_error; } _tmp34_ = _tmp33_; _tmp36_ = _tmp35_ = g_strsplit (_tmp34_, "/", 0); _tmp37_ = _tmp36_; _tmp37__length1 = _vala_array_length (_tmp35_); _g_free0 (_tmp34_); _tmp38_ = _tmp37_; _tmp38__length1 = _tmp37__length1; if (result_length1) { *result_length1 = _tmp38__length1; } result = _tmp38_; _g_free0 (response); _g_free0 (_midasi); return result; } goto __finally21; __catch21_skk_skk_serv_error: { GError* e = NULL; GError* _tmp39_; const gchar* _tmp40_; gchar** _tmp41_ = NULL; gchar** _tmp42_; gint _tmp42__length1; e = _inner_error_; _inner_error_ = NULL; _tmp39_ = e; _tmp40_ = _tmp39_->message; g_warning ("skkserv.vala:158: server completion failed %s", _tmp40_); _tmp41_ = g_new0 (gchar*, 0 + 1); _tmp42_ = _tmp41_; _tmp42__length1 = 0; if (result_length1) { *result_length1 = _tmp42__length1; } result = _tmp42_; _g_error_free0 (e); _g_free0 (_midasi); return result; } goto __finally21; __catch21_g_error: { GError* e = NULL; GError* _tmp43_; const gchar* _tmp44_; gchar** _tmp45_ = NULL; gchar** _tmp46_; gint _tmp46__length1; e = _inner_error_; _inner_error_ = NULL; _tmp43_ = e; _tmp44_ = _tmp43_->message; g_warning ("skkserv.vala:161: server completion failed %s", _tmp44_); _tmp45_ = g_new0 (gchar*, 0 + 1); _tmp46_ = _tmp45_; _tmp46__length1 = 0; if (result_length1) { *result_length1 = _tmp46__length1; } result = _tmp46_; _g_error_free0 (e); _g_free0 (_midasi); return result; } __finally21: _g_free0 (_midasi); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } /** * Create a new SkkServ. * * @param host host to connect * @param port port at the host * @param encoding encoding to convert text over network traffic * * @return a new SkkServ. * @throws GLib.Error if opening a connection is failed */ SkkSkkServ* skk_skk_serv_construct (GType object_type, const gchar* host, guint16 port, const gchar* encoding, GError** error) { SkkSkkServ * self = NULL; const gchar* _tmp0_; gchar* _tmp1_; guint16 _tmp2_; const gchar* _tmp3_; SkkEncodingConverter* _tmp4_; SkkEncodingConverter* _tmp5_; GError * _inner_error_ = NULL; g_return_val_if_fail (host != NULL, NULL); g_return_val_if_fail (encoding != NULL, NULL); self = (SkkSkkServ*) skk_dict_construct (object_type); _tmp0_ = host; _tmp1_ = g_strdup (_tmp0_); _g_free0 (self->priv->host); self->priv->host = _tmp1_; _tmp2_ = port; self->priv->port = _tmp2_; _tmp3_ = encoding; _tmp4_ = skk_encoding_converter_new (_tmp3_, &_inner_error_); _tmp5_ = _tmp4_; if (_inner_error_ != NULL) { g_propagate_error (error, _inner_error_); _g_object_unref0 (self); return NULL; } _g_object_unref0 (self->priv->converter); self->priv->converter = _tmp5_; skk_dict_reload ((SkkDict*) self, &_inner_error_); if (_inner_error_ != NULL) { g_propagate_error (error, _inner_error_); _g_object_unref0 (self); return NULL; } return self; } SkkSkkServ* skk_skk_serv_new (const gchar* host, guint16 port, const gchar* encoding, GError** error) { return skk_skk_serv_construct (SKK_TYPE_SKK_SERV, host, port, encoding, error); } static gboolean skk_skk_serv_real_get_read_only (SkkDict* base) { gboolean result; SkkSkkServ* self; self = (SkkSkkServ*) base; result = TRUE; return result; } static void skk_skk_serv_class_init (SkkSkkServClass * klass) { skk_skk_serv_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (SkkSkkServPrivate)); SKK_DICT_CLASS (klass)->reload = skk_skk_serv_real_reload; SKK_DICT_CLASS (klass)->lookup = skk_skk_serv_real_lookup; SKK_DICT_CLASS (klass)->complete = skk_skk_serv_real_complete; SKK_DICT_CLASS (klass)->get_read_only = skk_skk_serv_real_get_read_only; G_OBJECT_CLASS (klass)->get_property = _vala_skk_skk_serv_get_property; G_OBJECT_CLASS (klass)->finalize = skk_skk_serv_finalize; /** * {@inheritDoc} */ g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_SKK_SERV_READ_ONLY, g_param_spec_boolean ("read-only", "read-only", "read-only", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE)); } static void skk_skk_serv_instance_init (SkkSkkServ * self) { self->priv = SKK_SKK_SERV_GET_PRIVATE (self); } static void skk_skk_serv_finalize (GObject* obj) { SkkSkkServ * self; self = SKK_SKK_SERV (obj); skk_skk_serv_close_connection (self); _g_object_unref0 (self->priv->connection); _g_free0 (self->priv->host); _g_object_unref0 (self->priv->converter); G_OBJECT_CLASS (skk_skk_serv_parent_class)->finalize (obj); } /** * Network based Implementation of Dict. */ GType skk_skk_serv_get_type (void) { static volatile gsize skk_skk_serv_type_id__volatile = 0; if (g_once_init_enter (&skk_skk_serv_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkSkkServClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_skk_serv_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkSkkServ), 0, (GInstanceInitFunc) skk_skk_serv_instance_init, NULL }; GType skk_skk_serv_type_id; skk_skk_serv_type_id = g_type_register_static (SKK_TYPE_DICT, "SkkSkkServ", &g_define_type_info, 0); g_once_init_leave (&skk_skk_serv_type_id__volatile, skk_skk_serv_type_id); } return skk_skk_serv_type_id__volatile; } static void _vala_skk_skk_serv_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { SkkSkkServ * self; self = SKK_SKK_SERV (object); switch (property_id) { case SKK_SKK_SERV_READ_ONLY: g_value_set_boolean (value, skk_dict_get_read_only ((SkkDict*) self)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } static gint _vala_array_length (gpointer array) { int length; length = 0; if (array) { while (((gpointer*) array)[length]) { length++; } } return length; } libskk-1.0.0/libskk/dict.vala0000664000076400007640000001246711703506543013007 00000000000000/* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ namespace Skk { /** * Base abstract class of dictionaries. */ public abstract class Dict : Object { /** * Parse a line consisting of candidates separated by "/". * * @param line a line consisting of candidates * @return an array of Candidates */ protected Candidate[] split_candidates (string midasi, bool okuri, string line) { var strv = line.strip ().slice (1, -1).split ("/"); Candidate[] candidates = new Candidate[strv.length]; for (int i = 0; i < strv.length; i++) { var text_annotation = strv[i].split (";", 2); string text, annotation; if (text_annotation.length == 2) { text = text_annotation[0]; annotation = text_annotation[1]; } else { text = strv[i]; annotation = null; } candidates[i] = new Candidate (midasi, okuri, text, annotation); } return candidates; } /** * Format an array of Candidates to be saved in a dictionary file. * * @param candidates an array of Candidate * @return a string */ protected string join_candidates (Candidate[] candidates) { var strv = new string[candidates.length]; for (int i = 0; i < candidates.length; i++) { strv[i] = candidates[i].to_string (); } return "/" + string.joinv ("/", strv) + "/"; } /** * Reload the dictionary. * * @throws GLib.Error when reading the dictionary failed. */ public abstract void reload () throws GLib.Error; /** * Lookup candidates in the dictionary. * * @param midasi a midasi (title) string to lookup * @param okuri whether to search okuri-ari entries or * okuri-nasi entries * * @return an array of Candidate */ public abstract Candidate[] lookup (string midasi, bool okuri = false); /** * Return an array of strings which matches midasi. * * @param midasi a midasi (title) string to lookup * * @return an array of strings */ public abstract string[] complete (string midasi); /** * Flag to indicate whether the dictionary is read only. */ public abstract bool read_only { get; } /** * Select a candidate in the dictionary. * * @param candidate an Candidate * * @return `true` if the dictionary is modified, `false` otherwise. */ public virtual bool select_candidate (Candidate candidate) { // FIXME: throw an error when the dictionary is read only return false; } /** * Purge a candidate in the dictionary. * * @param candidate an Candidate * * @return `true` if the dictionary is modified, `false` otherwise. */ public virtual bool purge_candidate (Candidate candidate) { // FIXME: throw an error when the dictionary is read only return false; } /** * Save the dictionary on disk. * * @throws GLib.Error if the dictionary cannot be saved. */ public virtual void save () throws GLib.Error { // FIXME: throw an error when the dictionary is read only } } /** * Null implementation of Dict. */ public class EmptyDict : Dict { /** * {@inheritDoc} */ public override void reload () throws GLib.Error { } /** * {@inheritDoc} */ public override Candidate[] lookup (string midasi, bool okuri = false) { return new Candidate[0]; } /** * {@inheritDoc} */ public override string[] complete (string midasi) { return new string[0]; } /** * {@inheritDoc} */ public override bool read_only { get { return true; } } } errordomain SkkDictError { NOT_READABLE, MALFORMED_INPUT } } libskk-1.0.0/libskk/rom-kana.vala0000664000076400007640000002456611742736127013602 00000000000000// -*- coding: utf-8 -*- /* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ using Gee; namespace Skk { struct RomKanaEntry { string rom; string carryover; // we can't simply use string kana[3] here because array // initializer in Vala does not support it string hiragana; string katakana; string hankaku_katakana; internal string get_kana (KanaMode kana_mode) { if (kana_mode == KanaMode.HIRAGANA) return hiragana; else if (kana_mode == KanaMode.KATAKANA) return katakana; else if (kana_mode == KanaMode.HANKAKU_KATAKANA) return hankaku_katakana; return ""; } } static const string[] PERIOD_RULE = {"。ã€", ".,", "。,", ".ã€"}; class RomKanaNode : Object { internal RomKanaEntry? entry; internal weak RomKanaNode parent; internal RomKanaNode children[128]; internal char c; internal uint n_children = 0; internal bool valid[128]; internal RomKanaNode (RomKanaEntry? entry) { this.entry = entry; for (int i = 0; i < children.length; i++) { children[i] = null; } } internal void insert (string key, RomKanaEntry entry) { var node = this; for (var i = 0; i < key.length; i++) { if (node.children[key[i]] == null) { var child = node.children[key[i]] = new RomKanaNode (null); child.parent = node; } node.n_children++; node = node.children[key[i]]; valid[key[i]] = true; } node.entry = entry; } #if 0 RomKanaNode? lookup_node (string key) { var node = this; for (var i = 0; i < key.length; i++) { node = node.children[key[i]]; if (node == null) return null; } return node; } internal RomKanaEntry? lookup (string key) { var node = lookup_node (key); if (node == null) return null; return node.entry; } void remove_child (RomKanaNode node) { children[node.c] = null; if (--n_children == 0 && parent != null) { parent.remove_child (this); } } internal void @remove (string key) { var node = lookup_node (key); if (node != null) { return_if_fail (node.parent != null); node.parent.remove_child (node); } } #endif } /** * Type representing kana scripts. */ public enum KanaMode { /** * Hiragana like "ã‚ã„ã†...". */ HIRAGANA, /** * Katakana like "アイウ...". */ KATAKANA, /** * Half-width katakana like "アイウ...". */ HANKAKU_KATAKANA } /** * Type to specify how "." and "," are converted. */ public enum PeriodStyle { /** * Use "。" and "ã€" for "." and ",". */ JA_JA, /** * Use "." and "," for "." and ",". */ EN_EN, /** * Use "。" and "," for "." and ",". */ JA_EN, /** * Use "." and "ã€" for "." and ",". */ EN_JA } /** * Romaji-to-kana converter. */ public class RomKanaConverter : Object { RomKanaMapFile _rule; internal RomKanaMapFile rule { get { return _rule; } set { _rule = value; current_node = _rule.root_node; } } RomKanaNode current_node; public KanaMode kana_mode { get; set; default = KanaMode.HIRAGANA; } public PeriodStyle period_style { get; set; default = PeriodStyle.JA_JA; } StringBuilder _output = new StringBuilder (); StringBuilder _preedit = new StringBuilder (); public string output { get { return _output.str; } internal set { _output.assign (value); } } public string preedit { get { return _preedit.str; } } static const string[] NN = { "ã‚“", "ン", "ï¾" }; public RomKanaConverter () { try { _rule = new RomKanaMapFile (Rule.find_rule ("default")); current_node = _rule.root_node; } catch (RuleParseError e) { warning ("can't find default rom-kana rule: %s", e.message); assert_not_reached (); } } public bool is_valid (unichar uc) { if (uc > 128) return false; return _rule.root_node.valid[(int)uc]; } /** * Output "nn" if preedit ends with "n". */ public bool output_nn_if_any () { if (_preedit.str == "n") { _output.append (NN[kana_mode]); _preedit.erase (); current_node = rule.root_node; return true; } return false; } /** * Append text to the internal buffer. * * @param text a string */ public void append_text (string text) { int index = 0; unichar c; while (text.get_next_char (ref index, out c)) { append (c); } } /** * Append a character to the internal buffer. * * @param uc an ASCII character * * @return `true` if the character is handled, `false` otherwise */ public bool append (unichar uc) { var child_node = current_node.children[uc]; if (child_node == null) { // no such transition path in trie var retval = output_nn_if_any (); // XXX: index_of_char does not work with '\0' var index = uc != '\0' ? ".,".index_of_char (uc) : -1; if (index >= 0) { index = PERIOD_RULE[period_style].index_of_nth_char (index); unichar period = PERIOD_RULE[period_style].get_char (index); _output.append_unichar (period); _preedit.erase (); current_node = rule.root_node; return true; } else if (rule.root_node.children[uc] == null) { _output.append_unichar (uc); _preedit.erase (); current_node = rule.root_node; // there may be "NN" output return retval; } else { // abondon current preedit and restart lookup from // the root with uc _preedit.erase (); current_node = rule.root_node; return append (uc); } } else if (child_node.n_children > 0) { // node is not a terminal _preedit.append_unichar (uc); current_node = child_node; return true; } else { _output.append (child_node.entry.get_kana (kana_mode)); _preedit.erase (); current_node = rule.root_node; for (int i = 0; i < child_node.entry.carryover.length; i++) { append (child_node.entry.carryover[i]); } return true; } } /** * Check if a character will be consumed by the current conversion. * * @param uc an ASCII character * @param preedit_only only checks if preedit is active * @param no_carryover return false if there will be carryover * @return `true` if the character can be consumed */ public bool can_consume (unichar uc, bool preedit_only = false, bool no_carryover = true) { if (preedit_only && _preedit.len == 0) return false; var child_node = current_node.children[uc]; if (child_node == null) return false; if (no_carryover && child_node.entry != null && child_node.entry.carryover != "") return false; return true; } /** * Reset the internal state of the converter. */ public void reset () { _output.erase (); _preedit.erase (); current_node = rule.root_node; } /** * Delete the trailing character from the internal buffer. * * @return `true` if any character is removed, `false` otherwise */ public bool delete () { if (_preedit.len > 0) { current_node = current_node.parent; if (current_node == null) current_node = rule.root_node; _preedit.truncate ( _preedit.str.index_of_nth_char ( _preedit.str.char_count () - 1)); return true; } if (_output.len > 0) { _output.truncate ( _output.str.index_of_nth_char ( _output.str.char_count () - 1)); return true; } return false; } } } libskk-1.0.0/libskk/user-dict.c0000664000076400007640000017520612016556644013270 00000000000000/* user-dict.c generated by valac 0.16.0, the Vala compiler * generated from user-dict.vala, do not modify */ /* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ #include #include #include #include #include #include #include #define SKK_TYPE_DICT (skk_dict_get_type ()) #define SKK_DICT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_DICT, SkkDict)) #define SKK_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_DICT, SkkDictClass)) #define SKK_IS_DICT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_DICT)) #define SKK_IS_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_DICT)) #define SKK_DICT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_DICT, SkkDictClass)) typedef struct _SkkDict SkkDict; typedef struct _SkkDictClass SkkDictClass; typedef struct _SkkDictPrivate SkkDictPrivate; #define SKK_TYPE_CANDIDATE (skk_candidate_get_type ()) #define SKK_CANDIDATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_CANDIDATE, SkkCandidate)) #define SKK_CANDIDATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_CANDIDATE, SkkCandidateClass)) #define SKK_IS_CANDIDATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_CANDIDATE)) #define SKK_IS_CANDIDATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_CANDIDATE)) #define SKK_CANDIDATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_CANDIDATE, SkkCandidateClass)) typedef struct _SkkCandidate SkkCandidate; typedef struct _SkkCandidateClass SkkCandidateClass; #define SKK_TYPE_USER_DICT (skk_user_dict_get_type ()) #define SKK_USER_DICT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_USER_DICT, SkkUserDict)) #define SKK_USER_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_USER_DICT, SkkUserDictClass)) #define SKK_IS_USER_DICT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_USER_DICT)) #define SKK_IS_USER_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_USER_DICT)) #define SKK_USER_DICT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_USER_DICT, SkkUserDictClass)) typedef struct _SkkUserDict SkkUserDict; typedef struct _SkkUserDictClass SkkUserDictClass; typedef struct _SkkUserDictPrivate SkkUserDictPrivate; #define SKK_TYPE_ENCODING_CONVERTER (skk_encoding_converter_get_type ()) #define SKK_ENCODING_CONVERTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_ENCODING_CONVERTER, SkkEncodingConverter)) #define SKK_ENCODING_CONVERTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_ENCODING_CONVERTER, SkkEncodingConverterClass)) #define SKK_IS_ENCODING_CONVERTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_ENCODING_CONVERTER)) #define SKK_IS_ENCODING_CONVERTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_ENCODING_CONVERTER)) #define SKK_ENCODING_CONVERTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_ENCODING_CONVERTER, SkkEncodingConverterClass)) typedef struct _SkkEncodingConverter SkkEncodingConverter; typedef struct _SkkEncodingConverterClass SkkEncodingConverterClass; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) #define _g_free0(var) (var = (g_free (var), NULL)) #define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL))) #define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL))) struct _SkkDict { GObject parent_instance; SkkDictPrivate * priv; }; struct _SkkDictClass { GObjectClass parent_class; void (*reload) (SkkDict* self, GError** error); SkkCandidate** (*lookup) (SkkDict* self, const gchar* midasi, gboolean okuri, int* result_length1); gchar** (*complete) (SkkDict* self, const gchar* midasi, int* result_length1); gboolean (*select_candidate) (SkkDict* self, SkkCandidate* candidate); gboolean (*purge_candidate) (SkkDict* self, SkkCandidate* candidate); void (*save) (SkkDict* self, GError** error); gboolean (*get_read_only) (SkkDict* self); }; struct _SkkUserDict { SkkDict parent_instance; SkkUserDictPrivate * priv; }; struct _SkkUserDictClass { SkkDictClass parent_class; }; struct _SkkUserDictPrivate { GFile* file; gchar* etag; SkkEncodingConverter* converter; GeeMap* okuri_ari_entries; GeeMap* okuri_nasi_entries; gchar* midasi_history[128]; }; typedef enum { SKK_SKK_DICT_ERROR_NOT_READABLE, SKK_SKK_DICT_ERROR_MALFORMED_INPUT } SkkSkkDictError; #define SKK_SKK_DICT_ERROR skk_skk_dict_error_quark () static gpointer skk_user_dict_parent_class = NULL; GType skk_dict_get_type (void) G_GNUC_CONST; GType skk_candidate_get_type (void) G_GNUC_CONST; GType skk_user_dict_get_type (void) G_GNUC_CONST; GType skk_encoding_converter_get_type (void) G_GNUC_CONST; #define SKK_USER_DICT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SKK_TYPE_USER_DICT, SkkUserDictPrivate)) enum { SKK_USER_DICT_DUMMY_PROPERTY, SKK_USER_DICT_READ_ONLY }; GQuark skk_skk_dict_error_quark (void); static void skk_user_dict_load (SkkUserDict* self, GError** error); static guint8* _vala_array_dup2 (guint8* self, int length); gchar* skk_encoding_converter_extract_coding_system (const gchar* line); SkkEncodingConverter* skk_encoding_converter_new_from_coding_system (const gchar* coding, GError** error); SkkEncodingConverter* skk_encoding_converter_construct_from_coding_system (GType object_type, const gchar* coding, GError** error); gchar* skk_encoding_converter_decode (SkkEncodingConverter* self, const gchar* external_str, GError** error); SkkCandidate** skk_dict_split_candidates (SkkDict* self, const gchar* midasi, gboolean okuri, const gchar* line, int* result_length1); static void skk_user_dict_real_reload (SkkDict* base, GError** error); static gint skk_user_dict_compare_entry_asc (GeeMapEntry* a, GeeMapEntry* b); static gint skk_user_dict_compare_entry_dsc (GeeMapEntry* a, GeeMapEntry* b); static void skk_user_dict_write_entries (SkkUserDict* self, GString* builder, GeeList* entries); gchar* skk_dict_join_candidates (SkkDict* self, SkkCandidate** candidates, int candidates_length1); static void skk_user_dict_real_save (SkkDict* base, GError** error); gchar* skk_encoding_converter_get_coding_system (SkkEncodingConverter* self); gchar* skk_encoding_converter_encode (SkkEncodingConverter* self, const gchar* internal_str, GError** error); static GeeMap* skk_user_dict_get_entries (SkkUserDict* self, gboolean okuri); static SkkCandidate** skk_user_dict_real_lookup (SkkDict* base, const gchar* midasi, gboolean okuri, int* result_length1); static gchar** skk_user_dict_real_complete (SkkDict* base, const gchar* midasi, int* result_length1); static gboolean skk_user_dict_real_select_candidate (SkkDict* base, SkkCandidate* candidate); const gchar* skk_candidate_get_midasi (SkkCandidate* self); gboolean skk_candidate_get_okuri (SkkCandidate* self); const gchar* skk_candidate_get_text (SkkCandidate* self); static gboolean skk_user_dict_real_purge_candidate (SkkDict* base, SkkCandidate* candidate); SkkUserDict* skk_user_dict_new (const gchar* path, const gchar* encoding, GError** error); SkkUserDict* skk_user_dict_construct (GType object_type, const gchar* path, const gchar* encoding, GError** error); SkkDict* skk_dict_construct (GType object_type); SkkEncodingConverter* skk_encoding_converter_new (const gchar* encoding, GError** error); SkkEncodingConverter* skk_encoding_converter_construct (GType object_type, const gchar* encoding, GError** error); void skk_dict_reload (SkkDict* self, GError** error); static void skk_user_dict_finalize (GObject* obj); gboolean skk_dict_get_read_only (SkkDict* self); static void _vala_skk_user_dict_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func); static guint8* _vala_array_dup2 (guint8* self, int length) { return g_memdup (self, length * sizeof (guint8)); } static gpointer _g_object_ref0 (gpointer self) { return self ? g_object_ref (self) : NULL; } static gint string_index_of (const gchar* self, const gchar* needle, gint start_index) { gint result = 0; gint _tmp0_; const gchar* _tmp1_; gchar* _tmp2_ = NULL; gchar* _result_; gchar* _tmp3_; g_return_val_if_fail (self != NULL, 0); g_return_val_if_fail (needle != NULL, 0); _tmp0_ = start_index; _tmp1_ = needle; _tmp2_ = strstr (((gchar*) self) + _tmp0_, (gchar*) _tmp1_); _result_ = _tmp2_; _tmp3_ = _result_; if (_tmp3_ != NULL) { gchar* _tmp4_; _tmp4_ = _result_; result = (gint) (_tmp4_ - ((gchar*) self)); return result; } else { result = -1; return result; } } static gchar* string_slice (const gchar* self, glong start, glong end) { gchar* result = NULL; gint _tmp0_; gint _tmp1_; glong string_length; glong _tmp2_; glong _tmp5_; gboolean _tmp8_ = FALSE; glong _tmp9_; gboolean _tmp12_; gboolean _tmp13_ = FALSE; glong _tmp14_; gboolean _tmp17_; glong _tmp18_; glong _tmp19_; glong _tmp20_; glong _tmp21_; glong _tmp22_; gchar* _tmp23_ = NULL; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = strlen (self); _tmp1_ = _tmp0_; string_length = (glong) _tmp1_; _tmp2_ = start; if (_tmp2_ < ((glong) 0)) { glong _tmp3_; glong _tmp4_; _tmp3_ = string_length; _tmp4_ = start; start = _tmp3_ + _tmp4_; } _tmp5_ = end; if (_tmp5_ < ((glong) 0)) { glong _tmp6_; glong _tmp7_; _tmp6_ = string_length; _tmp7_ = end; end = _tmp6_ + _tmp7_; } _tmp9_ = start; if (_tmp9_ >= ((glong) 0)) { glong _tmp10_; glong _tmp11_; _tmp10_ = start; _tmp11_ = string_length; _tmp8_ = _tmp10_ <= _tmp11_; } else { _tmp8_ = FALSE; } _tmp12_ = _tmp8_; g_return_val_if_fail (_tmp12_, NULL); _tmp14_ = end; if (_tmp14_ >= ((glong) 0)) { glong _tmp15_; glong _tmp16_; _tmp15_ = end; _tmp16_ = string_length; _tmp13_ = _tmp15_ <= _tmp16_; } else { _tmp13_ = FALSE; } _tmp17_ = _tmp13_; g_return_val_if_fail (_tmp17_, NULL); _tmp18_ = start; _tmp19_ = end; g_return_val_if_fail (_tmp18_ <= _tmp19_, NULL); _tmp20_ = start; _tmp21_ = end; _tmp22_ = start; _tmp23_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) (_tmp21_ - _tmp22_)); result = _tmp23_; return result; } static void skk_user_dict_load (SkkUserDict* self, GError** error) { guint8* contents = NULL; gint contents_length1 = 0; gint _contents_size_ = 0; guint8* _tmp5_; gint _tmp5__length1; guint8* _tmp6_; gint _tmp6__length1; GDestroyNotify _tmp7_; GMemoryInputStream* _tmp8_; GMemoryInputStream* memory; GMemoryInputStream* _tmp9_; GDataInputStream* _tmp10_; GDataInputStream* data; gchar* line; gsize length = 0UL; GDataInputStream* _tmp11_; gsize _tmp12_ = 0UL; gchar* _tmp13_ = NULL; gchar* _tmp14_; const gchar* _tmp15_; const gchar* _tmp16_; gchar* _tmp17_ = NULL; gchar* coding; const gchar* _tmp18_; GeeMap* entries; GeeMap* _tmp42_; gboolean okuri; GError * _inner_error_ = NULL; g_return_if_fail (self != NULL); { GFile* _tmp0_; guint8* _tmp1_ = NULL; gsize _tmp2_; gchar* _tmp3_ = NULL; _tmp0_ = self->priv->file; g_file_load_contents (_tmp0_, NULL, &_tmp1_, &_tmp2_, &_tmp3_, &_inner_error_); contents = (g_free (contents), NULL); contents = _tmp1_; contents_length1 = _tmp2_; _contents_size_ = contents_length1; _g_free0 (self->priv->etag); self->priv->etag = _tmp3_; if (_inner_error_ != NULL) { goto __catch12_g_error; } } goto __finally12; __catch12_g_error: { GError* e = NULL; GError* _tmp4_; e = _inner_error_; _inner_error_ = NULL; _tmp4_ = g_error_new_literal (SKK_SKK_DICT_ERROR, SKK_SKK_DICT_ERROR_NOT_READABLE, "can't load contents"); _inner_error_ = _tmp4_; _g_error_free0 (e); goto __finally12; } __finally12: if (_inner_error_ != NULL) { if ((_inner_error_->domain == SKK_SKK_DICT_ERROR) || (_inner_error_->domain == G_IO_ERROR)) { g_propagate_error (error, _inner_error_); contents = (g_free (contents), NULL); return; } else { contents = (g_free (contents), NULL); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } } _tmp5_ = contents; _tmp5__length1 = contents_length1; _tmp6_ = (_tmp5_ != NULL) ? _vala_array_dup2 (_tmp5_, _tmp5__length1) : ((gpointer) _tmp5_); _tmp6__length1 = _tmp5__length1; _tmp7_ = g_free; _tmp8_ = (GMemoryInputStream*) g_memory_input_stream_new_from_data (_tmp6_, _tmp6__length1, _tmp7_); memory = _tmp8_; _tmp9_ = memory; _tmp10_ = g_data_input_stream_new ((GInputStream*) _tmp9_); data = _tmp10_; line = NULL; _tmp11_ = data; _tmp13_ = g_data_input_stream_read_line (_tmp11_, &_tmp12_, NULL, &_inner_error_); length = _tmp12_; _tmp14_ = _tmp13_; if (_inner_error_ != NULL) { if ((_inner_error_->domain == SKK_SKK_DICT_ERROR) || (_inner_error_->domain == G_IO_ERROR)) { g_propagate_error (error, _inner_error_); _g_free0 (line); _g_object_unref0 (data); _g_object_unref0 (memory); contents = (g_free (contents), NULL); return; } else { _g_free0 (line); _g_object_unref0 (data); _g_object_unref0 (memory); contents = (g_free (contents), NULL); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } } _g_free0 (line); line = _tmp14_; _tmp15_ = line; if (_tmp15_ == NULL) { _g_free0 (line); _g_object_unref0 (data); _g_object_unref0 (memory); contents = (g_free (contents), NULL); return; } _tmp16_ = line; _tmp17_ = skk_encoding_converter_extract_coding_system (_tmp16_); coding = _tmp17_; _tmp18_ = coding; if (_tmp18_ != NULL) { GDataInputStream* _tmp27_; gsize _tmp28_ = 0UL; gchar* _tmp29_ = NULL; gchar* _tmp30_; const gchar* _tmp31_; { const gchar* _tmp19_; SkkEncodingConverter* _tmp20_; SkkEncodingConverter* _converter; SkkEncodingConverter* _tmp21_; _tmp19_ = coding; _tmp20_ = skk_encoding_converter_new_from_coding_system (_tmp19_, &_inner_error_); _converter = _tmp20_; if (_inner_error_ != NULL) { goto __catch13_g_error; } _tmp21_ = _converter; if (_tmp21_ != NULL) { SkkEncodingConverter* _tmp22_; SkkEncodingConverter* _tmp23_; _tmp22_ = _converter; _tmp23_ = _g_object_ref0 (_tmp22_); _g_object_unref0 (self->priv->converter); self->priv->converter = _tmp23_; } _g_object_unref0 (_converter); } goto __finally13; __catch13_g_error: { GError* e = NULL; const gchar* _tmp24_; GError* _tmp25_; const gchar* _tmp26_; e = _inner_error_; _inner_error_ = NULL; _tmp24_ = coding; _tmp25_ = e; _tmp26_ = _tmp25_->message; g_warning ("user-dict.vala:51: can't create converter from coding system %s: %s", _tmp24_, _tmp26_); _g_error_free0 (e); } __finally13: if (_inner_error_ != NULL) { if ((_inner_error_->domain == SKK_SKK_DICT_ERROR) || (_inner_error_->domain == G_IO_ERROR)) { g_propagate_error (error, _inner_error_); _g_free0 (coding); _g_free0 (line); _g_object_unref0 (data); _g_object_unref0 (memory); contents = (g_free (contents), NULL); return; } else { _g_free0 (coding); _g_free0 (line); _g_object_unref0 (data); _g_object_unref0 (memory); contents = (g_free (contents), NULL); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } } _tmp27_ = data; _tmp29_ = g_data_input_stream_read_line (_tmp27_, &_tmp28_, NULL, &_inner_error_); length = _tmp28_; _tmp30_ = _tmp29_; if (_inner_error_ != NULL) { if ((_inner_error_->domain == SKK_SKK_DICT_ERROR) || (_inner_error_->domain == G_IO_ERROR)) { g_propagate_error (error, _inner_error_); _g_free0 (coding); _g_free0 (line); _g_object_unref0 (data); _g_object_unref0 (memory); contents = (g_free (contents), NULL); return; } else { _g_free0 (coding); _g_free0 (line); _g_object_unref0 (data); _g_object_unref0 (memory); contents = (g_free (contents), NULL); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } } _g_free0 (line); line = _tmp30_; _tmp31_ = line; if (_tmp31_ == NULL) { _g_free0 (coding); _g_free0 (line); _g_object_unref0 (data); _g_object_unref0 (memory); contents = (g_free (contents), NULL); return; } } entries = NULL; while (TRUE) { const gchar* _tmp32_; const gchar* _tmp33_; gboolean _tmp34_ = FALSE; GDataInputStream* _tmp37_; gsize _tmp38_ = 0UL; gchar* _tmp39_ = NULL; gchar* _tmp40_; const gchar* _tmp41_; _tmp32_ = line; if (!(_tmp32_ != NULL)) { break; } _tmp33_ = line; _tmp34_ = g_str_has_prefix (_tmp33_, ";; okuri-ari entries."); if (_tmp34_) { GeeMap* _tmp35_; GeeMap* _tmp36_; _tmp35_ = self->priv->okuri_ari_entries; _tmp36_ = _g_object_ref0 (_tmp35_); _g_object_unref0 (entries); entries = _tmp36_; break; } _tmp37_ = data; _tmp39_ = g_data_input_stream_read_line (_tmp37_, &_tmp38_, NULL, &_inner_error_); length = _tmp38_; _tmp40_ = _tmp39_; if (_inner_error_ != NULL) { if ((_inner_error_->domain == SKK_SKK_DICT_ERROR) || (_inner_error_->domain == G_IO_ERROR)) { g_propagate_error (error, _inner_error_); _g_object_unref0 (entries); _g_free0 (coding); _g_free0 (line); _g_object_unref0 (data); _g_object_unref0 (memory); contents = (g_free (contents), NULL); return; } else { _g_object_unref0 (entries); _g_free0 (coding); _g_free0 (line); _g_object_unref0 (data); _g_object_unref0 (memory); contents = (g_free (contents), NULL); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } } _g_free0 (line); line = _tmp40_; _tmp41_ = line; if (_tmp41_ == NULL) { break; } } _tmp42_ = entries; if (_tmp42_ == NULL) { GError* _tmp43_; _tmp43_ = g_error_new_literal (SKK_SKK_DICT_ERROR, SKK_SKK_DICT_ERROR_MALFORMED_INPUT, "no okuri-ari boundary"); _inner_error_ = _tmp43_; if ((_inner_error_->domain == SKK_SKK_DICT_ERROR) || (_inner_error_->domain == G_IO_ERROR)) { g_propagate_error (error, _inner_error_); _g_object_unref0 (entries); _g_free0 (coding); _g_free0 (line); _g_object_unref0 (data); _g_object_unref0 (memory); contents = (g_free (contents), NULL); return; } else { _g_object_unref0 (entries); _g_free0 (coding); _g_free0 (line); _g_object_unref0 (data); _g_object_unref0 (memory); contents = (g_free (contents), NULL); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } } okuri = TRUE; while (TRUE) { const gchar* _tmp44_; GDataInputStream* _tmp45_; gsize _tmp46_ = 0UL; gchar* _tmp47_ = NULL; gchar* _tmp48_; const gchar* _tmp49_; const gchar* _tmp50_; gboolean _tmp51_ = FALSE; const gchar* _tmp62_; gint _tmp63_ = 0; gint index; gint _tmp64_; const gchar* _tmp67_; gint _tmp68_; gchar* _tmp69_ = NULL; gchar* midasi; const gchar* _tmp70_; gint _tmp71_; const gchar* _tmp72_; gint _tmp73_; gint _tmp74_; gchar* _tmp75_ = NULL; gchar* candidates_str; gboolean _tmp76_ = FALSE; const gchar* _tmp77_; gboolean _tmp78_ = FALSE; gboolean _tmp81_; const gchar* _tmp84_; gboolean _tmp85_; const gchar* _tmp86_; gint _tmp87_ = 0; SkkCandidate** _tmp88_ = NULL; SkkCandidate** candidates; gint candidates_length1; gint _candidates_size_; GeeArrayList* _tmp89_; GeeArrayList* list; SkkCandidate** _tmp90_; gint _tmp90__length1; GeeMap* _tmp94_; const gchar* _tmp95_; GeeArrayList* _tmp96_; _tmp44_ = line; if (!(_tmp44_ != NULL)) { break; } _tmp45_ = data; _tmp47_ = g_data_input_stream_read_line (_tmp45_, &_tmp46_, NULL, &_inner_error_); length = _tmp46_; _tmp48_ = _tmp47_; if (_inner_error_ != NULL) { if ((_inner_error_->domain == SKK_SKK_DICT_ERROR) || (_inner_error_->domain == G_IO_ERROR)) { g_propagate_error (error, _inner_error_); _g_object_unref0 (entries); _g_free0 (coding); _g_free0 (line); _g_object_unref0 (data); _g_object_unref0 (memory); contents = (g_free (contents), NULL); return; } else { _g_object_unref0 (entries); _g_free0 (coding); _g_free0 (line); _g_object_unref0 (data); _g_object_unref0 (memory); contents = (g_free (contents), NULL); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } } _g_free0 (line); line = _tmp48_; _tmp49_ = line; if (_tmp49_ == NULL) { break; } _tmp50_ = line; _tmp51_ = g_str_has_prefix (_tmp50_, ";; okuri-nasi entries."); if (_tmp51_) { GeeMap* _tmp52_; GeeMap* _tmp53_; _tmp52_ = self->priv->okuri_nasi_entries; _tmp53_ = _g_object_ref0 (_tmp52_); _g_object_unref0 (entries); entries = _tmp53_; okuri = FALSE; continue; } { SkkEncodingConverter* _tmp54_; const gchar* _tmp55_; gchar* _tmp56_ = NULL; gchar* _tmp57_; _tmp54_ = self->priv->converter; _tmp55_ = line; _tmp56_ = skk_encoding_converter_decode (_tmp54_, _tmp55_, &_inner_error_); _tmp57_ = _tmp56_; if (_inner_error_ != NULL) { goto __catch14_g_error; } _g_free0 (line); line = _tmp57_; } goto __finally14; __catch14_g_error: { GError* e = NULL; const gchar* _tmp58_; GError* _tmp59_; const gchar* _tmp60_; GError* _tmp61_; e = _inner_error_; _inner_error_ = NULL; _tmp58_ = line; _tmp59_ = e; _tmp60_ = _tmp59_->message; _tmp61_ = g_error_new (SKK_SKK_DICT_ERROR, SKK_SKK_DICT_ERROR_MALFORMED_INPUT, "can't decode line %s: %s", _tmp58_, _tmp60_); _inner_error_ = _tmp61_; _g_error_free0 (e); goto __finally14; } __finally14: if (_inner_error_ != NULL) { if ((_inner_error_->domain == SKK_SKK_DICT_ERROR) || (_inner_error_->domain == G_IO_ERROR)) { g_propagate_error (error, _inner_error_); _g_object_unref0 (entries); _g_free0 (coding); _g_free0 (line); _g_object_unref0 (data); _g_object_unref0 (memory); contents = (g_free (contents), NULL); return; } else { _g_object_unref0 (entries); _g_free0 (coding); _g_free0 (line); _g_object_unref0 (data); _g_object_unref0 (memory); contents = (g_free (contents), NULL); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } } _tmp62_ = line; _tmp63_ = string_index_of (_tmp62_, " ", 0); index = _tmp63_; _tmp64_ = index; if (_tmp64_ < 1) { const gchar* _tmp65_; GError* _tmp66_; _tmp65_ = line; _tmp66_ = g_error_new (SKK_SKK_DICT_ERROR, SKK_SKK_DICT_ERROR_MALFORMED_INPUT, "can't extract midasi from line %s", _tmp65_); _inner_error_ = _tmp66_; if ((_inner_error_->domain == SKK_SKK_DICT_ERROR) || (_inner_error_->domain == G_IO_ERROR)) { g_propagate_error (error, _inner_error_); _g_object_unref0 (entries); _g_free0 (coding); _g_free0 (line); _g_object_unref0 (data); _g_object_unref0 (memory); contents = (g_free (contents), NULL); return; } else { _g_object_unref0 (entries); _g_free0 (coding); _g_free0 (line); _g_object_unref0 (data); _g_object_unref0 (memory); contents = (g_free (contents), NULL); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } } _tmp67_ = line; _tmp68_ = index; _tmp69_ = string_slice (_tmp67_, (glong) 0, (glong) _tmp68_); midasi = _tmp69_; _tmp70_ = line; _tmp71_ = index; _tmp72_ = line; _tmp73_ = strlen (_tmp72_); _tmp74_ = _tmp73_; _tmp75_ = string_slice (_tmp70_, (glong) (_tmp71_ + 1), (glong) _tmp74_); candidates_str = _tmp75_; _tmp77_ = candidates_str; _tmp78_ = g_str_has_prefix (_tmp77_, "/"); if (!_tmp78_) { _tmp76_ = TRUE; } else { const gchar* _tmp79_; gboolean _tmp80_ = FALSE; _tmp79_ = candidates_str; _tmp80_ = g_str_has_suffix (_tmp79_, "/"); _tmp76_ = !_tmp80_; } _tmp81_ = _tmp76_; if (_tmp81_) { const gchar* _tmp82_; GError* _tmp83_; _tmp82_ = candidates_str; _tmp83_ = g_error_new (SKK_SKK_DICT_ERROR, SKK_SKK_DICT_ERROR_MALFORMED_INPUT, "can't parse candidates list %s", _tmp82_); _inner_error_ = _tmp83_; if ((_inner_error_->domain == SKK_SKK_DICT_ERROR) || (_inner_error_->domain == G_IO_ERROR)) { g_propagate_error (error, _inner_error_); _g_free0 (candidates_str); _g_free0 (midasi); _g_object_unref0 (entries); _g_free0 (coding); _g_free0 (line); _g_object_unref0 (data); _g_object_unref0 (memory); contents = (g_free (contents), NULL); return; } else { _g_free0 (candidates_str); _g_free0 (midasi); _g_object_unref0 (entries); _g_free0 (coding); _g_free0 (line); _g_object_unref0 (data); _g_object_unref0 (memory); contents = (g_free (contents), NULL); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } } _tmp84_ = midasi; _tmp85_ = okuri; _tmp86_ = candidates_str; _tmp88_ = skk_dict_split_candidates ((SkkDict*) self, _tmp84_, _tmp85_, _tmp86_, &_tmp87_); candidates = _tmp88_; candidates_length1 = _tmp87_; _candidates_size_ = candidates_length1; _tmp89_ = gee_array_list_new (SKK_TYPE_CANDIDATE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL); list = _tmp89_; _tmp90_ = candidates; _tmp90__length1 = candidates_length1; { SkkCandidate** c_collection = NULL; gint c_collection_length1 = 0; gint _c_collection_size_ = 0; gint c_it = 0; c_collection = _tmp90_; c_collection_length1 = _tmp90__length1; for (c_it = 0; c_it < _tmp90__length1; c_it = c_it + 1) { SkkCandidate* _tmp91_; SkkCandidate* c = NULL; _tmp91_ = _g_object_ref0 (c_collection[c_it]); c = _tmp91_; { GeeArrayList* _tmp92_; SkkCandidate* _tmp93_; _tmp92_ = list; _tmp93_ = c; gee_abstract_collection_add ((GeeAbstractCollection*) _tmp92_, _tmp93_); _g_object_unref0 (c); } } } _tmp94_ = entries; _tmp95_ = midasi; _tmp96_ = list; gee_map_set (_tmp94_, _tmp95_, (GeeList*) _tmp96_); _g_object_unref0 (list); candidates = (_vala_array_free (candidates, candidates_length1, (GDestroyNotify) g_object_unref), NULL); _g_free0 (candidates_str); _g_free0 (midasi); } _g_object_unref0 (entries); _g_free0 (coding); _g_free0 (line); _g_object_unref0 (data); _g_object_unref0 (memory); contents = (g_free (contents), NULL); } /** * {@inheritDoc} */ static void skk_user_dict_real_reload (SkkDict* base, GError** error) { SkkUserDict * self; gchar* _tmp0_; gchar* attributes; GFile* _tmp1_; GFileInfo* _tmp2_ = NULL; GFileInfo* info; const gchar* _tmp3_ = NULL; const gchar* _tmp4_; GError * _inner_error_ = NULL; self = (SkkUserDict*) base; _tmp0_ = g_strdup (G_FILE_ATTRIBUTE_ETAG_VALUE); attributes = _tmp0_; _tmp1_ = self->priv->file; _tmp2_ = g_file_query_info (_tmp1_, attributes, G_FILE_QUERY_INFO_NONE, NULL, &_inner_error_); info = _tmp2_; if (_inner_error_ != NULL) { g_propagate_error (error, _inner_error_); _g_free0 (attributes); return; } _tmp3_ = g_file_info_get_etag (info); _tmp4_ = self->priv->etag; if (g_strcmp0 (_tmp3_, _tmp4_) != 0) { GeeMap* _tmp5_; GeeMap* _tmp6_; _tmp5_ = self->priv->okuri_ari_entries; gee_map_clear (_tmp5_); _tmp6_ = self->priv->okuri_nasi_entries; gee_map_clear (_tmp6_); { skk_user_dict_load (self, &_inner_error_); if (_inner_error_ != NULL) { if (_inner_error_->domain == SKK_SKK_DICT_ERROR) { goto __catch15_skk_skk_dict_error; } if (_inner_error_->domain == G_IO_ERROR) { goto __catch15_g_io_error; } _g_object_unref0 (info); _g_free0 (attributes); g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return; } } goto __finally15; __catch15_skk_skk_dict_error: { GError* e = NULL; GFile* _tmp7_; gchar* _tmp8_ = NULL; gchar* _tmp9_; GError* _tmp10_; const gchar* _tmp11_; e = _inner_error_; _inner_error_ = NULL; _tmp7_ = self->priv->file; _tmp8_ = g_file_get_path (_tmp7_); _tmp9_ = _tmp8_; _tmp10_ = e; _tmp11_ = _tmp10_->message; g_warning ("user-dict.vala:138: error parsing user dictionary %s: %s", _tmp9_, _tmp11_); _g_free0 (_tmp9_); _g_error_free0 (e); } goto __finally15; __catch15_g_io_error: { GError* e = NULL; GFile* _tmp12_; gchar* _tmp13_ = NULL; gchar* _tmp14_; GError* _tmp15_; const gchar* _tmp16_; e = _inner_error_; _inner_error_ = NULL; _tmp12_ = self->priv->file; _tmp13_ = g_file_get_path (_tmp12_); _tmp14_ = _tmp13_; _tmp15_ = e; _tmp16_ = _tmp15_->message; g_warning ("user-dict.vala:141: error reading user dictionary %s: %s", _tmp14_, _tmp16_); _g_free0 (_tmp14_); _g_error_free0 (e); } __finally15: if (_inner_error_ != NULL) { g_propagate_error (error, _inner_error_); _g_object_unref0 (info); _g_free0 (attributes); return; } } _g_object_unref0 (info); _g_free0 (attributes); } static gint skk_user_dict_compare_entry_asc (GeeMapEntry* a, GeeMapEntry* b) { gint result = 0; GCompareFunc _tmp0_; GeeMapEntry* _tmp1_; gconstpointer _tmp2_; const gchar* _tmp3_; GeeMapEntry* _tmp4_; gconstpointer _tmp5_; const gchar* _tmp6_; gint _tmp7_ = 0; g_return_val_if_fail (a != NULL, 0); g_return_val_if_fail (b != NULL, 0); _tmp0_ = g_strcmp0; _tmp1_ = a; _tmp2_ = gee_map_entry_get_key (_tmp1_); _tmp3_ = _tmp2_; _tmp4_ = b; _tmp5_ = gee_map_entry_get_key (_tmp4_); _tmp6_ = _tmp5_; _tmp7_ = _tmp0_ ((const gchar*) _tmp3_, (const gchar*) _tmp6_); result = _tmp7_; return result; } static gint skk_user_dict_compare_entry_dsc (GeeMapEntry* a, GeeMapEntry* b) { gint result = 0; GCompareFunc _tmp0_; GeeMapEntry* _tmp1_; gconstpointer _tmp2_; const gchar* _tmp3_; GeeMapEntry* _tmp4_; gconstpointer _tmp5_; const gchar* _tmp6_; gint _tmp7_ = 0; g_return_val_if_fail (a != NULL, 0); g_return_val_if_fail (b != NULL, 0); _tmp0_ = g_strcmp0; _tmp1_ = b; _tmp2_ = gee_map_entry_get_key (_tmp1_); _tmp3_ = _tmp2_; _tmp4_ = a; _tmp5_ = gee_map_entry_get_key (_tmp4_); _tmp6_ = _tmp5_; _tmp7_ = _tmp0_ ((const gchar*) _tmp3_, (const gchar*) _tmp6_); result = _tmp7_; return result; } static void skk_user_dict_write_entries (SkkUserDict* self, GString* builder, GeeList* entries) { GeeList* _tmp0_; GeeIterator* _tmp1_ = NULL; GeeIterator* iter; GeeIterator* _tmp2_; gboolean _tmp3_ = FALSE; g_return_if_fail (self != NULL); g_return_if_fail (builder != NULL); g_return_if_fail (entries != NULL); _tmp0_ = entries; _tmp1_ = gee_iterable_iterator ((GeeIterable*) _tmp0_); iter = _tmp1_; _tmp2_ = iter; _tmp3_ = gee_iterator_first (_tmp2_); if (_tmp3_) { { gboolean _tmp4_; _tmp4_ = TRUE; while (TRUE) { gboolean _tmp5_; GeeIterator* _tmp8_; gpointer _tmp9_ = NULL; GeeMapEntry* entry; GeeMapEntry* _tmp10_; gconstpointer _tmp11_; const gchar* _tmp12_; GeeMapEntry* _tmp13_; gconstpointer _tmp14_; GeeList* _tmp15_; gint _tmp16_ = 0; gpointer* _tmp17_ = NULL; SkkCandidate** _tmp18_; gint _tmp18__length1; gchar* _tmp19_ = NULL; gchar* _tmp20_; gchar* _tmp21_ = NULL; gchar* _tmp22_; gchar* line; GString* _tmp23_; const gchar* _tmp24_; _tmp5_ = _tmp4_; if (!_tmp5_) { GeeIterator* _tmp6_; gboolean _tmp7_ = FALSE; _tmp6_ = iter; _tmp7_ = gee_iterator_next (_tmp6_); if (!_tmp7_) { break; } } _tmp4_ = FALSE; _tmp8_ = iter; _tmp9_ = gee_iterator_get (_tmp8_); entry = (GeeMapEntry*) _tmp9_; _tmp10_ = entry; _tmp11_ = gee_map_entry_get_key (_tmp10_); _tmp12_ = _tmp11_; _tmp13_ = entry; _tmp14_ = gee_map_entry_get_value (_tmp13_); _tmp15_ = _tmp14_; _tmp17_ = gee_collection_to_array ((GeeCollection*) ((GeeList*) _tmp15_), &_tmp16_); _tmp18_ = _tmp17_; _tmp18__length1 = _tmp16_; _tmp19_ = skk_dict_join_candidates ((SkkDict*) self, _tmp18_, _tmp16_); _tmp20_ = _tmp19_; _tmp21_ = g_strdup_printf ("%s %s\n", (const gchar*) _tmp12_, _tmp20_); _tmp22_ = _tmp21_; _g_free0 (_tmp20_); _tmp18_ = (_vala_array_free (_tmp18_, _tmp18__length1, (GDestroyNotify) g_object_unref), NULL); line = _tmp22_; _tmp23_ = builder; _tmp24_ = line; g_string_append (_tmp23_, _tmp24_); _g_free0 (line); _g_object_unref0 (entry); } } } _g_object_unref0 (iter); } /** * {@inheritDoc} */ static guint8* string_get_data (const gchar* self, int* result_length1) { guint8* result; guint8* res; gint res_length1; gint _res_size_; gint _tmp0_; gint _tmp1_; gint _tmp2_; guint8* _tmp3_; gint _tmp3__length1; guint8* _tmp4_; gint _tmp4__length1; g_return_val_if_fail (self != NULL, NULL); res = (guint8*) self; res_length1 = -1; _res_size_ = res_length1; _tmp0_ = strlen (self); _tmp1_ = _tmp0_; res_length1 = (gint) _tmp1_; _tmp2_ = res_length1; _tmp3_ = res; _tmp3__length1 = res_length1; _tmp4_ = _tmp3_; _tmp4__length1 = _tmp3__length1; if (result_length1) { *result_length1 = _tmp4__length1; } result = _tmp4_; return result; } static void skk_user_dict_real_save (SkkDict* base, GError** error) { SkkUserDict * self; GString* _tmp0_; GString* builder; SkkEncodingConverter* _tmp1_; gchar* _tmp2_ = NULL; gchar* coding; const gchar* _tmp3_; GString* _tmp8_; GeeArrayList* _tmp9_; GeeArrayList* entries; GeeArrayList* _tmp10_; GeeMap* _tmp11_; GeeSet* _tmp12_; GeeSet* _tmp13_; GeeSet* _tmp14_; GeeArrayList* _tmp15_; GString* _tmp16_; GeeArrayList* _tmp17_; GeeArrayList* _tmp18_; GString* _tmp19_; GeeArrayList* _tmp20_; GeeMap* _tmp21_; GeeSet* _tmp22_; GeeSet* _tmp23_; GeeSet* _tmp24_; GeeArrayList* _tmp25_; GString* _tmp26_; GeeArrayList* _tmp27_; GeeArrayList* _tmp28_; SkkEncodingConverter* _tmp29_; GString* _tmp30_; const gchar* _tmp31_; gchar* _tmp32_ = NULL; gchar* contents; GFile* _tmp33_; gchar* _tmp34_ = NULL; gchar* _tmp35_; gchar* _tmp36_ = NULL; gchar* _tmp37_; GFile* _tmp38_; const gchar* _tmp39_; guint8* _tmp40_; gint _tmp40__length1; guint8* _tmp41_; gint _tmp41__length1; const gchar* _tmp42_; gchar* _tmp43_ = NULL; GError * _inner_error_ = NULL; self = (SkkUserDict*) base; _tmp0_ = g_string_new (""); builder = _tmp0_; _tmp1_ = self->priv->converter; _tmp2_ = skk_encoding_converter_get_coding_system (_tmp1_); coding = _tmp2_; _tmp3_ = coding; if (_tmp3_ != NULL) { GString* _tmp4_; const gchar* _tmp5_; gchar* _tmp6_ = NULL; gchar* _tmp7_; _tmp4_ = builder; _tmp5_ = coding; _tmp6_ = g_strdup_printf (";;; -*- coding: %s -*-\n", _tmp5_); _tmp7_ = _tmp6_; g_string_append (_tmp4_, _tmp7_); _g_free0 (_tmp7_); } _tmp8_ = builder; g_string_append (_tmp8_, ";; okuri-ari entries.\n"); _tmp9_ = gee_array_list_new (GEE_MAP_TYPE_ENTRY, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL); entries = _tmp9_; _tmp10_ = entries; _tmp11_ = self->priv->okuri_ari_entries; _tmp12_ = gee_map_get_entries (_tmp11_); _tmp13_ = _tmp12_; _tmp14_ = _tmp13_; gee_abstract_collection_add_all ((GeeAbstractCollection*) _tmp10_, (GeeCollection*) _tmp14_); _g_object_unref0 (_tmp14_); _tmp15_ = entries; gee_list_sort ((GeeList*) _tmp15_, (GCompareFunc) skk_user_dict_compare_entry_dsc); _tmp16_ = builder; _tmp17_ = entries; skk_user_dict_write_entries (self, _tmp16_, (GeeList*) _tmp17_); _tmp18_ = entries; gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp18_); _tmp19_ = builder; g_string_append (_tmp19_, ";; okuri-nasi entries.\n"); _tmp20_ = entries; _tmp21_ = self->priv->okuri_nasi_entries; _tmp22_ = gee_map_get_entries (_tmp21_); _tmp23_ = _tmp22_; _tmp24_ = _tmp23_; gee_abstract_collection_add_all ((GeeAbstractCollection*) _tmp20_, (GeeCollection*) _tmp24_); _g_object_unref0 (_tmp24_); _tmp25_ = entries; gee_list_sort ((GeeList*) _tmp25_, (GCompareFunc) skk_user_dict_compare_entry_asc); _tmp26_ = builder; _tmp27_ = entries; skk_user_dict_write_entries (self, _tmp26_, (GeeList*) _tmp27_); _tmp28_ = entries; gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp28_); _tmp29_ = self->priv->converter; _tmp30_ = builder; _tmp31_ = _tmp30_->str; _tmp32_ = skk_encoding_converter_encode (_tmp29_, _tmp31_, &_inner_error_); contents = _tmp32_; if (_inner_error_ != NULL) { g_propagate_error (error, _inner_error_); _g_object_unref0 (entries); _g_free0 (coding); _g_string_free0 (builder); return; } _tmp33_ = self->priv->file; _tmp34_ = g_file_get_path (_tmp33_); _tmp35_ = _tmp34_; _tmp36_ = g_path_get_dirname (_tmp35_); _tmp37_ = _tmp36_; g_mkdir_with_parents (_tmp37_, 448); _g_free0 (_tmp37_); _g_free0 (_tmp35_); _tmp38_ = self->priv->file; _tmp39_ = contents; _tmp40_ = string_get_data (_tmp39_, &_tmp40__length1); _tmp41_ = _tmp40_; _tmp41__length1 = _tmp40__length1; _tmp42_ = self->priv->etag; g_file_replace_contents (_tmp38_, _tmp41_, (gsize) _tmp41__length1, _tmp42_, FALSE, G_FILE_CREATE_PRIVATE, &_tmp43_, NULL, &_inner_error_); _g_free0 (self->priv->etag); self->priv->etag = _tmp43_; if (_inner_error_ != NULL) { g_propagate_error (error, _inner_error_); _g_free0 (contents); _g_object_unref0 (entries); _g_free0 (coding); _g_string_free0 (builder); return; } _g_free0 (contents); _g_object_unref0 (entries); _g_free0 (coding); _g_string_free0 (builder); } static GeeMap* skk_user_dict_get_entries (SkkUserDict* self, gboolean okuri) { GeeMap* result = NULL; gboolean _tmp0_; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = okuri; if (_tmp0_) { GeeMap* _tmp1_; GeeMap* _tmp2_; _tmp1_ = self->priv->okuri_ari_entries; _tmp2_ = _g_object_ref0 (_tmp1_); result = _tmp2_; return result; } else { GeeMap* _tmp3_; GeeMap* _tmp4_; _tmp3_ = self->priv->okuri_nasi_entries; _tmp4_ = _g_object_ref0 (_tmp3_); result = _tmp4_; return result; } } /** * {@inheritDoc} */ static SkkCandidate** skk_user_dict_real_lookup (SkkDict* base, const gchar* midasi, gboolean okuri, int* result_length1) { SkkUserDict * self; SkkCandidate** result = NULL; gboolean _tmp0_; GeeMap* _tmp1_ = NULL; GeeMap* entries; GeeMap* _tmp2_; const gchar* _tmp3_; gboolean _tmp4_ = FALSE; self = (SkkUserDict*) base; g_return_val_if_fail (midasi != NULL, NULL); _tmp0_ = okuri; _tmp1_ = skk_user_dict_get_entries (self, _tmp0_); entries = _tmp1_; _tmp2_ = entries; _tmp3_ = midasi; _tmp4_ = gee_map_has_key (_tmp2_, _tmp3_); if (_tmp4_) { GeeMap* _tmp5_; const gchar* _tmp6_; gpointer _tmp7_ = NULL; GeeList* _tmp8_; gint _tmp9_ = 0; gpointer* _tmp10_ = NULL; SkkCandidate** _tmp11_; gint _tmp11__length1; SkkCandidate** _tmp12_; gint _tmp12__length1; _tmp5_ = entries; _tmp6_ = midasi; _tmp7_ = gee_map_get (_tmp5_, _tmp6_); _tmp8_ = (GeeList*) _tmp7_; _tmp10_ = gee_collection_to_array ((GeeCollection*) _tmp8_, &_tmp9_); _tmp11_ = _tmp10_; _tmp11__length1 = _tmp9_; _g_object_unref0 (_tmp8_); _tmp12_ = _tmp11_; _tmp12__length1 = _tmp11__length1; if (result_length1) { *result_length1 = _tmp12__length1; } result = _tmp12_; _g_object_unref0 (entries); return result; } else { SkkCandidate** _tmp13_ = NULL; SkkCandidate** _tmp14_; gint _tmp14__length1; _tmp13_ = g_new0 (SkkCandidate*, 0 + 1); _tmp14_ = _tmp13_; _tmp14__length1 = 0; if (result_length1) { *result_length1 = _tmp14__length1; } result = _tmp14_; _g_object_unref0 (entries); return result; } _g_object_unref0 (entries); } /** * {@inheritDoc} */ static gchar** skk_user_dict_real_complete (SkkDict* base, const gchar* midasi, int* result_length1) { SkkUserDict * self; gchar** result = NULL; GeeArrayList* _tmp0_; GeeList* completion; GeeArrayList* _tmp1_; GeeList* keys; GeeList* _tmp2_; GeeMap* _tmp3_; GeeSet* _tmp4_; GeeSet* _tmp5_; GeeSet* _tmp6_; GeeList* _tmp7_; GeeList* _tmp8_; GeeIterator* _tmp9_ = NULL; GeeIterator* iter; GeeIterator* _tmp10_; gboolean _tmp11_ = FALSE; GeeList* _tmp36_; gint _tmp37_ = 0; gpointer* _tmp38_ = NULL; gchar** _tmp39_; gint _tmp39__length1; self = (SkkUserDict*) base; g_return_val_if_fail (midasi != NULL, NULL); _tmp0_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL); completion = (GeeList*) _tmp0_; _tmp1_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL); keys = (GeeList*) _tmp1_; _tmp2_ = keys; _tmp3_ = self->priv->okuri_nasi_entries; _tmp4_ = gee_map_get_keys (_tmp3_); _tmp5_ = _tmp4_; _tmp6_ = _tmp5_; gee_collection_add_all ((GeeCollection*) _tmp2_, (GeeCollection*) _tmp6_); _g_object_unref0 (_tmp6_); _tmp7_ = keys; gee_list_sort (_tmp7_, NULL); _tmp8_ = keys; _tmp9_ = gee_iterable_iterator ((GeeIterable*) _tmp8_); iter = _tmp9_; _tmp10_ = iter; _tmp11_ = gee_iterator_first (_tmp10_); if (_tmp11_) { { gboolean _tmp12_; _tmp12_ = TRUE; while (TRUE) { gboolean _tmp13_; GeeIterator* _tmp16_; gpointer _tmp17_ = NULL; gchar* key; const gchar* _tmp18_; const gchar* _tmp19_; gboolean _tmp20_ = FALSE; _tmp13_ = _tmp12_; if (!_tmp13_) { GeeIterator* _tmp14_; gboolean _tmp15_ = FALSE; _tmp14_ = iter; _tmp15_ = gee_iterator_next (_tmp14_); if (!_tmp15_) { break; } } _tmp12_ = FALSE; _tmp16_ = iter; _tmp17_ = gee_iterator_get (_tmp16_); key = (gchar*) _tmp17_; _tmp18_ = key; _tmp19_ = midasi; _tmp20_ = g_str_has_prefix (_tmp18_, _tmp19_); if (_tmp20_) { const gchar* _tmp21_; const gchar* _tmp22_; _tmp21_ = key; _tmp22_ = midasi; if (g_strcmp0 (_tmp21_, _tmp22_) != 0) { GeeList* _tmp23_; const gchar* _tmp24_; _tmp23_ = completion; _tmp24_ = key; gee_collection_add ((GeeCollection*) _tmp23_, _tmp24_); } _g_free0 (key); break; } _g_free0 (key); } } while (TRUE) { GeeIterator* _tmp25_; gboolean _tmp26_ = FALSE; GeeIterator* _tmp27_; gpointer _tmp28_ = NULL; gchar* key; const gchar* _tmp29_; const gchar* _tmp30_; gboolean _tmp31_ = FALSE; const gchar* _tmp32_; const gchar* _tmp33_; _tmp25_ = iter; _tmp26_ = gee_iterator_next (_tmp25_); if (!_tmp26_) { break; } _tmp27_ = iter; _tmp28_ = gee_iterator_get (_tmp27_); key = (gchar*) _tmp28_; _tmp29_ = key; _tmp30_ = midasi; _tmp31_ = g_str_has_prefix (_tmp29_, _tmp30_); if (!_tmp31_) { _g_free0 (key); break; } _tmp32_ = key; _tmp33_ = midasi; if (g_strcmp0 (_tmp32_, _tmp33_) != 0) { GeeList* _tmp34_; const gchar* _tmp35_; _tmp34_ = completion; _tmp35_ = key; gee_collection_add ((GeeCollection*) _tmp34_, _tmp35_); } _g_free0 (key); } } _tmp36_ = completion; _tmp38_ = gee_collection_to_array ((GeeCollection*) _tmp36_, &_tmp37_); _tmp39_ = _tmp38_; _tmp39__length1 = _tmp37_; if (result_length1) { *result_length1 = _tmp39__length1; } result = _tmp39_; _g_object_unref0 (iter); _g_object_unref0 (keys); _g_object_unref0 (completion); return result; } /** * {@inheritDoc} */ static gboolean skk_user_dict_real_select_candidate (SkkDict* base, SkkCandidate* candidate) { SkkUserDict * self; gboolean result = FALSE; gint index = 0; gboolean _tmp24_ = FALSE; gint _tmp25_; gboolean _tmp28_; SkkCandidate* _tmp39_; const gchar* _tmp40_; const gchar* _tmp41_; gchar* _tmp42_; gchar* _tmp43_; SkkCandidate* _tmp44_; gboolean _tmp45_; gboolean _tmp46_; GeeMap* _tmp47_ = NULL; GeeMap* entries; GeeMap* _tmp48_; SkkCandidate* _tmp49_; const gchar* _tmp50_; const gchar* _tmp51_; gboolean _tmp52_ = FALSE; GeeMap* _tmp59_; SkkCandidate* _tmp60_; const gchar* _tmp61_; const gchar* _tmp62_; gpointer _tmp63_ = NULL; GeeList* candidates; GeeList* _tmp93_; SkkCandidate* _tmp94_; self = (SkkUserDict*) base; g_return_val_if_fail (candidate != NULL, FALSE); { gboolean _tmp0_; index = 0; _tmp0_ = TRUE; while (TRUE) { gboolean _tmp1_; gboolean _tmp3_ = FALSE; gint _tmp4_; gboolean _tmp7_; gint _tmp8_; const gchar* _tmp9_; SkkCandidate* _tmp10_; const gchar* _tmp11_; const gchar* _tmp12_; _tmp1_ = _tmp0_; if (!_tmp1_) { gint _tmp2_; _tmp2_ = index; index = _tmp2_ + 1; } _tmp0_ = FALSE; _tmp4_ = index; if (_tmp4_ < 128) { gint _tmp5_; const gchar* _tmp6_; _tmp5_ = index; _tmp6_ = self->priv->midasi_history[_tmp5_]; _tmp3_ = _tmp6_ != NULL; } else { _tmp3_ = FALSE; } _tmp7_ = _tmp3_; if (!_tmp7_) { break; } _tmp8_ = index; _tmp9_ = self->priv->midasi_history[_tmp8_]; _tmp10_ = candidate; _tmp11_ = skk_candidate_get_midasi (_tmp10_); _tmp12_ = _tmp11_; if (g_strcmp0 (_tmp9_, _tmp12_) == 0) { gint _tmp13_; _tmp13_ = index; if (_tmp13_ > 0) { const gchar* _tmp14_; gchar* _tmp15_; gchar* first; gint _tmp16_; const gchar* _tmp17_; gchar* _tmp18_; gchar* _tmp19_; gint _tmp20_; const gchar* _tmp21_; gchar* _tmp22_; gchar* _tmp23_; _tmp14_ = self->priv->midasi_history[0]; _tmp15_ = g_strdup (_tmp14_); first = _tmp15_; _tmp16_ = index; _tmp17_ = self->priv->midasi_history[_tmp16_]; _tmp18_ = g_strdup (_tmp17_); _g_free0 (self->priv->midasi_history[0]); self->priv->midasi_history[0] = _tmp18_; _tmp19_ = self->priv->midasi_history[0]; _tmp20_ = index; _tmp21_ = first; _tmp22_ = g_strdup (_tmp21_); _g_free0 (self->priv->midasi_history[_tmp20_]); self->priv->midasi_history[_tmp20_] = _tmp22_; _tmp23_ = self->priv->midasi_history[_tmp20_]; _g_free0 (first); break; } } } } _tmp25_ = index; if (_tmp25_ == 128) { _tmp24_ = TRUE; } else { gint _tmp26_; const gchar* _tmp27_; _tmp26_ = index; _tmp27_ = self->priv->midasi_history[_tmp26_]; _tmp24_ = _tmp27_ == NULL; } _tmp28_ = _tmp24_; if (_tmp28_) { { gint j; j = 1; { gboolean _tmp29_; _tmp29_ = TRUE; while (TRUE) { gboolean _tmp30_; gint _tmp32_; gint _tmp33_; gint _tmp34_; gint _tmp35_; const gchar* _tmp36_; gchar* _tmp37_; gchar* _tmp38_; _tmp30_ = _tmp29_; if (!_tmp30_) { gint _tmp31_; _tmp31_ = j; j = _tmp31_ + 1; } _tmp29_ = FALSE; _tmp32_ = j; _tmp33_ = index; if (!(_tmp32_ < (_tmp33_ - 1))) { break; } _tmp34_ = j; _tmp35_ = j; _tmp36_ = self->priv->midasi_history[_tmp35_ - 1]; _tmp37_ = g_strdup (_tmp36_); _g_free0 (self->priv->midasi_history[_tmp34_]); self->priv->midasi_history[_tmp34_] = _tmp37_; _tmp38_ = self->priv->midasi_history[_tmp34_]; } } } } _tmp39_ = candidate; _tmp40_ = skk_candidate_get_midasi (_tmp39_); _tmp41_ = _tmp40_; _tmp42_ = g_strdup (_tmp41_); _g_free0 (self->priv->midasi_history[0]); self->priv->midasi_history[0] = _tmp42_; _tmp43_ = self->priv->midasi_history[0]; _tmp44_ = candidate; _tmp45_ = skk_candidate_get_okuri (_tmp44_); _tmp46_ = _tmp45_; _tmp47_ = skk_user_dict_get_entries (self, _tmp46_); entries = _tmp47_; _tmp48_ = entries; _tmp49_ = candidate; _tmp50_ = skk_candidate_get_midasi (_tmp49_); _tmp51_ = _tmp50_; _tmp52_ = gee_map_has_key (_tmp48_, _tmp51_); if (!_tmp52_) { GeeMap* _tmp53_; SkkCandidate* _tmp54_; const gchar* _tmp55_; const gchar* _tmp56_; GeeArrayList* _tmp57_; GeeArrayList* _tmp58_; _tmp53_ = entries; _tmp54_ = candidate; _tmp55_ = skk_candidate_get_midasi (_tmp54_); _tmp56_ = _tmp55_; _tmp57_ = gee_array_list_new (SKK_TYPE_CANDIDATE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL); _tmp58_ = _tmp57_; gee_map_set (_tmp53_, _tmp56_, (GeeList*) _tmp58_); _g_object_unref0 (_tmp58_); } index = 0; _tmp59_ = entries; _tmp60_ = candidate; _tmp61_ = skk_candidate_get_midasi (_tmp60_); _tmp62_ = _tmp61_; _tmp63_ = gee_map_get (_tmp59_, _tmp62_); candidates = (GeeList*) _tmp63_; { GeeList* _tmp64_; GeeList* _tmp65_; GeeList* _c_list; GeeList* _tmp66_; gint _tmp67_; gint _tmp68_; gint _c_size; gint _c_index; _tmp64_ = candidates; _tmp65_ = _g_object_ref0 (_tmp64_); _c_list = _tmp65_; _tmp66_ = _c_list; _tmp67_ = gee_collection_get_size ((GeeCollection*) _tmp66_); _tmp68_ = _tmp67_; _c_size = _tmp68_; _c_index = -1; while (TRUE) { gint _tmp69_; gint _tmp70_; gint _tmp71_; GeeList* _tmp72_; gint _tmp73_; gpointer _tmp74_ = NULL; SkkCandidate* c; SkkCandidate* _tmp75_; const gchar* _tmp76_; const gchar* _tmp77_; SkkCandidate* _tmp78_; const gchar* _tmp79_; const gchar* _tmp80_; gint _tmp92_; _tmp69_ = _c_index; _c_index = _tmp69_ + 1; _tmp70_ = _c_index; _tmp71_ = _c_size; if (!(_tmp70_ < _tmp71_)) { break; } _tmp72_ = _c_list; _tmp73_ = _c_index; _tmp74_ = gee_list_get (_tmp72_, _tmp73_); c = (SkkCandidate*) _tmp74_; _tmp75_ = c; _tmp76_ = skk_candidate_get_text (_tmp75_); _tmp77_ = _tmp76_; _tmp78_ = candidate; _tmp79_ = skk_candidate_get_text (_tmp78_); _tmp80_ = _tmp79_; if (g_strcmp0 (_tmp77_, _tmp80_) == 0) { gint _tmp81_; _tmp81_ = index; if (_tmp81_ > 0) { GeeList* _tmp82_; gpointer _tmp83_ = NULL; SkkCandidate* first; GeeList* _tmp84_; GeeList* _tmp85_; gint _tmp86_; gpointer _tmp87_ = NULL; SkkCandidate* _tmp88_; GeeList* _tmp89_; gint _tmp90_; SkkCandidate* _tmp91_; _tmp82_ = candidates; _tmp83_ = gee_list_get (_tmp82_, 0); first = (SkkCandidate*) _tmp83_; _tmp84_ = candidates; _tmp85_ = candidates; _tmp86_ = index; _tmp87_ = gee_list_get (_tmp85_, _tmp86_); _tmp88_ = (SkkCandidate*) _tmp87_; gee_list_set (_tmp84_, 0, _tmp88_); _g_object_unref0 (_tmp88_); _tmp89_ = candidates; _tmp90_ = index; _tmp91_ = first; gee_list_set (_tmp89_, _tmp90_, _tmp91_); result = TRUE; _g_object_unref0 (first); _g_object_unref0 (c); _g_object_unref0 (_c_list); _g_object_unref0 (candidates); _g_object_unref0 (entries); return result; } result = FALSE; _g_object_unref0 (c); _g_object_unref0 (_c_list); _g_object_unref0 (candidates); _g_object_unref0 (entries); return result; } _tmp92_ = index; index = _tmp92_ + 1; _g_object_unref0 (c); } _g_object_unref0 (_c_list); } _tmp93_ = candidates; _tmp94_ = candidate; gee_list_insert (_tmp93_, 0, _tmp94_); result = TRUE; _g_object_unref0 (candidates); _g_object_unref0 (entries); return result; } /** * {@inheritDoc} */ static gboolean skk_user_dict_real_purge_candidate (SkkDict* base, SkkCandidate* candidate) { SkkUserDict * self; gboolean result = FALSE; gboolean modified; SkkCandidate* _tmp0_; gboolean _tmp1_; gboolean _tmp2_; GeeMap* _tmp3_ = NULL; GeeMap* entries; GeeMap* _tmp4_; SkkCandidate* _tmp5_; const gchar* _tmp6_; const gchar* _tmp7_; gboolean _tmp8_ = FALSE; self = (SkkUserDict*) base; g_return_val_if_fail (candidate != NULL, FALSE); modified = FALSE; _tmp0_ = candidate; _tmp1_ = skk_candidate_get_okuri (_tmp0_); _tmp2_ = _tmp1_; _tmp3_ = skk_user_dict_get_entries (self, _tmp2_); entries = _tmp3_; _tmp4_ = entries; _tmp5_ = candidate; _tmp6_ = skk_candidate_get_midasi (_tmp5_); _tmp7_ = _tmp6_; _tmp8_ = gee_map_has_key (_tmp4_, _tmp7_); if (_tmp8_) { GeeMap* _tmp9_; SkkCandidate* _tmp10_; const gchar* _tmp11_; const gchar* _tmp12_; gpointer _tmp13_ = NULL; GeeList* candidates; GeeList* _tmp14_; gint _tmp15_; gint _tmp16_; _tmp9_ = entries; _tmp10_ = candidate; _tmp11_ = skk_candidate_get_midasi (_tmp10_); _tmp12_ = _tmp11_; _tmp13_ = gee_map_get (_tmp9_, _tmp12_); candidates = (GeeList*) _tmp13_; _tmp14_ = candidates; _tmp15_ = gee_collection_get_size ((GeeCollection*) _tmp14_); _tmp16_ = _tmp15_; if (_tmp16_ > 0) { GeeList* _tmp17_; GeeIterator* _tmp18_ = NULL; GeeIterator* iter; GeeIterator* _tmp19_; GeeList* _tmp33_; gint _tmp34_; gint _tmp35_; _tmp17_ = candidates; _tmp18_ = gee_iterable_iterator ((GeeIterable*) _tmp17_); iter = _tmp18_; _tmp19_ = iter; gee_iterator_first (_tmp19_); { gboolean _tmp20_; _tmp20_ = TRUE; while (TRUE) { gboolean _tmp21_; GeeIterator* _tmp24_; gpointer _tmp25_ = NULL; SkkCandidate* c; SkkCandidate* _tmp26_; const gchar* _tmp27_; const gchar* _tmp28_; SkkCandidate* _tmp29_; const gchar* _tmp30_; const gchar* _tmp31_; _tmp21_ = _tmp20_; if (!_tmp21_) { GeeIterator* _tmp22_; gboolean _tmp23_ = FALSE; _tmp22_ = iter; _tmp23_ = gee_iterator_next (_tmp22_); if (!_tmp23_) { break; } } _tmp20_ = FALSE; _tmp24_ = iter; _tmp25_ = gee_iterator_get (_tmp24_); c = (SkkCandidate*) _tmp25_; _tmp26_ = c; _tmp27_ = skk_candidate_get_text (_tmp26_); _tmp28_ = _tmp27_; _tmp29_ = candidate; _tmp30_ = skk_candidate_get_text (_tmp29_); _tmp31_ = _tmp30_; if (g_strcmp0 (_tmp28_, _tmp31_) == 0) { GeeIterator* _tmp32_; _tmp32_ = iter; gee_iterator_remove (_tmp32_); modified = TRUE; } _g_object_unref0 (c); } } _tmp33_ = candidates; _tmp34_ = gee_collection_get_size ((GeeCollection*) _tmp33_); _tmp35_ = _tmp34_; if (_tmp35_ == 0) { GeeMap* _tmp36_; SkkCandidate* _tmp37_; const gchar* _tmp38_; const gchar* _tmp39_; _tmp36_ = entries; _tmp37_ = candidate; _tmp38_ = skk_candidate_get_midasi (_tmp37_); _tmp39_ = _tmp38_; gee_map_unset (_tmp36_, _tmp39_, NULL); } _g_object_unref0 (iter); } _g_object_unref0 (candidates); } result = modified; _g_object_unref0 (entries); return result; } /** * Create a new UserDict. * * @param path a path to the file * @param encoding encoding of the file (default UTF-8) * * @return a new UserDict * @throws GLib.Error if opening the file is failed */ SkkUserDict* skk_user_dict_construct (GType object_type, const gchar* path, const gchar* encoding, GError** error) { SkkUserDict * self = NULL; const gchar* _tmp0_; GFile* _tmp1_ = NULL; gchar* _tmp2_; const gchar* _tmp3_; SkkEncodingConverter* _tmp4_; SkkEncodingConverter* _tmp5_; const gchar* _tmp6_; gboolean _tmp7_ = FALSE; GError * _inner_error_ = NULL; g_return_val_if_fail (path != NULL, NULL); g_return_val_if_fail (encoding != NULL, NULL); self = (SkkUserDict*) skk_dict_construct (object_type); _tmp0_ = path; _tmp1_ = g_file_new_for_path (_tmp0_); _g_object_unref0 (self->priv->file); self->priv->file = _tmp1_; _tmp2_ = g_strdup (""); _g_free0 (self->priv->etag); self->priv->etag = _tmp2_; _tmp3_ = encoding; _tmp4_ = skk_encoding_converter_new (_tmp3_, &_inner_error_); _tmp5_ = _tmp4_; if (_inner_error_ != NULL) { g_propagate_error (error, _inner_error_); _g_object_unref0 (self); return NULL; } _g_object_unref0 (self->priv->converter); self->priv->converter = _tmp5_; _tmp6_ = path; _tmp7_ = g_file_test (_tmp6_, G_FILE_TEST_EXISTS); if (_tmp7_) { skk_dict_reload ((SkkDict*) self, &_inner_error_); if (_inner_error_ != NULL) { g_propagate_error (error, _inner_error_); _g_object_unref0 (self); return NULL; } } return self; } SkkUserDict* skk_user_dict_new (const gchar* path, const gchar* encoding, GError** error) { return skk_user_dict_construct (SKK_TYPE_USER_DICT, path, encoding, error); } static gboolean skk_user_dict_real_get_read_only (SkkDict* base) { gboolean result; SkkUserDict* self; self = (SkkUserDict*) base; result = FALSE; return result; } static void skk_user_dict_class_init (SkkUserDictClass * klass) { skk_user_dict_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (SkkUserDictPrivate)); SKK_DICT_CLASS (klass)->reload = skk_user_dict_real_reload; SKK_DICT_CLASS (klass)->save = skk_user_dict_real_save; SKK_DICT_CLASS (klass)->lookup = skk_user_dict_real_lookup; SKK_DICT_CLASS (klass)->complete = skk_user_dict_real_complete; SKK_DICT_CLASS (klass)->select_candidate = skk_user_dict_real_select_candidate; SKK_DICT_CLASS (klass)->purge_candidate = skk_user_dict_real_purge_candidate; SKK_DICT_CLASS (klass)->get_read_only = skk_user_dict_real_get_read_only; G_OBJECT_CLASS (klass)->get_property = _vala_skk_user_dict_get_property; G_OBJECT_CLASS (klass)->finalize = skk_user_dict_finalize; /** * {@inheritDoc} */ g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_USER_DICT_READ_ONLY, g_param_spec_boolean ("read-only", "read-only", "read-only", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE)); } static void skk_user_dict_instance_init (SkkUserDict * self) { GeeHashMap* _tmp0_; GeeHashMap* _tmp1_; self->priv = SKK_USER_DICT_GET_PRIVATE (self); _tmp0_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, GEE_TYPE_LIST, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL); self->priv->okuri_ari_entries = (GeeMap*) _tmp0_; _tmp1_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, GEE_TYPE_LIST, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL); self->priv->okuri_nasi_entries = (GeeMap*) _tmp1_; } static void skk_user_dict_finalize (GObject* obj) { SkkUserDict * self; GeeMap* _tmp0_; GeeMapIterator* _tmp1_ = NULL; GeeMapIterator* okuri_ari_iter; GeeMapIterator* _tmp2_; gboolean _tmp3_ = FALSE; GeeMap* _tmp11_; GeeMap* _tmp12_; GeeMapIterator* _tmp13_ = NULL; GeeMapIterator* okuri_nasi_iter; GeeMapIterator* _tmp14_; gboolean _tmp15_ = FALSE; GeeMap* _tmp23_; self = SKK_USER_DICT (obj); _tmp0_ = self->priv->okuri_ari_entries; _tmp1_ = gee_map_map_iterator (_tmp0_); okuri_ari_iter = _tmp1_; _tmp2_ = okuri_ari_iter; _tmp3_ = gee_map_iterator_first (_tmp2_); if (_tmp3_) { { gboolean _tmp4_; _tmp4_ = TRUE; while (TRUE) { gboolean _tmp5_; GeeMapIterator* _tmp8_; gpointer _tmp9_ = NULL; GeeList* _tmp10_; _tmp5_ = _tmp4_; if (!_tmp5_) { GeeMapIterator* _tmp6_; gboolean _tmp7_ = FALSE; _tmp6_ = okuri_ari_iter; _tmp7_ = gee_map_iterator_next (_tmp6_); if (!_tmp7_) { break; } } _tmp4_ = FALSE; _tmp8_ = okuri_ari_iter; _tmp9_ = gee_map_iterator_get_value (_tmp8_); _tmp10_ = (GeeList*) _tmp9_; gee_collection_clear ((GeeCollection*) _tmp10_); _g_object_unref0 (_tmp10_); } } } _tmp11_ = self->priv->okuri_ari_entries; gee_map_clear (_tmp11_); _tmp12_ = self->priv->okuri_nasi_entries; _tmp13_ = gee_map_map_iterator (_tmp12_); okuri_nasi_iter = _tmp13_; _tmp14_ = okuri_nasi_iter; _tmp15_ = gee_map_iterator_first (_tmp14_); if (_tmp15_) { { gboolean _tmp16_; _tmp16_ = TRUE; while (TRUE) { gboolean _tmp17_; GeeMapIterator* _tmp20_; gpointer _tmp21_ = NULL; GeeList* _tmp22_; _tmp17_ = _tmp16_; if (!_tmp17_) { GeeMapIterator* _tmp18_; gboolean _tmp19_ = FALSE; _tmp18_ = okuri_nasi_iter; _tmp19_ = gee_map_iterator_next (_tmp18_); if (!_tmp19_) { break; } } _tmp16_ = FALSE; _tmp20_ = okuri_nasi_iter; _tmp21_ = gee_map_iterator_get_value (_tmp20_); _tmp22_ = (GeeList*) _tmp21_; gee_collection_clear ((GeeCollection*) _tmp22_); _g_object_unref0 (_tmp22_); } } } _tmp23_ = self->priv->okuri_nasi_entries; gee_map_clear (_tmp23_); _g_object_unref0 (okuri_nasi_iter); _g_object_unref0 (okuri_ari_iter); _g_object_unref0 (self->priv->file); _g_free0 (self->priv->etag); _g_object_unref0 (self->priv->converter); _g_object_unref0 (self->priv->okuri_ari_entries); _g_object_unref0 (self->priv->okuri_nasi_entries); _vala_array_destroy (self->priv->midasi_history, 128, (GDestroyNotify) g_free); G_OBJECT_CLASS (skk_user_dict_parent_class)->finalize (obj); } /** * File based implementation of Dict with write access. */ GType skk_user_dict_get_type (void) { static volatile gsize skk_user_dict_type_id__volatile = 0; if (g_once_init_enter (&skk_user_dict_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkUserDictClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_user_dict_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkUserDict), 0, (GInstanceInitFunc) skk_user_dict_instance_init, NULL }; GType skk_user_dict_type_id; skk_user_dict_type_id = g_type_register_static (SKK_TYPE_DICT, "SkkUserDict", &g_define_type_info, 0); g_once_init_leave (&skk_user_dict_type_id__volatile, skk_user_dict_type_id); } return skk_user_dict_type_id__volatile; } static void _vala_skk_user_dict_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { SkkUserDict * self; self = SKK_USER_DICT (object); switch (property_id) { case SKK_USER_DICT_READ_ONLY: g_value_set_boolean (value, skk_dict_get_read_only ((SkkDict*) self)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { int i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); } } } } static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) { _vala_array_destroy (array, array_length, destroy_func); g_free (array); } libskk-1.0.0/libskk/dict.c0000664000076400007640000006214312016556643012306 00000000000000/* dict.c generated by valac 0.16.0, the Vala compiler * generated from dict.vala, do not modify */ /* * Copyright (C) 2011-2012 Daiki Ueno * Copyright (C) 2011-2012 Red Hat, 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 3 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, see . */ #include #include #include #include #define SKK_TYPE_DICT (skk_dict_get_type ()) #define SKK_DICT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_DICT, SkkDict)) #define SKK_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_DICT, SkkDictClass)) #define SKK_IS_DICT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_DICT)) #define SKK_IS_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_DICT)) #define SKK_DICT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_DICT, SkkDictClass)) typedef struct _SkkDict SkkDict; typedef struct _SkkDictClass SkkDictClass; typedef struct _SkkDictPrivate SkkDictPrivate; #define SKK_TYPE_CANDIDATE (skk_candidate_get_type ()) #define SKK_CANDIDATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_CANDIDATE, SkkCandidate)) #define SKK_CANDIDATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_CANDIDATE, SkkCandidateClass)) #define SKK_IS_CANDIDATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_CANDIDATE)) #define SKK_IS_CANDIDATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_CANDIDATE)) #define SKK_CANDIDATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_CANDIDATE, SkkCandidateClass)) typedef struct _SkkCandidate SkkCandidate; typedef struct _SkkCandidateClass SkkCandidateClass; #define _g_free0(var) (var = (g_free (var), NULL)) #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) #define SKK_TYPE_EMPTY_DICT (skk_empty_dict_get_type ()) #define SKK_EMPTY_DICT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SKK_TYPE_EMPTY_DICT, SkkEmptyDict)) #define SKK_EMPTY_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SKK_TYPE_EMPTY_DICT, SkkEmptyDictClass)) #define SKK_IS_EMPTY_DICT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SKK_TYPE_EMPTY_DICT)) #define SKK_IS_EMPTY_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SKK_TYPE_EMPTY_DICT)) #define SKK_EMPTY_DICT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SKK_TYPE_EMPTY_DICT, SkkEmptyDictClass)) typedef struct _SkkEmptyDict SkkEmptyDict; typedef struct _SkkEmptyDictClass SkkEmptyDictClass; typedef struct _SkkEmptyDictPrivate SkkEmptyDictPrivate; struct _SkkDict { GObject parent_instance; SkkDictPrivate * priv; }; struct _SkkDictClass { GObjectClass parent_class; void (*reload) (SkkDict* self, GError** error); SkkCandidate** (*lookup) (SkkDict* self, const gchar* midasi, gboolean okuri, int* result_length1); gchar** (*complete) (SkkDict* self, const gchar* midasi, int* result_length1); gboolean (*select_candidate) (SkkDict* self, SkkCandidate* candidate); gboolean (*purge_candidate) (SkkDict* self, SkkCandidate* candidate); void (*save) (SkkDict* self, GError** error); gboolean (*get_read_only) (SkkDict* self); }; struct _SkkEmptyDict { SkkDict parent_instance; SkkEmptyDictPrivate * priv; }; struct _SkkEmptyDictClass { SkkDictClass parent_class; }; typedef enum { SKK_SKK_DICT_ERROR_NOT_READABLE, SKK_SKK_DICT_ERROR_MALFORMED_INPUT } SkkSkkDictError; #define SKK_SKK_DICT_ERROR skk_skk_dict_error_quark () static gpointer skk_dict_parent_class = NULL; static gpointer skk_empty_dict_parent_class = NULL; GType skk_dict_get_type (void) G_GNUC_CONST; GType skk_candidate_get_type (void) G_GNUC_CONST; enum { SKK_DICT_DUMMY_PROPERTY, SKK_DICT_READ_ONLY }; SkkCandidate** skk_dict_split_candidates (SkkDict* self, const gchar* midasi, gboolean okuri, const gchar* line, int* result_length1); SkkCandidate* skk_candidate_new (const gchar* midasi, gboolean okuri, const gchar* text, const gchar* annotation, const gchar* output); SkkCandidate* skk_candidate_construct (GType object_type, const gchar* midasi, gboolean okuri, const gchar* text, const gchar* annotation, const gchar* output); gchar* skk_dict_join_candidates (SkkDict* self, SkkCandidate** candidates, int candidates_length1); gchar* skk_candidate_to_string (SkkCandidate* self); void skk_dict_reload (SkkDict* self, GError** error); static void skk_dict_real_reload (SkkDict* self, GError** error); SkkCandidate** skk_dict_lookup (SkkDict* self, const gchar* midasi, gboolean okuri, int* result_length1); static SkkCandidate** skk_dict_real_lookup (SkkDict* self, const gchar* midasi, gboolean okuri, int* result_length1); gchar** skk_dict_complete (SkkDict* self, const gchar* midasi, int* result_length1); static gchar** skk_dict_real_complete (SkkDict* self, const gchar* midasi, int* result_length1); gboolean skk_dict_select_candidate (SkkDict* self, SkkCandidate* candidate); static gboolean skk_dict_real_select_candidate (SkkDict* self, SkkCandidate* candidate); gboolean skk_dict_purge_candidate (SkkDict* self, SkkCandidate* candidate); static gboolean skk_dict_real_purge_candidate (SkkDict* self, SkkCandidate* candidate); void skk_dict_save (SkkDict* self, GError** error); static void skk_dict_real_save (SkkDict* self, GError** error); SkkDict* skk_dict_construct (GType object_type); gboolean skk_dict_get_read_only (SkkDict* self); static void _vala_skk_dict_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); GType skk_empty_dict_get_type (void) G_GNUC_CONST; enum { SKK_EMPTY_DICT_DUMMY_PROPERTY, SKK_EMPTY_DICT_READ_ONLY }; static void skk_empty_dict_real_reload (SkkDict* base, GError** error); static SkkCandidate** skk_empty_dict_real_lookup (SkkDict* base, const gchar* midasi, gboolean okuri, int* result_length1); static gchar** skk_empty_dict_real_complete (SkkDict* base, const gchar* midasi, int* result_length1); SkkEmptyDict* skk_empty_dict_new (void); SkkEmptyDict* skk_empty_dict_construct (GType object_type); static void _vala_skk_empty_dict_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); GQuark skk_skk_dict_error_quark (void); static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func); static gint _vala_array_length (gpointer array); /** * Parse a line consisting of candidates separated by "/". * * @param line a line consisting of candidates * @return an array of Candidates */ static gchar* string_strip (const gchar* self) { gchar* result = NULL; gchar* _tmp0_ = NULL; gchar* _result_; const gchar* _tmp1_; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = g_strdup (self); _result_ = _tmp0_; _tmp1_ = _result_; g_strstrip (_tmp1_); result = _result_; return result; } static gchar* string_slice (const gchar* self, glong start, glong end) { gchar* result = NULL; gint _tmp0_; gint _tmp1_; glong string_length; glong _tmp2_; glong _tmp5_; gboolean _tmp8_ = FALSE; glong _tmp9_; gboolean _tmp12_; gboolean _tmp13_ = FALSE; glong _tmp14_; gboolean _tmp17_; glong _tmp18_; glong _tmp19_; glong _tmp20_; glong _tmp21_; glong _tmp22_; gchar* _tmp23_ = NULL; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = strlen (self); _tmp1_ = _tmp0_; string_length = (glong) _tmp1_; _tmp2_ = start; if (_tmp2_ < ((glong) 0)) { glong _tmp3_; glong _tmp4_; _tmp3_ = string_length; _tmp4_ = start; start = _tmp3_ + _tmp4_; } _tmp5_ = end; if (_tmp5_ < ((glong) 0)) { glong _tmp6_; glong _tmp7_; _tmp6_ = string_length; _tmp7_ = end; end = _tmp6_ + _tmp7_; } _tmp9_ = start; if (_tmp9_ >= ((glong) 0)) { glong _tmp10_; glong _tmp11_; _tmp10_ = start; _tmp11_ = string_length; _tmp8_ = _tmp10_ <= _tmp11_; } else { _tmp8_ = FALSE; } _tmp12_ = _tmp8_; g_return_val_if_fail (_tmp12_, NULL); _tmp14_ = end; if (_tmp14_ >= ((glong) 0)) { glong _tmp15_; glong _tmp16_; _tmp15_ = end; _tmp16_ = string_length; _tmp13_ = _tmp15_ <= _tmp16_; } else { _tmp13_ = FALSE; } _tmp17_ = _tmp13_; g_return_val_if_fail (_tmp17_, NULL); _tmp18_ = start; _tmp19_ = end; g_return_val_if_fail (_tmp18_ <= _tmp19_, NULL); _tmp20_ = start; _tmp21_ = end; _tmp22_ = start; _tmp23_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) (_tmp21_ - _tmp22_)); result = _tmp23_; return result; } SkkCandidate** skk_dict_split_candidates (SkkDict* self, const gchar* midasi, gboolean okuri, const gchar* line, int* result_length1) { SkkCandidate** result = NULL; const gchar* _tmp0_; gchar* _tmp1_ = NULL; gchar* _tmp2_; gchar* _tmp3_ = NULL; gchar* _tmp4_; gchar** _tmp5_; gchar** _tmp6_ = NULL; gchar** _tmp7_; gint _tmp7__length1; gchar** strv; gint strv_length1; gint _strv_size_; gchar** _tmp8_; gint _tmp8__length1; SkkCandidate** _tmp9_ = NULL; SkkCandidate** candidates; gint candidates_length1; gint _candidates_size_; SkkCandidate** _tmp39_; gint _tmp39__length1; g_return_val_if_fail (self != NULL, NULL); g_return_val_if_fail (midasi != NULL, NULL); g_return_val_if_fail (line != NULL, NULL); _tmp0_ = line; _tmp1_ = string_strip (_tmp0_); _tmp2_ = _tmp1_; _tmp3_ = string_slice (_tmp2_, (glong) 1, (glong) (-1)); _tmp4_ = _tmp3_; _tmp6_ = _tmp5_ = g_strsplit (_tmp4_, "/", 0); _tmp7_ = _tmp6_; _tmp7__length1 = _vala_array_length (_tmp5_); _g_free0 (_tmp4_); _g_free0 (_tmp2_); strv = _tmp7_; strv_length1 = _tmp7__length1; _strv_size_ = strv_length1; _tmp8_ = strv; _tmp8__length1 = strv_length1; _tmp9_ = g_new0 (SkkCandidate*, _tmp8__length1 + 1); candidates = _tmp9_; candidates_length1 = _tmp8__length1; _candidates_size_ = candidates_length1; { gint i; i = 0; { gboolean _tmp10_; _tmp10_ = TRUE; while (TRUE) { gboolean _tmp11_; gint _tmp13_; gchar** _tmp14_; gint _tmp14__length1; gchar** _tmp15_; gint _tmp15__length1; gint _tmp16_; const gchar* _tmp17_; gchar** _tmp18_; gchar** _tmp19_ = NULL; gchar** text_annotation; gint text_annotation_length1; gint _text_annotation_size_; gchar* text = NULL; gchar* annotation = NULL; gchar** _tmp20_; gint _tmp20__length1; SkkCandidate** _tmp31_; gint _tmp31__length1; gint _tmp32_; const gchar* _tmp33_; gboolean _tmp34_; const gchar* _tmp35_; const gchar* _tmp36_; SkkCandidate* _tmp37_; SkkCandidate* _tmp38_; _tmp11_ = _tmp10_; if (!_tmp11_) { gint _tmp12_; _tmp12_ = i; i = _tmp12_ + 1; } _tmp10_ = FALSE; _tmp13_ = i; _tmp14_ = strv; _tmp14__length1 = strv_length1; if (!(_tmp13_ < _tmp14__length1)) { break; } _tmp15_ = strv; _tmp15__length1 = strv_length1; _tmp16_ = i; _tmp17_ = _tmp15_[_tmp16_]; _tmp19_ = _tmp18_ = g_strsplit (_tmp17_, ";", 2); text_annotation = _tmp19_; text_annotation_length1 = _vala_array_length (_tmp18_); _text_annotation_size_ = text_annotation_length1; _tmp20_ = text_annotation; _tmp20__length1 = text_annotation_length1; if (_tmp20__length1 == 2) { gchar** _tmp21_; gint _tmp21__length1; const gchar* _tmp22_; gchar* _tmp23_; gchar** _tmp24_; gint _tmp24__length1; const gchar* _tmp25_; gchar* _tmp26_; _tmp21_ = text_annotation; _tmp21__length1 = text_annotation_length1; _tmp22_ = _tmp21_[0]; _tmp23_ = g_strdup (_tmp22_); _g_free0 (text); text = _tmp23_; _tmp24_ = text_annotation; _tmp24__length1 = text_annotation_length1; _tmp25_ = _tmp24_[1]; _tmp26_ = g_strdup (_tmp25_); _g_free0 (annotation); annotation = _tmp26_; } else { gchar** _tmp27_; gint _tmp27__length1; gint _tmp28_; const gchar* _tmp29_; gchar* _tmp30_; _tmp27_ = strv; _tmp27__length1 = strv_length1; _tmp28_ = i; _tmp29_ = _tmp27_[_tmp28_]; _tmp30_ = g_strdup (_tmp29_); _g_free0 (text); text = _tmp30_; _g_free0 (annotation); annotation = NULL; } _tmp31_ = candidates; _tmp31__length1 = candidates_length1; _tmp32_ = i; _tmp33_ = midasi; _tmp34_ = okuri; _tmp35_ = text; _tmp36_ = annotation; _tmp37_ = skk_candidate_new (_tmp33_, _tmp34_, _tmp35_, _tmp36_, NULL); _g_object_unref0 (_tmp31_[_tmp32_]); _tmp31_[_tmp32_] = _tmp37_; _tmp38_ = _tmp31_[_tmp32_]; _g_free0 (annotation); _g_free0 (text); text_annotation = (_vala_array_free (text_annotation, text_annotation_length1, (GDestroyNotify) g_free), NULL); } } } _tmp39_ = candidates; _tmp39__length1 = candidates_length1; if (result_length1) { *result_length1 = _tmp39__length1; } result = _tmp39_; strv = (_vala_array_free (strv, strv_length1, (GDestroyNotify) g_free), NULL); return result; } /** * Format an array of Candidates to be saved in a dictionary file. * * @param candidates an array of Candidate * @return a string */ gchar* skk_dict_join_candidates (SkkDict* self, SkkCandidate** candidates, int candidates_length1) { gchar* result = NULL; SkkCandidate** _tmp0_; gint _tmp0__length1; gchar** _tmp1_ = NULL; gchar** strv; gint strv_length1; gint _strv_size_; gchar** _tmp14_; gint _tmp14__length1; gchar* _tmp15_ = NULL; gchar* _tmp16_; gchar* _tmp17_; gchar* _tmp18_; gchar* _tmp19_; gchar* _tmp20_; g_return_val_if_fail (self != NULL, NULL); _tmp0_ = candidates; _tmp0__length1 = candidates_length1; _tmp1_ = g_new0 (gchar*, _tmp0__length1 + 1); strv = _tmp1_; strv_length1 = _tmp0__length1; _strv_size_ = strv_length1; { gint i; i = 0; { gboolean _tmp2_; _tmp2_ = TRUE; while (TRUE) { gboolean _tmp3_; gint _tmp5_; SkkCandidate** _tmp6_; gint _tmp6__length1; gchar** _tmp7_; gint _tmp7__length1; gint _tmp8_; SkkCandidate** _tmp9_; gint _tmp9__length1; gint _tmp10_; SkkCandidate* _tmp11_; gchar* _tmp12_ = NULL; gchar* _tmp13_; _tmp3_ = _tmp2_; if (!_tmp3_) { gint _tmp4_; _tmp4_ = i; i = _tmp4_ + 1; } _tmp2_ = FALSE; _tmp5_ = i; _tmp6_ = candidates; _tmp6__length1 = candidates_length1; if (!(_tmp5_ < _tmp6__length1)) { break; } _tmp7_ = strv; _tmp7__length1 = strv_length1; _tmp8_ = i; _tmp9_ = candidates; _tmp9__length1 = candidates_length1; _tmp10_ = i; _tmp11_ = _tmp9_[_tmp10_]; _tmp12_ = skk_candidate_to_string (_tmp11_); _g_free0 (_tmp7_[_tmp8_]); _tmp7_[_tmp8_] = _tmp12_; _tmp13_ = _tmp7_[_tmp8_]; } } } _tmp14_ = strv; _tmp14__length1 = strv_length1; _tmp15_ = g_strjoinv ("/", _tmp14_); _tmp16_ = _tmp15_; _tmp17_ = g_strconcat ("/", _tmp16_, NULL); _tmp18_ = _tmp17_; _tmp19_ = g_strconcat (_tmp18_, "/", NULL); _tmp20_ = _tmp19_; _g_free0 (_tmp18_); _g_free0 (_tmp16_); result = _tmp20_; strv = (_vala_array_free (strv, strv_length1, (GDestroyNotify) g_free), NULL); return result; } /** * Reload the dictionary. * * @throws GLib.Error when reading the dictionary failed. */ static void skk_dict_real_reload (SkkDict* self, GError** error) { g_critical ("Type `%s' does not implement abstract method `skk_dict_reload'", g_type_name (G_TYPE_FROM_INSTANCE (self))); return; } void skk_dict_reload (SkkDict* self, GError** error) { g_return_if_fail (self != NULL); SKK_DICT_GET_CLASS (self)->reload (self, error); } /** * Lookup candidates in the dictionary. * * @param midasi a midasi (title) string to lookup * @param okuri whether to search okuri-ari entries or * okuri-nasi entries * * @return an array of Candidate */ static SkkCandidate** skk_dict_real_lookup (SkkDict* self, const gchar* midasi, gboolean okuri, int* result_length1) { g_critical ("Type `%s' does not implement abstract method `skk_dict_lookup'", g_type_name (G_TYPE_FROM_INSTANCE (self))); return NULL; } SkkCandidate** skk_dict_lookup (SkkDict* self, const gchar* midasi, gboolean okuri, int* result_length1) { g_return_val_if_fail (self != NULL, NULL); return SKK_DICT_GET_CLASS (self)->lookup (self, midasi, okuri, result_length1); } /** * Return an array of strings which matches midasi. * * @param midasi a midasi (title) string to lookup * * @return an array of strings */ static gchar** skk_dict_real_complete (SkkDict* self, const gchar* midasi, int* result_length1) { g_critical ("Type `%s' does not implement abstract method `skk_dict_complete'", g_type_name (G_TYPE_FROM_INSTANCE (self))); return NULL; } gchar** skk_dict_complete (SkkDict* self, const gchar* midasi, int* result_length1) { g_return_val_if_fail (self != NULL, NULL); return SKK_DICT_GET_CLASS (self)->complete (self, midasi, result_length1); } /** * Select a candidate in the dictionary. * * @param candidate an Candidate * * @return `true` if the dictionary is modified, `false` otherwise. */ static gboolean skk_dict_real_select_candidate (SkkDict* self, SkkCandidate* candidate) { gboolean result = FALSE; g_return_val_if_fail (candidate != NULL, FALSE); result = FALSE; return result; } gboolean skk_dict_select_candidate (SkkDict* self, SkkCandidate* candidate) { g_return_val_if_fail (self != NULL, FALSE); return SKK_DICT_GET_CLASS (self)->select_candidate (self, candidate); } /** * Purge a candidate in the dictionary. * * @param candidate an Candidate * * @return `true` if the dictionary is modified, `false` otherwise. */ static gboolean skk_dict_real_purge_candidate (SkkDict* self, SkkCandidate* candidate) { gboolean result = FALSE; g_return_val_if_fail (candidate != NULL, FALSE); result = FALSE; return result; } gboolean skk_dict_purge_candidate (SkkDict* self, SkkCandidate* candidate) { g_return_val_if_fail (self != NULL, FALSE); return SKK_DICT_GET_CLASS (self)->purge_candidate (self, candidate); } /** * Save the dictionary on disk. * * @throws GLib.Error if the dictionary cannot be saved. */ static void skk_dict_real_save (SkkDict* self, GError** error) { } void skk_dict_save (SkkDict* self, GError** error) { g_return_if_fail (self != NULL); SKK_DICT_GET_CLASS (self)->save (self, error); } SkkDict* skk_dict_construct (GType object_type) { SkkDict * self = NULL; self = (SkkDict*) g_object_new (object_type, NULL); return self; } gboolean skk_dict_get_read_only (SkkDict* self) { g_return_val_if_fail (self != NULL, FALSE); return SKK_DICT_GET_CLASS (self)->get_read_only (self); } static void skk_dict_class_init (SkkDictClass * klass) { skk_dict_parent_class = g_type_class_peek_parent (klass); SKK_DICT_CLASS (klass)->reload = skk_dict_real_reload; SKK_DICT_CLASS (klass)->lookup = skk_dict_real_lookup; SKK_DICT_CLASS (klass)->complete = skk_dict_real_complete; SKK_DICT_CLASS (klass)->select_candidate = skk_dict_real_select_candidate; SKK_DICT_CLASS (klass)->purge_candidate = skk_dict_real_purge_candidate; SKK_DICT_CLASS (klass)->save = skk_dict_real_save; G_OBJECT_CLASS (klass)->get_property = _vala_skk_dict_get_property; /** * Flag to indicate whether the dictionary is read only. */ g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_DICT_READ_ONLY, g_param_spec_boolean ("read-only", "read-only", "read-only", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE)); } static void skk_dict_instance_init (SkkDict * self) { } /** * Base abstract class of dictionaries. */ GType skk_dict_get_type (void) { static volatile gsize skk_dict_type_id__volatile = 0; if (g_once_init_enter (&skk_dict_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkDictClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_dict_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkDict), 0, (GInstanceInitFunc) skk_dict_instance_init, NULL }; GType skk_dict_type_id; skk_dict_type_id = g_type_register_static (G_TYPE_OBJECT, "SkkDict", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); g_once_init_leave (&skk_dict_type_id__volatile, skk_dict_type_id); } return skk_dict_type_id__volatile; } static void _vala_skk_dict_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { SkkDict * self; self = SKK_DICT (object); switch (property_id) { default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } /** * {@inheritDoc} */ static void skk_empty_dict_real_reload (SkkDict* base, GError** error) { SkkEmptyDict * self; self = (SkkEmptyDict*) base; } /** * {@inheritDoc} */ static SkkCandidate** skk_empty_dict_real_lookup (SkkDict* base, const gchar* midasi, gboolean okuri, int* result_length1) { SkkEmptyDict * self; SkkCandidate** result = NULL; SkkCandidate** _tmp0_ = NULL; SkkCandidate** _tmp1_; gint _tmp1__length1; self = (SkkEmptyDict*) base; g_return_val_if_fail (midasi != NULL, NULL); _tmp0_ = g_new0 (SkkCandidate*, 0 + 1); _tmp1_ = _tmp0_; _tmp1__length1 = 0; if (result_length1) { *result_length1 = _tmp1__length1; } result = _tmp1_; return result; } /** * {@inheritDoc} */ static gchar** skk_empty_dict_real_complete (SkkDict* base, const gchar* midasi, int* result_length1) { SkkEmptyDict * self; gchar** result = NULL; gchar** _tmp0_ = NULL; gchar** _tmp1_; gint _tmp1__length1; self = (SkkEmptyDict*) base; g_return_val_if_fail (midasi != NULL, NULL); _tmp0_ = g_new0 (gchar*, 0 + 1); _tmp1_ = _tmp0_; _tmp1__length1 = 0; if (result_length1) { *result_length1 = _tmp1__length1; } result = _tmp1_; return result; } SkkEmptyDict* skk_empty_dict_construct (GType object_type) { SkkEmptyDict * self = NULL; self = (SkkEmptyDict*) skk_dict_construct (object_type); return self; } SkkEmptyDict* skk_empty_dict_new (void) { return skk_empty_dict_construct (SKK_TYPE_EMPTY_DICT); } static gboolean skk_empty_dict_real_get_read_only (SkkDict* base) { gboolean result; SkkEmptyDict* self; self = (SkkEmptyDict*) base; result = TRUE; return result; } static void skk_empty_dict_class_init (SkkEmptyDictClass * klass) { skk_empty_dict_parent_class = g_type_class_peek_parent (klass); SKK_DICT_CLASS (klass)->reload = skk_empty_dict_real_reload; SKK_DICT_CLASS (klass)->lookup = skk_empty_dict_real_lookup; SKK_DICT_CLASS (klass)->complete = skk_empty_dict_real_complete; SKK_DICT_CLASS (klass)->get_read_only = skk_empty_dict_real_get_read_only; G_OBJECT_CLASS (klass)->get_property = _vala_skk_empty_dict_get_property; /** * {@inheritDoc} */ g_object_class_install_property (G_OBJECT_CLASS (klass), SKK_EMPTY_DICT_READ_ONLY, g_param_spec_boolean ("read-only", "read-only", "read-only", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE)); } static void skk_empty_dict_instance_init (SkkEmptyDict * self) { } /** * Null implementation of Dict. */ GType skk_empty_dict_get_type (void) { static volatile gsize skk_empty_dict_type_id__volatile = 0; if (g_once_init_enter (&skk_empty_dict_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (SkkEmptyDictClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) skk_empty_dict_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SkkEmptyDict), 0, (GInstanceInitFunc) skk_empty_dict_instance_init, NULL }; GType skk_empty_dict_type_id; skk_empty_dict_type_id = g_type_register_static (SKK_TYPE_DICT, "SkkEmptyDict", &g_define_type_info, 0); g_once_init_leave (&skk_empty_dict_type_id__volatile, skk_empty_dict_type_id); } return skk_empty_dict_type_id__volatile; } static void _vala_skk_empty_dict_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { SkkEmptyDict * self; self = SKK_EMPTY_DICT (object); switch (property_id) { case SKK_EMPTY_DICT_READ_ONLY: g_value_set_boolean (value, skk_dict_get_read_only ((SkkDict*) self)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } GQuark skk_skk_dict_error_quark (void) { return g_quark_from_static_string ("skk_skk_dict_error-quark"); } static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { int i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); } } } } static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) { _vala_array_destroy (array, array_length, destroy_func); g_free (array); } static gint _vala_array_length (gpointer array) { int length; length = 0; if (array) { while (((gpointer*) array)[length]) { length++; } } return length; } libskk-1.0.0/m4/0000775000076400007640000000000012016557043010325 500000000000000libskk-1.0.0/m4/ltsugar.m40000644000076400007640000001042412016556761012175 00000000000000# 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 ]) libskk-1.0.0/m4/vala.m40000664000076400007640000000414111716411554011434 00000000000000dnl vala.m4 dnl dnl Copyright 2010 Marc-Andre Lureau dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License, or (at your option) any later version. dnl dnl This library is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # _VALA_CHECK_COMPILE_WITH_ARGS(ARGS, [ACTION-IF-TRUE], # [ACTION-IF-FALSE]) # -------------------------------------- # Check that Vala compile with ARGS. # AC_DEFUN([_VALA_CHECK_COMPILE_WITH_ARGS], [AC_REQUIRE([AM_PROG_VALAC])[]dnl cat <<_ACEOF >conftest.vala void main(){} _ACEOF AS_IF([vala_error=`$VALAC $1 -q -o conftest$ac_exeext conftest.vala 2>&1`], [$2], [$3]) ]) ])# _VALA_CHECK_COMPILE_WITH_ARGS # VALA_CHECK_PACKAGES(PKGS, [ACTION-IF-FOUND], # [ACTION-IF-NOT-FOUND]) # -------------------------------------- # Check that PKGS Vala bindings are installed and usable. # AC_DEFUN([VALA_CHECK_PACKAGES], [ ac_save_ifs="$IFS"; unset IFS for vala_pkg in $(echo "$1"); do vala_pkgs="$vala_pkgs --pkg $vala_pkg" vala_bindings="$vala_bindings $vala_pkg" done IFS="$ac_save_ifs" AC_MSG_CHECKING([for $vala_bindings vala bindings]) _VALA_CHECK_COMPILE_WITH_ARGS([$vala_pkgs], [vala_pkg_exists=yes], [vala_pkg_exists=no]) AS_IF([test x${vala_pkg_exists} = xno],[ ifelse([$3], , [AC_MSG_ERROR([]dnl [Package requirements were not met: $1 $vala_error Consider adjusting the XDG_DATA_DIRS environment variable if you installed bindings in a non-standard prefix. ])], [AC_MSG_RESULT([no]) $3])],[ AC_MSG_RESULT([yes]) ifelse([$2], , :, [$2])[]dnl ]) ])# VALA_CHECK_PACKAGES libskk-1.0.0/m4/intltool.m40000644000076400007640000002772412016556761012373 00000000000000## intltool.m4 - Configure intltool for the target system. -*-Shell-script-*- ## Copyright (C) 2001 Eazel, Inc. ## Author: Maciej Stachowiak ## Kenneth Christiansen ## ## 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. dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml]) # serial 42 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 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; }'` if test -n "$1"; then AC_MSG_CHECKING([for intltool >= $1]) 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 if test -z "$AM_DEFAULT_VERBOSITY"; then AM_DEFAULT_VERBOSITY=1 fi AC_SUBST([AM_DEFAULT_VERBOSITY]) INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))' INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))' INTLTOOL__v_MERGE_0='@echo " ITMRG " [$]@;' AC_SUBST(INTLTOOL_V_MERGE) AC_SUBST(INTLTOOL__v_MERGE_) AC_SUBST(INTLTOOL__v_MERGE_0) INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))' intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))' intltool__v_merge_options_0='-q' AC_SUBST(INTLTOOL_V_MERGE_OPTIONS) AC_SUBST(intltool__v_merge_options_) AC_SUBST(intltool__v_merge_options_0) INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -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) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -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) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -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) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -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) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< [$]@' INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -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) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -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) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -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) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -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) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -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) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< [$]@' else INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.[$][$]RANDOM && mkdir [$][$]_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u [$][$]_it_tmp_dir $< [$]@ && rmdir [$][$]_it_tmp_dir' fi INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -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) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -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) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -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) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -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) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -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) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -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) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -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], ...) libskk-1.0.0/m4/ltversion.m40000644000076400007640000000126212016556761012541 00000000000000# 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. # @configure_input@ # serial 3337 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.4.2]) m4_define([LT_PACKAGE_REVISION], [1.3337]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.4.2' macro_revision='1.3337' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) libskk-1.0.0/m4/libtool.m40000644000076400007640000105743212016556761012173 00000000000000# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010, 2011 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, 2009, 2010, 2011 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 57 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_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl 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 _LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) 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 "$cc_temp" | $SED "s%.*/%%; 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 AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl _LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl 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_PATH_CONVERSION_FUNCTIONS])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_WITH_SYSROOT])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 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 # 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_PREPARE_SED_QUOTE_VARS # -------------------------- # Define a few sed substitution that help us do robust quoting. m4_defun([_LT_PREPARE_SED_QUOTE_VARS], [# Backslashify 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' ]) # _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 "$][$1" | $SED "$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 "$" | $SED "$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' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$[]1 _LTECHO_EOF' } # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$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 \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done _LT_OUTPUT_LIBTOOL_INIT ]) # _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) # ------------------------------------ # Generate a child script FILE with all initialization necessary to # reuse the environment learned by the parent script, and make the # file executable. If COMMENT is supplied, it is inserted after the # `#!' sequence but before initialization text begins. After this # macro, additional text can be appended to FILE to form the body of # the child script. The macro ends with non-zero status if the # file could not be fully written (such as if the disk is full). m4_ifdef([AS_INIT_GENERATED], [m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], [m4_defun([_LT_GENERATED_FILE_INIT], [m4_require([AS_PREPARE])]dnl [m4_pushdef([AS_MESSAGE_LOG_FD])]dnl [lt_write_fail=0 cat >$1 <<_ASEOF || lt_write_fail=1 #! $SHELL # Generated by $as_me. $2 SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$1 <<\_ASEOF || lt_write_fail=1 AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 _ASEOF test $lt_write_fail = 0 && chmod +x $1[]dnl m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_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]) _LT_GENERATED_FILE_INIT(["$CONFIG_LT"], [# Run this file to recreate a libtool stub with the current configuration.]) cat >>"$CONFIG_LT" <<\_LTEOF lt_cl_silent=false 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) 2011 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. 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) ])# 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 # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # 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 '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) _LT_PROG_REPLACE_SHELLFNS 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)], [Go], [_LT_LANG(GO)], [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 m4_ifndef([AC_PROG_GO], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_GO. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_GO], [AC_LANG_PUSH(Go)dnl AC_ARG_VAR([GOC], [Go compiler command])dnl AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl _AC_ARG_VAR_LDFLAGS()dnl AC_CHECK_TOOL(GOC, gccgo) if test -z "$GOC"; then if test -n "$ac_tool_prefix"; then AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) fi fi if test -z "$GOC"; then AC_CHECK_PROG(GOC, gccgo, gccgo, false) fi ])#m4_defun ])#m4_ifndef # _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([AC_PROG_GO], [LT_LANG(GO)], [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) 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)]) AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) 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], []) dnl AC_DEFUN([AC_LIBTOOL_RC], []) # _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 there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test $_lt_result -eq 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" ]) AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], [lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then lt_cv_ld_force_load=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM ]) 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" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES([TAG]) # --------------------------------- # 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 if test "$lt_cv_ld_force_load" = "yes"; then _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) else _LT_TAGVAR(whole_archive_flag_spec, $1)='' fi _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=func_echo_all _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([TAGNAME]) # ---------------------------------- # 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. # Store the results from the different compilers for each TAGNAME. # Allow to override them for all tags through lt_cv_aix_libpath. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ lt_aix_libpath_sed='[ /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }]' _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`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 "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" fi ]) aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [m4_divert_text([M4SH-INIT], [$1 ])])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Find how we can fake an echo command that does not interpret backslash. # In particular, with Autoconf 2.60 or later we add some code to the start # of the generated configure script which will find a shell with a builtin # printf (which we can use as an echo command). m4_defun([_LT_PROG_ECHO_BACKSLASH], [ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO AC_MSG_CHECKING([how to print strings]) # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $[]1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } case "$ECHO" in printf*) AC_MSG_RESULT([printf]) ;; print*) AC_MSG_RESULT([print -r]) ;; *) AC_MSG_RESULT([cat]) ;; esac m4_ifdef([_AS_DETECT_SUGGESTED], [_AS_DETECT_SUGGESTED([ test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test "X`printf %s $ECHO`" = "X$ECHO" \ || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_WITH_SYSROOT # ---------------- AC_DEFUN([_LT_WITH_SYSROOT], [AC_MSG_CHECKING([for sysroot]) AC_ARG_WITH([sysroot], [ --with-sysroot[=DIR] Search for dependent libraries within DIR (or the compiler's sysroot if not specified).], [], [with_sysroot=no]) dnl lt_sysroot will always be passed unquoted. We quote it here dnl in case the user passed a directory name. lt_sysroot= case ${with_sysroot} in #( yes) if test "$GCC" = yes; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) AC_MSG_RESULT([${with_sysroot}]) AC_MSG_ERROR([The sysroot must be an absolute path.]) ;; esac AC_MSG_RESULT([${lt_sysroot:-no}]) _LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl [dependent libraries, and in which our libraries should be installed.])]) # _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 '$LINENO' "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 ;; *-*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*) case $host in i?86-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD="${LD-ld}_sol2" fi ;; *) 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_PROG_AR # ----------- m4_defun([_LT_PROG_AR], [AC_CHECK_TOOLS(AR, [ar], false) : ${AR=ar} : ${AR_FLAGS=cru} _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], [lt_cv_ar_at_file=no AC_COMPILE_IFELSE([AC_LANG_PROGRAM], [echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([lt_ar_try]) if test "$ac_status" -eq 0; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a AC_TRY_EVAL([lt_ar_try]) if test "$ac_status" -ne 0; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a ]) ]) if test "x$lt_cv_ar_at_file" = xno; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi _LT_DECL([], [archiver_list_spec], [1], [How to feed a file listing to the archiver]) ])# _LT_PROG_AR # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [_LT_PROG_AR 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 \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac _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_DECL([], [lock_old_archive_extraction], [0], [Whether to use a lock for old archive extraction]) ])# _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:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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 "$_lt_linker_boilerplate" | $SED '/^$/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; ;; mint*) # On MiNT this can take a long time and run out of memory. 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 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; 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"`env echo "$teststring$teststring" 2>/dev/null` \ = "X$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 $LINENO "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 /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 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; else puts (dlerror ()); } /* 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:$LINENO: $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:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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 m4_require([_LT_CHECK_SHELL_FEATURES])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 case $host_os in mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; *) lt_sed_strip_eq="s,=/,/,g" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # 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 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # 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; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` 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 # correct to gnu/linux during the next big refactor 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 # correct to gnu/linux during the next big refactor 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=`func_echo_all "$lib" | $SED '\''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 # correct to gnu/linux during the next big refactor 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,$cc_basename in yes,*) # gcc 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}' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; 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 dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' library_names_spec='${libname}.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec="$LIB" if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH. 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 # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # 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' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # 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 # correct to gnu/linux during the next big refactor 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 ;; 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[[23]].*) 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 # correct to gnu/linux during the next big refactor 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 ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" 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=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' 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' # or fails outright, so override atomically: install_override_mode=555 ;; interix[[3-9]]*) version_type=linux # correct to gnu/linux during the next big refactor 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 # correct to gnu/linux during the next big refactor 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 glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux # correct to gnu/linux during the next big refactor 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 AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], [lt_cv_shlibpath_overrides_runpath=no 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], [lt_cv_shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir ]) shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # 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 # Add ABI-specific directories to the system library path. sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" # 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;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $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 # correct to gnu/linux during the next big refactor 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 # correct to gnu/linux during the next big refactor 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 # correct to gnu/linux during the next big refactor 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 # correct to gnu/linux during the next big refactor 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 # correct to gnu/linux during the next big refactor 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 # correct to gnu/linux during the next big refactor 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([], [install_override_mode], [1], [Permission mode override for installation of shared libraries]) _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 m4_require([_LT_PROG_ECHO_BACKSLASH])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 # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' 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 ;; haiku*) 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])(-bit)?( [LM]SB)? 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 glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-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_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` fi ;; esac fi 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_DECL([], [file_magic_glob], [1], [How to find potential files when deplibs_check_method = "file_magic"]) _LT_DECL([], [want_nocaseglob], [1], [Find potential files using nocaseglob 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. if test -n "$DUMPBIN"; then : # Let the user override the test. else AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols" ;; *) DUMPBIN=: ;; esac fi 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:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: $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:$LINENO: 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_CHECK_SHAREDLIB_FROM_LINKLIB # -------------------------------- # how to determine the name of the shared library # associated with a specific link library. # -- PORTME fill in with the dynamic library characteristics m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], [m4_require([_LT_DECL_EGREP]) m4_require([_LT_DECL_OBJDUMP]) m4_require([_LT_DECL_DLLTOOL]) AC_CACHE_CHECK([how to associate runtime and link libraries], lt_cv_sharedlib_from_linklib_cmd, [lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh # decide which to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd="$ECHO" ;; esac ]) sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO _LT_DECL([], [sharedlib_from_linklib_cmd], [1], [Command to associate shared and link libraries]) ])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB # _LT_PATH_MANIFEST_TOOL # ---------------------- # locate the manifest tool m4_defun([_LT_PATH_MANIFEST_TOOL], [AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], [lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&AS_MESSAGE_LOG_FD if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest*]) if test "x$lt_cv_path_mainfest_tool" != xyes; then MANIFEST_TOOL=: fi _LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl ])# _LT_PATH_MANIFEST_TOOL # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-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 case $cc_basename in nvcc*) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; *) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; esac _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([AC_PROG_AWK])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};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /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 lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # 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 /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT@&t@_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT@&t@_DLSYM_CONST #else # define LT@&t@_DLSYM_CONST const #endif #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. */ LT@&t@_DLSYM_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_globsym_save_LIBS=$LIBS lt_globsym_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_globsym_save_LIBS CFLAGS=$lt_globsym_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 # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then nm_file_list_spec='@' 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_DECL([], [nm_file_list_spec], [1], [Specify filename containing input files for $NM]) ]) # _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)= 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)= ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $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 ;; 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). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; 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 | kopensolaris*-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* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL 8.0, 9.0 on PPC and BlueGene _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* | sunCC*) # 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' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; 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 case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" fi ;; 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 | kopensolaris*-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' ;; nagfor*) # NAG Fortran compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # 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* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene _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\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) # 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)='' ;; *Sun\ F* | *Sun*Fortran*) _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 ' ;; *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,' ;; *Intel*\ [[CF]]*Compiler*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; *Portland\ Group*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; 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* | sunf77* | sunf90* | sunf95*) _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_CACHE_CHECK([for $compiler option to produce PIC], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) # # 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]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # 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_PATH_MANIFEST_TOOL])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' _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] 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 # Also, AIX nm treats weak defined symbols like other global defined # symbols, whereas GNU nm marks them as "W". 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") || (\$ 2 == "W")) && ([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*) case $cc_basename in cl*) _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] ;; esac ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac ], [ 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_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 # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test "$lt_use_gnu_ld_interface" = 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 *GNU\ gold*) supports_anon_versioning=yes ;; *\ [[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.19, 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 install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _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(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _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/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] 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 ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; 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 | kopensolaris*-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=' $pic_flag' 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; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # 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; func_echo_all \"$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]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes ;; 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; func_echo_all \"$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* | bgf* | bgxlf* | mpixlf*) # 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)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_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 $linker_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 $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $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 $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $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 $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $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 # Also, AIX nm treats weak defined symbols like other global # defined symbols, whereas GNU nm marks them as "W". 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") || (\$ 2 == "W")) && ([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([$1]) _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 func_echo_all "${wl}${allow_undefined_flag}"; 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([$1]) _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' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _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. case $cc_basename in cl*) # Native MSVC _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # 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 $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' _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' # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper _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 `func_echo_all "$deplibs" | $SED '\''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(enable_shared_with_static_runtimes, $1)=yes ;; esac ;; 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 ;; # 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 $pic_flag -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 $pic_flag ${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 && test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${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_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 && test "$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 $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${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' ;; *) m4_if($1, [], [ # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) _LT_LINKER_OPTION([if $CC understands -b], _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_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 $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${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. # This should be the same for all languages, so no per-tag cache variable. AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], [lt_cv_irix_exported_symbol], [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_cv_irix_exported_symbol=yes], [lt_cv_irix_exported_symbol=no]) LDFLAGS="$save_LDFLAGS"]) if test "$lt_cv_irix_exported_symbol" = yes; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -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" && func_echo_all "-set_version $verstring"` -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" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${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" && func_echo_all "-set_version $verstring"` -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} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${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" && func_echo_all "-set_version $verstring"` -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 "-set_version $verstring"` -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 $pic_flag ${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 $pic_flag ${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_CACHE_CHECK([whether -lc should be explicitly linked in], [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), [$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_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no else lt_cv_[]_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* ]) _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_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_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([], [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([], [postlink_cmds], [2], [Commands necessary for finishing linking programs]) _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_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], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl 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 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_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(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_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_CFLAGS=$CFLAGS 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++"} CFLAGS=$CXXFLAGS 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 $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -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 -v "^Configured with:" | $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([$1]) _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 func_echo_all "${wl}${allow_undefined_flag}"; 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([$1]) _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' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _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*) case $GXX,$cc_basename in ,cl* | no,cl*) # Native MSVC # 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 _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # 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 $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ func_to_tool_file "$lt_outputfile"~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # g++ # _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(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _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 ;; esac ;; 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 ;; freebsd2.*) # 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*) ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; 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; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${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; func_echo_all "$list"' ;; *) 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 $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${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" && func_echo_all "-set_version $verstring"` -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 $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -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 | kopensolaris*-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; func_echo_all "$list"' _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 | sort | $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 | sort | $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 | sort | $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 | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 and above 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; func_echo_all \"$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=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # 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; func_echo_all \"$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='func_echo_all' # 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=func_echo_all 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" && func_echo_all "${wl}-set_version $verstring"` -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" && func_echo_all "-set_version $verstring"` -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 "-set_version $verstring"` -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=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) 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" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${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 -v "^Configured with:" | $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* | sunCC*) # 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='func_echo_all' # 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 $pic_flag -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 $pic_flag -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 -v "^Configured with:" | $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 -v "^Configured with:" | $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(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ '"$_LT_TAGVAR(old_archive_cmds, $1)" _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ '"$_LT_TAGVAR(reload_cmds, $1)" ;; *) _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 CFLAGS=$lt_save_CFLAGS 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_FUNC_STRIPNAME_CNF # ---------------------- # func_stripname_cnf 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). # # This function is identical to the (non-XSI) version of func_stripname, # except this one can be used by m4 code that may be executed by configure, # rather than the libtool script. m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl AC_REQUIRE([_LT_DECL_SED]) AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) func_stripname_cnf () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname_cnf ])# _LT_FUNC_STRIPNAME_CNF # _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 AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])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 ], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF package foo func foo() { } _LT_EOF ]) _lt_libdeps_save_CFLAGS=$CFLAGS case "$CC $CFLAGS " in #( *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; *\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; esac 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 ${prev}${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 fi # Expand the sysroot to ease extracting the directories later. if test -z "$prev"; then case $p in -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; esac fi case $p in =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; esac if test "$pre_test_object_deps_done" = no; then case ${prev} 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 prev= ;; *.lto.$objext) ;; # Ignore GCC LTO objects *.$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 CFLAGS=$_lt_libdeps_save_CFLAGS # 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* | sunCC*) # 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_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_LANG_PUSH(Fortran 77) if test -z "$F77" || test "X$F77" = "Xno"; then _lt_disable_F77=yes fi _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_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(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_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 lt_save_CFLAGS=$CFLAGS CC=${F77-"f77"} CFLAGS=$FFLAGS 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" CFLAGS="$lt_save_CFLAGS" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _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_LANG_PUSH(Fortran) if test -z "$FC" || test "X$FC" = "Xno"; then _lt_disable_FC=yes fi _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_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(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_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 lt_save_CFLAGS=$CFLAGS CC=${FC-"f95"} CFLAGS=$FCFLAGS 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 CFLAGS=$lt_save_CFLAGS 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_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} CFLAGS=$GCJFLAGS 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 _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_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 CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GCJ_CONFIG # _LT_LANG_GO_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Go compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GO_CONFIG], [AC_REQUIRE([LT_PROG_GO])dnl AC_LANG_SAVE # Source file extension for Go test sources. ac_ext=go # Object file extension for compiled Go test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="package main; func main() { }" # Code to be used in simple link tests lt_simple_link_test_code='package main; func main() { }' # 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_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GOC-"gccgo"} CFLAGS=$GOFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # Go 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 _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_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 CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GO_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_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC= CC=${RC-"windres"} CFLAGS= 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 CFLAGS=$lt_save_CFLAGS ])# _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_GO # ---------- AC_DEFUN([LT_PROG_GO], [AC_CHECK_TOOL(GOC, gccgo,) ]) # 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_DLLTOOL # ---------------- # Ensure DLLTOOL variable is set. m4_defun([_LT_DECL_DLLTOOL], [AC_CHECK_TOOL(DLLTOOL, dlltool, false) test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program]) AC_SUBST([DLLTOOL]) ]) # _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%"$_lt_dummy"}, \ = c,a/b,b/c, \ && 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_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) # ------------------------------------------------------ # In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and # '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. m4_defun([_LT_PROG_FUNCTION_REPLACE], [dnl { sed -e '/^$1 ()$/,/^} # $1 /c\ $1 ()\ {\ m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) } # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: ]) # _LT_PROG_REPLACE_SHELLFNS # ------------------------- # Replace existing portable implementations of several shell functions with # equivalent extended shell implementations where those features are available.. m4_defun([_LT_PROG_REPLACE_SHELLFNS], [if test x"$xsi_shell" = xyes; then _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac]) _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl func_basename_result="${1##*/}"]) _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}"]) _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl # 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}"}]) _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl func_split_long_opt_name=${1%%=*} func_split_long_opt_arg=${1#*=}]) _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl func_split_short_opt_arg=${1#??} func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac]) _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) fi if test x"$lt_shell_append" = xyes; then _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl func_quote_for_eval "${2}" dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) # Save a `func_append' function call where possible by direct use of '+=' sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: else # Save a `func_append' function call even when '+=' is not available sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$_lt_function_replace_fail" = x":"; then AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) fi ]) # _LT_PATH_CONVERSION_FUNCTIONS # ----------------------------- # Determine which file name conversion functions should be used by # func_to_host_file (and, implicitly, by func_to_host_path). These are needed # for certain cross-compile configurations and native mingw. m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_MSG_CHECKING([how to convert $build file names to $host format]) AC_CACHE_VAL(lt_cv_to_host_file_cmd, [case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac ]) to_host_file_cmd=$lt_cv_to_host_file_cmd AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) _LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], [0], [convert $build file names to $host format])dnl AC_MSG_CHECKING([how to convert $build file names to toolchain format]) AC_CACHE_VAL(lt_cv_to_tool_file_cmd, [#assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac ]) to_tool_file_cmd=$lt_cv_to_tool_file_cmd AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) _LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], [0], [convert $build files to toolchain format])dnl ])# _LT_PATH_CONVERSION_FUNCTIONS libskk-1.0.0/m4/ltoptions.m40000644000076400007640000003007312016556761012551 00000000000000# Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004, 2005, 2007, 2008, 2009 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 7 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], [1], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [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@<:@=PKGS@:>@], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for lt_pkg in $withval; do IFS="$lt_save_ifs" if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS="$lt_save_ifs" ;; esac], [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])]) libskk-1.0.0/m4/lt~obsolete.m40000644000076400007640000001375612016556761013101 00000000000000# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2009 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 5 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_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])]) m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) libskk-1.0.0/install-sh0000755000076400007640000003325611774201545011743 00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2011-01-19.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 # Protect names problematic for `test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac 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 # Protect names problematic for `test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac 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 do_exit='(exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 trap "ret=141; $do_exit" 13 trap "ret=143; $do_exit" 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 problematic for `test' and other utilities. 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 # 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 X"$d" = X && 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: libskk-1.0.0/config.guess0000755000076400007640000012716111774201545012256 00000000000000#! /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, 2010, # 2011, 2012 Free Software Foundation, Inc. timestamp='2012-01-01' # 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, 2009, 2010, 2011, 2012 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 # 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 tuples: *-*-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}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-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'` # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; 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-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-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-unknown-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-unknown-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:*:[4567]) 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}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-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-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` case ${UNAME_PROCESSOR} in amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_PROCESSOR}-unknown-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*:MSYS*:*) echo ${UNAME_MACHINE}-pc-msys 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-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-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-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`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}-unknown-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}-unknown-linux-gnu else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then echo ${UNAME_MACHINE}-unknown-linux-gnueabi else echo ${UNAME_MACHINE}-unknown-linux-gnueabihf fi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-gnu exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; hexagon:Linux:*:*) echo ${UNAME_MACHINE}-unknown-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}-pc-linux-${LIBC}" exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-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}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; padre:Linux:*:*) echo sparc-unknown-linux-gnu exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-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-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; tile*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-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}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-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-unknown-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}-unknown-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-unknown-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-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-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-unknown-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 ;; NEO-?:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk${UNAME_RELEASE} 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}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-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-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-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: libskk-1.0.0/Makefile.am0000664000076400007640000000424711727275154012000 00000000000000# Copyright (C) 2011-2012 Daiki Ueno # Copyright (C) 2011-2012 Red Hat, 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 3 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, see . SUBDIRS = libskk rules tools tests po DISTCHECK_CONFIGURE_FLAGS = --enable-docs --enable-fep ACLOCAL_AMFLAGS = -I m4 if HAVE_VALADOC SUBDIRS += docs endif GITIGNOREFILES = \ INSTALL \ aclocal.m4 \ compile \ config.guess \ config.h.in \ config.sub \ depcomp \ install-sh \ ltmain.sh \ missing \ mkinstalldirs \ `find "m4" -type f -name "*.m4" ! -name "vala.m4" -print` \ $(top_builddir)/lcov.html/* \ $(NULL) distclean-local: if test "x$(srcdir)" = "x."; then :; else \ rm -f ChangeLog; \ fi MAINTAINERCLEANFILES = \ $(top_builddir)/lcov.info \ $(srcdir)/ChangeLog \ $(NULL) EXTRA_DIST = lcov.mk maintainer-clean-local: maintainer-clean-local-lcov maintainer-clean-local-lcov: rm -rf $(top_builddir)/lcov.html .PHONY: maintainer-clean-local-lcov ChangeLog: @echo Creating $@ @if test -d "$(srcdir)/.git"; then \ (GIT_DIR=$(top_srcdir)/.git ./missing --run git log --stat) | fmt --split-only > $@.tmp \ && mv -f $@.tmp $@ \ || ($(RM) $@.tmp; \ echo Failed to generate ChangeLog, your ChangeLog may be outdated >&2; \ (test -f $@ || echo git-log is required to generate this file >> $@)); \ else \ test -f $@ || \ (echo A git checkout and git-log is required to generate ChangeLog >&2 && \ echo A git checkout and git-log is required to generate this file >> $@); \ fi .PHONY: ChangeLog # Code coverage support include $(top_srcdir)/lcov.mk -include $(top_srcdir)/git.mk libskk-1.0.0/ChangeLog0000664000076400007640000031463012016557043011506 00000000000000commit 112257a2879abe51d2fb298426d82f5a915e9f3c Author: Daiki Ueno Date: Mon Aug 27 11:35:35 2012 +0900 Bump version to 1.0.0. NEWS | 7 +++++++ configure.ac | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) commit 3f84867ded4288e0ab16ae0cee73d638ac419cca Author: Daiki Ueno Date: Sat Aug 25 11:12:34 2012 +0900 user-dict: create parent directory if not exist (Debian bug#685745). libskk/user-dict.vala | 2 ++ 1 file changed, 2 insertions(+) commit 0b362f579897667db92ac6d3a3dea55f7c3cd787 Author: Daiki Ueno Date: Thu Aug 23 17:49:38 2012 +0900 context: clear output and preedit on reset libskk/context.vala | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) commit 69a57ce83218344a6d067c38e080d744c0fd6ba7 Author: Daiki Ueno Date: Tue Jul 31 14:17:18 2012 +0900 Include common.h from context test (Issue#19). tests/context.c | 1 + 1 file changed, 1 insertion(+) commit e335c01e02eabe803730a02ec95fcfcf9690c040 Author: Daiki Ueno Date: Mon Jul 2 10:54:45 2012 +0900 Bump version to 0.0.13. NEWS | 8 ++++++++ configure.ac | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) commit ae6f19be24ded108da62b946e75cb86ee09d3533 Author: Daiki Ueno Date: Mon Jul 2 11:06:55 2012 +0900 Fix valadoc errors. docs/Makefile.am | 1 + libskk/candidate-list.vala | 2 +- libskk/context.vala | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) commit a95245abe22eda52255daf3925d587907ca6f925 Author: Daiki Ueno Date: Fri Jun 15 12:06:00 2012 +0900 libskk: avoid unwanted ulong -> uint cast libskk/rule.vala | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit cf65fb2a67bb8b5916d349870d23f542cd9758c4 Author: Daiki Ueno Date: Tue Jun 12 11:49:05 2012 +0900 Update required Vala version to 0.14.0 (Issue#17). configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 49855a94c2ab7044569780d58a064ce571e25e9d Author: Daiki Ueno Date: Wed May 30 11:45:55 2012 +0900 kana-kan: fix edge score computation libskk/kana-kan.vala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 653c13fe954cfa8271d26b9f0978884eaf22a7b4 Author: Daiki Ueno Date: Tue May 29 18:36:18 2012 +0900 Fix kana-kan test. tests/kana-kan.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) commit fbbea6190782da447caddc903cbc31a0d8676f38 Author: Daiki Ueno Date: Fri May 25 11:19:43 2012 +0900 cdb: make sure that integer does not stride across 4-byte alignments Fixes Debian bug#674471. libskk/cdb-dict.vala | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 8930d2b8da0c421058aea245cde10057e08a0529 Author: Daiki Ueno Date: Mon Apr 16 16:09:55 2012 +0900 Update README. README | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit bdbf9319ec8720fb128cb0c5c97aaa65268473d2 Author: Daiki Ueno Date: Mon Apr 16 16:07:37 2012 +0900 Make some map files optional. libskk/map-file.vala | 32 ++++++++++++++++---------------- libskk/rom-kana.vala | 2 +- libskk/rule.vala | 41 +++++++++++++++++++++++++++++++++-------- 3 files changed, 50 insertions(+), 25 deletions(-) commit 73e79b9443d1c46f5d089f378c1d52d8bfb9909f Author: Daiki Ueno Date: Thu Mar 29 10:40:05 2012 +0900 Bump version to 0.0.12. NEWS | 2 +- configure.ac | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit f401f8e51eb2b4faf76ecacf85d79379600eb60c Author: Daiki Ueno Date: Tue Mar 27 11:20:01 2012 +0900 Adjust coding style of tools/skk.vala to tools/fep.vala's. tools/skk.vala | 287 ++++++++++++++++++++++++++++----------------------------- 1 file changed, 140 insertions(+), 147 deletions(-) commit 76232a578db88158b3c9241f0d470dc7d9d6824f Author: Daiki Ueno Date: Tue Mar 27 11:05:36 2012 +0900 Add 0.0.12 changes to NEWS. NEWS | 10 ++++++++++ 1 file changed, 10 insertions(+) commit f3fd13caf201c90cbd4d9aafc1e838cce5234136 Author: Daiki Ueno Date: Mon Mar 26 17:00:29 2012 +0900 Update act and kzik rules. Also add missing rules/azik/keymap/default.json to git. rules/Makefile.am | 2 ++ rules/act/keymap/hankaku-katakana.json | 7 ++++++- rules/act/keymap/hiragana.json | 7 ++++++- rules/act/keymap/katakana.json | 7 ++++++- rules/azik/keymap/default.json | 10 ++++++++++ rules/azik/keymap/hankaku-katakana.json | 7 ++++++- rules/kzik/keymap/default.json | 10 ++++++++++ rules/kzik/keymap/hankaku-katakana.json | 9 +++++++-- rules/kzik/keymap/hiragana.json | 9 +++++++-- rules/kzik/keymap/katakana.json | 9 +++++++-- 10 files changed, 67 insertions(+), 10 deletions(-) commit 90cce303bb385cc03680712e38a94cab9a74c3f0 Author: Daiki Ueno Date: Mon Mar 26 16:55:23 2012 +0900 Check if input characters are valid in the rom-kana trie. libskk/rom-kana.vala | 8 ++++++++ libskk/state.vala | 9 +++++---- 2 files changed, 13 insertions(+), 4 deletions(-) commit 2a3e85c5dc25ee9db4d41f3ef2ddae848e6857a8 Author: Daiki Ueno Date: Mon Mar 26 16:31:48 2012 +0900 Port --preedit-style option from ibus-fep. configure.ac | 2 +- tools/Makefile.am | 29 ++- tools/fep.vala | 644 ++++++++++++++++++++++++++++----------------------- tools/fep.wrapper.in | 27 --- tools/skkfep.in | 12 +- 5 files changed, 381 insertions(+), 333 deletions(-) commit d875311388320083f839d2d1f07574bb42da0187 Author: Daiki Ueno Date: Mon Mar 26 11:58:25 2012 +0900 Simplify the previous commit. libskk/state.vala | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit f85ae8c73cedc83f4a2d31e5b4681fcfafdaa3fb Author: Daiki Ueno Date: Mon Mar 26 11:33:38 2012 +0900 Add new command "upper-?" to define case table (Issue#16). * Define "[" as hiragana/katakana trigger in AZIK. * Define ":" as a upper case letter of ";". libskk/state.vala | 32 ++++++++++++++++++++++++-------- rules/README.rules | 1 + rules/azik/keymap/hankaku-katakana.json | 2 +- rules/azik/keymap/hiragana.json | 9 +++++++-- rules/azik/keymap/katakana.json | 9 +++++++-- rules/azik/keymap/latin.json | 2 +- rules/azik/keymap/wide-latin.json | 2 +- tests/rule.c | 1 + 8 files changed, 43 insertions(+), 15 deletions(-) commit 51b8d344c0cdcdc3c41715c26c66ac527925a97a Author: Daiki Ueno Date: Fri Mar 23 16:21:48 2012 +0900 rom-kana: fix non-terminal node check (Issue#16) libskk/rom-kana.vala | 2 +- tests/rule.c | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) commit 1fba8a5e3885bb21d9c2834411fdbefcd1ff9684 Author: Daiki Ueno Date: Tue Mar 13 18:09:41 2012 +0900 Fix an issue number in the basic test. tests/basic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f1a82c50ceee59ec4a89b35035c4be4629b4da47 Author: Daiki Ueno Date: Tue Mar 13 18:03:31 2012 +0900 Flush "nn" before input mode change (Issue#15). libskk/state.vala | 1 + tests/basic.c | 4 ++++ 2 files changed, 5 insertions(+) commit 822b94c924596acb6bff20ca1d5c7cdf4a8b3b2a Author: Daiki Ueno Date: Tue Mar 6 15:23:23 2012 +0900 Flush "nn" first if okuri-kana is "N [AIUEO]". libskk/rom-kana.vala | 5 +++-- libskk/state.vala | 3 +++ tests/basic.c | 3 --- 3 files changed, 6 insertions(+), 5 deletions(-) commit 2c7c1a8d74c71a585526c802791245493dc1f4cd Author: Daiki Ueno Date: Tue Mar 6 14:26:26 2012 +0900 Fix build with vala 0.15. libskk/cdb-dict.vala | 7 ++++++- libskk/file-dict.vala | 7 ++++++- libskk/user-dict.vala | 15 ++++++++++++++- 3 files changed, 26 insertions(+), 3 deletions(-) commit 3c74ee1f481766606f3f663fa27c89b41dc5b7d4 Author: Daiki Ueno Date: Mon Mar 5 12:42:11 2012 +0900 Simplify basic tests with fixtures. tests/basic.c | 323 +++++++++++++++++++++++++-------------------------------- tests/common.c | 7 +- tests/common.h | 11 +- tests/rule.c | 38 +++---- 4 files changed, 169 insertions(+), 210 deletions(-) commit 9663f16e124211b0b396565eeee31eb608fe42c6 Author: Daiki Ueno Date: Mon Mar 5 11:58:44 2012 +0900 Fix example in README. README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5bffd1f424a1141a8f1f8bc6e83b00f43dfedfbf Author: Daiki Ueno Date: Mon Mar 5 11:56:50 2012 +0900 Mark ibus-skk issue as "ibus-skk Issue#XX". libskk/skkserv.vala | 2 +- tests/basic.c | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) commit c48248720897cc51029564c2d8307f7783021ec8 Author: TAKAHASHI Tamotsu Date: Sun Mar 4 15:26:49 2012 +0900 Try to fix issue #12. (untested) Util.get_okurigana_prefix assumes its argument is hiragana. So we have to Util.get_hiragana it before giving it to get_okurigana_prefix. libskk/state.vala | 3 ++- tests/basic.c | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) commit eb984855db93a4b9c43f14fc249728efbdf2c6f0 Author: Daiki Ueno Date: Sat Feb 11 20:49:39 2012 +0900 Bump version to 0.0.11. configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ee26f76c11840350167eb04e8ea95a7e2bc08323 Author: Daiki Ueno Date: Sat Feb 11 20:48:02 2012 +0900 Add doc comment for Skk.KeyEvent.from_x_keysym. libskk/key-event.vala | 8 ++++++++ 1 file changed, 8 insertions(+) commit 956fb0ece9e625849c480c6d5b89d5654a0fa3fe Author: Daiki Ueno Date: Sat Feb 11 20:19:55 2012 +0900 Add entries for 0.0.11. NEWS | 6 ++++++ 1 file changed, 6 insertions(+) commit 2bd5bb917bc506366f746dc4e7b73587ee266294 Author: Daiki Ueno Date: Sat Feb 11 20:16:41 2012 +0900 Fix automake usage. Makefile.am | 3 ++- tools/Makefile.am | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) commit 39f42f36c2f0f1309e8b073d30b9ecb26e240a07 Author: Daiki Ueno Date: Sat Feb 11 20:15:15 2012 +0900 fep: highlight current candidate. tools/fep.vala | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) commit 9f52f3c2f4ff6220b75206003c26737dc7bca2d2 Author: Daiki Ueno Date: Sat Feb 11 15:28:34 2012 +0900 Include m4/vala.m4 from vala. Makefile.am | 2 +- m4/vala.m4 | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+), 1 deletion(-) commit 133f680f3d51dcfa05032ce1e99e12a8b926764c Author: Daiki Ueno Date: Wed Feb 8 17:48:13 2012 +0900 fep: show candidates at the status line. tools/fep.vala | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 108 insertions(+), 5 deletions(-) commit c32cefff3a672da51a8702c097b4e42fa537e637 Author: Daiki Ueno Date: Tue Feb 7 16:22:05 2012 +0900 Use Fep.GClient.send_text instead of send_data. tools/fep.vala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 086479d8673de8b87245ff2cfcfbe50e62905587 Author: Daiki Ueno Date: Tue Feb 7 12:28:50 2012 +0900 Use IOChannel.add_watch instead of using Posix.poll directly. tools/fep.vala | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) commit e47dc2f4986107ac2137a1950b466790c35e3f33 Author: Daiki Ueno Date: Tue Feb 7 11:20:02 2012 +0900 Follow libfep API change. tools/fep.vala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 941dfe5cf3234ab4d5b5c7cc1076feae4237d9e7 Author: Daiki Ueno Date: Mon Feb 6 18:41:27 2012 +0900 Supply the rest of command args to fep.wrapper. tools/fep.wrapper.in | 23 ++++++++++++++++++++++- tools/skkfep.in | 17 ++++++++++++++++- 2 files changed, 38 insertions(+), 2 deletions(-) commit e9cec058777b28ac30400ec59a111f3084592d5d Author: Daiki Ueno Date: Mon Feb 6 16:38:27 2012 +0900 Follow the libfep API change. tools/fep.vala | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) commit e91c25b6e4fa79812355ddcbd96256137ed935b2 Author: Daiki Ueno Date: Mon Feb 6 12:59:49 2012 +0900 Add shift_jis-2004 to SHIFT_JISX0213 mapping. libskk/encoding.vala | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 01a446f6766cce0810241ffdd550fd81cf5c74af Author: Daiki Ueno Date: Sun Feb 5 21:21:38 2012 +0900 Fix the last commit. libskk/candidate-list.vala | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit 80e40bcf573ba4a13dfd6c13ca0bcb5591f2c308 Author: Daiki Ueno Date: Sun Feb 5 10:56:07 2012 +0900 Make sure to emit signals on CandidateList#clear (ibus-skk Issue#47). libskk/candidate-list.vala | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit c0b099c162a8e7c695585cbf5fe0730a2c2509e3 Author: Daiki Ueno Date: Fri Feb 3 17:10:47 2012 +0900 Bump version to 0.0.10. configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4f9398cb3d6fc7ec69702f679ea28ec7894e0974 Author: Daiki Ueno Date: Fri Feb 3 17:10:28 2012 +0900 Add news entry for skkfep. NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3a9f77df08d0e40a2f7a2cd2877499512ebcb2a2 Author: Daiki Ueno Date: Fri Feb 3 17:10:00 2012 +0900 Remove "[DictEdit]" translation from po. po/ja.po | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) commit f4a301f0599e074252d44897a05b88caad6c62a3 Author: Daiki Ueno Date: Fri Feb 3 17:02:30 2012 +0900 Fix build with --disable-fep; add an entry about skkfep in NEWS. NEWS | 2 + po/POTFILES.in | 4 +- po/POTFILES.skip | 3 +- tools/Makefile.am | 35 ++++++--- tools/fep.vala | 132 +++++++++++++++++++++++++++++++++- tools/fep.wrapper.in | 6 ++ tools/skk.vala | 175 +++++++++++++++++++++++++++++++++++++++++++++ tools/skkfep.in | 4 +- tools/skkfep.wrapper.in | 4 -- tools/tool.vala | 186 ------------------------------------------------ 10 files changed, 345 insertions(+), 206 deletions(-) commit 62b102033c79d7c50318e640eddcba132ab29fb6 Author: Daiki Ueno Date: Mon Jan 30 19:07:12 2012 +0900 Support libfep. To compile with libfep, pass --enable-fep to configure. It will install a new program called skkfep for testing. configure.ac | 11 +++++ tools/Makefile.am | 28 ++++++++++++- tools/fep.vala | 105 ++++++++++++++++++++++++++++++++++++++++++++++++ tools/skkfep.1 | 16 ++++++++ tools/skkfep.in | 6 +++ tools/skkfep.wrapper.in | 4 ++ tools/tool.vala | 31 +++++++++++++- 7 files changed, 197 insertions(+), 4 deletions(-) commit 7135e430344fd9b43e3056b39bef3d09d4a6a19a Author: Daiki Ueno Date: Fri Feb 3 10:53:54 2012 +0900 Clear rom kana converter when switching from None -> Start (Issue#11). Also don't prepend output to preedit when state is top level. libskk/context.vala | 19 +++++++++---------- libskk/state.vala | 3 +++ tests/basic.c | 6 +++++- 3 files changed, 17 insertions(+), 11 deletions(-) commit 5a7515eb46ba0ceb17e9dc75005af93a6c0ad9ba Author: Daiki Ueno Date: Wed Feb 1 16:53:31 2012 +0900 Add NEWS entries for 0.0.10. NEWS | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 6509e3d05190e69561f0eb8729da3ae0e0884c72 Author: Daiki Ueno Date: Wed Feb 1 16:51:24 2012 +0900 Port Skk.KeyEvent.from_x_keysym from ibus-skk. libskk/Makefile.am | 1 + libskk/context.vala | 10 +- libskk/key-event.vala | 55 +- libskk/keymap.vala | 17 +- libskk/keysyms.vala | 2106 +++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 2184 insertions(+), 5 deletions(-) commit caf894e1c284a80fc9ff006838685d869ff9ecb3 Author: Daiki Ueno Date: Tue Jan 31 18:51:12 2012 +0900 Re-enable /libskk/abort test case which was mistakenly disabled. tests/basic.c | 2 -- 1 file changed, 2 deletions(-) commit 27de85be755ec34925337877d16b857b08e00d51 Author: Daiki Ueno Date: Tue Jan 31 18:48:19 2012 +0900 Work around euc-jis-2004 coding cookie. libskk/encoding.vala | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 5b30bd73e1031a28861cd204a0c144161d6ed9df Author: Daiki Ueno Date: Tue Jan 31 18:47:41 2012 +0900 Change preedit format for dict edit mode. libskk/context.vala | 38 +++++++++++++++++++++++--------------- tests/basic.c | 32 +++++++++++++++++--------------- tests/context.c | 2 +- 3 files changed, 41 insertions(+), 31 deletions(-) commit 6a0389b757218376278ab746d48d1f83d3956f7c Merge: 988a007 929edad Author: Daiki Ueno Date: Mon Jan 30 16:32:25 2012 +0900 Merge branch 'master' of github.com:ueno/libskk commit 988a0079e0c6647148e96a75a9fc89e69a3493ec Author: Daiki Ueno Date: Mon Jan 30 16:31:44 2012 +0900 Respect coding cookie when reading file dict (ibus-skk Issue#45). libskk/context.vala | 1 + libskk/encoding.vala | 46 ++++++++++++++++++++++++++++++++++++++++++++++ libskk/file-dict.vala | 21 +++++++++++++++++++++ libskk/user-dict.vala | 48 ++++++++++++++---------------------------------- 4 files changed, 82 insertions(+), 34 deletions(-) commit 929edada57b33a4f5efd8934878c786dcd7c6cd9 Author: Daiki Ueno Date: Sun Jan 29 17:07:53 2012 +0900 Fix "Q" binding in default and nicola keymaps (Issue#10). rules/default/keymap/default.json | 1 - rules/default/keymap/hankaku-katakana.json | 1 + rules/default/keymap/hiragana.json | 1 + rules/default/keymap/katakana.json | 1 + rules/nicola/keymap/default.json | 1 - rules/nicola/keymap/kana.json | 3 ++- tests/basic.c | 4 +++- 7 files changed, 8 insertions(+), 4 deletions(-) commit 65680c3d71d30d18655aba705fd45936e256c679 Author: Daiki Ueno Date: Fri Jan 27 10:54:17 2012 +0900 Update git.mk. git.mk | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) commit 781dd29317463f824c3644a0c36836e81c0108f2 Author: Daiki Ueno Date: Fri Jan 27 10:17:23 2012 +0900 Move docs/skk.1 to tools/skk.1 so it is installed without --enable-docs. docs/Makefile.am | 2 -- docs/skk.1 | 55 ------------------------------------------------------- tools/Makefile.am | 2 ++ tools/skk.1 | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 57 insertions(+), 57 deletions(-) commit e18039c5466cddd2c88c4d63f98e0d2064ce0f3a Author: Daiki Ueno Date: Thu Jan 26 15:57:08 2012 +0900 Escape hyphen in skk.1. docs/skk.1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 7cbf39bc44b19f11944b76985c31acfd0106ffd6 Author: Daiki Ueno Date: Wed Jan 25 17:10:12 2012 +0900 Bump version to 0.0.9. configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a4cbcaa7f0e7b723d5ef0ff0f1ef5feb7d1830f1 Author: Daiki Ueno Date: Wed Jan 25 17:09:06 2012 +0900 Request server to close skkserv connection before closing local port. libskk/skkserv.vala | 5 +++++ 1 file changed, 5 insertions(+) commit 566dd9732c58c070dce57570484b91907dcf7143 Author: Daiki Ueno Date: Wed Jan 25 17:06:56 2012 +0900 Delete ChangeLog on make distclean when off the tree build. Makefile.am | 5 +++++ 1 file changed, 5 insertions(+) commit 77d60c6cd6bba2f58fd4d79c4f5d995e4c34d5fb Author: Daiki Ueno Date: Tue Jan 17 17:52:08 2012 +0900 Consume any key when "ã‚“" is produced in rom-kana conversion (Issue#9). libskk/rom-kana.vala | 9 ++++++--- tests/basic.c | 2 ++ 2 files changed, 8 insertions(+), 3 deletions(-) commit 1a16bb57857efbcbd454fd7c335335bee0d3f37d Author: Daiki Ueno Date: Mon Jan 16 12:41:10 2012 +0900 Generate ChangeLog from git log. Makefile.am | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit 3bac7b90023ff50dce464c0a45315c3fa96d3d61 Author: Daiki Ueno Date: Mon Jan 16 11:56:08 2012 +0900 Add license to README.rules. rules/README.rules | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 396035a9de5a1d3880f6eb7ad698603c5bc1ee95 Author: Daiki Ueno Date: Mon Jan 16 11:40:58 2012 +0900 Revert Skk.init coverage hack. libskk/context.vala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1ee72f95ae7c95b1a61432781fa5cc5d26f07ba2 Author: Daiki Ueno Date: Mon Jan 16 11:40:32 2012 +0900 Factor out socket closing code in skkserv.vala. libskk/candidate-list.vala | 23 +++++++++++++---------- libskk/skkserv.vala | 26 +++++++++++++++++--------- 2 files changed, 30 insertions(+), 19 deletions(-) commit d7f20a8015f26c4d8a1d4c2708c62ab49662568a Author: Daiki Ueno Date: Mon Jan 16 11:40:08 2012 +0900 Use Gee.LinkedList instead of GLib.SList for stack. libskk/context.vala | 125 +++++++++++++++++++++++++++++++--------------------- libskk/state.vala | 4 +- 2 files changed, 76 insertions(+), 53 deletions(-) commit b9043aa16f099acb46ca3a413b05fec79961c03e Author: Daiki Ueno Date: Fri Jan 13 18:43:43 2012 +0900 Fix memleaks in test cases, minor coverage improvements. libskk/context.vala | 2 +- libskk/key-event.vala | 2 +- libskk/rom-kana.vala | 2 +- libskk/skkserv.vala | 3 ++- libskk/state.vala | 1 + libskk/util.vala | 4 ++++ tests/basic.c | 1 + tests/cdb-dict.c | 1 + tests/context.c | 34 +++++++++++++++++++++++++++++++--- tests/rule.c | 10 +++++++--- tests/skkserv.c | 16 +++++++++++++++- tests/user-dict.c | 1 + 12 files changed, 66 insertions(+), 11 deletions(-) commit f5e1087f89ff4935532e4138bb770ab2e36c94f9 Author: Daiki Ueno Date: Fri Jan 13 17:36:51 2012 +0900 Create filter instance per rule. libskk/rule.vala | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) commit 707f4b3cb75a63bde67c509afbcb0f49dc79fec2 Author: Daiki Ueno Date: Fri Jan 13 16:03:32 2012 +0900 Add NEWS entry for 0.0.9. NEWS | 9 +++++++++ 1 file changed, 9 insertions(+) commit ca25ce25cba9913702a4e35ebcde0e51ecebbf36 Author: Daiki Ueno Date: Fri Jan 13 16:03:14 2012 +0900 Add skkserv test. tests/Makefile.am | 5 +- tests/skkserv.c | 164 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 168 insertions(+), 1 deletion(-) commit a395d3e42123067eaf494ed6b192998201229100 Author: Daiki Ueno Date: Fri Jan 13 16:02:25 2012 +0900 Fix skkserv completion response handling. Also make sure to close the socket on finalize. libskk/skkserv.vala | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 159e06616717984b6e1c92b03708e5857feba58c Author: Daiki Ueno Date: Fri Jan 13 10:44:01 2012 +0900 Add tests for CDB dict and surrounding text. Also split tests/context.c into separate files. libskk/rom-kana.vala | 2 + tests/Makefile.am | 18 +- tests/basic.c | 452 +++++++++++++++++++++++++++++++++++++++++++++++ tests/cdb-dict.c | 58 ++++++ tests/cdb-dict.dat | Bin 0 -> 2426 bytes tests/context.c | 485 --------------------------------------------------- tests/file-dict.c | 5 + tests/rule.c | 97 +++++++++++ tests/user-dict.c | 22 ++- 9 files changed, 650 insertions(+), 489 deletions(-) commit 0fede13b00f33586ca5b7db5c81ee858d8c84360 Author: Daiki Ueno Date: Thu Jan 12 18:46:17 2012 +0900 Improve candidate_list test. libskk/candidate-list.vala | 3 +- tests/context.c | 72 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+), 1 deletion(-) commit 4aefb71cf91ef40cc8ca109a8451a6a8f6bbc503 Author: Daiki Ueno Date: Thu Jan 12 18:19:42 2012 +0900 Make ExprNode a struct instead of a class. libskk/expr.vala | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 761cef8360277f18ef9d9acc13e6ff8e1ffcfa9c Author: Daiki Ueno Date: Thu Jan 12 18:19:21 2012 +0900 Derive EncodingConverter from GLib.Object. libskk/encoding.vala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e255c01ae846f666bc3510509c11343ff3c0a317 Author: Daiki Ueno Date: Thu Jan 12 18:18:34 2012 +0900 Always add empty dict to increase test coverage. tests/common.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit f59f11038d70702dac49f863985859ca6c9dfb47 Author: Daiki Ueno Date: Thu Jan 12 18:00:39 2012 +0900 Fix compilation warnings. tests/common.c | 12 +++++++++--- tests/common.h | 5 +++-- tests/context.c | 37 +++++++++++++++++++------------------ tests/user-dict.c | 24 +++++++++++------------- tools/tool.vala | 32 ++++++++++++++++++++++++++++---- 5 files changed, 70 insertions(+), 40 deletions(-) commit 3bd2c44c776b5623e35e2b10cfa28834c8d78ee0 Author: Daiki Ueno Date: Thu Jan 12 16:49:19 2012 +0900 Add --enable-valgrind-tests configure option. configure.ac | 15 +++++++++++++++ tests/Makefile.am | 8 ++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) commit d53e73e4b47cb21010b1a4118ec15066e6a25854 Author: Daiki Ueno Date: Thu Jan 12 16:33:15 2012 +0900 Fix skk command description in the command line help. po/ja.po | 12 ++++++++---- tools/tool.vala | 3 ++- 2 files changed, 10 insertions(+), 5 deletions(-) commit dba80820a606eb1fd1e92f3fcb6b698801602dab Author: Daiki Ueno Date: Thu Jan 12 16:15:40 2012 +0900 Fix gtk-doc link in README. README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4d00219f0619c5ddccfab1d7e4c080ca19b83658 Author: Daiki Ueno Date: Thu Jan 12 13:54:23 2012 +0900 Support code coverage check with lcov. Makefile.am | 16 ++++++++++++++++ configure.ac | 14 ++++++++++++++ lcov.mk | 23 +++++++++++++++++++++++ libskk/Makefile.am | 7 ++++++- 4 files changed, 59 insertions(+), 1 deletion(-) commit c3c04a918260563f68ab845d15fd13a0f579e79e Author: Daiki Ueno Date: Thu Jan 12 11:53:54 2012 +0900 Don't export internal symbols from libskk.so. configure.ac | 15 +++++++++++++++ libskk/Makefile.am | 12 ++++++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) commit 67bc47fb031ed0b1e761506d96e218b54ff7d4fe Author: Daiki Ueno Date: Thu Jan 12 11:26:46 2012 +0900 Doc fix. libskk/cdb-dict.vala | 2 +- libskk/context.vala | 2 +- libskk/file-dict.vala | 2 +- libskk/key-event-filter.vala | 7 ++++++- libskk/nicola.vala | 10 +++++++++- libskk/skkserv.vala | 2 +- libskk/user-dict.vala | 2 +- 7 files changed, 20 insertions(+), 7 deletions(-) commit 524a25c85be58fb6177fee38717846c2dca599c6 Author: Daiki Ueno Date: Thu Jan 12 11:13:50 2012 +0900 Split out some classes to separate files to make valadoc happy. libskk/Makefile.am | 2 + libskk/candidate-list.vala | 410 +++++++++++++++++++++++++++++++++++++++++++ libskk/candidate.vala | 390 ---------------------------------------- libskk/key-event-filter.vala | 63 +++++++ libskk/key-event.vala | 45 ----- 5 files changed, 475 insertions(+), 435 deletions(-) commit 499e7a56661ec0b1d736139340f23fe840d36b7e Author: Daiki Ueno Date: Thu Jan 12 10:30:47 2012 +0900 Update copyright year. Makefile.am | 4 ++-- NEWS | 4 ++-- README | 4 ++-- configure.ac | 4 ++-- libskk/Makefile.am | 4 ++-- libskk/candidate.vala | 4 ++-- libskk/cdb-dict.vala | 4 ++-- libskk/context.vala | 4 ++-- libskk/dict.vala | 4 ++-- libskk/encoding.vala | 4 ++-- libskk/expr.vala | 4 ++-- libskk/file-dict.vala | 4 ++-- libskk/key-event.vala | 4 ++-- libskk/keymap.vala | 4 ++-- libskk/map-file.vala | 4 ++-- libskk/nicola.vala | 4 ++-- libskk/rom-kana.vala | 4 ++-- libskk/rule.vala | 4 ++-- libskk/skkserv.vala | 4 ++-- libskk/state.vala | 4 ++-- libskk/user-dict.vala | 4 ++-- libskk/util.vala | 4 ++-- rules/Makefile.am | 4 ++-- tests/Makefile.am | 4 ++-- tools/Makefile.am | 4 ++-- tools/tool.vala | 4 ++-- 26 files changed, 52 insertions(+), 52 deletions(-) commit 8ca45cc27d4feca52bb08785f6b2220aac327a91 Author: Daiki Ueno Date: Thu Jan 12 10:27:06 2012 +0900 Import skk.1 from Debian. docs/Makefile.am | 2 ++ docs/skk.1 | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+) commit 8874edd2f0a7bf852a6a4f0a5d03d0dbc4a2768a Author: Daiki Ueno Date: Wed Jan 11 17:16:07 2012 +0900 Add NEWS entry for 0.0.8. NEWS | 5 +++++ 1 file changed, 5 insertions(+) commit 63b79d2e99ece7b9b8ef49b3c2e52123f05bd310 Author: Daiki Ueno Date: Wed Jan 11 17:05:09 2012 +0900 Bump version to 0.0.8. configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d2f6bf8c335bbc45bc1ec9f8f7d37fffd7a01d43 Author: Daiki Ueno Date: Wed Jan 11 17:04:55 2012 +0900 Fix preedit change detection. libskk/context.vala | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 5ea878fad07966555c8723a079d23d52acdc0391 Author: Daiki Ueno Date: Tue Jan 10 18:25:22 2012 +0900 Don't expose State's CandidateList to client. Also make sure to disconnect signal handlers from per-state objects. libskk/candidate.vala | 399 ++++++++++++++++++++++++++++++++++---------------- libskk/context.vala | 67 ++++++--- libskk/state.vala | 3 +- 3 files changed, 321 insertions(+), 148 deletions(-) commit ca7d6761741ea3a44f16419bdb0b54af7fa77a0d Author: Daiki Ueno Date: Wed Jan 11 10:57:35 2012 +0900 Fix a typo in the code swapping candidates in user dict. libskk/user-dict.vala | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit ba9af5354e8f39e5a32cce000993dfc84d2504e1 Author: Daiki Ueno Date: Wed Jan 11 10:43:01 2012 +0900 Call EncodingConverter.convert repeatedly until all the input is consumed. This fixes ibus-skk Issue#44. libskk/encoding.vala | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) commit d0393db1318087a83ac481078f4f9e2dd3d55e39 Author: Daiki Ueno Date: Tue Jan 10 10:17:31 2012 +0900 Add Skk.Context.{add|remove}_dictionary. libskk/context.vala | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) commit 1c9d09c0335460a9c4cbada1b7e13b3727f61aa3 Author: Daiki Ueno Date: Tue Jan 10 10:08:03 2012 +0900 Update translation. po/ja.po | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit 4e7309c204cc50c7c28b81833a51b24001cb56af Author: Daiki Ueno Date: Tue Jan 10 10:05:46 2012 +0900 Don't change input mode when â–½ã²ã‚‰ãŒãª + 'q' => ヒラガナ (Issue#8). libskk/state.vala | 2 +- po/ja.po | 25 ++++++++++++++++--------- tests/context.c | 12 ++++++------ 3 files changed, 23 insertions(+), 16 deletions(-) commit 99b233ce406cca0c3cd5918e85d6be0b86fc41c6 Author: Daiki Ueno Date: Fri Jan 6 18:33:43 2012 +0900 Fix the last commit; register completion test. tests/user-dict.c | 1 + 1 file changed, 1 insertion(+) commit 5b6cd8eb8dbaa4cbc45f1abaec525bbc9cb05e56 Author: Daiki Ueno Date: Fri Jan 6 18:15:43 2012 +0900 Add completion test for user-dict. tests/common.c | 37 ++++++++++++++++++++++--------------- tests/common.h | 3 ++- tests/context.c | 34 +++++++++++++++++----------------- tests/user-dict.c | 43 ++++++++++++++++++++++++++++++++++++++++++- 4 files changed, 83 insertions(+), 34 deletions(-) commit e7d52908e0797f884e48f941edac78953ba2cb6c Author: Daiki Ueno Date: Fri Jan 6 17:29:17 2012 +0900 Avoid memleaks in Gee.TreeSet. libskk/user-dict.vala | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit fb24c2c6493f6f73685433619932f83088ab71c7 Author: Daiki Ueno Date: Fri Jan 6 12:00:41 2012 +0900 Install skk-1.0.deps in vapi dir. libskk/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f7918d48e9130804d48fdf320313bc2a91db5824 Author: Daiki Ueno Date: Fri Jan 6 11:59:59 2012 +0900 Improve exception message when loading map-file fails. libskk/map-file.vala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8674aa83f97a0a5122af1fb794244a111b15e081 Author: Daiki Ueno Date: Thu Jan 5 16:39:32 2012 +0900 Bump version to 0.0.7. NEWS | 8 +++++++- configure.ac | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) commit ca7bc375698fa217842dfcf946c6f75bdbac2f7e Author: Daiki Ueno Date: Thu Jan 5 16:24:26 2012 +0900 Preserve State.input_mode when reset. libskk/candidate.vala | 16 ++++++++++++++++ libskk/state.vala | 33 ++++++++------------------------- 2 files changed, 24 insertions(+), 25 deletions(-) commit 80d5bf9f011503b09271c3223847c980ab351792 Author: Daiki Ueno Date: Wed Jan 4 17:56:12 2012 +0900 Remove erroneous comma in rule example (Issue#7). rules/README.rules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b43cd99a70d85615e28c4ef0b76f479774202917 Author: Daiki Ueno Date: Wed Jan 4 17:54:33 2012 +0900 Check modifiers when handling latin keysyms in NoneStateHandler (Issue#5). libskk/state.vala | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit dd5233647ecfdcea689adfe565e03cc820e9b336 Author: Daiki Ueno Date: Wed Jan 4 17:52:07 2012 +0900 Make user dict file modes private (Issue#4). libskk/user-dict.vala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6cd3a6e63fd454d7fa0b71dc7010a4799870b9a3 Author: Daiki Ueno Date: Wed Jan 4 17:50:27 2012 +0900 Fix candidate cursor movement with x and SPC. libskk/candidate.vala | 156 ++++++++++++++++++++++++++++++++++++++++++++++---- libskk/context.vala | 1 + libskk/state.vala | 41 +++++++------ tests/context.c | 25 +++++++- 4 files changed, 194 insertions(+), 29 deletions(-) commit d8bc3891659061969e08c3cbbf1e59114cd98aed Author: Daiki Ueno Date: Thu Dec 29 19:01:42 2011 +0900 Optimize the number of property notification. libskk/candidate.vala | 4 +++- libskk/context.vala | 29 ++++++++++++++++++++--------- 2 files changed, 23 insertions(+), 10 deletions(-) commit 605f2cb6f226592eec49db65ca0147315f7e57f4 Author: Daiki Ueno Date: Thu Dec 29 11:49:17 2011 +0900 Don't update preedit when CandidateList is cleared. libskk/context.vala | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 2150d6572de6300d8a467c36eccb10dcb6b1aa70 Author: Daiki Ueno Date: Wed Dec 28 18:03:18 2011 +0900 Fix doc. libskk/candidate.vala | 14 ++++++++------ libskk/cdb-dict.vala | 13 ++++++++++++- libskk/context.vala | 15 +++++++++++---- libskk/file-dict.vala | 4 +++- libskk/key-event.vala | 38 +++++++++++++++++++++++++++++++++++--- 5 files changed, 69 insertions(+), 15 deletions(-) commit 8ae149098b1ceafecee935137a07713fbfc3b7db Author: Daiki Ueno Date: Wed Dec 28 17:13:40 2011 +0900 Bump version to 0.0.6. configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6381269eda384aaaad92d7ab8680fdf8f90a8b81 Author: Daiki Ueno Date: Wed Dec 28 17:14:23 2011 +0900 Relax valac version requirement for Fedora 15. configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 88a98083ae9ad434849d92b25a8a7baf800781c2 Author: Daiki Ueno Date: Wed Dec 28 16:51:12 2011 +0900 Make sure to abort dict edit and restore surrounding text on Context.reset. configure.ac | 2 +- libskk/context.vala | 21 +++++++++++++++++---- libskk/state.vala | 6 ++++++ tests/common.c | 5 ++++- tests/context.c | 8 +++++--- tools/tool.vala | 1 + 6 files changed, 34 insertions(+), 9 deletions(-) commit 37e20192619520da1051622949d67ac57c102366 Author: Daiki Ueno Date: Wed Dec 28 12:33:31 2011 +0900 Support (current-time-string), (pwd), and (skk-version). libskk/expr.vala | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit 914581ea7fed4209aa5f7a75015871b3f22fbec2 Author: Daiki Ueno Date: Wed Dec 28 11:32:36 2011 +0900 Add doc. NEWS | 40 ++++++++++++++++++++++++++++++++++++++++ README | 30 ++++++++++++++++++++++++++++++ libskk/context.vala | 25 +++++++++++++++++++++++++ 3 files changed, 95 insertions(+) commit 16f3818753c48679909be6097487efe2ac1e7c1a Author: Daiki Ueno Date: Wed Dec 28 11:32:11 2011 +0900 Assign Left and Right to shrink-preedit and expand-preedit. rules/default/keymap/default.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 7043e20bf0eef7e4c96c8a397e78581f9b989873 Author: Daiki Ueno Date: Wed Dec 28 11:31:47 2011 +0900 Fix memleak on loading user dict. libskk/user-dict.vala | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) commit a25700ec48fffb89d0bb95aeae24ba4bb0364b77 Author: Daiki Ueno Date: Tue Dec 27 18:28:33 2011 +0900 Make sure to commit remaining surrounding text after SPC following â–½. libskk/state.vala | 4 ++++ 1 file changed, 4 insertions(+) commit 9e85632c09a49f163c2d0d626fc1dfa39e548ede Author: Daiki Ueno Date: Tue Dec 27 18:24:26 2011 +0900 Fix reconvert behavior. libskk/context.vala | 21 +++++++++++- libskk/state.vala | 98 +++++++++++++++++++++++++++++++++++++++++------------ 2 files changed, 96 insertions(+), 23 deletions(-) commit 523520a246908f6b9b0d614b8e0bd75e9bb6896d Author: Daiki Ueno Date: Tue Dec 27 17:01:08 2011 +0900 Support reconvert based on surrounding text. libskk/context.vala | 6 ++++ libskk/state.vala | 71 +++++++++++++++++++++++++++++---------- rules/default/keymap/default.json | 4 ++- 3 files changed, 63 insertions(+), 18 deletions(-) commit ae78f9f1e76f3ab7dc5c15a56a89c2569b96d72a Author: Daiki Ueno Date: Mon Dec 26 18:05:20 2011 +0900 Refactor API. Split Context.get_output into peek_output and poll_output, and abolish list_typing_rule. libskk/context.vala | 42 +++++++++++++++++++++++++++++------------- libskk/key-event.vala | 3 +-- libskk/nicola.vala | 38 +++++++++++++++++++++++++++++--------- libskk/rule.vala | 2 +- tools/tool.vala | 4 ++-- 5 files changed, 62 insertions(+), 27 deletions(-) commit d3aae2dfe1384aa74a27f9f4f556c418b7de811e Author: Daiki Ueno Date: Mon Dec 26 16:29:09 2011 +0900 Simplify rule loading API. libskk/map-file.vala | 6 +++--- libskk/rule.vala | 46 +++++++++++++++++++++++++++++----------------- 2 files changed, 32 insertions(+), 20 deletions(-) commit 207ef0f6a19b77da8017a530a86cfcd970b4a835 Author: Daiki Ueno Date: Sun Dec 25 09:55:28 2011 +0900 Bump version to 0.0.5. configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 18f3427bda4937096123c517dd6fc4111e7e11e8 Author: Daiki Ueno Date: Sun Dec 25 09:54:46 2011 +0900 Add license header to Makefile.am and configure.ac. Makefile.am | 16 +++++++++ configure.ac | 16 +++++++++ libskk/Makefile.am | 99 +++++++++++++++++++++++++++++++----------------------- rules/Makefile.am | 46 +++++++++++++++++++------ tests/Makefile.am | 16 +++++++++ tools/Makefile.am | 22 ++++++++++-- 6 files changed, 161 insertions(+), 54 deletions(-) commit d54734ab2b752c9f5a2e6748ed5ec7ece6707f31 Author: Daiki Ueno Date: Sun Dec 25 09:36:29 2011 +0900 Fix buffer overrun when reading skkserv response (Issue#2). libskk/skkserv.vala | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 5bc3defcaf7fe53dbe0955c2043ed9fa29d5f91b Author: Daiki Ueno Date: Fri Dec 23 07:30:29 2011 +0900 Clarify wording "rule" and "map file" in README.rules. rules/README.rules | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) commit cfc66724fefe53f9db603e6e651b17e663182303 Author: Daiki Ueno Date: Thu Dec 22 16:40:13 2011 +0900 Notify Context:candidates change. libskk/context.vala | 3 +++ 1 file changed, 3 insertions(+) commit f21878c4ad915aa1e871627d54c839e234f23fbf Author: Daiki Ueno Date: Thu Dec 22 16:09:06 2011 +0900 Fix zipcode conversion and avoid memleaks in Gee.TreeSet. libskk/candidate.vala | 93 +++++++++++++------------------------------ libskk/cdb-dict.vala | 2 +- libskk/context.vala | 49 +++++++++++++---------- libskk/dict.vala | 31 +++++++++------ libskk/file-dict.vala | 2 +- libskk/skkserv.vala | 6 ++- libskk/state.vala | 66 ++++++++++++++++++------------- libskk/user-dict.vala | 106 ++++++++++++++++++++++++++------------------------ tests/common.c | 11 +++++- tests/context.c | 4 ++ tests/file-dict.c | 18 +++++++-- 11 files changed, 203 insertions(+), 185 deletions(-) commit 939fe86af61257a8946e88310174f5ef04ec6b0b Author: Daiki Ueno Date: Thu Dec 22 11:14:48 2011 +0900 Fix a typo in README. README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7f813d52d7e26da2407659e0ffb575f378c287cb Author: Daiki Ueno Date: Thu Dec 22 11:13:08 2011 +0900 Reduce the number of pkg-config dependencies. configure.ac | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) commit b6f23cab13196693505d0e67f3b0d946ec8f03ea Author: Daiki Ueno Date: Thu Dec 22 11:00:49 2011 +0900 Switch to use git.mk from pango. .gitignore | 35 ---------- Makefile.am | 17 +++++ git.mk | 200 +++++++++++++++++++++++++++++++++++++++++++++++++++++ libskk/Makefile.am | 21 ++++-- rules/Makefile.am | 2 + tests/Makefile.am | 2 + tools/Makefile.am | 23 +++--- 7 files changed, 250 insertions(+), 50 deletions(-) commit f6fcf56d94519dfcf8f6c650ee9262b7dcf11f59 Author: Daiki Ueno Date: Wed Dec 21 09:50:13 2011 +0900 Display library deps when PKG_CHECK_MODULES fails (Issue#1). configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ced30a300afd08464aa3127183b0c16643d5e651 Author: Daiki Ueno Date: Tue Dec 20 13:31:16 2011 +0900 Bump version to 0.0.4. configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b767c6befba309f5b2603c739aa6524784ec990b Author: Daiki Ueno Date: Tue Dec 20 13:03:12 2011 +0900 Fix extracting okurigana-prefix for "ã£X". libskk/util.vala | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) commit 4e0aeefbb94bc39dbbcf2a0c0b51907b1d6d57bc Author: Daiki Ueno Date: Tue Dec 20 11:08:21 2011 +0900 Bump version to 0.0.3. configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 084f34765a52e4a4c4b392c64c69d16d51e49337 Author: Daiki Ueno Date: Tue Dec 20 10:31:26 2011 +0900 Preserve previous candidate list when dict edit. libskk/candidate.vala | 5 ++++- libskk/context.vala | 23 +++++++++++++---------- libskk/state.vala | 14 ++++++-------- tests/context.c | 17 +++++++++++++++++ 4 files changed, 40 insertions(+), 19 deletions(-) commit e4734db27a434eaea641baaf5cf5c059af0a011e Merge: e6556b8 b4209c0 Author: Daiki Ueno Date: Tue Dec 20 09:52:26 2011 +0900 Merge branch 'master' of github.com:ueno/libskk Conflicts: rules/README.rules commit e6556b8ce2304ae673224a8aacdb0dd19120a0fd Author: Daiki Ueno Date: Mon Dec 19 18:08:03 2011 +0900 Update README.rules. rules/README.rules | 38 +++++++++++++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 3 deletions(-) commit b4209c0832deb09f92b55ea158216519fd971023 Author: Daiki Ueno Date: Mon Dec 19 18:08:03 2011 +0900 Update README.rules. rules/README.rules | 38 +++++++++++++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 3 deletions(-) commit d9f293a3945c415e426e6367aa7d154e970ab442 Author: Daiki Ueno Date: Mon Dec 19 17:58:42 2011 +0900 List available commands in doc. rules/README.rules | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit 6f15e9d562300ecc4f849dca908e1276773af111 Author: Daiki Ueno Date: Mon Dec 19 17:54:39 2011 +0900 Update README.rules. rules/README.rules | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) commit 262c0ea6ba5dec1985cbdf5f0cfdf0845e2df6c7 Author: Daiki Ueno Date: Mon Dec 19 16:55:41 2011 +0900 Support (concat ...). libskk/Makefile.am | 1 + libskk/candidate.vala | 3 + libskk/expr.vala | 183 ++++++++++++++++++++++++++++++++++++++++++++++++++ libskk/state.vala | 123 +++++++++++++++++++-------------- tests/context.c | 2 + tests/file-dict.dat | 2 + 6 files changed, 263 insertions(+), 51 deletions(-) commit f6196123460b79df47b242c66027abc1f79121b5 Author: Daiki Ueno Date: Mon Dec 19 15:07:58 2011 +0900 Rename commit-and-newline to commit-unhandled. libskk/state.vala | 8 ++++---- rules/default/keymap/default.json | 4 ++-- rules/nicola/keymap/default.json | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) commit 749c2a4456ee53ad09507954fbde8a6a18ab95a7 Author: Daiki Ueno Date: Mon Dec 19 14:36:34 2011 +0900 Fix small conversion behavior. libskk/context.vala | 1 + libskk/state.vala | 32 ++++++++++++++++++++++++++++---- tests/context.c | 6 ++++++ 3 files changed, 35 insertions(+), 4 deletions(-) commit d2ae14c63897027ce49bb2530c6aa112f5588f55 Author: Daiki Ueno Date: Mon Dec 19 10:58:34 2011 +0900 Implement UserDict#complete. libskk/file-dict.vala | 32 ++++++++++++++++++++------------ libskk/user-dict.vala | 34 +++++++++++++++++++++++++++++++--- tests/context.c | 15 ++++++++++----- 3 files changed, 61 insertions(+), 20 deletions(-) commit d0694aa4707b537d830cb20db723bbb1bd85427a Author: Daiki Ueno Date: Mon Dec 19 10:29:10 2011 +0900 Cancel okuri-ari conversion with DEL. libskk/state.vala | 11 ++++++++--- tests/context.c | 2 ++ 2 files changed, 10 insertions(+), 3 deletions(-) commit a7774a17d49564967eeaeb08dd05c43abb4c7ade Author: Daiki Ueno Date: Sun Dec 18 11:13:11 2011 +0900 Rename "enter" to "commit-and-newline". libskk/state.vala | 13 +++++++++---- rules/default/keymap/default.json | 4 ++-- rules/default/keymap/hankaku-katakana.json | 3 ++- rules/default/keymap/hiragana.json | 3 ++- rules/default/keymap/katakana.json | 3 ++- rules/nicola/keymap/default.json | 4 ++-- 6 files changed, 19 insertions(+), 11 deletions(-) commit 5cf756b8b2d55822ff7c871b2d59b358ca09b2c6 Author: Daiki Ueno Date: Fri Dec 16 17:24:28 2011 +0900 Bump version to 0.0.2. configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ed87ce54627b80de5511b26a852b9d105e19cdea Author: Daiki Ueno Date: Fri Dec 16 16:17:29 2011 +0900 Rewrite hiragana/katakana/hankaku-katakana conversion. libskk/util.vala | 258 +++++++++++++++++++++++++++++++++---------------------- tests/context.c | 2 +- 2 files changed, 154 insertions(+), 106 deletions(-) commit 5010496525d61bf73edf70eeeb5da4998499eaca Author: Daiki Ueno Date: Fri Dec 16 12:21:36 2011 +0900 Fix hankaku katakana to kanji conversion. libskk/util.vala | 9 ++++++--- tests/context.c | 1 + 2 files changed, 7 insertions(+), 3 deletions(-) commit 3ee7c61f921bddda0227e7b2e982e8b7a08c0b58 Author: Daiki Ueno Date: Fri Dec 16 11:59:37 2011 +0900 Fix tcode and trycode rom-kana map-files. rules/tcode/rom-kana/default.json | 2710 +++++++-------- rules/trycode/rom-kana/default.json | 6484 +++++++++++++++++------------------ 2 files changed, 4597 insertions(+), 4597 deletions(-) commit f897b0a9b4553270e833c9cb69cdbafef0257f38 Author: Daiki Ueno Date: Fri Dec 16 11:40:16 2011 +0900 Check rule parse error when listing. libskk/rule.vala | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) commit d280d759f0f59cded8040fe1c890ee8a65aeff7b Author: Daiki Ueno Date: Fri Dec 16 10:49:36 2011 +0900 Support katakana input with NICOLA. libskk/state.vala | 8 ++++++-- rules/nicola/keymap/kana.json | 5 ++++- tests/context.c | 6 ++++++ 3 files changed, 16 insertions(+), 3 deletions(-) commit 351ed064b6f16d0de50cae9a467aa5486fd2e618 Author: Daiki Ueno Date: Fri Dec 16 10:35:58 2011 +0900 Install nicola/keymap/default.json. rules/Makefile.am | 1 + 1 file changed, 1 insertion(+) commit 70da88c65146f15f7636f0ae58172fe787de8550 Author: Daiki Ueno Date: Fri Dec 16 10:30:00 2011 +0900 Add missing nicola/keymap/default.json. rules/nicola/keymap/default.json | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit c86c328ecb5f0799c6cc0d33e9f2689a0f521caf Author: Daiki Ueno Date: Fri Dec 16 10:23:24 2011 +0900 Fix metadata of tutcode-touch16x rule. rules/tutcode-touch16x/metadata.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d234bc7c5f047aca04e6b61061936fdfbad0f3ea Author: Daiki Ueno Date: Fri Dec 16 10:17:33 2011 +0900 Support okuri-ari conversion with NICOLA. libskk/state.vala | 24 +++++++++++++++++++----- rules/nicola/keymap/kana.json | 2 +- tests/context.c | 4 ++++ 3 files changed, 24 insertions(+), 6 deletions(-) commit 0c4f23f314c0f1567b026253df6dbd2278c237b2 Author: Daiki Ueno Date: Fri Dec 16 09:57:14 2011 +0900 Abolish RomKanaConverter#is_active(). libskk/rom-kana.vala | 9 --------- libskk/state.vala | 48 ++++++++++++++++++++++++------------------------ 2 files changed, 24 insertions(+), 33 deletions(-) commit 3de68f4f21642eea5d00cae4682bdf2444520542 Author: Daiki Ueno Date: Fri Dec 16 04:03:56 2011 +0900 Make TUT-Code Touch16+ extension as a separate rule. libskk/rule.vala | 5 +- rules/Makefile.am | 30 +- rules/act/keymap/default.json | 5 + rules/act/metadata.json | 4 + rules/azik/metadata.json | 4 + rules/default/metadata.json | 4 + rules/kzik/metadata.json | 4 + rules/nicola/metadata.json | 2 +- rules/tcode/metadata.json | 2 +- rules/trycode/metadata.json | 2 +- rules/tut-code/keymap/hankaku-katakana.json | 5 - rules/tut-code/keymap/hiragana.json | 5 - rules/tut-code/keymap/katakana.json | 5 - rules/tut-code/keymap/latin.json | 5 - rules/tut-code/keymap/wide-latin.json | 5 - rules/tut-code/rom-kana/default.json | 2645 -------------------- rules/tut-code/rom-kana/touch16+.json | 18 - .../tutcode-touch16x/keymap/hankaku-katakana.json | 5 + rules/tutcode-touch16x/keymap/hiragana.json | 5 + rules/tutcode-touch16x/keymap/katakana.json | 5 + rules/tutcode-touch16x/keymap/latin.json | 5 + rules/tutcode-touch16x/keymap/wide-latin.json | 5 + rules/tutcode-touch16x/metadata.json | 4 + rules/tutcode-touch16x/rom-kana/default.json | 18 + rules/tutcode/keymap/hankaku-katakana.json | 5 + rules/tutcode/keymap/hiragana.json | 5 + rules/tutcode/keymap/katakana.json | 5 + rules/tutcode/keymap/latin.json | 5 + rules/tutcode/keymap/wide-latin.json | 5 + rules/tutcode/metadata.json | 4 + rules/tutcode/rom-kana/default.json | 2645 ++++++++++++++++++++ 31 files changed, 2767 insertions(+), 2704 deletions(-) commit c1b12bec9468a656f3a4d4054089a57b180498be Author: Daiki Ueno Date: Thu Dec 15 18:18:14 2011 +0900 Add T-Code and TRY-CODE rules. rules/Makefile.am | 20 + rules/tcode/keymap/hankaku-katakana.json | 5 + rules/tcode/keymap/hiragana.json | 5 + rules/tcode/keymap/katakana.json | 5 + rules/tcode/keymap/latin.json | 5 + rules/tcode/keymap/wide-latin.json | 5 + rules/tcode/metadata.json | 4 + rules/tcode/rom-kana/default.json | 1360 ++++++++++++ rules/trycode/keymap/hankaku-katakana.json | 5 + rules/trycode/keymap/hiragana.json | 5 + rules/trycode/keymap/katakana.json | 5 + rules/trycode/keymap/latin.json | 5 + rules/trycode/keymap/wide-latin.json | 5 + rules/trycode/metadata.json | 4 + rules/trycode/rom-kana/default.json | 3249 ++++++++++++++++++++++++++++ 15 files changed, 4687 insertions(+) commit 8d2bd3eb5ad06399d456e9302b3543b86025b593 Author: Daiki Ueno Date: Thu Dec 15 17:07:31 2011 +0900 Embed kana char in insert-kana-* command name. libskk/state.vala | 15 +-- rules/nicola/keymap/kana.json | 210 +++++++++++++++++++++--------------------- 2 files changed, 110 insertions(+), 115 deletions(-) commit 4f0edd9b149d0ee3fba9f5a651e77de739795fca Author: Daiki Ueno Date: Thu Dec 15 16:55:03 2011 +0900 Extract okuri-prefix from okurigana instead of input key sequence. libskk/rom-kana.vala | 17 ----------------- libskk/state.vala | 13 ++++++++----- libskk/util.vala | 28 ++++++++++++++++++++++++++++ tests/context.c | 1 + 4 files changed, 37 insertions(+), 22 deletions(-) commit cd368387f2a1c3dd96dc1c3a3cc0c57e1788d19b Author: Daiki Ueno Date: Thu Dec 15 16:11:53 2011 +0900 Refactor command handling. libskk/rule.vala | 69 +++++++++++------------ libskk/state.vala | 160 +++++++++++++++++++++++++++--------------------------- libskk/util.vala | 70 +++++++++++++----------- tests/context.c | 2 + 4 files changed, 152 insertions(+), 149 deletions(-) commit bc5f98dbd169b934ff42d867aacbcd4aeaaea4b8 Author: Daiki Ueno Date: Wed Dec 14 18:01:21 2011 +0900 Update NICOLA rule. libskk/key-event.vala | 5 +++++ libskk/nicola.vala | 11 ++++++++++- rules/Makefile.am | 2 +- rules/nicola/keymap/hiragana.json | 7 ++++++- rules/nicola/keymap/kana.json | 3 +++ rules/nicola/keymap/katakana.json | 7 ++++++- 6 files changed, 31 insertions(+), 4 deletions(-) commit 5bc96942f1a375d7614200c133ef46a7bc8101bb Author: Daiki Ueno Date: Tue Dec 13 18:08:31 2011 +0900 Fix \0 handling in RomKanaConverter.append(). libskk/rom-kana.vala | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 60d56cf6b55c32643a9cfbb5345716a03db7f855 Author: Daiki Ueno Date: Tue Dec 13 17:26:22 2011 +0900 Support NICOLA. README | 2 + libskk/context.vala | 66 +++++++++++- libskk/key-event.vala | 13 +-- libskk/nicola.vala | 72 ++++++++----- libskk/rule.vala | 9 +- libskk/state.vala | 10 +- rules/Makefile.am | 11 ++ rules/nicola/keymap/hankaku-katakana.json | 5 + rules/nicola/keymap/hiragana.json | 5 + rules/nicola/keymap/kana.json | 173 ++++++++++++++++++++++++++++++ rules/nicola/keymap/katakana.json | 5 + rules/nicola/keymap/latin.json | 5 + rules/nicola/keymap/wide-latin.json | 5 + rules/nicola/metadata.json | 5 + rules/nicola/rom-kana/default.json | 6 ++ tests/context.c | 53 +++++++-- tools/tool.vala | 5 +- 17 files changed, 400 insertions(+), 50 deletions(-) commit dbe3850236d01946720faf457371d26f4525e7f3 Author: Daiki Ueno Date: Tue Dec 13 12:39:00 2011 +0900 Load KeyEventFilter from rule. libskk/context.vala | 17 +++---- libskk/rule.vala | 137 +++++++++++++++++++++++++++++++++------------------- 2 files changed, 93 insertions(+), 61 deletions(-) commit ba9f141a4b167e28c04a574f09e4a8ae001f7c75 Author: Daiki Ueno Date: Tue Dec 13 12:06:52 2011 +0900 Expose Rule class. libskk/context.vala | 2 +- libskk/rule.vala | 52 +++++++++++++++++++++++++++++++++++++--------------- libskk/state.vala | 16 ++++++---------- tests/context.c | 8 +++++++- tools/tool.vala | 8 +++++++- 5 files changed, 58 insertions(+), 28 deletions(-) commit 07c635e86fbabb1759d97795e87728729ef181e8 Author: Daiki Ueno Date: Tue Dec 13 11:26:37 2011 +0900 Rename Rule to MapFile, TypingRule to Rule. libskk/Makefile.am | 2 +- libskk/key-event.vala | 2 +- libskk/map-file.vala | 135 ++++++++++++++++++++++ libskk/nicola.vala | 1 + libskk/rom-kana.vala | 8 +- libskk/rule.vala | 291 ++++++++++++++++++++++++------------------------ libskk/state.vala | 14 +-- libskk/typing-rule.vala | 111 ------------------ libskk/util.vala | 18 +++ 9 files changed, 316 insertions(+), 266 deletions(-) commit ed21490ad5ccd1a83923b6434131db5755356079 Author: Daiki Ueno Date: Mon Dec 12 16:06:46 2011 +0900 Add Skk.list_typing_rules(). libskk/context.vala | 10 +++++++ libskk/rule.vala | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++- rules/Makefile.am | 5 ++++ tools/tool.vala | 14 ++++++++++ 4 files changed, 103 insertions(+), 1 deletion(-) commit f6db40c5632a7de13d475017066ac53ac9a19c1f Author: Daiki Ueno Date: Mon Dec 12 14:32:13 2011 +0900 Supply correct LIBSKK_DATA_PATH to tests. libskk/rule.vala | 9 +++++++-- tests/Makefile.am | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) commit ce695710f9e9eaa2dd723ae34dca6c6f9709edec Author: Daiki Ueno Date: Mon Dec 12 11:35:27 2011 +0900 Merge rom-kana rule and keymaps into a typing rule. README | 4 ++ libskk/Makefile.am | 1 + libskk/context.vala | 12 +++--- libskk/keymap.vala | 20 ++------- libskk/nicola.vala | 6 +++ libskk/rom-kana.vala | 106 ++++++++++----------------------------------- libskk/rule.vala | 10 ++--- libskk/skk-1.0.deps | 1 + libskk/state.vala | 44 +++++++++---------- libskk/typing-rule.vala | 111 ++++++++++++++++++++++++++++++++++++++++++++++++ tests/context.c | 2 +- tools/Makefile.am | 2 +- tools/tool.vala | 10 ++--- 13 files changed, 187 insertions(+), 142 deletions(-) commit 906d884f7a8649bbfe057e4930f654f56f117986 Author: Daiki Ueno Date: Fri Dec 9 16:52:51 2011 +0900 Change the rules directory layout. Makefile.am | 2 +- configure.ac | 4 +- data/Makefile.am | 2 - data/README.rules | 80 - data/keymap/Makefile.am | 8 - data/keymap/default.json | 20 - data/keymap/hankaku-katakana.json | 13 - data/keymap/hiragana.json | 13 - data/keymap/katakana.json | 13 - data/keymap/latin.json | 10 - data/keymap/wide-latin.json | 10 - data/rom-kana/Makefile.am | 8 - data/rom-kana/act.json | 676 ------- data/rom-kana/azik.json | 497 ----- data/rom-kana/default.json | 242 --- data/rom-kana/kzik.json | 521 ------ data/rom-kana/tut-code-touch16plus.json | 18 - data/rom-kana/tut-code.json | 2645 --------------------------- libskk/keymap.vala | 4 +- libskk/rom-kana.vala | 4 +- libskk/rule.vala | 38 +- libskk/state.vala | 10 +- rules/Makefile.am | 53 + rules/README.rules | 104 ++ rules/act/keymap/hankaku-katakana.json | 5 + rules/act/keymap/hiragana.json | 5 + rules/act/keymap/katakana.json | 5 + rules/act/keymap/latin.json | 5 + rules/act/keymap/wide-latin.json | 5 + rules/act/rom-kana/default.json | 671 +++++++ rules/azik/keymap/hankaku-katakana.json | 5 + rules/azik/keymap/hiragana.json | 5 + rules/azik/keymap/katakana.json | 5 + rules/azik/keymap/latin.json | 5 + rules/azik/keymap/wide-latin.json | 5 + rules/azik/rom-kana/default.json | 497 +++++ rules/default/keymap/default.json | 20 + rules/default/keymap/hankaku-katakana.json | 13 + rules/default/keymap/hiragana.json | 13 + rules/default/keymap/katakana.json | 13 + rules/default/keymap/latin.json | 10 + rules/default/keymap/wide-latin.json | 10 + rules/default/rom-kana/default.json | 242 +++ rules/kzik/keymap/hankaku-katakana.json | 5 + rules/kzik/keymap/hiragana.json | 5 + rules/kzik/keymap/katakana.json | 5 + rules/kzik/keymap/latin.json | 5 + rules/kzik/keymap/wide-latin.json | 5 + rules/kzik/rom-kana/default.json | 521 ++++++ rules/tut-code/keymap/hankaku-katakana.json | 5 + rules/tut-code/keymap/hiragana.json | 5 + rules/tut-code/keymap/katakana.json | 5 + rules/tut-code/keymap/latin.json | 5 + rules/tut-code/keymap/wide-latin.json | 5 + rules/tut-code/rom-kana/default.json | 2645 +++++++++++++++++++++++++++ rules/tut-code/rom-kana/touch16+.json | 18 + 56 files changed, 4969 insertions(+), 4799 deletions(-) commit 2bea3083dd42b6b214c8176337b9eb4328b65485 Author: Daiki Ueno Date: Fri Dec 9 13:10:21 2011 +0900 Fix some mistake in rom-kana. libskk/rom-kana.vala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1027f1c1b14719924e9e90ff48affe5e7582c995 Author: Daiki Ueno Date: Fri Dec 9 12:55:53 2011 +0900 Make sure that strv ends with null. libskk/key-event.vala | 1 + 1 file changed, 1 insertion(+) commit c84c4c59ea9757d5d307eb174fdc000667e82554 Author: Daiki Ueno Date: Fri Dec 9 12:44:04 2011 +0900 Make sure that KeyEvent:name and KeyEvent:code are always set. libskk/key-event.vala | 46 +++++++++++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 19 deletions(-) commit 6525b019f4098b7dfdd85ba08083c7017e9a68b6 Author: Daiki Ueno Date: Fri Dec 9 12:32:27 2011 +0900 Check rule parse error. libskk/keymap.vala | 7 ++++++- libskk/rom-kana.vala | 9 +++++++-- libskk/rule.vala | 4 ++-- libskk/state.vala | 26 ++++++++++++++++---------- 4 files changed, 31 insertions(+), 15 deletions(-) commit bb6b13e9be23b6601a9f530caef5e3825829eebe Author: Daiki Ueno Date: Fri Dec 9 12:14:38 2011 +0900 Don't use bare \x7F. data/keymap/default.json | 2 +- libskk/context.vala | 2 +- tests/context.c | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) commit 285972fb30e06794cea97bc90c8d71d51441e08f Author: Daiki Ueno Date: Fri Dec 9 10:07:29 2011 +0900 Factor out keymap from the code to json files. configure.ac | 1 + data/Makefile.am | 3 +- data/README.rules | 80 +++++++++++++++++++++ data/keymap/Makefile.am | 8 +++ data/keymap/default.json | 20 ++++++ data/keymap/hankaku-katakana.json | 13 ++++ data/keymap/hiragana.json | 13 ++++ data/keymap/katakana.json | 13 ++++ data/keymap/latin.json | 10 +++ data/keymap/wide-latin.json | 10 +++ data/rom-kana/Makefile.am | 1 - data/rom-kana/README.rom-kana | 48 ------------- libskk/Makefile.am | 1 + libskk/key-event.vala | 40 +++++++++++ libskk/keymap.vala | 99 ++++++------------------- libskk/rom-kana.vala | 128 ++++++--------------------------- libskk/rule.vala | 148 ++++++++++++++++++++++++++++++++++++++ libskk/state.vala | 42 +++++------ 18 files changed, 418 insertions(+), 260 deletions(-) commit e4bcd5a4cabae19ca01aeb0c72531688df4e62ed Author: Daiki Ueno Date: Thu Dec 8 15:31:33 2011 +0900 Rename standard.json to default.json. data/rom-kana/Makefile.am | 2 +- data/rom-kana/README.rom-kana | 4 +- data/rom-kana/act.json | 2 +- data/rom-kana/azik.json | 2 +- data/rom-kana/default.json | 242 ++++++++++++++++++++++++++++++++++++++++++ data/rom-kana/kzik.json | 2 +- data/rom-kana/standard.json | 242 ------------------------------------------ 7 files changed, 248 insertions(+), 248 deletions(-) commit b154a3979596a429c330e358c9d95456b03f5cf3 Author: Daiki Ueno Date: Thu Dec 8 12:56:30 2011 +0900 Factor out keymap from the code. libskk/Makefile.am | 1 + libskk/context.vala | 3 +- libskk/key-event.vala | 8 +- libskk/keymap.vala | 107 ++++++++++++++++++++++ libskk/state.vala | 243 +++++++++++++++++++++++--------------------------- 5 files changed, 228 insertions(+), 134 deletions(-) commit 9f9679edff9113f97198caaa026fc144f47e0c56 Author: Daiki Ueno Date: Wed Dec 7 17:37:38 2011 +0900 Add experimental NICOLA support (not working yet). libskk/Makefile.am | 1 + libskk/context.vala | 12 +-- libskk/key-event.vala | 91 ++++++++++++------- libskk/nicola.vala | 242 ++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 307 insertions(+), 39 deletions(-) commit 4e5bc3b2cc7b64ebcc87b3b2b486541fad4f8870 Author: Daiki Ueno Date: Wed Dec 7 09:50:38 2011 +0900 Extend KeyEvent to accept more modifier prefixes. libskk/key-event.vala | 6 ++++++ 1 file changed, 6 insertions(+) commit 2db61577fefdb99364f0e8a694257770b2afb3c7 Author: Daiki Ueno Date: Tue Dec 6 17:42:58 2011 +0900 Apply key event filter before passing key events to state handler. libskk/context.vala | 20 +++++++++++++ libskk/key-event.vala | 78 ++++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 94 insertions(+), 4 deletions(-) commit 9f09464425585f1908e6103c773551d084200e18 Author: Daiki Ueno Date: Mon Dec 5 17:42:50 2011 +0900 Expose KeyEvent. libskk/context.vala | 10 +++++----- libskk/key-event.vala | 15 ++++++++++----- 2 files changed, 15 insertions(+), 10 deletions(-) commit 8e9edf166e3448367b8d30f25fa5e1ef6f8e7004 Author: Daiki Ueno Date: Sun Dec 4 18:19:47 2011 +0900 Fix RomKanaNode.remove(). libskk/rom-kana.vala | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) commit ef9da4847559b372214d8c0435f6861b01198757 Author: Daiki Ueno Date: Sat Dec 3 16:39:48 2011 +0900 Update COPYING. COPYING | 1130 ++++++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 651 insertions(+), 479 deletions(-) commit 647947b12578b6e462d10349964fc1bbff29e3ab Author: Daiki Ueno Date: Sat Dec 3 16:32:10 2011 +0900 Add more examples in README. README | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit f52e2c5b97bb731d597a00f08a513b39c3be8579 Author: Daiki Ueno Date: Sat Dec 3 16:29:10 2011 +0900 Change the license to GPLv3+. libskk/candidate.vala | 30 ++++++++++++++---------------- libskk/cdb-dict.vala | 30 ++++++++++++++---------------- libskk/context.vala | 30 ++++++++++++++---------------- libskk/dict.vala | 30 ++++++++++++++---------------- libskk/encoding.vala | 30 ++++++++++++++---------------- libskk/file-dict.vala | 30 ++++++++++++++---------------- libskk/key-event.vala | 30 ++++++++++++++---------------- libskk/rom-kana.vala | 30 ++++++++++++++---------------- libskk/skkserv.vala | 30 ++++++++++++++---------------- libskk/state.vala | 31 +++++++++++++++---------------- libskk/user-dict.vala | 30 ++++++++++++++---------------- libskk/util.vala | 30 ++++++++++++++---------------- 12 files changed, 169 insertions(+), 192 deletions(-) commit 066e406209c1fad64ad833aaad7317eea4e02766 Author: Daiki Ueno Date: Sat Dec 3 15:53:44 2011 +0900 Fix reloading rom-kana rule. libskk/rom-kana.vala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a4ec8d8240d1c1aa86c78c6b026122e0c9eda548 Author: Daiki Ueno Date: Sat Dec 3 11:27:04 2011 +0900 Add skk tool. Makefile.am | 2 +- README | 3 ++ configure.ac | 2 +- libskk/config.vapi | 3 ++ libskk/context.vala | 6 +++ libskk/user-dict.vala | 4 +- po/POTFILES.in | 1 + po/POTFILES.skip | 1 + po/ja.po | 22 ++++++++-- tools/Makefile.am | 18 ++++++++ tools/tool.vala | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++ 11 files changed, 168 insertions(+), 6 deletions(-) commit 6f69b778abbec68700195fc3a3cd8ef247e3f38d Author: Daiki Ueno Date: Fri Dec 2 18:19:49 2011 +0900 Wrap long lines. libskk/rom-kana.vala | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 21b3f1f04f8096df717522beb083496ee2728375 Author: Daiki Ueno Date: Fri Dec 2 18:17:01 2011 +0900 Make rom-kana rule loading robuster. libskk/rom-kana.vala | 120 +++++++++++++++++++++++++++++++-------------------- 1 file changed, 74 insertions(+), 46 deletions(-) commit 33608194f6f86239f34924398a5ac283debf9fc2 Author: Daiki Ueno Date: Fri Dec 2 17:57:10 2011 +0900 Allow arbitrary properties to be defined in rom-kana rule files. data/rom-kana/README.rom-kana | 24 +- data/rom-kana/act.json | 1327 ++++---- data/rom-kana/azik.json | 978 +++--- data/rom-kana/kzik.json | 1026 +++--- data/rom-kana/standard.json | 474 +-- data/rom-kana/tut-code-touch16plus.json | 20 +- data/rom-kana/tut-code.json | 5280 ++++++++++++++++--------------- libskk/rom-kana.vala | 73 +- 8 files changed, 4619 insertions(+), 4583 deletions(-) commit cf33140fecd36c9058296a926c3d3baade1ff333 Author: Daiki Ueno Date: Fri Dec 2 16:33:17 2011 +0900 Reuse Regex in numeric conversion. libskk/context.vala | 1 + libskk/state.vala | 85 +++++++++++++++++++++++++++++------------------------ 2 files changed, 48 insertions(+), 38 deletions(-) commit 3c685dac9df62458fa5e8c8faa583a70c0b772bf Author: Daiki Ueno Date: Fri Dec 2 16:18:30 2011 +0900 Rename tut-code-touch16.json to tut-code-touch16plus.json. data/rom-kana/Makefile.am | 2 +- data/rom-kana/tut-code-touch16.json | 16 ---------------- data/rom-kana/tut-code-touch16plus.json | 16 ++++++++++++++++ 3 files changed, 17 insertions(+), 17 deletions(-) commit 72c05a2696cda0fc9fa38b24560e83b1cecfddfe Author: Daiki Ueno Date: Fri Dec 2 16:01:04 2011 +0900 Fix ACT and TUT-code rom-kana rule files. data/rom-kana/act.json | 1314 ++++----- data/rom-kana/tut-code-touch16.json | 22 +- data/rom-kana/tut-code.json | 5282 +++++++++++++++++------------------ 3 files changed, 3309 insertions(+), 3309 deletions(-) commit 81736400c95a6e7c026eb8674e6d91b49ce171f4 Author: Daiki Ueno Date: Fri Dec 2 15:46:23 2011 +0900 Fix valac warnings. libskk/state.vala | 16 ++++++++++++---- libskk/user-dict.vala | 5 ++++- libskk/util.vala | 2 +- 3 files changed, 17 insertions(+), 6 deletions(-) commit 7b289f6bba3bd9121ec7aa844e77793f0ac3beab Author: Daiki Ueno Date: Fri Dec 2 15:42:01 2011 +0900 Fix the last commit. libskk/rom-kana.vala | 3 --- 1 file changed, 3 deletions(-) commit dc805a9107c2a952820b70af2007e22e56cf2851 Author: Daiki Ueno Date: Fri Dec 2 15:36:58 2011 +0900 Support ACT and TUT-code (experimental). data/rom-kana/Makefile.am | 8 +- data/rom-kana/act.json | 663 +++++++++ data/rom-kana/tut-code-touch16.json | 16 + data/rom-kana/tut-code.json | 2643 +++++++++++++++++++++++++++++++++++ 4 files changed, 3329 insertions(+), 1 deletion(-) commit 02dfdda93394288c3ef42d940661ae674b3e1ff6 Author: Daiki Ueno Date: Fri Dec 2 15:36:33 2011 +0900 Update rom-kana format spec. data/rom-kana/README.rom-kana | 31 +++++++++++++------------------ 1 file changed, 13 insertions(+), 18 deletions(-) commit 1bfe5474d18ee78f49d0db867fa015b2ba9635ec Author: Daiki Ueno Date: Fri Dec 2 10:19:47 2011 +0900 Compact rom-kana rules. data/rom-kana/Makefile.am | 1 + data/rom-kana/README.rom-kana | 43 ++ data/rom-kana/azik.json | 980 +++++++++++++++++++-------------------- data/rom-kana/kzik.json | 1028 ++++++++++++++++++++--------------------- data/rom-kana/standard.json | 476 +++++++++---------- libskk/context.vala | 12 + libskk/rom-kana.vala | 61 ++- libskk/util.vala | 4 +- tests/context.c | 1 + tests/file-dict.c | 1 + tests/kana-kan.c | 1 + tests/rom-kana.c | 1 + tests/user-dict.c | 1 + 13 files changed, 1345 insertions(+), 1265 deletions(-) commit c35b9e6e38273cf356f75abb6d643cf2502cef06 Author: Daiki Ueno Date: Thu Dec 1 18:19:17 2011 +0900 Untabify rom-kana rules. .dir-locals.el | 3 +- data/rom-kana/azik.json | 978 ++++++++++++++++++++--------------------- data/rom-kana/kzik.json | 1026 +++++++++++++++++++++---------------------- data/rom-kana/standard.json | 472 ++++++++++---------- 4 files changed, 1240 insertions(+), 1239 deletions(-) commit 9c826877e9857e86d7be308860a1004f07bfecfd Author: Daiki Ueno Date: Thu Dec 1 17:50:32 2011 +0900 Support AZIK. data/rom-kana/Makefile.am | 2 +- data/rom-kana/azik.json | 495 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 496 insertions(+), 1 deletion(-) commit 40715715ef68709cafaf7113e245171dde4039be Author: Daiki Ueno Date: Thu Dec 1 17:42:05 2011 +0900 Make rom-kana rule format extensible. data/rom-kana/kzik.json | 1207 +++++++++++++++++++------------------------ data/rom-kana/standard.json | 478 ++++++++--------- libskk/rom-kana.vala | 83 ++- 3 files changed, 823 insertions(+), 945 deletions(-) commit 07c9adcd033b5a00ecf11981c01494c3a2585c6c Author: Daiki Ueno Date: Thu Dec 1 14:43:53 2011 +0900 Support CDB dictionary. libskk/Makefile.am | 1 + libskk/cdb-dict.vala | 138 ++++++++++++++++++++++++++++++++++++++++++++++++++ libskk/file-dict.vala | 2 - libskk/skkserv.vala | 2 +- libskk/state.vala | 2 +- 5 files changed, 141 insertions(+), 4 deletions(-) commit 91574a6e2e62bfffebe5145162b5bd9a2f4cf556 Author: Daiki Ueno Date: Thu Dec 1 11:05:27 2011 +0900 Factor out mmap related code to util.vala. libskk/file-dict.vala | 60 +++++++++++++-------------------------------------- libskk/util.vala | 55 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+), 45 deletions(-) commit 37d273a93985603b1cde9951d48a173e7339ca2a Author: Daiki Ueno Date: Wed Nov 30 17:37:14 2011 +0900 Adopt intltool. Makefile.am | 2 +- configure.ac | 10 +++++++++- libskk/Makefile.am | 3 +++ libskk/context.vala | 2 +- libskk/state.vala | 9 ++++++--- po/LINGUAS | 1 + po/POTFILES.in | 3 +++ po/POTFILES.skip | 2 ++ po/ja.po | 25 +++++++++++++++++++++++++ 9 files changed, 51 insertions(+), 6 deletions(-) commit fcbb0c8d688f1fbb2043b37fe42caec92d23c4c7 Author: Daiki Ueno Date: Wed Nov 30 17:12:44 2011 +0900 Add doc references in README. README | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 1969d46359f9eb1ce1278361c41649427229ba66 Author: Daiki Ueno Date: Wed Nov 30 16:35:06 2011 +0900 Fix for valadoc. docs/Makefile.am | 2 +- libskk/dict.vala | 19 ++++++++++++++++++- libskk/skkserv.vala | 3 ++- 3 files changed, 21 insertions(+), 3 deletions(-) commit c631cdcbca63c75fb0cd93dbf73e57bb1692270f Author: Daiki Ueno Date: Wed Nov 30 13:24:52 2011 +0900 Bump version to 0.0.1. configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2dfe11193461c8e22a401d6cb8f5a7805ead0a70 Author: Daiki Ueno Date: Wed Nov 30 13:24:15 2011 +0900 Support dictionary reloading. docs/Makefile.am | 2 +- libskk/candidate.vala | 5 +++-- libskk/context.vala | 20 +++++++++++++++++--- libskk/state.vala | 6 ++++-- 4 files changed, 25 insertions(+), 8 deletions(-) commit 4344785eee27e71857f799c9666db4022858d7da Author: Daiki Ueno Date: Wed Nov 30 11:10:09 2011 +0900 Harden file-dict completion. libskk/candidate.vala | 2 ++ libskk/dict.vala | 5 +++ libskk/file-dict.vala | 86 +++++++++++++++++++++++++++++++-------------------- libskk/skkserv.vala | 4 ++- libskk/state.vala | 1 - libskk/user-dict.vala | 16 +++++----- tests/context.c | 10 +++--- 7 files changed, 76 insertions(+), 48 deletions(-) commit 2ef2c9736476112490fd4e754ba667d71fcc07e8 Author: Daiki Ueno Date: Wed Nov 30 10:09:10 2011 +0900 Rearrange the code for valadoc. libskk/Makefile.am | 1 + libskk/candidate.vala | 211 ++++++++++++++++++++++++++++++++++++++++++++++++++ libskk/context.vala | 101 +----------------------- libskk/dict.vala | 94 ---------------------- libskk/kana-kan.vala | 95 ++++++++++++----------- libskk/rom-kana.vala | 3 + 6 files changed, 268 insertions(+), 237 deletions(-) commit 848a677d1c13894ff54a12828667f5dfa375f3eb Author: Daiki Ueno Date: Tue Nov 29 17:52:36 2011 +0900 Hide CandidateList#clear(). libskk/context.vala | 57 +++++++++++++++++++++++++++++++++++------------------ libskk/dict.vala | 7 +++++++ libskk/state.vala | 28 +++++++++++++++----------- 3 files changed, 61 insertions(+), 31 deletions(-) commit 5d9ba01ecf795158995c3cae6a2d09102bc2121b Author: Daiki Ueno Date: Tue Nov 29 15:09:32 2011 +0900 Fix off-by-one in file-dict binary search. libskk/file-dict.vala | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 25d3e5ffa53c9ca9348912d2ad07253520989fb2 Author: Daiki Ueno Date: Tue Nov 29 14:56:33 2011 +0900 Fix loading rom-kana rule. libskk/rom-kana.vala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3cca4041b67590343daae6240d0732915805d58f Author: Daiki Ueno Date: Tue Nov 29 14:51:31 2011 +0900 Throw exception on failure when loading/saving dictionaries. libskk/context.vala | 14 ++++- libskk/dict.vala | 6 +- libskk/encoding.vala | 3 +- libskk/file-dict.vala | 43 ++++++++------ libskk/user-dict.vala | 162 +++++++++++++++++++++++++------------------------- tests/user-dict.c | 5 +- 6 files changed, 123 insertions(+), 110 deletions(-) commit 69c18c384dcedf16239fa37d6b6ab9343cc3aec7 Author: Daiki Ueno Date: Tue Nov 29 13:06:20 2011 +0900 Use etag instead of mtime to detect file-dict modification. libskk/file-dict.vala | 22 ++++++++++++---------- libskk/user-dict.vala | 15 +++++++++------ 2 files changed, 21 insertions(+), 16 deletions(-) commit b701728b321c2ac9d7517cfc8153500cfbaa4ac0 Author: Daiki Ueno Date: Tue Nov 29 12:58:20 2011 +0900 Fix make distcheck. Makefile.am | 2 +- configure.ac | 4 +- data/Makefile.am | 1 + data/rom-kana/Makefile.am | 2 + data/rom-kana/kzik.json | 688 ++++++++++++++++++++++++++++++++++++++++++++ data/rom-kana/standard.json | 238 +++++++++++++++ docs/Makefile.am | 3 + libskk/Makefile.am | 9 +- libskk/config.vapi | 2 +- libskk/context.vala | 2 +- libskk/file-dict.vala | 1 - libskk/kzik.json | 688 -------------------------------------------- libskk/rom-kana.vala | 28 +- libskk/standard.json | 238 --------------- tests/Makefile.am | 6 +- tests/common.c | 2 +- tests/file-dict.c | 4 +- 17 files changed, 974 insertions(+), 944 deletions(-) commit aee86ade9338071af18aeb168954bdf7c9af38a4 Author: Daiki Ueno Date: Tue Nov 29 12:01:51 2011 +0900 Fix numeric conversion without numerals. libskk/context.vala | 4 ++-- libskk/state.vala | 15 +++++++++++++-- libskk/user-dict.vala | 19 ++++++++++++++++--- libskk/util.vala | 7 ++----- tests/context.c | 2 ++ 5 files changed, 35 insertions(+), 12 deletions(-) commit d04445defe03765b265ee6826e79b3d2e9a085ee Author: Daiki Ueno Date: Tue Nov 29 10:57:47 2011 +0900 Use GIO for accessing user dictionary. libskk/user-dict.vala | 140 ++++++++++++++++++++++++++------------------------ 1 file changed, 72 insertions(+), 68 deletions(-) commit 5a3f93af7c346c86197f601e17deb2d13f205215 Author: Daiki Ueno Date: Tue Nov 29 09:58:09 2011 +0900 Fix learning numeric conversion. libskk/dict.vala | 21 ++++++++++++++++++++- libskk/state.vala | 6 +++--- tests/common.c | 12 ++++++------ tests/context.c | 6 ++++-- 4 files changed, 33 insertions(+), 12 deletions(-) commit 9a33278c34e11c595e616d05c980e794b65cd8f4 Author: Daiki Ueno Date: Mon Nov 28 19:10:15 2011 +0900 Add some comment to the mmap code. libskk/file-dict.vala | 11 +++++++++++ 1 file changed, 11 insertions(+) commit b02e41df079c32d8b92a2dfcc5d20d9a1df422b5 Author: Daiki Ueno Date: Mon Nov 28 18:46:48 2011 +0900 Use mmap. libskk/file-dict.vala | 255 +++++++++++++++++++++++++++++++++----------------- 1 file changed, 168 insertions(+), 87 deletions(-) commit cd37b296cce8697734b3a138182e001ad6f56eba Author: Daiki Ueno Date: Mon Nov 28 12:08:59 2011 +0900 Support numeric conversion. libskk/dict.vala | 3 ++ libskk/state.vala | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- libskk/util.vala | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++- tests/context.c | 17 +++++++++++ 4 files changed, 194 insertions(+), 4 deletions(-) commit 2849f3d25f2c8a70719da37458b605ca9bddf30f Author: Daiki Ueno Date: Sat Nov 26 09:31:11 2011 +0900 Fix "K a n J i" conversion. libskk/rom-kana.vala | 8 ++++++-- libskk/state.vala | 11 ++++++++--- tests/context.c | 1 + 3 files changed, 15 insertions(+), 5 deletions(-) commit 308ce75aa9d3277bb9a23daf28fbe9a09b7d6ea8 Author: Daiki Ueno Date: Sat Nov 26 06:23:50 2011 +0900 Add warning messages. .gitignore | 1 - libskk/context.vala | 38 ++++++++++++++++++++------------------ libskk/file-dict.vala | 5 +++++ libskk/state.vala | 6 +++++- libskk/user-dict.vala | 29 +++++++++++++++++++++++------ 5 files changed, 53 insertions(+), 26 deletions(-) commit 639e9bacb2d428523fec7ef97ff914c0b85008a4 Author: Daiki Ueno Date: Fri Nov 25 21:25:36 2011 +0900 Add missing config.vapi. libskk/config.vapi | 8 ++++++++ 1 file changed, 8 insertions(+) commit daf07f498e2d284bfc392cd432410b1003b23c4b Author: Daiki Ueno Date: Fri Nov 25 18:14:30 2011 +0900 Fix minor warnings. libskk/context.vala | 5 +++-- libskk/rom-kana.vala | 14 +++++++++++--- 2 files changed, 14 insertions(+), 5 deletions(-) commit 8c1ee4a3c090c2183738fe600b45d0125b081bdd Author: Daiki Ueno Date: Fri Nov 25 18:08:35 2011 +0900 Uniquify candidates when adding them to CandidateList. libskk/context.vala | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 85346ad077a9b01fbfe2ec5f393ae789480aeff5 Author: Daiki Ueno Date: Fri Nov 25 17:25:48 2011 +0900 Fix user-dict encoding. libskk/context.vala | 36 ++++++++++++++++++++++++++++++------ libskk/state.vala | 2 +- libskk/user-dict.vala | 10 ++++++---- 3 files changed, 37 insertions(+), 11 deletions(-) commit 88e92657716d24caf8bf8ef6901d2a6bf2cb8767 Author: Daiki Ueno Date: Fri Nov 25 16:47:10 2011 +0900 Fix skkserv support. libskk/skkserv.vala | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) commit 3b78e747fecee3dbdab538465334083ea1d12728 Author: Daiki Ueno Date: Fri Nov 25 11:13:42 2011 +0900 Load rom-kana rule from JSON file. configure.ac | 2 +- libskk/Makefile.am | 13 +- libskk/context.vala | 9 + libskk/kzik.json | 688 +++++++++++++++++++++++++++++++++++++++++++++++++++ libskk/rom-kana.vala | 288 ++++----------------- libskk/standard.json | 238 ++++++++++++++++++ libskk/state.vala | 10 + tests/context.c | 17 ++ 8 files changed, 1018 insertions(+), 247 deletions(-) commit 9b251582212254259f606ffbe5daa6e26ce4de2f Author: Daiki Ueno Date: Thu Nov 24 18:15:20 2011 +0900 Support egg-like-newline. libskk/context.vala | 12 ++++++++++++ libskk/state.vala | 6 +++++- tests/context.c | 6 +++--- 3 files changed, 20 insertions(+), 4 deletions(-) commit c437c8a16705e783f9805389b89bcdd5d2ebdb64 Author: Daiki Ueno Date: Thu Nov 24 15:46:21 2011 +0900 Export period style to Context from RomKanaConverter. libskk/context.vala | 12 ++++++++++++ libskk/state.vala | 24 +++++++++++++++++------- 2 files changed, 29 insertions(+), 7 deletions(-) commit 475391df1ec6e19d48fb954fa29960563299d96a Author: Daiki Ueno Date: Thu Nov 24 12:21:04 2011 +0900 Support auto conversion. libskk/context.vala | 12 ++++++++++++ libskk/state.vala | 47 ++++++++++++++++++++++++++++++++++++++++++++--- tests/context.c | 16 ++++++++++++++++ 3 files changed, 72 insertions(+), 3 deletions(-) commit e90854ddf2af9cb0c1e1531e22792f84109dd0e4 Author: Daiki Ueno Date: Mon Nov 21 12:17:19 2011 +0900 Don't handle control characters in latin input mode. libskk/state.vala | 16 +++++++++++----- tests/context.c | 3 ++- 2 files changed, 13 insertions(+), 6 deletions(-) commit 343e19def73ac6ced69248be324eaf93f81e8eda Author: Daiki Ueno Date: Mon Nov 21 11:28:40 2011 +0900 Emit notify signal on input mode change. libskk/context.vala | 3 +++ 1 file changed, 3 insertions(+) commit e68ce910f8b3a208bb8571174ba53ff3739125f5 Author: Daiki Ueno Date: Mon Nov 21 11:28:24 2011 +0900 Fix conversion from katakana to kanji. libskk/state.vala | 2 +- tests/context.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) commit d2613879a072c37f5c0c72892721e77d4cfabadd Author: Daiki Ueno Date: Fri Nov 18 17:59:08 2011 +0900 Remove useless modifiers. libskk/key-event.vala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c77fd0dba09604c72ea8b317cfd3a5361f8ef1cd Author: Daiki Ueno Date: Fri Nov 18 17:28:36 2011 +0900 Fix some mistakes. libskk/context.vala | 38 +++++++++++++++++++++++++++++++++----- libskk/rom-kana.vala | 2 +- libskk/state.vala | 49 +++++++++++++++++++++++++++++++------------------ tests/context.c | 4 +++- 4 files changed, 68 insertions(+), 25 deletions(-) commit e6074749d30317d06246301a78b11680b3d173e2 Author: Daiki Ueno Date: Fri Nov 18 12:20:48 2011 +0900 Factor out CandidateList from State. libskk/context.vala | 50 ++++++++++++++++++++++++++++++++++++++++++++++++-- libskk/state.vala | 36 ++++++++++++++++-------------------- 2 files changed, 64 insertions(+), 22 deletions(-) commit 72d2d825d5043abb3c61be93e12028a10ad0ca76 Author: Daiki Ueno Date: Thu Nov 17 18:12:46 2011 +0900 Check if rom-kana converter successfully consumed a character. libskk/context.vala | 32 +++++++++++---------- libskk/rom-kana.vala | 11 ++++++-- libskk/state.vala | 78 +++++++++++++++++++++++++++++++--------------------- tests/context.c | 5 ++++ 4 files changed, 78 insertions(+), 48 deletions(-) commit 9327c87e88808438e87baa90249f67808ddc3ad7 Author: Daiki Ueno Date: Thu Nov 17 16:00:41 2011 +0900 Add doc comments. libskk/context.vala | 52 +++++++++++++++++++++++++++++++++++++++++++++------ libskk/dict.vala | 15 +++++++++++++++ libskk/file-dict.vala | 12 ++++++++++++ libskk/rom-kana.vala | 37 ++++++++++++++++++++++++++++++++---- libskk/skkserv.vala | 25 +++++++++++++++++++++++++ libskk/user-dict.vala | 21 +++++++++++++++++++++ 6 files changed, 152 insertions(+), 10 deletions(-) commit aa6abe7d818cb59e2654a2f3efe0767d958ca2a4 Author: Daiki Ueno Date: Thu Nov 17 13:56:17 2011 +0900 Split AbbrevStateHandler out of StartStateHandler. libskk/context.vala | 2 ++ libskk/state.vala | 85 +++++++++++++++++++++++++++++++++++------------------ 2 files changed, 59 insertions(+), 28 deletions(-) commit bc2e4b12a284b3289ca0d4a1c72bc98283db2d78 Author: Daiki Ueno Date: Thu Nov 17 13:40:41 2011 +0900 Fix libskk.h installation. libskk/Makefile.am | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 3187f39ee962c0de238d94cc3b4383198615c330 Author: Daiki Ueno Date: Thu Nov 17 11:52:59 2011 +0900 Fix vapi installation. libskk/Makefile.am | 3 +++ libskk/skk-1.0.deps | 4 ++++ 2 files changed, 7 insertions(+) commit 235f606b446d6c41e2ef23e0cafc6a852058142e Author: Daiki Ueno Date: Thu Nov 17 11:43:59 2011 +0900 Fix pkgconfig stuff. libskk/Makefile.am | 6 +++++- libskk/libskk.pc.in | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) commit 654c77606347e4fd28d0dbff6d37b06a41bbd390 Author: Daiki Ueno Date: Thu Nov 17 11:06:41 2011 +0900 Support kuten input. libskk/context.vala | 2 + libskk/state.vala | 100 ++++++++++++++++++++++++++++++++++++++++++++++---- libskk/user-dict.vala | 2 +- tests/context.c | 19 ++++++++++ 4 files changed, 115 insertions(+), 8 deletions(-) commit 7d5ba2c9fcab57dd811c5291cf5c502f20ad39f3 Author: Daiki Ueno Date: Thu Nov 17 09:46:05 2011 +0900 Add missing tests/user-dict.c. tests/user-dict.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) commit 76c9eb7ea0ef25ef396f84ab42614ef787fb6911 Author: Daiki Ueno Date: Wed Nov 16 18:36:56 2011 +0900 Make sure to remove user-dict.dat before running each test. libskk/state.vala | 34 ++++++++++++++++++++-------------- tests/common.c | 3 +++ tests/context.c | 5 +---- tests/user-dict.dat | 2 -- 4 files changed, 24 insertions(+), 20 deletions(-) commit c85a57c5fcdb8da2c370c21e4816a5eacc1c570f Author: Daiki Ueno Date: Wed Nov 16 18:16:13 2011 +0900 Support purge dictionary entry. libskk/state.vala | 20 ++++++++++++++++++-- libskk/user-dict.vala | 18 ++++++++++-------- tests/context.c | 10 ++++++++++ 3 files changed, 38 insertions(+), 10 deletions(-) commit 34aa2665b8def41eb43728ebfbfd31418ef98bcf Author: Daiki Ueno Date: Wed Nov 16 17:25:44 2011 +0900 Fix dictionary saving. libskk/context.vala | 13 +++++++++++-- libskk/dict.vala | 2 +- libskk/state.vala | 4 ++-- libskk/user-dict.vala | 14 +++++++------- tests/context.c | 2 ++ 5 files changed, 23 insertions(+), 12 deletions(-) commit 7770551d6e2a9943f598b3551776256e16c84958 Author: Daiki Ueno Date: Wed Nov 16 16:48:25 2011 +0900 Add recursive-edit signals for dict-edit. libskk/context.vala | 55 ++++++++++++++++++++++++--------------------------- libskk/kana-kan.vala | 4 ++-- libskk/skkserv.vala | 2 +- libskk/state.vala | 21 ++++++++++++++------ libskk/user-dict.vala | 8 +++++--- 5 files changed, 49 insertions(+), 41 deletions(-) commit 4544faa8c4ee87976cde915ffc82aff159c30318 Author: Daiki Ueno Date: Wed Nov 16 15:55:38 2011 +0900 Switch to valadoc from directly calling gtk-doc. Makefile.am | 8 +++- configure.ac | 22 ++++++++++- docs/Makefile.am | 101 +++++++++++++++++++++++++++++++++++++++++++++----- libskk/context.vala | 49 ++++++++++++------------ libskk/dict.vala | 79 +++++++++++++++------------------------ libskk/file-dict.vala | 14 +++---- libskk/rom-kana.vala | 67 ++++++++++++++------------------- libskk/state.vala | 9 ----- libskk/user-dict.vala | 14 +++---- 9 files changed, 215 insertions(+), 148 deletions(-) commit d98848d46424b7b86a1f18683692967e0f0b299f Author: Daiki Ueno Date: Wed Nov 16 13:18:55 2011 +0900 Support dict-edit. libskk/context.vala | 68 +++++++++++++++++++++++++++++++++++++---------------- libskk/state.vala | 9 +++++-- tests/context.c | 23 ++++++++++++++++++ 3 files changed, 78 insertions(+), 22 deletions(-) commit 1feeb945394c2a301f7768d5293306aada6ac44c Author: Daiki Ueno Date: Wed Nov 16 11:50:38 2011 +0900 Support abbrev. libskk/state.vala | 81 ++++++++++++++++++++++++++++++++++++++++--------------- libskk/util.vala | 14 ++++++++++ tests/context.c | 24 +++++++++++++++++ 3 files changed, 98 insertions(+), 21 deletions(-) commit 7cdfa4648b3134238ad1d520ef40941150e33068 Author: Daiki Ueno Date: Wed Nov 16 10:32:18 2011 +0900 Include modified SKK-JISYO.S for testing. tests/Makefile.am | 8 +- tests/common.c | 46 + tests/common.h | 20 + tests/context.c | 50 +- tests/file-dict.c | 2 +- tests/file-dict.dat | 3417 +++++++++++++++++++++++++++++++++++++++++++++++++++ tests/user-dict.dat | 2 + 7 files changed, 3493 insertions(+), 52 deletions(-) commit 37cc1ba7f17c5b19ac6d073732dbcbef4318bd7d Author: Daiki Ueno Date: Tue Nov 15 16:24:14 2011 +0900 Add support for skkserv and completion. libskk/Makefile.am | 1 + libskk/dict.vala | 7 ++- libskk/file-dict.vala | 46 ++++++++++++----- libskk/skkserv.vala | 135 ++++++++++++++++++++++++++++++++++++++++++++++++++ libskk/state.vala | 32 ++++++++++++ libskk/user-dict.vala | 4 ++ tests/context.c | 19 +++++++ 7 files changed, 231 insertions(+), 13 deletions(-) commit 4539e72b4b258a920ce2fb170faf59c16c0fa5c3 Author: Daiki Ueno Date: Mon Nov 14 18:24:32 2011 +0900 Port some tests from ibus-skk's test.py. libskk/context.vala | 9 + libskk/rom-kana.vala | 519 +++++++++++++++++++++++++++------------------------ libskk/state.vala | 213 +++++++++++++++++---- libskk/util.vala | 36 +++- tests/context.c | 198 +++++++++++++++++--- 5 files changed, 664 insertions(+), 311 deletions(-) commit 0003d3a389e886736880d4a6d6d8da47ec650faa Author: Daiki Ueno Date: Mon Nov 14 10:39:31 2011 +0900 Disable kana-kan test. tests/Makefile.am | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 7d024f99899f65f79fa03e89d534760fdd3e5b6c Author: Daiki Ueno Date: Thu Nov 10 11:52:13 2011 +0900 Add user dictionary support (WIP). libskk/Makefile.am | 1 + libskk/context.vala | 8 ++ libskk/dict.vala | 56 +++++++++- libskk/encoding.vala | 3 + libskk/file-dict.vala | 10 +- libskk/user-dict.vala | 287 ++++++++++++++++++++++++++++++++++++++++++++++++++ libskk/util.vala | 26 ++--- tests/Makefile.am | 5 +- 8 files changed, 379 insertions(+), 17 deletions(-) commit 1b6131da6ce4836d819e1b3df261784dab3ca46a Author: Daiki Ueno Date: Thu Oct 27 11:50:41 2011 +0900 Fix rom-kana conversion when there is carryover. libskk/rom-kana.vala | 1 + tests/context.c | 2 +- tests/rom-kana.c | 10 ++++++++++ 3 files changed, 12 insertions(+), 1 deletion(-) commit 8a0976eced53a4100240dfeef0698f11da8e3bf8 Author: Daiki Ueno Date: Wed Oct 26 17:39:35 2011 +0900 Implement input mode change. libskk/context.vala | 10 ++++++- libskk/state.vala | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++--- tests/context.c | 56 ++++++++++++++++++++++++++++++++++++--- 3 files changed, 134 insertions(+), 8 deletions(-) commit 87f2b8b8253240d3ce758c1bc9a9f3004c25888b Author: Daiki Ueno Date: Thu Oct 20 09:44:53 2011 +0900 Make sure to unref objects in the kana-kan test. tests/kana-kan.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 7215f069ba364cac53805e4608bb5bebb603cd24 Author: Daiki Ueno Date: Thu Oct 20 09:42:40 2011 +0900 Derive KanaKan* from GLib.Object. libskk/kana-kan.vala | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit d7497e8eca325c8c57601374a34fa5011a23737b Author: Daiki Ueno Date: Wed Oct 19 21:58:43 2011 +0900 Hide KanaKanConverter#viterbi(). libskk/kana-kan.vala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a6ebe090021598babe024b118ad7de4db9e6a549 Author: Daiki Ueno Date: Wed Oct 19 21:57:41 2011 +0900 Require Vala 0.14. configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dc9c65f3dcfb6d3a6a52e6319db55ca73e16460a Author: Daiki Ueno Date: Wed Oct 19 18:37:23 2011 +0900 Move UnicodeString to util.vala. libskk/kana-kan.vala | 21 --------------------- libskk/util.vala | 21 +++++++++++++++++++++ 2 files changed, 21 insertions(+), 21 deletions(-) commit 6913205d7472095b15a47f92482d04db7947ed16 Author: Daiki Ueno Date: Wed Oct 19 18:15:43 2011 +0900 Add naive kana-kanji converter. libskk/Makefile.am | 1 + libskk/kana-kan.vala | 230 +++++++++++++++++++++++++++++++++++++++++++++++++++ tests/Makefile.am | 5 +- tests/kana-kan.c | 23 ++++++ 4 files changed, 258 insertions(+), 1 deletion(-) commit 65585fe814075d7e8550df8ea2c5c8112838251c Author: Daiki Ueno Date: Wed Oct 19 15:58:35 2011 +0900 Rename converter.vala to encoding.vala. libskk/Makefile.am | 2 +- libskk/converter.vala | 58 --------------------------------------------------- libskk/encoding.vala | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++ libskk/file-dict.vala | 4 ++-- 4 files changed, 61 insertions(+), 61 deletions(-) commit 8a889062d2f5232aeb4777866cfeb7d191078af4 Author: Daiki Ueno Date: Wed Oct 19 13:47:32 2011 +0900 Add doc comments. libskk/context.vala | 46 +++++++++++++++++++++++++++++++++++++- libskk/dict.vala | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++ libskk/file-dict.vala | 12 ++++++++++ 3 files changed, 119 insertions(+), 1 deletion(-) commit 48450264e3fc2a26259d29844866ef9e274e8cad Author: Daiki Ueno Date: Wed Oct 19 12:21:51 2011 +0900 Implement kana-kanji conversion. Represent key event as SkkKeyEvent instead of unichar; fix okuri-ari lookup in SkkFileDict; implement basic state transition between SkkStartState and SkkSelectState. libskk/Makefile.am | 1 + libskk/context.vala | 28 +++++++++----- libskk/file-dict.vala | 5 ++- libskk/key-event.vala | 62 ++++++++++++++++++++++++++++++ libskk/rom-kana.vala | 16 ++++++++ libskk/state.vala | 103 ++++++++++++++++++++++++++++++++++++++++---------- tests/context.c | 38 +++++++++++++++++-- tests/file-dict.c | 6 +++ 8 files changed, 226 insertions(+), 33 deletions(-) commit 07d792ca9ebbf36998231772af8794cea1764c24 Author: Daiki Ueno Date: Tue Oct 18 18:09:15 2011 +0900 Add half/wide kana conversion utility. libskk/Makefile.am | 3 +- libskk/state.vala | 24 ++++++-- libskk/util.vala | 169 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 189 insertions(+), 7 deletions(-) commit 9a774d9e0f36c67417ea4b5c2f1fbd5a2f3423b7 Author: Daiki Ueno Date: Tue Oct 18 16:59:42 2011 +0900 Simplify SkkContext#process_key_event(). libskk/context.vala | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) commit 03a6e9d3b11d2eda8b67aaefa619bc23e315e8aa Author: Daiki Ueno Date: Mon Oct 17 17:52:18 2011 +0900 Simplify SkkState interface. libskk/context.vala | 52 ++++++++++------------------------------ libskk/state.vala | 69 +++++++++++++---------------------------------------- tests/context.c | 4 ++-- 3 files changed, 31 insertions(+), 94 deletions(-) commit 885ae10a582bc3b6f76b0c7c2024a4ea08273a9c Author: Daiki Ueno Date: Mon Oct 17 17:32:51 2011 +0900 Implement SkkState#get_preedit() for Start and Select states. libskk/context.vala | 12 ++++++------ libskk/state.vala | 40 ++++++++++++++++++++++++++++++++++++---- tests/context.c | 3 +++ 3 files changed, 45 insertions(+), 10 deletions(-) commit b2d4b66681595f2befd290003a25bda4fefbb144 Author: Daiki Ueno Date: Mon Oct 17 10:07:56 2011 +0900 Partially implement SkkState and SkkContext. .gitignore | 2 +- README | 4 +- libskk/context.vala | 98 ++++++++++++++++++++++++++++++----------- libskk/rom-kana.vala | 41 +++++++++-------- libskk/state.vala | 122 ++++++++++++++++++++++++++++++++------------------- tests/Makefile.am | 5 ++- tests/context.c | 34 ++++++++++++++ tests/rom-kana.c | 8 ++-- 8 files changed, 217 insertions(+), 97 deletions(-) commit 24be44d9cf73cef0e6faf7cfbe6de96ef21c357b Author: Daiki Ueno Date: Tue Oct 4 17:48:43 2011 +0900 Initial import. .dir-locals.el | 2 + .gitignore | 36 ++++ COPYING | 502 ++++++++++++++++++++++++++++++++++++++++++++++++++ INSTALL | 365 ++++++++++++++++++++++++++++++++++++ Makefile.am | 2 + README | 3 + autogen.sh | 25 +++ configure.ac | 55 ++++++ docs/Makefile.am | 12 ++ libskk/Makefile.am | 51 +++++ libskk/context.vala | 85 +++++++++ libskk/converter.vala | 58 ++++++ libskk/dict.vala | 94 ++++++++++ libskk/file-dict.vala | 170 +++++++++++++++++ libskk/libskk.pc.in | 29 +++ libskk/rom-kana.vala | 479 +++++++++++++++++++++++++++++++++++++++++++++++ libskk/state.vala | 110 +++++++++++ tests/Makefile.am | 10 + tests/file-dict.c | 29 +++ tests/rom-kana.c | 42 +++++ 20 files changed, 2159 insertions(+) libskk-1.0.0/docs/0000775000076400007640000000000012016557043010735 500000000000000libskk-1.0.0/docs/Makefile.in0000664000076400007640000004440412016556763012740 00000000000000# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 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@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } 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 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \ $(top_srcdir)/m4/libtool.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/vala.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac 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__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(libskkdocdir)" \ "$(DESTDIR)$(libskkgtkdocdir)" "$(DESTDIR)$(libskkimgdir)" DATA = $(libskkdoc_DATA) $(libskkgtkdoc_DATA) $(libskkimg_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CODE_COVERAGE_CFLAGS = @CODE_COVERAGE_CFLAGS@ CODE_COVERAGE_LDFLAGS = @CODE_COVERAGE_LDFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FEP = @FEP@ FGREP = @FGREP@ GEE_CFLAGS = @GEE_CFLAGS@ GEE_LIBS = @GEE_LIBS@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GIO_CFLAGS = @GIO_CFLAGS@ GIO_LIBS = @GIO_LIBS@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@ INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@ INTROSPECTION_LIBS = @INTROSPECTION_LIBS@ INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@ INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@ INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@ JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@ JSON_GLIB_LIBS = @JSON_GLIB_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBFEP_CFLAGS = @LIBFEP_CFLAGS@ LIBFEP_LIBS = @LIBFEP_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBSKK_CFLAGS = @LIBSKK_CFLAGS@ LIBSKK_LIBS = @LIBSKK_LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ 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@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SKK_API_MAJOR_VERSION = @SKK_API_MAJOR_VERSION@ SKK_API_MINOR_VERSION = @SKK_API_MINOR_VERSION@ SKK_API_PC_VERSION = @SKK_API_PC_VERSION@ SKK_API_VERSION = @SKK_API_VERSION@ SKK_LIBRARY_SUFFIX = @SKK_LIBRARY_SUFFIX@ SKK_LIBRARY_SUFFIX_U = @SKK_LIBRARY_SUFFIX_U@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VALAC = @VALAC@ VALADOC = @VALADOC@ VALADOC_CFLAGS = @VALADOC_CFLAGS@ VALADOC_LIBS = @VALADOC_LIBS@ VALAFLAGS = @VALAFLAGS@ VALGRIND = @VALGRIND@ VALGRIND_OPTS = @VALGRIND_OPTS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ 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@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ 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@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ distclean_dirs = \ libskk \ gtk-doc \ $(NULL) phony_deps = \ libskk-doc \ libskk-gtk-doc \ $(NULL) libskkdocdir = $(datadir)/devhelp/references/libskk libskkimgdir = $(datadir)/devhelp/references/libskk/img libskkgtkdocdir = $(datadir)/gtk-doc/html/libskk common_doc_files = \ *.css \ *.png \ *.js \ index.htm \ *.html \ $(NULL) libskkdoc_DATA = \ libskk/libskk/libskk.devhelp2 \ $(addprefix libskk/libskk/,$(common_doc_files)) \ $(NULL) libskkgtkdoc_DATA = gtk-doc/libskk/html/* libskkimg_DATA = \ libskk/libskk/img/*.png \ $(NULL) valadoc_flags = \ --force \ --package-version $(PACKAGE_VERSION) \ -D VALA_0_16 \ $(NULL) # libskk documentation libskk_doc_files_blacklist = \ $(top_srcdir)/libskk/kana-kan.vala \ $(NULL) # this expands the list of files, so we can filter out elements libskk_doc_files_all = \ $(wildcard $(top_srcdir)/libskk/*.vala) \ $(NULL) # FIXME: sort the files manually to work around the native doclet portion of # bgo#662784 libskk_doc_files = \ $(sort \ $(filter-out $(libskk_doc_files_blacklist),$(libskk_doc_files_all))) libskk_doc_deps = \ config \ glib-2.0 \ gio-2.0 \ gee-1.0 \ posix \ json-glib-1.0 \ $(NULL) valadoc_flags_libskk = \ $(valadoc_flags) \ -X $(top_srcdir)/libskk/libskk.h \ $(addprefix --pkg=,$(libskk_doc_deps)) \ --vapidir=$(top_srcdir)/libskk \ $(libskk_doc_files) \ $(NULL) GITIGNOREFILES = \ libskk/ \ gtk-doc/ \ $(NULL) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(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: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(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-libskkdocDATA: $(libskkdoc_DATA) @$(NORMAL_INSTALL) @list='$(libskkdoc_DATA)'; test -n "$(libskkdocdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(libskkdocdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(libskkdocdir)" || exit 1; \ fi; \ 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)$(libskkdocdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(libskkdocdir)" || exit $$?; \ done uninstall-libskkdocDATA: @$(NORMAL_UNINSTALL) @list='$(libskkdoc_DATA)'; test -n "$(libskkdocdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(libskkdocdir)'; $(am__uninstall_files_from_dir) install-libskkgtkdocDATA: $(libskkgtkdoc_DATA) @$(NORMAL_INSTALL) @list='$(libskkgtkdoc_DATA)'; test -n "$(libskkgtkdocdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(libskkgtkdocdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(libskkgtkdocdir)" || exit 1; \ fi; \ 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)$(libskkgtkdocdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(libskkgtkdocdir)" || exit $$?; \ done uninstall-libskkgtkdocDATA: @$(NORMAL_UNINSTALL) @list='$(libskkgtkdoc_DATA)'; test -n "$(libskkgtkdocdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(libskkgtkdocdir)'; $(am__uninstall_files_from_dir) install-libskkimgDATA: $(libskkimg_DATA) @$(NORMAL_INSTALL) @list='$(libskkimg_DATA)'; test -n "$(libskkimgdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(libskkimgdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(libskkimgdir)" || exit 1; \ fi; \ 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)$(libskkimgdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(libskkimgdir)" || exit $$?; \ done uninstall-libskkimgDATA: @$(NORMAL_UNINSTALL) @list='$(libskkimg_DATA)'; test -n "$(libskkimgdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(libskkimgdir)'; $(am__uninstall_files_from_dir) tags: TAGS TAGS: ctags: CTAGS CTAGS: cscope cscopelist: 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)$(libskkdocdir)" "$(DESTDIR)$(libskkgtkdocdir)" "$(DESTDIR)$(libskkimgdir)"; 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: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi 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." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-local dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-libskkdocDATA install-libskkgtkdocDATA \ install-libskkimgDATA 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-libskkdocDATA uninstall-libskkgtkdocDATA \ uninstall-libskkimgDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distclean-local \ 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-libskkdocDATA install-libskkgtkdocDATA \ install-libskkimgDATA 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-libskkdocDATA uninstall-libskkgtkdocDATA \ uninstall-libskkimgDATA $(libskkdoc_DATA) $(libskkimg_DATA): libskk-doc $(libskkgtkdoc_DATA): libskk-gtk-doc libskk-doc: $(libskk_doc_files) $(AM_V_GEN)$(VALADOC) \ -o libskk/ \ --doclet=devhelp \ $(valadoc_flags_libskk) \ $(NULL) libskk-gtk-doc: $(libskk_doc_files) $(AM_V_GEN)$(VALADOC) \ -X -l -X $(top_builddir)/libskk/.libs/libskk.so \ -o gtk-doc/libskk \ --doclet=gtkdoc \ $(valadoc_flags_libskk) \ $(NULL) .PHONY: $(phony_deps) distclean-local: distclean-docs distclean-docs: rm -rf $(distclean_dirs) -include $(top_srcdir)/git.mk # 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: libskk-1.0.0/docs/Makefile.am0000664000076400007640000000365111774201133012712 00000000000000distclean_dirs = \ libskk \ gtk-doc \ $(NULL) phony_deps = \ libskk-doc \ libskk-gtk-doc \ $(NULL) libskkdocdir=$(datadir)/devhelp/references/libskk libskkimgdir=$(datadir)/devhelp/references/libskk/img libskkgtkdocdir=$(datadir)/gtk-doc/html/libskk common_doc_files = \ *.css \ *.png \ *.js \ index.htm \ *.html \ $(NULL) libskkdoc_DATA = \ libskk/libskk/libskk.devhelp2 \ $(addprefix libskk/libskk/,$(common_doc_files)) \ $(NULL) libskkgtkdoc_DATA = gtk-doc/libskk/html/* libskkimg_DATA = \ libskk/libskk/img/*.png \ $(NULL) $(libskkdoc_DATA) $(libskkimg_DATA): libskk-doc $(libskkgtkdoc_DATA): libskk-gtk-doc valadoc_flags = \ --force \ --package-version $(PACKAGE_VERSION) \ -D VALA_0_16 \ $(NULL) # libskk documentation libskk_doc_files_blacklist = \ $(top_srcdir)/libskk/kana-kan.vala \ $(NULL) # this expands the list of files, so we can filter out elements libskk_doc_files_all = \ $(wildcard $(top_srcdir)/libskk/*.vala) \ $(NULL) # FIXME: sort the files manually to work around the native doclet portion of # bgo#662784 libskk_doc_files = \ $(sort \ $(filter-out $(libskk_doc_files_blacklist),$(libskk_doc_files_all))) libskk_doc_deps = \ config \ glib-2.0 \ gio-2.0 \ gee-1.0 \ posix \ json-glib-1.0 \ $(NULL) valadoc_flags_libskk = \ $(valadoc_flags) \ -X $(top_srcdir)/libskk/libskk.h \ $(addprefix --pkg=,$(libskk_doc_deps)) \ --vapidir=$(top_srcdir)/libskk \ $(libskk_doc_files) \ $(NULL) libskk-doc: $(libskk_doc_files) $(AM_V_GEN)$(VALADOC) \ -o libskk/ \ --doclet=devhelp \ $(valadoc_flags_libskk) \ $(NULL) libskk-gtk-doc: $(libskk_doc_files) $(AM_V_GEN)$(VALADOC) \ -X -l -X $(top_builddir)/libskk/.libs/libskk.so \ -o gtk-doc/libskk \ --doclet=gtkdoc \ $(valadoc_flags_libskk) \ $(NULL) .PHONY: $(phony_deps) distclean-local: distclean-docs distclean-docs: rm -rf $(distclean_dirs) GITIGNOREFILES = \ libskk/ \ gtk-doc/ \ $(NULL) -include $(top_srcdir)/git.mk libskk-1.0.0/depcomp0000755000076400007640000004755611774201546011325 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2011-12-04.11; # UTC # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010, # 2011 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 outputting 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 if test "$depmode" = msvc7msys; then # This is just like msvc7 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=msvc7 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. hp depmode also adds that space, but also prefixes the VPATH ## to the object. Take care to not repeat it in the output. ## 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 "s|.*$object$||" -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" ;; msvc7) if test "$libtool" = yes; then showIncludes=-Wc,-showIncludes else showIncludes=-showIncludes fi "$@" $showIncludes > "$tmpdepfile" stat=$? grep -v '^Note: including file: ' "$tmpdepfile" if test "$stat" = 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The first sed program below extracts the file names and escapes # backslashes for cygpath. The second sed program outputs the file # name when reading, but also accumulates all include files in the # hold buffer in order to output them again at the end. This only # works with sed implementations that can handle large buffers. sed < "$tmpdepfile" -n ' /^Note: including file: *\(.*\)/ { s//\1/ s/\\/\\\\/g p }' | $cygpath_u | sort -u | sed -n ' s/ /\\ /g s/\(.*\)/ \1 \\/p s/.\(.*\) \\/\1:/ H $ { s/.*/ / G p }' >> "$depfile" rm -f "$tmpdepfile" ;; msvc7msys) # 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 ;; #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" # makedepend may prepend the VPATH from the source file name to the object. # No need to regex-escape $object, excess matching of '.' is harmless. sed "s|^.*\($object *:\)|\1|" "$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: libskk-1.0.0/ltmain.sh0000644000076400007640000105152212016556761011557 00000000000000 # libtool (GNU libtool) 2.4.2 # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, # 2007, 2008, 2009, 2010, 2011 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 # --no-quiet, --no-silent # print informational messages (default) # --no-warn don't display warning messages # --tag=TAG use configuration variables from tag TAG # -v, --verbose print more informational messages than default # --no-verbose don't print the extra informational messages # --version print version information # -h, --help, --help-all print short, long, or detailed 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. When passed as first option, # `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. # 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.4.2 # automake: $automake_version # autoconf: $autoconf_version # # Report bugs to . # GNU libtool home page: . # General help using GNU software: . PROGRAM=libtool PACKAGE=libtool VERSION=2.4.2 TIMESTAMP="" package_revision=1.3337 # 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 # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } # NLS nuisances: We save the old values to restore during execute mode. 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 LC_ALL=C LANGUAGE=C export LANGUAGE LC_ALL $lt_unset CDPATH # 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" : ${CP="cp -f"} test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${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 file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_dirname may be replaced by extended shell implementation # func_basename file func_basename () { func_basename_result=`$ECHO "${1}" | $SED "$basename"` } # func_basename may be replaced by extended shell implementation # 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 "${1}" | $SED -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 "${1}" | $SED -e "$basename"` } # func_dirname_and_basename may be replaced by extended shell implementation # 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 "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname may be replaced by extended shell implementation # These SED scripts presuppose an absolute path with a trailing slash. pathcar='s,^/\([^/]*\).*$,\1,' pathcdr='s,^/[^/]*,,' removedotparts=':dotsl s@/\./@/@g t dotsl s,/\.$,/,' collapseslashes='s@/\{1,\}@/@g' finalslash='s,/*$,/,' # func_normal_abspath PATH # Remove doubled-up and trailing slashes, "." path components, # and cancel out any ".." path components in PATH after making # it an absolute path. # value returned in "$func_normal_abspath_result" func_normal_abspath () { # Start from root dir and reassemble the path. func_normal_abspath_result= func_normal_abspath_tpath=$1 func_normal_abspath_altnamespace= case $func_normal_abspath_tpath in "") # Empty path, that just means $cwd. func_stripname '' '/' "`pwd`" func_normal_abspath_result=$func_stripname_result return ;; # The next three entries are used to spot a run of precisely # two leading slashes without using negated character classes; # we take advantage of case's first-match behaviour. ///*) # Unusual form of absolute path, do nothing. ;; //*) # Not necessarily an ordinary path; POSIX reserves leading '//' # and for example Cygwin uses it to access remote file shares # over CIFS/SMB, so we conserve a leading double slash if found. func_normal_abspath_altnamespace=/ ;; /*) # Absolute path, do nothing. ;; *) # Relative path, prepend $cwd. func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath ;; esac # Cancel out all the simple stuff to save iterations. We also want # the path to end with a slash for ease of parsing, so make sure # there is one (and only one) here. func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` while :; do # Processed it all yet? if test "$func_normal_abspath_tpath" = / ; then # If we ascended to the root using ".." the result may be empty now. if test -z "$func_normal_abspath_result" ; then func_normal_abspath_result=/ fi break fi func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcar"` func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcdr"` # Figure out what to do with it case $func_normal_abspath_tcomponent in "") # Trailing empty path component, ignore it. ;; ..) # Parent dir; strip last assembled component from result. func_dirname "$func_normal_abspath_result" func_normal_abspath_result=$func_dirname_result ;; *) # Actual path component, append it. func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent ;; esac done # Restore leading double-slash if one was found on entry. func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result } # func_relative_path SRCDIR DSTDIR # generates a relative path from SRCDIR to DSTDIR, with a trailing # slash if non-empty, suitable for immediately appending a filename # without needing to append a separator. # value returned in "$func_relative_path_result" func_relative_path () { func_relative_path_result= func_normal_abspath "$1" func_relative_path_tlibdir=$func_normal_abspath_result func_normal_abspath "$2" func_relative_path_tbindir=$func_normal_abspath_result # Ascend the tree starting from libdir while :; do # check if we have found a prefix of bindir case $func_relative_path_tbindir in $func_relative_path_tlibdir) # found an exact match func_relative_path_tcancelled= break ;; $func_relative_path_tlibdir*) # found a matching prefix func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" func_relative_path_tcancelled=$func_stripname_result if test -z "$func_relative_path_result"; then func_relative_path_result=. fi break ;; *) func_dirname $func_relative_path_tlibdir func_relative_path_tlibdir=${func_dirname_result} if test "x$func_relative_path_tlibdir" = x ; then # Have to descend all the way to the root! func_relative_path_result=../$func_relative_path_result func_relative_path_tcancelled=$func_relative_path_tbindir break fi func_relative_path_result=../$func_relative_path_result ;; esac done # Now calculate path; take care to avoid doubling-up slashes. func_stripname '' '/' "$func_relative_path_result" func_relative_path_result=$func_stripname_result func_stripname '/' '/' "$func_relative_path_tcancelled" if test "x$func_stripname_result" != x ; then func_relative_path_result=${func_relative_path_result}/${func_stripname_result} fi # Normalisation. If bindir is libdir, return empty string, # else relative path ending with a slash; either way, target # file name can be directly appended. if test ! -z "$func_relative_path_result"; then func_stripname './' '' "$func_relative_path_result/" func_relative_path_result=$func_stripname_result fi } # The name of this program: func_dirname_and_basename "$progpath" progname=$func_basename_result # 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=${PATH_SEPARATOR-:} 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' # Sed substitution that turns a string into a regex matching for the # string literally. sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' # Sed substitution that converts a w32 file name or path # which contains forward slashes, into one that contains # (escaped) backslashes. A very naive implementation. lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|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: ${opt_mode+$opt_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_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } # func_error arg... # Echo program name prefixed message to standard error. func_error () { $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { $opt_warning && $ECHO "$progname: ${opt_mode+$opt_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 "$my_directory_path" | $SED -e "$dirname"` done my_dir_list=`$ECHO "$my_dir_list" | $SED '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 "$my_tmpdir" } # 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 "$1" | $SED "$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 "$1" | $SED \ -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_tr_sh # Turn $1 into a string suitable for a shell variable name. # Result is stored in $func_tr_sh_result. All characters # not in the set a-zA-Z0-9_ are replaced with '_'. Further, # if $1 begins with a digit, a '_' is prepended as well. func_tr_sh () { case $1 in [0-9]* | *[!a-zA-Z0-9_]*) func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` ;; * ) func_tr_sh_result=$1 ;; esac } # func_version # Echo version message to standard output and exit. func_version () { $opt_debug $SED -n '/(C)/!b go :more /\./!{ N s/\n# / / b more } :go /^# '$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 () { $opt_debug $SED -n '/^# Usage:/,/^# *.*--help/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" echo $ECHO "run \`$progname --help | more' for full usage" exit $? } # func_help [NOEXIT] # Echo long help message to standard output and exit, # unless 'noexit' is passed as argument. func_help () { $opt_debug $SED -n '/^# Usage:/,/# Report bugs to/ { :print 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-automake} --version) 2>/dev/null |$SED 1q`"'/ s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ p d } /^# .* home page:/b print /^# General help using/b print ' < "$progpath" ret=$? if test -z "$1"; then exit $ret fi } # func_missing_arg argname # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { $opt_debug func_error "missing argument for $1." exit_cmd=exit } # func_split_short_opt shortopt # Set func_split_short_opt_name and func_split_short_opt_arg shell # variables after splitting SHORTOPT after the 2nd character. func_split_short_opt () { my_sed_short_opt='1s/^\(..\).*$/\1/;q' my_sed_short_rest='1s/^..\(.*\)$/\1/;q' func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` } # func_split_short_opt may be replaced by extended shell implementation # func_split_long_opt longopt # Set func_split_long_opt_name and func_split_long_opt_arg shell # variables after splitting LONGOPT at the `=' sign. func_split_long_opt () { my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' my_sed_long_arg='1s/^--[^=]*=//' func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` } # func_split_long_opt may be replaced by extended shell implementation exit_cmd=: magic="%%%MAGIC variable%%%" magic_exe="%%%MAGIC EXE variable%%%" # Global variables. nonopt= preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" extracted_archives= extracted_serial=0 # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "${1}=\$${1}\${2}" } # func_append may be replaced by extended shell implementation # func_append_quoted var value # Quote VALUE and append to the end of shell variable VAR, separated # by a space. func_append_quoted () { func_quote_for_eval "${2}" eval "${1}=\$${1}\\ \$func_quote_for_eval_result" } # func_append_quoted may be replaced by extended shell implementation # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "${@}"` } # func_arith may be replaced by extended shell implementation # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` } # func_len may be replaced by extended shell implementation # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` } # func_lo2o may be replaced by extended shell implementation # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` } # func_xform may be replaced by extended shell implementation # func_fatal_configuration arg... # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. func_fatal_configuration () { func_error ${1+"$@"} func_error "See the $PACKAGE documentation for more information." func_fatal_error "Fatal configuration error." } # func_config # Display the configuration for all the tags in this script. func_config () { re_begincf='^# ### BEGIN LIBTOOL' re_endcf='^# ### END LIBTOOL' # Default configuration. $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" # Now print the configurations for the tags. for tagname in $taglist; do $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" done exit $? } # func_features # Display the features supported by this script. func_features () { echo "host: $host" if test "$build_libtool_libs" = yes; then echo "enable shared libraries" else echo "disable shared libraries" fi if test "$build_old_libs" = yes; then echo "enable static libraries" else echo "disable static libraries" fi exit $? } # func_enable_tag tagname # Verify that TAGNAME is valid, and either flag an error and exit, or # enable the TAGNAME tag. We also add TAGNAME to the global $taglist # variable here. func_enable_tag () { # Global variable: tagname="$1" re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" sed_extractcf="/$re_begincf/,/$re_endcf/p" # Validate tagname. case $tagname in *[!-_A-Za-z0-9,/]*) func_fatal_error "invalid tag name: $tagname" ;; esac # Don't test for the "default" C tag, as we know it's # there but not specially marked. case $tagname in CC) ;; *) if $GREP "$re_begincf" "$progpath" >/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 } # 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 } # 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 # Option defaults: opt_debug=: opt_dry_run=false opt_config=false opt_preserve_dup_deps=false opt_features=false opt_finish=false opt_help=false opt_help_all=false opt_silent=: opt_warning=: opt_verbose=: opt_silent=false opt_verbose=false # Parse options once, thoroughly. This comes as soon as possible in the # script to make things like `--version' happen as quickly as we can. { # this just eases exit handling while test $# -gt 0; do opt="$1" shift case $opt in --debug|-x) opt_debug='set -x' func_echo "enabling shell trace mode" $opt_debug ;; --dry-run|--dryrun|-n) opt_dry_run=: ;; --config) opt_config=: func_config ;; --dlopen|-dlopen) optarg="$1" opt_dlopen="${opt_dlopen+$opt_dlopen }$optarg" shift ;; --preserve-dup-deps) opt_preserve_dup_deps=: ;; --features) opt_features=: func_features ;; --finish) opt_finish=: set dummy --mode finish ${1+"$@"}; shift ;; --help) opt_help=: ;; --help-all) opt_help_all=: opt_help=': help-all' ;; --mode) test $# = 0 && func_missing_arg $opt && break optarg="$1" opt_mode="$optarg" case $optarg 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 shift ;; --no-silent|--no-quiet) opt_silent=false func_append preserve_args " $opt" ;; --no-warning|--no-warn) opt_warning=false func_append preserve_args " $opt" ;; --no-verbose) opt_verbose=false func_append preserve_args " $opt" ;; --silent|--quiet) opt_silent=: func_append preserve_args " $opt" opt_verbose=false ;; --verbose|-v) opt_verbose=: func_append preserve_args " $opt" opt_silent=false ;; --tag) test $# = 0 && func_missing_arg $opt && break optarg="$1" opt_tag="$optarg" func_append preserve_args " $opt $optarg" func_enable_tag "$optarg" shift ;; -\?|-h) func_usage ;; --help) func_help ;; --version) func_version ;; # Separate optargs to long options: --*=*) func_split_long_opt "$opt" set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} shift ;; # Separate non-argument short options: -\?*|-h*|-n*|-v*) func_split_short_opt "$opt" set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} shift ;; --) break ;; -*) func_fatal_help "unrecognized option \`$opt'" ;; *) set dummy "$opt" ${1+"$@"}; shift; break ;; esac done # Validate options: # save first non-option argument if test "$#" -gt 0; then nonopt="$opt" shift fi # preserve --debug test "$opt_debug" = : || func_append preserve_args " --debug" 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_preserve_dup_deps ;; esac $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 # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$opt_dlopen" && test "$opt_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=$opt_mode' for more information." } # Bail if the options were screwed $exit_cmd $EXIT_FAILURE } ## ----------- ## ## Main. ## ## ----------- ## # 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_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" } # 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_resolve_sysroot PATH # Replace a leading = in PATH with a sysroot. Store the result into # func_resolve_sysroot_result func_resolve_sysroot () { func_resolve_sysroot_result=$1 case $func_resolve_sysroot_result in =*) func_stripname '=' '' "$func_resolve_sysroot_result" func_resolve_sysroot_result=$lt_sysroot$func_stripname_result ;; esac } # func_replace_sysroot PATH # If PATH begins with the sysroot, replace it with = and # store the result into func_replace_sysroot_result. func_replace_sysroot () { case "$lt_sysroot:$1" in ?*:"$lt_sysroot"*) func_stripname "$lt_sysroot" '' "$1" func_replace_sysroot_result="=$func_stripname_result" ;; *) # Including no sysroot. func_replace_sysroot_result=$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_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` 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 "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; # 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_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case "$@ " in " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) # 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 </dev/null` if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | $SED -e "$lt_sed_naive_backslashify"` else func_convert_core_file_wine_to_w32_result= fi fi } # end: func_convert_core_file_wine_to_w32 # func_convert_core_path_wine_to_w32 ARG # Helper function used by path conversion functions when $build is *nix, and # $host is mingw, cygwin, or some other w32 environment. Relies on a correctly # configured wine environment available, with the winepath program in $build's # $PATH. Assumes ARG has no leading or trailing path separator characters. # # ARG is path to be converted from $build format to win32. # Result is available in $func_convert_core_path_wine_to_w32_result. # Unconvertible file (directory) names in ARG are skipped; if no directory names # are convertible, then the result may be empty. func_convert_core_path_wine_to_w32 () { $opt_debug # unfortunately, winepath doesn't convert paths, only file names func_convert_core_path_wine_to_w32_result="" if test -n "$1"; then oldIFS=$IFS IFS=: for func_convert_core_path_wine_to_w32_f in $1; do IFS=$oldIFS func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" if test -n "$func_convert_core_file_wine_to_w32_result" ; then if test -z "$func_convert_core_path_wine_to_w32_result"; then func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" else func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" fi fi done IFS=$oldIFS fi } # end: func_convert_core_path_wine_to_w32 # func_cygpath ARGS... # Wrapper around calling the cygpath program via LT_CYGPATH. This is used when # when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) # $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or # (2), returns the Cygwin file name or path in func_cygpath_result (input # file name or path is assumed to be in w32 format, as previously converted # from $build's *nix or MSYS format). In case (3), returns the w32 file name # or path in func_cygpath_result (input file name or path is assumed to be in # Cygwin format). Returns an empty string on error. # # ARGS are passed to cygpath, with the last one being the file name or path to # be converted. # # Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH # environment variable; do not put it in $PATH. func_cygpath () { $opt_debug if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` if test "$?" -ne 0; then # on failure, ensure result is empty func_cygpath_result= fi else func_cygpath_result= func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" fi } #end: func_cygpath # func_convert_core_msys_to_w32 ARG # Convert file name or path ARG from MSYS format to w32 format. Return # result in func_convert_core_msys_to_w32_result. func_convert_core_msys_to_w32 () { $opt_debug # awkward: cmd appends spaces to result func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` } #end: func_convert_core_msys_to_w32 # func_convert_file_check ARG1 ARG2 # Verify that ARG1 (a file name in $build format) was converted to $host # format in ARG2. Otherwise, emit an error message, but continue (resetting # func_to_host_file_result to ARG1). func_convert_file_check () { $opt_debug if test -z "$2" && test -n "$1" ; then func_error "Could not determine host file name corresponding to" func_error " \`$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_file_result="$1" fi } # end func_convert_file_check # func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH # Verify that FROM_PATH (a path in $build format) was converted to $host # format in TO_PATH. Otherwise, emit an error message, but continue, resetting # func_to_host_file_result to a simplistic fallback value (see below). func_convert_path_check () { $opt_debug if test -z "$4" && test -n "$3"; then func_error "Could not determine the host path corresponding to" func_error " \`$3'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This is a deliberately simplistic "conversion" and # should not be "improved". See libtool.info. if test "x$1" != "x$2"; then lt_replace_pathsep_chars="s|$1|$2|g" func_to_host_path_result=`echo "$3" | $SED -e "$lt_replace_pathsep_chars"` else func_to_host_path_result="$3" fi fi } # end func_convert_path_check # func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG # Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT # and appending REPL if ORIG matches BACKPAT. func_convert_path_front_back_pathsep () { $opt_debug case $4 in $1 ) func_to_host_path_result="$3$func_to_host_path_result" ;; esac case $4 in $2 ) func_append func_to_host_path_result "$3" ;; esac } # end func_convert_path_front_back_pathsep ################################################## # $build to $host FILE NAME CONVERSION FUNCTIONS # ################################################## # invoked via `$to_host_file_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # Result will be available in $func_to_host_file_result. # func_to_host_file ARG # Converts the file name ARG from $build format to $host format. Return result # in func_to_host_file_result. func_to_host_file () { $opt_debug $to_host_file_cmd "$1" } # end func_to_host_file # func_to_tool_file ARG LAZY # converts the file name ARG from $build format to toolchain format. Return # result in func_to_tool_file_result. If the conversion in use is listed # in (the comma separated) LAZY, no conversion takes place. func_to_tool_file () { $opt_debug case ,$2, in *,"$to_tool_file_cmd",*) func_to_tool_file_result=$1 ;; *) $to_tool_file_cmd "$1" func_to_tool_file_result=$func_to_host_file_result ;; esac } # end func_to_tool_file # func_convert_file_noop ARG # Copy ARG to func_to_host_file_result. func_convert_file_noop () { func_to_host_file_result="$1" } # end func_convert_file_noop # func_convert_file_msys_to_w32 ARG # Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_file_result. func_convert_file_msys_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_to_host_file_result="$func_convert_core_msys_to_w32_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_w32 # func_convert_file_cygwin_to_w32 ARG # Convert file name ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_file_cygwin_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then # because $build is cygwin, we call "the" cygpath in $PATH; no need to use # LT_CYGPATH in this case. func_to_host_file_result=`cygpath -m "$1"` fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_cygwin_to_w32 # func_convert_file_nix_to_w32 ARG # Convert file name ARG from *nix to w32 format. Requires a wine environment # and a working winepath. Returns result in func_to_host_file_result. func_convert_file_nix_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_file_wine_to_w32 "$1" func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_w32 # func_convert_file_msys_to_cygwin ARG # Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_file_msys_to_cygwin () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_cygpath -u "$func_convert_core_msys_to_w32_result" func_to_host_file_result="$func_cygpath_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_cygwin # func_convert_file_nix_to_cygwin ARG # Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed # in a wine environment, working winepath, and LT_CYGPATH set. Returns result # in func_to_host_file_result. func_convert_file_nix_to_cygwin () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. func_convert_core_file_wine_to_w32 "$1" func_cygpath -u "$func_convert_core_file_wine_to_w32_result" func_to_host_file_result="$func_cygpath_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_cygwin ############################################# # $build to $host PATH CONVERSION FUNCTIONS # ############################################# # invoked via `$to_host_path_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # The result will be available in $func_to_host_path_result. # # 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. # # All path conversion functions are named using the following convention: # file name conversion function : func_convert_file_X_to_Y () # path conversion function : func_convert_path_X_to_Y () # where, for any given $build/$host combination the 'X_to_Y' value is the # same. If conversion functions are added for new $build/$host combinations, # the two new functions must follow this pattern, or func_init_to_host_path_cmd # will break. # func_init_to_host_path_cmd # Ensures that function "pointer" variable $to_host_path_cmd is set to the # appropriate value, based on the value of $to_host_file_cmd. to_host_path_cmd= func_init_to_host_path_cmd () { $opt_debug if test -z "$to_host_path_cmd"; then func_stripname 'func_convert_file_' '' "$to_host_file_cmd" to_host_path_cmd="func_convert_path_${func_stripname_result}" fi } # func_to_host_path ARG # Converts the path ARG from $build format to $host format. Return result # in func_to_host_path_result. func_to_host_path () { $opt_debug func_init_to_host_path_cmd $to_host_path_cmd "$1" } # end func_to_host_path # func_convert_path_noop ARG # Copy ARG to func_to_host_path_result. func_convert_path_noop () { func_to_host_path_result="$1" } # end func_convert_path_noop # func_convert_path_msys_to_w32 ARG # Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_path_result. func_convert_path_msys_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # 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_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result="$func_convert_core_msys_to_w32_result" func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_msys_to_w32 # func_convert_path_cygwin_to_w32 ARG # Convert path ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_path_cygwin_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_cygwin_to_w32 # func_convert_path_nix_to_w32 ARG # Convert path ARG from *nix to w32 format. Requires a wine environment and # a working winepath. Returns result in func_to_host_file_result. func_convert_path_nix_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_nix_to_w32 # func_convert_path_msys_to_cygwin ARG # Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_path_msys_to_cygwin () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_msys_to_w32_result" func_to_host_path_result="$func_cygpath_result" func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_msys_to_cygwin # func_convert_path_nix_to_cygwin ARG # Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a # a wine environment, working winepath, and LT_CYGPATH set. Returns result in # func_to_host_file_result. func_convert_path_nix_to_cygwin () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # 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_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" func_to_host_path_result="$func_cygpath_result" func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_nix_to_cygwin # func_mode_compile arg... func_mode_compile () { $opt_debug # Get the compilation command and the source file. base_compile= srcfile="$nonopt" # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= pie_flag= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg="$arg" arg_mode=normal ;; target ) libobj="$arg" arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) test -n "$libobj" && \ func_fatal_error "you cannot specify \`-o' more than once" arg_mode=target continue ;; -pie | -fpie | -fPIE) func_append pie_flag " $arg" continue ;; -shared | -static | -prefer-pic | -prefer-non-pic) func_append later " $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" func_append_quoted lastarg "$arg" done IFS="$save_ifs" func_stripname ' ' '' "$lastarg" lastarg=$func_stripname_result # Add the arguments to base_compile. func_append base_compile " $lastarg" continue ;; *) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg="$srcfile" srcfile="$arg" ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. func_append_quoted base_compile "$lastarg" done # for arg case $arg_mode in arg) func_fatal_error "you must specify an argument for -Xcompile" ;; target) func_fatal_error "you must specify a target with \`-o'" ;; *) # Get the name of the library object. test -z "$libobj" && { func_basename "$srcfile" libobj="$func_basename_result" } ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo case $libobj in *.[cCFSifmso] | \ *.ada | *.adb | *.ads | *.asm | \ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) func_xform "$libobj" libobj=$func_xform_result ;; esac case $libobj in *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; *) func_fatal_error "cannot determine name of library object from \`$libobj'" ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no continue ;; -static) build_libtool_libs=no build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done func_quote_for_eval "$libobj" test "X$libobj" != "X$func_quote_for_eval_result" \ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ && 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 "$srcfile" | $SED 's%^.*/%%; 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 func_append removelist " $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist func_append removelist " $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 srcfile=$func_to_tool_file_result 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 func_append 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 func_append command " -o $obj" fi # Suppress compiler output if we already did a PIC compilation. func_append 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 "$opt_mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $opt_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 build PIC objects only -prefer-non-pic try to build 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 -Wc,FLAG pass FLAG directly to the compiler 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-dir 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 -bindir BINDIR specify path to binaries directory (for systems where libraries must be found in the PATH setting at runtime) -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 -Wc,FLAG -Xcompiler FLAG pass linker-specific FLAG directly to the compiler -Wl,FLAG -Xlinker FLAG pass linker-specific FLAG directly to the linker -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) 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 \`$opt_mode'" ;; esac echo $ECHO "Try \`$progname --help' for more information about other modes." } # Now that we've collected a possible --mode arg, show help if necessary if $opt_help; then if test "$opt_help" = :; then func_mode_help else { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do func_mode_help done } | sed -n '1p; 2,$s/^Usage:/ or: /p' { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do echo func_mode_help done } | sed '1d /^When reporting/,/^Report/{ H d } $x /information about other modes/d /more detailed .*MODE/d s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' fi exit $? fi # 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 $opt_dlopen; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # 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 func_append 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 -* | *.la | *.lo ) ;; *) # 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_append_quoted args "$file" 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 "$opt_mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug libs= libdirs= admincmds= for opt in "$nonopt" ${1+"$@"} do if test -d "$opt"; then func_append libdirs " $opt" elif test -f "$opt"; then if func_lalib_unsafe_p "$opt"; then func_append libs " $opt" else func_warning "\`$opt' is not a valid libtool archive" fi else func_fatal_error "invalid argument \`$opt'" fi done if test -n "$libs"; then if test -n "$lt_sysroot"; then sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" else sysroot_cmd= fi # Remove sysroot references if $opt_dry_run; then for lib in $libs; do echo "removing references to $lt_sysroot and \`=' prefixes from $lib" done else tmpdir=`func_mktempdir` for lib in $libs; do sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ > $tmpdir/tmp-la mv -f $tmpdir/tmp-la $lib done ${RM}r "$tmpdir" fi fi if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then 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" || func_append admincmds " $cmds" fi done fi # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then echo "----------------------------------------------------------------------" 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 "----------------------------------------------------------------------" fi exit $EXIT_SUCCESS } test "$opt_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. case $nonopt in *shtool*) :;; *) false;; esac; 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" func_append install_prog "$func_quote_for_eval_result" install_shared_prog=$install_prog case " $install_prog " in *[\\\ /]cp\ *) install_cp=: ;; *) install_cp=false ;; esac # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= no_mode=: for arg do arg2= if test -n "$dest"; then func_append files " $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) if $install_cp; then :; else prev=$arg fi ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then if test "x$prev" = x-m && test -n "$install_override_mode"; then arg2=$install_override_mode no_mode=false fi prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" func_append install_prog " $func_quote_for_eval_result" if test -n "$arg2"; then func_quote_for_eval "$arg2" fi func_append install_shared_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 -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else func_quote_for_eval "$install_override_mode" func_append install_shared_prog " -m $func_quote_for_eval_result" fi fi 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. func_append staticlibs " $file" ;; *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # 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 "*) ;; *) func_append current_libdirs " $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) func_append future_libdirs " $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" func_append dir "$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "$destdir" | $SED -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 "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "$relink_command" | $SED "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_shared_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" && func_append 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 "$lib" | $SED '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 "$relink_command" | $SED '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 "$file$stripped_ext" | $SED "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_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $tool_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 "$opt_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 #if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" #endif /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #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 "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` for progfile in $progfiles; do func_to_tool_file "$progfile" func_convert_file_msys_to_w32 func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" $opt_dry_run || eval "$NM $func_to_tool_file_result | $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" case $host in *cygwin* | *mingw* | *cegcc* ) # if an import library, we need to obtain dlname if func_win32_import_lib_p "$dlprefile"; then func_tr_sh "$dlprefile" eval "curr_lafile=\$libfile_$func_tr_sh_result" dlprefile_dlbasename="" if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then # Use subshell, to avoid clobbering current variable values dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` if test -n "$dlprefile_dlname" ; then func_basename "$dlprefile_dlname" dlprefile_dlbasename="$func_basename_result" else # no lafile. user explicitly requested -dlpreopen . $sharedlib_from_linklib_cmd "$dlprefile" dlprefile_dlbasename=$sharedlib_from_linklib_result fi fi $opt_dry_run || { if test -n "$dlprefile_dlbasename" ; then eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' else func_warning "Could not compute DLL name from $name" eval '$ECHO ": $name " >> "$nlist"' fi func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" } else # not an import lib $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } fi ;; *) $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } ;; esac 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; 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) ;; *) func_append 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 "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "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 "$compile_command" | $SED "s% @SYMFILE@%%"` finalize_command=`$ECHO "$finalize_command" | $SED "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. # Despite the name, also deal with 64 bit binaries. 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 # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then func_to_tool_file "$1" func_convert_file_msys_to_w32 win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | $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_cygming_dll_for_implib ARG # # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib () { $opt_debug sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` } # func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs # # The is the core of a fallback implementation of a # platform-specific function to extract the name of the # DLL associated with the specified import library LIBNAME. # # SECTION_NAME is either .idata$6 or .idata$7, depending # on the platform and compiler that created the implib. # # Echos the name of the DLL associated with the # specified import library. func_cygming_dll_for_implib_fallback_core () { $opt_debug match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` $OBJDUMP -s --section "$1" "$2" 2>/dev/null | $SED '/^Contents of section '"$match_literal"':/{ # Place marker at beginning of archive member dllname section s/.*/====MARK====/ p d } # These lines can sometimes be longer than 43 characters, but # are always uninteresting /:[ ]*file format pe[i]\{,1\}-/d /^In archive [^:]*:/d # Ensure marker is printed /^====MARK====/p # Remove all lines with less than 43 characters /^.\{43\}/!d # From remaining lines, remove first 43 characters s/^.\{43\}//' | $SED -n ' # Join marker and all lines until next marker into a single line /^====MARK====/ b para H $ b para b :para x s/\n//g # Remove the marker s/^====MARK====// # Remove trailing dots and whitespace s/[\. \t]*$// # Print /./p' | # we now have a list, one entry per line, of the stringified # contents of the appropriate section of all members of the # archive which possess that section. Heuristic: eliminate # all those which have a first or second character that is # a '.' (that is, objdump's representation of an unprintable # character.) This should work for all archives with less than # 0x302f exports -- but will fail for DLLs whose name actually # begins with a literal '.' or a single character followed by # a '.'. # # Of those that remain, print the first one. $SED -e '/^\./d;/^.\./d;q' } # func_cygming_gnu_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is a GNU/binutils-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_gnu_implib_p () { $opt_debug func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` test -n "$func_cygming_gnu_implib_tmp" } # func_cygming_ms_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is an MS-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_ms_implib_p () { $opt_debug func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` test -n "$func_cygming_ms_implib_tmp" } # func_cygming_dll_for_implib_fallback ARG # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # # This fallback implementation is for use when $DLLTOOL # does not support the --identify-strict option. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib_fallback () { $opt_debug if func_cygming_gnu_implib_p "$1" ; then # binutils import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` elif func_cygming_ms_implib_p "$1" ; then # ms-generated import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` else # unknown sharedlib_from_linklib_result="" fi } # 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" if test "$lock_old_archive_extraction" = yes; then lockfile=$f_ex_an_ar_oldlib.lock until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done fi func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ 'stat=$?; rm -f "$lockfile"; exit $stat' if test "$lock_old_archive_extraction" = yes; then $opt_dry_run || rm -f "$lockfile" fi 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 | sort | $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 | sort | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # 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=${1-no} $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. 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 file=\"\$0\"" qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` $ECHO "\ # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } ECHO=\"$qECHO\" fi # Very basic option parsing. These options are (a) specific to # the libtool wrapper, (b) are identical between the wrapper # /script/ and the wrapper /executable/ which is used only on # windows platforms, and (c) all begin with the string "--lt-" # (application programs are unlikely to have options which match # this pattern). # # There are only two supported options: --lt-debug and # --lt-dump-script. There is, deliberately, no --lt-help. # # The first argument to this parsing function should be the # script's $0 value, followed by "$@". lt_option_debug= func_parse_lt_options () { lt_script_arg0=\$0 shift for lt_opt do case \"\$lt_opt\" in --lt-debug) lt_option_debug=1 ;; --lt-dump-script) lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` cat \"\$lt_dump_D/\$lt_dump_F\" exit 0 ;; --lt-*) \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 exit 1 ;; esac done # Print the debug banner immediately: if test -n \"\$lt_option_debug\"; then echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 fi } # Used when --lt-debug. Prints its arguments to stdout # (redirection is the responsibility of the caller) func_lt_dump_args () { lt_dump_args_N=1; for lt_arg do \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` done } # Core function for launching the target application func_exec_program_core () { " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 } # A function to encapsulate launching the target application # Strips options in the --lt-* namespace from \$@ and # launches target application with the remaining arguments. func_exec_program () { case \" \$* \" in *\\ --lt-*) for lt_wr_arg do case \$lt_wr_arg in --lt-*) ;; *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; esac shift done ;; esac func_exec_program_core \${1+\"\$@\"} } # Parse options func_parse_lt_options \"\$0\" \${1+\"\$@\"} # Find the directory that this script lives in. thisdir=\`\$ECHO \"\$file\" | $SED '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 \"\$file\" | $SED '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 \"\$file\" | $SED 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` done # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_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 \"\$thisdir\" | $SED '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" # fixup the dll searchpath if we need to. # # Fix the DLL searchpath if we need to. Do this before prepending # to shlibpath, because on Windows, both are PATH and uninstalled # libraries must come first. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi # 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 \"\$$shlibpath_var\" | $SED 's/::*\$//'\` export $shlibpath_var " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. func_exec_program \${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\ " } # 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 #else # include # include # ifdef __CYGWIN__ # include # endif #endif #include #include #include #include #include #include #include #include /* declarations of non-ANSI functions */ #if defined(__MINGW32__) # ifdef __STRICT_ANSI__ int _putenv (const char *); # endif #elif defined(__CYGWIN__) # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif /* #elif defined (other platforms) ... */ #endif /* portability defines, excluding path handling macros */ #if defined(_MSC_VER) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv # define S_IXUSR _S_IEXEC # ifndef _INTPTR_T_DEFINED # define _INTPTR_T_DEFINED # define intptr_t int # endif #elif defined(__MINGW32__) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv #elif defined(__CYGWIN__) # define HAVE_SETENV # define FOPEN_WB "wb" /* #elif defined (other platforms) ... */ #endif #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 /* path handling portability macros */ #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 */ #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) #if defined(LT_DEBUGWRAPPER) static int lt_debug = 1; #else static int lt_debug = 0; #endif const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ 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_debugprintf (const char *file, int line, const char *fmt, ...); void lt_fatal (const char *file, int line, const char *message, ...); static const char *nonnull (const char *s); static const char *nonempty (const char *s); 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_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); char **prepare_spawn (char **argv); void lt_dump_script (FILE *f); EOF cat <= 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; lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", nonempty (path)); 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; lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", nonempty (wrapper)); 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 (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); 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 (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); 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) { lt_debugprintf (__FILE__, __LINE__, "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 { lt_fatal (__FILE__, __LINE__, "error accessing file \"%s\": %s", tmp_pathspec, nonnull (strerror (errno))); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal (__FILE__, __LINE__, "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; } void lt_debugprintf (const char *file, int line, const char *fmt, ...) { va_list args; if (lt_debug) { (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } } static void lt_error_core (int exit_status, const char *file, int line, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *file, int line, const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); va_end (ap); } static const char * nonnull (const char *s) { return s ? s : "(null)"; } static const char * nonempty (const char *s) { return (s && !*s) ? "(empty)" : nonnull (s); } void lt_setenv (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_setenv) setting '%s' to '%s'\n", nonnull (name), nonnull (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; } void lt_update_exe_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (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) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (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 case $host_os in mingw*) cat <<"EOF" /* Prepares an argument vector before calling spawn(). Note that spawn() does not by itself call the command interpreter (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&v); v.dwPlatformId == VER_PLATFORM_WIN32_NT; }) ? "cmd.exe" : "command.com"). Instead it simply concatenates the arguments, separated by ' ', and calls CreateProcess(). We must quote the arguments since Win32 CreateProcess() interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a special way: - Space and tab are interpreted as delimiters. They are not treated as delimiters if they are surrounded by double quotes: "...". - Unescaped double quotes are removed from the input. Their only effect is that within double quotes, space and tab are treated like normal characters. - Backslashes not followed by double quotes are not special. - But 2*n+1 backslashes followed by a double quote become n backslashes followed by a double quote (n >= 0): \" -> " \\\" -> \" \\\\\" -> \\" */ #define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" #define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" char ** prepare_spawn (char **argv) { size_t argc; char **new_argv; size_t i; /* Count number of arguments. */ for (argc = 0; argv[argc] != NULL; argc++) ; /* Allocate new argument vector. */ new_argv = XMALLOC (char *, argc + 1); /* Put quoted arguments into the new argument vector. */ for (i = 0; i < argc; i++) { const char *string = argv[i]; if (string[0] == '\0') new_argv[i] = xstrdup ("\"\""); else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) { int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); size_t length; unsigned int backslashes; const char *s; char *quoted_string; char *p; length = 0; backslashes = 0; if (quote_around) length++; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') length += backslashes + 1; length++; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) length += backslashes + 1; quoted_string = XMALLOC (char, length + 1); p = quoted_string; backslashes = 0; if (quote_around) *p++ = '"'; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') { unsigned int j; for (j = backslashes + 1; j > 0; j--) *p++ = '\\'; } *p++ = c; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) { unsigned int j; for (j = backslashes; j > 0; j--) *p++ = '\\'; *p++ = '"'; } *p = '\0'; new_argv[i] = quoted_string; } else new_argv[i] = (char *) string; } new_argv[argc] = NULL; return new_argv; } EOF ;; esac cat <<"EOF" void lt_dump_script (FILE* f) { EOF func_emit_wrapper yes | $SED -n -e ' s/^\(.\{79\}\)\(..*\)/\1\ \2/ h s/\([\\"]\)/\\\1/g s/$/\\n/ s/\([^\n]*\).*/ fputs ("\1", f);/p g D' cat <<"EOF" } EOF } # end: func_emit_cwrapperexe_src # func_win32_import_lib_p ARG # True if ARG is an import lib, as indicated by $file_magic_cmd func_win32_import_lib_p () { $opt_debug case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in *import*) : ;; *) false ;; esac } # 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 bindir= 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 bindir) bindir="$arg" prev= continue ;; 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 func_append dlfiles " $arg" else func_append 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 "*) ;; *) func_append 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 # func_append 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 func_append 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. func_append 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 "*) ;; *) func_append rpath " $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) func_append xrpath " $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds="$arg" prev= continue ;; weak) func_append weak_libs " $arg" prev= continue ;; xcclinker) func_append linker_flags " $qarg" func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) func_append linker_flags " $qarg" func_append 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 ;; -bindir) prev=bindir 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" if test -z "$func_stripname_result"; 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 func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # 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 "* | *" $arg "*) # Will only happen for absolute or sysroot arguments ;; *) # Preserve sysroot, but never include relative directories case $dir in [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; *) func_append deplibs " -L$dir" ;; esac func_append lib_search_path " $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) func_append dllsearchpath ":$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append 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* | *-*-haiku*) # 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 func_append 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 func_append 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|--sysroot) func_append 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|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) func_append 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_stripname '=' '' "$dir" dir=$lt_sysroot$func_stripname_result ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) func_append 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" func_append arg " $func_quote_for_eval_result" func_append 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" func_append arg " $wl$func_quote_for_eval_result" func_append compiler_flags " $wl$func_quote_for_eval_result" func_append 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" ;; # Flags to be passed through unchanged, with rationale: # -64, -mips[0-9] enable 64-bit mode for the SGI compiler # -r[0-9][0-9]* specify processor for the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler # +DA*, +DD* enable 64-bit mode for the HP compiler # -q* compiler args for the IBM compiler # -m*, -t[45]*, -txscale* architecture-specific flags for GCC # -F/path path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* profiling flags for GCC # @file GCC response files # -tp=* Portland pgcc target processor selection # --sysroot=* for sysroot support # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -O*|-flto*|-fwhopr*|-fuse-linker-plugin) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" func_append compiler_flags " $arg" continue ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; *.$objext) # A standard object. func_append 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 func_append 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. func_append 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. func_append deplibs " $arg" func_append old_deplibs " $arg" continue ;; *.la) # A libtool-controlled library. func_resolve_sysroot "$arg" if test "$prev" = dlfiles; then # This library was specified with -dlopen. func_append dlfiles " $func_resolve_sysroot_result" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. func_append dlprefiles " $func_resolve_sysroot_result" prev= else func_append deplibs " $func_resolve_sysroot_result" 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 \"\${$shlibpath_var}\" \| \$SED \'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" func_to_tool_file "$output_objdir/" tool_output_objdir=$func_to_tool_file_result # 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_preserve_dup_deps ; then case "$libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append 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 "*) func_append specialdeplibs " $pre_post_deps" ;; esac func_append 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= func_resolve_sysroot "$lib" case $lib in *.la) func_source "$func_resolve_sysroot_result" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do func_basename "$deplib" deplib_base=$func_basename_result case " $weak_libs " in *" $deplib_base "*) ;; *) func_append 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|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append compiler_flags " $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append 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 "*) ;; * ) func_append 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" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_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" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; *) func_warning "\`-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) func_resolve_sysroot "$deplib" lib=$func_resolve_sysroot_result ;; *.$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 \"$deplib\"" 2>/dev/null | $SED 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. func_append newdlprefiles " $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append 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 "$inherited_linker_flags" | $SED '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 "*) ;; *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO " $dependency_libs" | $SED '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" && func_append dlfiles " $dlopen" test -n "$dlpreopen" && func_append 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. func_append convenience " $ladir/$objdir/$old_library" func_append 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_preserve_dup_deps ; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done continue fi # $pass = conv # Get the name of the library we link against. linklib= if test -n "$old_library" && { test "$prefer_static_libs" = yes || test "$prefer_static_libs,$installed" = "built,no"; }; then linklib=$old_library else for l in $old_library $library_names; do linklib="$l" done fi 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. func_append dlprefiles " $lib $dependency_libs" else func_append 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 "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$lt_sysroot$libdir" absdir="$lt_sysroot$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 func_append notinst_path " $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later func_append 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 case "$host" in # special handling for platforms with PE-DLLs. *cygwin* | *mingw* | *cegcc* ) # Linker will automatically link against shared library if both # static and shared are present. Therefore, ensure we extract # symbols from the import library if a shared library is present # (otherwise, the dlopen module name will be incorrect). We do # this by putting the import library name into $newdlprefiles. # We recover the dlopen module name by 'saving' the la file # name in a special purpose variable, and (later) extracting the # dlname from the la file. if test -n "$dlname"; then func_tr_sh "$dir/$linklib" eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" func_append newdlprefiles " $dir/$linklib" else func_append 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" && \ func_append dlpreconveniencelibs " $dir/$old_library" fi ;; * ) # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then func_append 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" && \ func_append dlpreconveniencelibs " $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then func_append newdlprefiles " $dir/$dlname" else func_append newdlprefiles " $dir/$linklib" fi ;; esac 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 func_append 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" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_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_preserve_dup_deps ; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append 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:"*) ;; *) func_append 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 "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append 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 func_append notinst_deplibs " $lib" need_relink=no ;; *) if test "$installed" = no; then func_append 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 "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append 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 "$opt_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$absdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append 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:"*) ;; *) func_append 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:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$opt_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:"*) ;; *) func_append 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 [\\/]*) func_append 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 "*) ;; *) func_append xrpath " $temp_xrpath";; esac;; *) func_append temp_deplibs " $libdir";; esac done dependency_libs="$temp_deplibs" fi func_append 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" case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result";; *) func_resolve_sysroot "$deplib" ;; esac if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $func_resolve_sysroot_result "*) func_append specialdeplibs " $func_resolve_sysroot_result" ;; esac fi func_append tmp_libs " $func_resolve_sysroot_result" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in -L*) path="$deplib" ;; *.la) func_resolve_sysroot "$deplib" deplib=$func_resolve_sysroot_result 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 func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" func_append 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 " $new_inherited_linker_flags" | $SED '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 "*) ;; *) func_append 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 "*) ;; *) func_append tmp_libs " $deplib" ;; esac ;; *) func_append 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 func_append 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" func_append 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!" func_append 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 # correct linux to gnu/linux during the next big refactor 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|qnx|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) # correct to gnu/linux during the next big refactor 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. func_append 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" func_append libobjs " $symfileobj" test "X$libobjs" = "X " && libobjs= if test "$opt_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 func_append 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 func_append oldlibs " $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` # dependency_libs=`$ECHO "$dependency_libs " | $SED "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 func_replace_sysroot "$libdir" func_append temp_xrpath " -R$func_replace_sysroot_result" case "$finalize_rpath " in *" $libdir "*) ;; *) func_append 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 "*) ;; *) func_append 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 "*) ;; *) func_append 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* | *-*-haiku*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework func_append 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 func_append 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` $nocaseglob else potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` fi 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 "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then func_append 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. func_append 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 "*) func_append 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 \"$potent_lib\"" 2>/dev/null | $SED 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then func_append 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. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; 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 " $tmp_deplibs" | $SED "s,$i,,"` done fi case $tmp_deplibs in *[!\ \ ]*) 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 ;; esac ;; 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 " $newdeplibs" | $SED '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 " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO " $deplibs" | $SED '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 "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append 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 # Remove ${wl} instances when linking with ld. # FIXME: should test the right _cmds variable. case $archive_cmds in *\$LD\ *) wl= ;; esac if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$opt_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 func_replace_sysroot "$libdir" libdir=$func_replace_sysroot_result 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"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append dep_rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append 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 "dep_rpath=\"$hardcode_libdir_flag_spec\"" fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append 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 "$opt_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 func_append linknames " $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$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" func_append 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 cmd1 in $cmds; do IFS="$save_ifs" # Take the normal branch if the nm_file_list_spec branch # doesn't work or if tool conversion is not needed. case $nm_file_list_spec~$to_tool_file_cmd in *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) try_normal_branch=yes eval cmd=\"$cmd1\" func_len " $cmd" len=$func_len_result ;; *) try_normal_branch=no ;; esac if test "$try_normal_branch" = yes \ && { test "$len" -lt "$max_cmd_len" \ || test "$max_cmd_len" -le -1; } then func_show_eval "$cmd" 'exit $?' skipped_export=false elif test -n "$nm_file_list_spec"; then func_basename "$output" output_la=$func_basename_result save_libobjs=$libobjs save_output=$output output=${output_objdir}/${output_la}.nm func_to_tool_file "$output" libobjs=$nm_file_list_spec$func_to_tool_file_result func_append delfiles " $output" func_verbose "creating $NM input file list: $output" for obj in $save_libobjs; do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > "$output" eval cmd=\"$cmd1\" func_show_eval "$cmd" 'exit $?' output=$save_output libobjs=$save_libobjs 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 "$include_expsyms" | $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 func_append 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 "*) ;; *) func_append 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" func_append generated " $gentop" func_extract_archives $gentop $convenience func_append 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\" func_append linker_flags " $flag" fi # Make a backup of the uninstalled library when relinking if test "$opt_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 func_basename "$output" output_la=$func_basename_result # 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 func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done echo ')' >> $output func_append delfiles " $output" func_to_tool_file "$output" output=$func_to_tool_file_result 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 func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done func_append delfiles " $output" func_to_tool_file "$output" output=$firstobj\"$file_list_spec$func_to_tool_file_result\" 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. reload_objs=$objlist eval concat_cmds=\"$reload_cmds\" else # All subsequent reloadable object files will link in # the last one created. reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$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~ reload_objs="$objlist $last_robj" eval concat_cmds=\"\${concat_cmds}$reload_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi func_append 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 "$opt_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 "$include_expsyms" | $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 func_append 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" func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append 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 "$opt_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 "$opt_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 "$tmp_whole_archive_flags" | $SED 's|,| |g'` else gentop="$output_objdir/${obj}x" func_append generated " $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # If we're not building shared, we need to use non_pic_objs test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" # Create the old-style object. reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $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 " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED '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]) func_append compile_command " ${wl}-bind_at_load" func_append finalize_command " ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED '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 "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done compile_deplibs="$new_libs" func_append compile_command " $compile_deplibs" func_append 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 "*) ;; *) func_append 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"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append 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;; *) func_append dllsearchpath ":$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append 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"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) func_append 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 "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$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 *cegcc* | *mingw32ce*) # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. wrappers_required=no ;; *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; *) 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 "$compile_command" | $SED '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=$?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # 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 func_append 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 func_append 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 "$link_command" | $SED '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 $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi 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 "$compile_var$compile_command$compile_rpath" | $SED '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 "$link_command" | $SED '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 $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output_objdir/$outputname" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # 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 "$relink_command" | $SED "$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 func_append oldobjs " $symfileobj" fi fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $addlibs func_append 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" func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append 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" func_append 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" func_append oldobjs " $gentop/$newobj" ;; *) func_append oldobjs " $obj" ;; esac done fi func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result 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 elif test -n "$archiver_list_spec"; then func_verbose "using command file archive linking..." for obj in $oldobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > $output_objdir/$libname.libcmd func_to_tool_file "$output_objdir/$libname.libcmd" oldobjs=" $archiver_list_spec$func_to_tool_file_result" 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 "$relink_command" | $SED "$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" func_resolve_sysroot "$deplib" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" ;; -L*) func_stripname -L '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -L$func_replace_sysroot_result" ;; -R*) func_stripname -R '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -R$func_replace_sysroot_result" ;; *) func_append 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" func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" ;; *) func_append 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" func_append newdlprefiles " ${lt_sysroot:+=}$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 func_append newdlfiles " $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlprefiles " $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin # In fact, it would be nice if we could use this code for all target # systems that can't hard-code library paths into their executables # and that have no shared library path variable independent of PATH, # but it turns out we can't easily determine that from inspecting # libtool variables, so we have to hard-code the OSs to which it # applies here; at the moment, that means platforms that use the PE # object format with DLL files. See the long comment at the top of # tests/bindir.at for full details. tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) # If a -bindir argument was supplied, place the dll there. if test "x$bindir" != x ; then func_relative_path "$install_libdir" "$bindir" tdlname=$func_relative_path_result$dlname else # Otherwise fall back on heuristic. tdlname=../bin/$dlname fi ;; 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 "$opt_mode" = link || test "$opt_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) func_append RM " $arg"; rmforce=yes ;; -*) func_append RM " $arg" ;; *) func_append files " $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then odir="$objdir" else odir="$dir/$objdir" fi func_basename "$file" name="$func_basename_result" test "$opt_mode" = uninstall && odir="$dir" # Remember odir for removal later, being careful to avoid duplicates if test "$opt_mode" = clean; then case " $rmdirs " in *" $odir "*) ;; *) func_append rmdirs " $odir" ;; 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 func_append rmfiles " $odir/$n" done test -n "$old_library" && func_append rmfiles " $odir/$old_library" case "$opt_mode" in clean) case " $library_names " in *" $dlname "*) ;; *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; esac test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${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 func_append 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 func_append rmfiles " $dir/$non_pic_object" fi fi ;; *) if test "$opt_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 func_append 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 func_append 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 func_append rmfiles " $odir/$name $odir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then func_append rmfiles " $odir/lt-$name" fi if test "X$noexename" != "X$name" ; then func_append rmfiles " $odir/lt-${noexename}.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done # 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 "$opt_mode" = uninstall || test "$opt_mode" = clean; } && func_mode_uninstall ${1+"$@"} test -z "$opt_mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode \`$opt_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