[uim-commit] r1576 - in branches/r5rs: . gtk scm test uim
tkng at freedesktop.org
tkng at freedesktop.org
Sat Sep 24 16:32:23 PDT 2005
Author: tkng
Date: 2005-09-24 16:32:20 -0700 (Sat, 24 Sep 2005)
New Revision: 1576
Added:
branches/r5rs/uim/uim-internal.h
Modified:
branches/r5rs/
branches/r5rs/gtk/gtk-im-uim.c
branches/r5rs/scm/action.scm
branches/r5rs/scm/japanese-kana.scm
branches/r5rs/scm/m17nlib.scm
branches/r5rs/test/test-action.scm
branches/r5rs/uim/Makefile.am
branches/r5rs/uim/intl.c
branches/r5rs/uim/plugin.c
branches/r5rs/uim/spellcheck.c
branches/r5rs/uim/uim-compat-scm.c
branches/r5rs/uim/uim-custom.c
branches/r5rs/uim/uim-func.c
branches/r5rs/uim/uim-helper-client.c
branches/r5rs/uim/uim-helper.c
branches/r5rs/uim/uim-im-switcher.h
branches/r5rs/uim/uim-ipc.c
branches/r5rs/uim/uim-key.c
branches/r5rs/uim/uim-module-manager.c
branches/r5rs/uim/uim-scm-gc.c
branches/r5rs/uim/uim-scm.c
branches/r5rs/uim/uim-scm.h
branches/r5rs/uim/uim-table.c
branches/r5rs/uim/uim-util.c
branches/r5rs/uim/uim.c
branches/r5rs/uim/uimint.h
Log:
r3188 at t42 (orig r1537): tkng | 2005-09-22 04:42:24 +0900
* gtk/gtk-im-uim.c:
- (get_charset): New function.
- (commit_string_from_other_process): New function.
- (im_uim_parse_helper_str): Call commit_string_from_other_process
instead of emitting "commit" signal directly.
r3190 at t42 (orig r1539): ekato | 2005-09-23 16:16:07 +0900
* uim/slib.c : Fix initialization of obj.dbg_info with
-DDEBUG_SCM.
* uim/plugin.c : Use -DDEBUG not -DDEBUG_SCM for debugging plugin.
r3191 at t42 (orig r1540): yamaken | 2005-09-23 17:32:52 +0900
* scm/action.scm
- (context-propagate-prop-label-update): Fix incorrect assumption
about indicator of a widget reported in [Anthy-dev 2409]. This fix
made custom indicator workable. But no codes of uim are broken by
this bug since no IM is using custom indicator. Thanks Masanari
Yamamoto for the reporting
* test/test-action.scm
- (test context-propagate-prop-label-update): Add new test for the
fix
r3208 at t42 (orig r1557): tkng | 2005-09-24 07:05:17 +0900
* uim/uimint.h: Added new macros.
- (UIM_EVAL_FSTRING1_WITH_MUTEX): eval formatted string with mutex lock.
- (UIM_EVAL_FSTRING2_WITH_MUTEX): eval formatted string with mutex lock.
- (UIM_EVAL_FSTRING3_WITH_MUTEX): eval formatted string with mutex lock.
r3209 at t42 (orig r1558): tkng | 2005-09-24 07:10:49 +0900
* uim/uim.c:
-(mtx_uim_evaling): New mutex for eval lock.
- All calling of UIM_EVAL_FSTRING1, UIM_EVAL_FSTRING2,
UIM_EVAL_FSTRING3 were replaced with
UIM_EVAL_FSTRING1_WITH_MUTEX, UIM_EVAL_FSTRING2_WITH_MUTEX,
UIM_EVAL_FSTRING3_WITH_MUTEX to make uim reentrant.
r3210 at t42 (orig r1559): yamaken | 2005-09-24 13:59:51 +0900
* uim/uim.c
- Revert r1558 since I think that its design is inappropriate. My
opinion about it will be post soon
r3213 at t42 (orig r1562): yamaken | 2005-09-24 20:25:22 +0900
* uim/uim-scm.h
- (uim_scm_gc_protect_stack, uim_scm_gc_ensure_uninlined_func):
Complement missing and necessary UIM_SCM_NOINLINE
r3214 at t42 (orig r1563): yamaken | 2005-09-24 20:27:49 +0900
* uim/uim-scm-gc.c
- (uim_scm_gc_protect_stack): Add a comment
r3221 at t42 (orig r1570): yamaken | 2005-09-24 22:52:34 +0900
* This commit makes the GCC4-ready GC certainly workable on other
compilers that performs the optimization like GCC4 (out-of-order
variable layout in a frame).
Although the codes are closely similar to the equivalent for
SigScheme rescently implemented by me, I commit these codes under
the copyright of uim as separately originated from me
* uim/uim-scm.h
- (uim_scm_gc_protect_stack_ptr,
uim_scm_gc_ensure_uninlined_func_ptr): New variable decl
- (uim_scm_gc_protect_stack_internal,
uim_scm_gc_ensure_uninlined_func_internal): New function decl
- (uim_scm_gc_protect_stack, uim_scm_gc_ensure_uninlined_func):
Replace with alias to real function reflecting the enviroment by
macro definition
* uim/uim-scm-gc.c
- (uim_scm_gc_protect_stack_ptr,
uim_scm_gc_ensure_uninlined_func_ptr): New variable
- (uim_scm_gc_protect_stack): Rename to
uim_scm_gc_protect_stack_internal
- (uim_scm_gc_protect_stack_internal): Renamed from
uim_scm_gc_protect_stack
- (uim_scm_gc_ensure_uninlined_func): Rename to
uim_scm_gc_ensure_uninlined_func_internal
- (uim_scm_gc_ensure_uninlined_func_internal): Renamed from
uim_scm_gc_ensure_uninlined_func
r3223 at t42 (orig r1572): yamaken | 2005-09-25 03:36:45 +0900
* svn mv uimint.h uim-internal.h
r3224 at t42 (orig r1573): yamaken | 2005-09-25 03:48:49 +0900
* uim/uim-custom.c
* uim/uim-ipc.c
* uim/uim-util.c
* uim/spellcheck.c
* uim/uim-helper-client.c
* uim/uim-compat-scm.c
* uim/plugin.c
* uim/intl.c
* uim/uim-helper.c
* uim/uim-scm.c
* uim/uim-table.c
* uim/uim-scm.h
* uim/uim-key.c
* uim/uim-func.c
* uim/uim-module-manager.c
* uim/Makefile.am
* uim/uim.c
- Replace 'uimint.h' with 'uim-internal.h'
find . \( -name '*.h' -or -name '*.c' \) \
-exec perl -i -pe 's/\buimint\.h\b/uim-internal.h/g' {} \;
* uim/uim-internal.h
- Replace _uimint_h_included_ with _uim_internal_h_included_
* uim/uim-im-switcher.h
- Fix a mis-replaced comment
* uim/Makefile.am
- (libuim_la_SOURCES): Replace forgotten context.h with uim-internal.h
r3225 at t42 (orig r1574): yamamoto | 2005-09-25 04:19:24 +0900
* scm/japanese-kana.scm
-(ja-kana-katakana-rule): Fix a wrong entry.
-(ja-kana-hankana-rule): New rule.
r3226 at t42 (orig r1575): yamamoto | 2005-09-25 04:22:26 +0900
* scm/m17nlib.scm
-(m17nlib-update-candidate):
Remove 2nd argument of im-deactivate-candidate-selector.
Property changes on: branches/r5rs
___________________________________________________________________
Name: svk:merge
- 2f05256a-0800-0410-85e3-84fe06922419:/local/uim/trunk:1514
fb73e508-85ea-0310-95c3-a85c473e0941:/trunk:1535
+ 2f05256a-0800-0410-85e3-84fe06922419:/local/uim/trunk:1514
fb73e508-85ea-0310-95c3-a85c473e0941:/trunk:1575
Modified: branches/r5rs/gtk/gtk-im-uim.c
===================================================================
--- branches/r5rs/gtk/gtk-im-uim.c 2005-09-24 19:22:26 UTC (rev 1575)
+++ branches/r5rs/gtk/gtk-im-uim.c 2005-09-24 23:32:20 UTC (rev 1576)
@@ -794,7 +794,61 @@
g_string_free(msg, TRUE);
}
+/* Copied from helper-common-gtk.c. Maybe we need common GTK+ utility file. */
+static gchar *
+get_charset(gchar *line)
+{
+ gchar **splitted = NULL;
+
+ splitted = g_strsplit(line, "=", 0);
+
+ if (splitted && splitted[0] && splitted[1]
+ && strcmp("charset", splitted[0]) == 0) {
+ gchar *charset = g_strdup(splitted[1]);
+ g_strfreev(splitted);
+ return charset;
+ } else {
+ g_strfreev(splitted);
+ return NULL;
+ }
+}
+
static void
+commit_string_from_other_process(const gchar *str)
+{
+ gchar **lines = g_strsplit(str, "\n", 0);
+ gchar *commit_string;
+
+ if(!lines || !lines[0] || !lines[1] || !lines[2]) {
+ return; /* Message is broken, do nothing. */
+ }
+
+ /* If second line exists, assume first line as character encoding.
+ This (rotten) convention is influenced by old design mistake (character
+ encoding was forgotten!), we would need novel protocol to fix this issue. */
+
+ if(strcmp(lines[2], "") != 0) {
+ gchar *encoding, *commit_string_utf8;
+ encoding = get_charset(lines[1]);
+ commit_string = lines[2];
+ commit_string_utf8 = g_convert(commit_string, strlen(commit_string),
+ "UTF-8", encoding,
+ NULL, /* gsize *bytes_read */
+ NULL, /*size *bytes_written */
+ NULL); /* GError **error*/
+ g_signal_emit_by_name(focused_context, "commit", commit_string_utf8);
+ g_free(encoding);
+ g_free(commit_string_utf8);
+ } else {
+ /* Assuming character encoding as UTF-8. */
+ commit_string = lines[1];
+ g_signal_emit_by_name(focused_context, "commit", commit_string);
+ }
+
+ g_strfreev(lines);
+}
+
+static void
cand_activate_cb(void *ptr, int nr, int display_limit)
{
IMUIMContext *uic = (IMUIMContext *)ptr;
@@ -1017,9 +1071,7 @@
} else if (g_str_has_prefix(str, "im_list_get") == TRUE) {
im_uim_send_im_list();
} else if (g_str_has_prefix(str, "commit_string")) {
- lines = g_strsplit(str, "\n", 0);
- if (lines && lines[0] && lines[1])
- g_signal_emit_by_name(focused_context, "commit", lines[1]);
+ commit_string_from_other_process(str);
} else if (g_str_has_prefix(str, "focus_in") == TRUE) {
disable_focused_context = TRUE;
/* We shouldn't do "focused_context = NULL" here, because some
Modified: branches/r5rs/scm/action.scm
===================================================================
--- branches/r5rs/scm/action.scm 2005-09-24 19:22:26 UTC (rev 1575)
+++ branches/r5rs/scm/action.scm 2005-09-24 23:32:20 UTC (rev 1576)
@@ -339,8 +339,8 @@
(lambda (context)
(let* ((widgets (context-widgets context))
(active-label (lambda (widget)
- (let* ((activity (widget-activity widget))
- (indication (action-indicate activity
+ (let* ((indicator (widget-indicator widget))
+ (indication (action-indicate indicator
context)))
(indication-compose-label indication))))
(labels (map active-label widgets))
Modified: branches/r5rs/scm/japanese-kana.scm
===================================================================
--- branches/r5rs/scm/japanese-kana.scm 2005-09-24 19:22:26 UTC (rev 1575)
+++ branches/r5rs/scm/japanese-kana.scm 2005-09-24 23:32:20 UTC (rev 1576)
@@ -420,7 +420,7 @@
((("¥Ï"). ())("¥Ï"))
((("¥Ò"). ())("¥Ò"))
((("¥Õ"). ())("¥Õ"))
- ((("¥Ø"). ())("¤Ø"))
+ ((("¥Ø"). ())("¥Ø"))
((("¥Û"). ())("¥Û"))
((("¥Þ"). ())("¥Þ"))
((("¥ß"). ())("¥ß"))
@@ -446,3 +446,210 @@
((("¡×"). ())("¡×"))
))
+(define ja-kana-hankana-rule
+ '(
+ ((("#"). ("§"))())
+ ((("E"). ("¨"))())
+ ((("$"). ("©"))())
+ ((("%"). ("ª"))())
+ ((("&"). ("«"))())
+ ((("'"). ("¬"))())
+ ((("("). (""))())
+ (((")"). ("®"))())
+ ((("~"). ("¦"))())
+ ((("Z"). ("¯"))())
+ ((("y"). ("Ý"))())
+ ((("3"). ("±"))())
+ ((("e"). ("²"))())
+ ((("4"). ("³"))())
+ ((("5"). ("´"))())
+ ((("6"). ("µ"))())
+ ((("t"). ("¶"))())
+ ((("g"). ("·"))())
+ ((("h"). ("¸"))())
+ (((":"). ("¹"))())
+ ((("b"). ("º"))())
+ ((("x"). ("»"))())
+ ((("d"). ("¼"))())
+ ((("r"). ("½"))())
+ ((("p"). ("¾"))())
+ ((("c"). ("¿"))())
+ ((("q"). ("À"))())
+ ((("a"). ("Á"))())
+ ((("z"). ("Â"))())
+ ((("w"). ("Ã"))())
+ ((("s"). ("Ä"))())
+ ((("u"). ("Å"))())
+ ((("i"). ("Æ"))())
+ ((("1"). ("Ç"))())
+ (((","). ("È"))())
+ ((("k"). ("É"))())
+ ((("f"). ("Ê"))())
+ ((("v"). ("Ë"))())
+ ((("2"). ("Ì"))())
+ ((("^"). ("Í"))())
+ ((("-"). ("Î"))())
+ ((("j"). ("Ï"))())
+ ((("n"). ("Ð"))())
+ ((("]"). ("Ñ"))())
+ ((("/"). ("Ò"))())
+ ((("m"). ("Ó"))())
+ ((("7"). ("Ô"))())
+ ((("8"). ("Õ"))())
+ ((("9"). ("Ö"))())
+ ((("o"). ("×"))())
+ ((("l"). ("Ø"))())
+ ((("."). ("Ù"))())
+ (((";"). ("Ú"))())
+ ((("0"). ("Ü"))())
+ ((("|"). ("°"))())
+ ((("T"). ("¶"))())
+ ((("G"). ("·"))())
+ ((("H"). ("¸"))())
+ ((("*"). ("¹"))())
+ ((("B"). ("º"))())
+ ((("X"). ("»"))())
+ ((("D"). ("¼"))())
+ ((("R"). ("½"))())
+ ((("P"). ("¾"))())
+ ((("C"). ("¿"))())
+ ((("Q"). ("À"))())
+ ((("A"). ("Á"))())
+ ((("W"). ("Ã"))())
+ ((("S"). ("Ä"))())
+ ((("U"). ("Å"))())
+ ((("I"). ("Æ"))())
+ ((("!"). ("Ç"))())
+ ((("K"). ("É"))())
+ ((("F"). ("Ê"))())
+ ((("V"). ("Ë"))())
+ ((("\""). ("Ì"))())
+ ((("="). ("Î"))())
+ ((("J"). ("Ï"))())
+ ((("N"). ("Ð"))())
+ ((("M"). ("Ó"))())
+ ((("O"). ("×"))())
+ ((("L"). ("Ø"))())
+ ((("+"). ("Ú"))())
+ ((("_"). ("Û"))())
+ ((("Y"). ("Ý"))())
+
+ ((("\\"). ("Û"))())
+ ((("¶" "@"). ())("¶Þ"))
+ ((("·" "@"). ())("·Þ"))
+ ((("¸" "@"). ())("¸Þ"))
+ ((("¹" "@"). ())("¹Þ"))
+ ((("º" "@"). ())("ºÞ"))
+ ((("»" "@"). ())("»Þ"))
+ ((("¼" "@"). ())("¼Þ"))
+ ((("½" "@"). ())("½Þ"))
+ ((("¾" "@"). ())("¾Þ"))
+ ((("¿" "@"). ())("¿Þ"))
+ ((("À" "@"). ())("ÀÞ"))
+ ((("Á" "@"). ())("ÁÞ"))
+ ((("Â" "@"). ())("ÂÞ"))
+ ((("Ã" "@"). ())("ÃÞ"))
+ ((("Ä" "@"). ())("ÄÞ"))
+ ((("Ê" "@"). ())("ÊÞ"))
+ ((("Ë" "@"). ())("ËÞ"))
+ ((("Ì" "@"). ())("ÌÞ"))
+ ((("Í" "@"). ())("ÍÞ"))
+ ((("Î" "@"). ())("ÎÞ"))
+ ((("Ê" "["). ())("Êß"))
+ ((("Ë" "["). ())("Ëß"))
+ ((("Ì" "["). ())("Ìß"))
+ ((("Í" "["). ())("Íß"))
+ ((("Î" "["). ())("Îß"))
+ ((("¶" "`"). ())("¶Þ"))
+ ((("·" "`"). ())("·Þ"))
+ ((("¸" "`"). ())("¸Þ"))
+ ((("¹" "`"). ())("¹Þ"))
+ ((("º" "`"). ())("ºÞ"))
+ ((("»" "`"). ())("»Þ"))
+ ((("¼" "`"). ())("¼Þ"))
+ ((("½" "`"). ())("½Þ"))
+ ((("¾" "`"). ())("¾Þ"))
+ ((("¿" "`"). ())("¿Þ"))
+ ((("À" "`"). ())("ÀÞ"))
+ ((("Á" "`"). ())("ÁÞ"))
+ ((("Â" "`"). ())("ÂÞ"))
+ ((("Ã" "`"). ())("ÃÞ"))
+ ((("Ä" "`"). ())("ÄÞ"))
+ ((("Ê" "`"). ())("ÊÞ"))
+ ((("Ë" "`"). ())("ËÞ"))
+ ((("Ì" "`"). ())("ÌÞ"))
+ ((("Í" "`"). ())("ÍÞ"))
+ ((("Î" "`"). ())("ÎÞ"))
+ (((">"). ("¡"))())
+ ((("<"). ("¤"))())
+ ((("?"). ("¡¦"))())
+ ((("@"). ("Þ"))())
+ ((("["). ("ß"))())
+ ((("{"). ("¢"))())
+ ((("}"). ("£"))())
+ ((("`"). ("Þ"))())
+
+ ((("§"). ())("§"))
+ ((("¨"). ())("¨"))
+ ((("©"). ())("©"))
+ ((("ª"). ())("ª"))
+ ((("«"). ())("«"))
+ ((("¬"). ())("Ô"))
+ (((""). ())(""))
+ ((("®"). ())("®"))
+ ((("¦"). ())("¦"))
+ ((("¯"). ())("¯"))
+ ((("Ý"). ())("Ý"))
+ ((("±"). ())("±"))
+ ((("²"). ())("²"))
+ ((("³"). ())("³"))
+ ((("´"). ())("´"))
+ ((("µ"). ())("µ"))
+ ((("¶"). ())("¶"))
+ ((("·"). ())("·"))
+ ((("¸"). ())("¸"))
+ ((("¹"). ())("¹"))
+ ((("º"). ())("º"))
+ ((("»"). ())("»"))
+ ((("¼"). ())("¼"))
+ ((("½"). ())("½"))
+ ((("¾"). ())("¾"))
+ ((("¿"). ())("¿"))
+ ((("À"). ())("À"))
+ ((("Á"). ())("Á"))
+ ((("Â"). ())("Â"))
+ ((("Ã"). ())("Ã"))
+ ((("Ä"). ())("Ä"))
+ ((("Å"). ())("Å"))
+ ((("Æ"). ())("Æ"))
+ ((("Ç"). ())("Ç"))
+ ((("È"). ())("È"))
+ ((("É"). ())("É"))
+ ((("Ê"). ())("Ê"))
+ ((("Ë"). ())("Ë"))
+ ((("Ì"). ())("Ì"))
+ ((("Í"). ())("Í"))
+ ((("Î"). ())("Î"))
+ ((("Ï"). ())("Ï"))
+ ((("Ð"). ())("Ð"))
+ ((("Ñ"). ())("Ñ"))
+ ((("Ò"). ())("Ò"))
+ ((("Ó"). ())("Ó"))
+ ((("Ô"). ())("Ô"))
+ ((("Õ"). ())("Õ"))
+ ((("Ö"). ())("Ö"))
+ ((("×"). ())("×"))
+ ((("Ø"). ())("Ø"))
+ ((("Ù"). ())("Ù"))
+ ((("Ú"). ())("Ú"))
+ ((("Û"). ())("Û"))
+ ((("Ü"). ())("Ü"))
+ ((("°"). ())("°"))
+ ((("¡"). ())("¡"))
+ ((("¤"). ())("¤"))
+ ((("¡¦"). ())("¡¦"))
+ ((("Þ"). ())("Þ"))
+ ((("ß"). ())("ß"))
+ ((("¢"). ())("¢"))
+ ((("£"). ())("£"))
+ ))
Modified: branches/r5rs/scm/m17nlib.scm
===================================================================
--- branches/r5rs/scm/m17nlib.scm 2005-09-24 19:22:26 UTC (rev 1575)
+++ branches/r5rs/scm/m17nlib.scm 2005-09-24 23:32:20 UTC (rev 1576)
@@ -152,7 +152,7 @@
(and showing-candidate? candidates-changed?)
(and showing-candidate? (not (m17nlib-lib-candidate-show? mid))))
(begin
- (im-deactivate-candidate-selector mc mid)
+ (im-deactivate-candidate-selector mc)
(m17nlib-context-set-showing-candidate! mc #f)))
(if (and
Modified: branches/r5rs/test/test-action.scm
===================================================================
--- branches/r5rs/test/test-action.scm 2005-09-24 19:22:26 UTC (rev 1575)
+++ branches/r5rs/test/test-action.scm 2005-09-24 23:32:20 UTC (rev 1576)
@@ -29,7 +29,7 @@
;;; SUCH DAMAGE.
;;;;
-;; This file is tested with revision 389 of new repository
+;; This file is tested with revision 1540 of new repository
(use test.unit)
@@ -220,6 +220,13 @@
fallback-indication))
#f) ;; has no actions
+ (register-widget
+ 'widget_test_kana_input_method_without_act_indicator
+ (indicator-new (lambda (owner)
+ fallback-indication))
+ (actions-new '(action_test_roma
+ action_test_kana)))
+
(define tc (test-context-new))
(begin (test-context-set-rkc! tc (rk-context-new ja-rk-rule #t #f))
#t)
@@ -1507,6 +1514,18 @@
(assert-equal (string-append "ã¢\tã«ã¿ã«ã\n"
"ï¼²\tãã¼ãå\n")
(uim 'test-prop-label))
+ ;; 2 widgets (without latter activity-indicator)
+ (uim '(begin
+ (context-init-widgets! tc '(widget_test_input_mode
+ widget_test_kana_input_method_without_act_indicator))
+ #t))
+ (assert-true (uim-bool '(widget-activate! (assq 'widget_test_input_mode
+ (context-widgets tc))
+ 'action_test_katakana)))
+ (uim '(context-propagate-prop-label-update tc))
+ (assert-equal (string-append "ã¢\tã«ã¿ã«ã\n"
+ "?\tunknown\n")
+ (uim 'test-prop-label))
;; 2 widgets with non-existent
(uim '(begin
(context-init-widgets! tc '(widget_test_kana_input_method
Modified: branches/r5rs/uim/Makefile.am
===================================================================
--- branches/r5rs/uim/Makefile.am 2005-09-24 19:22:26 UTC (rev 1575)
+++ branches/r5rs/uim/Makefile.am 2005-09-24 23:32:20 UTC (rev 1576)
@@ -13,7 +13,7 @@
uim-scm.h uim-custom.h plugin.h
libuim_la_SOURCES = uim.c uim-util.c uim-func.c uim-key.c \
- context.h gettext.h uim-encoding.h\
+ uim-internal.h gettext.h uim-encoding.h\
siod.h uim-scm.c uim-scm-gc.c \
uim-helper.c uim-helper-client.c \
intl.c \
Modified: branches/r5rs/uim/intl.c
===================================================================
--- branches/r5rs/uim/intl.c 2005-09-24 19:22:26 UTC (rev 1575)
+++ branches/r5rs/uim/intl.c 2005-09-24 23:32:20 UTC (rev 1576)
@@ -50,7 +50,7 @@
#include "uim-compat-scm.h"
/* for uim_init_intl_subrs() */
-#include "uimint.h"
+#include "uim-internal.h"
static uim_lisp
intl_gettext_package()
Modified: branches/r5rs/uim/plugin.c
===================================================================
--- branches/r5rs/uim/plugin.c 2005-09-24 19:22:26 UTC (rev 1575)
+++ branches/r5rs/uim/plugin.c 2005-09-24 23:32:20 UTC (rev 1576)
@@ -51,7 +51,7 @@
#include "uim-compat-scm.h"
#include "uim-compat-scm.h"
#include "plugin.h"
-#include "uimint.h"
+#include "uim-internal.h"
#ifndef HAVE_DLFUNC
#define dlfunc dlsym
@@ -60,9 +60,9 @@
#define PLUGIN_PREFIX "libuim-"
#define PLUGIN_SUFFIX ".so"
-#ifdef DEBUG_SCM
-static int debug_scm = DEBUG_SCM;
-#define DPRINTFN(n,x) if (debug_scm>(n)) fprintf x;
+#ifdef DEBUG
+static int debug_plugin = DEBUG;
+#define DPRINTFN(n,x) if (debug_plugin>(n)) fprintf x;
#else
#define DPRINTFN(n,x)
#endif
Modified: branches/r5rs/uim/spellcheck.c
===================================================================
--- branches/r5rs/uim/spellcheck.c 2005-09-24 19:22:26 UTC (rev 1575)
+++ branches/r5rs/uim/spellcheck.c 2005-09-24 23:32:20 UTC (rev 1576)
@@ -31,7 +31,7 @@
*/
-#include "uimint.h"
+#include "uim-internal.h"
static FILE *spell_r = NULL, *spell_w = NULL;
static int spell_pid = 0;
Modified: branches/r5rs/uim/uim-compat-scm.c
===================================================================
--- branches/r5rs/uim/uim-compat-scm.c 2005-09-24 19:22:26 UTC (rev 1575)
+++ branches/r5rs/uim/uim-compat-scm.c 2005-09-24 23:32:20 UTC (rev 1576)
@@ -37,7 +37,7 @@
#include <string.h>
#include "uim-compat-scm.h"
-#include "uimint.h"
+#include "uim-internal.h"
#if UIM_SCM_GCC4_READY_GC
static UIM_SCM_GC_PROTECTED_FUNC_DECL(int,
Modified: branches/r5rs/uim/uim-custom.c
===================================================================
--- branches/r5rs/uim/uim-custom.c 2005-09-24 19:22:26 UTC (rev 1575)
+++ branches/r5rs/uim/uim-custom.c 2005-09-24 23:32:20 UTC (rev 1576)
@@ -52,7 +52,7 @@
#include "uim-scm.h"
#include "uim-compat-scm.h"
#include "uim-custom.h"
-#include "uimint.h"
+#include "uim-internal.h"
#include "uim-helper.h"
#if 0
Modified: branches/r5rs/uim/uim-func.c
===================================================================
--- branches/r5rs/uim/uim-func.c 2005-09-24 19:22:26 UTC (rev 1575)
+++ branches/r5rs/uim/uim-func.c 2005-09-24 23:32:20 UTC (rev 1576)
@@ -36,7 +36,7 @@
#include <string.h>
#include <stdlib.h>
#include <stdarg.h>
-#include "uimint.h"
+#include "uim-internal.h"
#include "uim-scm.h"
#include "uim-encoding.h"
#include "uim-util.h"
Modified: branches/r5rs/uim/uim-helper-client.c
===================================================================
--- branches/r5rs/uim/uim-helper-client.c 2005-09-24 19:22:26 UTC (rev 1575)
+++ branches/r5rs/uim/uim-helper-client.c 2005-09-24 23:32:20 UTC (rev 1576)
@@ -44,7 +44,7 @@
#include <unistd.h>
#include "uim.h"
#include "uim-helper.h"
-#include "uimint.h"
+#include "uim-internal.h"
#define RECV_BUFFER_SIZE 1024
Modified: branches/r5rs/uim/uim-helper.c
===================================================================
--- branches/r5rs/uim/uim-helper.c 2005-09-24 19:22:26 UTC (rev 1575)
+++ branches/r5rs/uim/uim-helper.c 2005-09-24 23:32:20 UTC (rev 1576)
@@ -46,7 +46,7 @@
#include <pwd.h>
#include <signal.h>
#include <errno.h>
-#include "uimint.h"
+#include "uim-internal.h"
#include "uim-helper.h"
#include "uim-util.h"
Modified: branches/r5rs/uim/uim-im-switcher.h
===================================================================
--- branches/r5rs/uim/uim-im-switcher.h 2005-09-24 19:22:26 UTC (rev 1575)
+++ branches/r5rs/uim/uim-im-switcher.h 2005-09-24 23:32:20 UTC (rev 1576)
@@ -46,7 +46,7 @@
/**
* Get the name of current input method.
- * A uim_uimint.has several input methods, only one of them is
+ * A uim_context has several input methods, only one of them is
* selected. This function returns the name of currently selected
* input method.
*
Added: branches/r5rs/uim/uim-internal.h
===================================================================
--- branches/r5rs/uim/uim-internal.h 2005-09-24 19:22:26 UTC (rev 1575)
+++ branches/r5rs/uim/uim-internal.h 2005-09-24 23:32:20 UTC (rev 1576)
@@ -0,0 +1,322 @@
+/*
+
+ Copyright (c) 2003-2005 uim Project http://uim.freedesktop.org/
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ 3. Neither the name of authors nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+*/
+
+#ifndef _uim_internal_h_included_
+#define _uim_internal_h_included_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdio.h>
+#include "config.h"
+#include "gettext.h"
+#include "uim.h"
+#include "uim-scm.h"
+
+struct uim_im {
+ char *name;
+ char *lang;
+ char *encoding;
+ char *short_desc;
+};
+
+struct uim_candidate_ {
+ char *str; /* candidate */
+ char *heading_label;
+ char *annotation;
+ /* uim_pos part_of_speech; */
+ /* int freq; */
+ /* int freshness; */
+ /* int formality; */
+ /* char *src_dict; */
+};
+
+struct preedit_segment {
+ int attr;
+ char *str;
+};
+
+struct uim_context_ {
+ /* cookier pointer */
+ void *ptr;
+ /* internal id */
+ int id;
+ /**/
+ int is_enable;
+
+ struct uim_code_converter *conv_if;
+ void *conv;
+ char *current_im_name;
+ char *short_desc;
+ char *encoding;
+ /**/
+ int commit_raw_flag;
+ /**/
+ int nr_modes;
+ char **modes;
+ /**/
+ int mode;
+ /**/
+ char *proplabelstr;
+ char *propstr;
+ /**/
+ int candidate_index;
+ int nr_candidates;
+ /**/
+ void (*commit_cb)(void *ptr, const char *str);
+ /* preedit */
+ void (*preedit_clear_cb)(void *ptr);
+ void (*preedit_pushback_cb)(void *ptr, int attr, const char *str);
+ void (*preedit_update_cb)(void *ptr);
+ /* mode list */
+ void (*mode_list_update_cb)(void *ptr);
+ /* mode */
+ void (*mode_update_cb)(void *ptr, int);
+ /* property list */
+ void (*prop_list_update_cb)(void *ptr, const char *str);
+ /* property label */
+ void (*prop_label_update_cb)(void *ptr, const char *str);
+ /* candidate window */
+ void (*candidate_selector_activate_cb)(void *ptr, int nr, int index);
+ void (*candidate_selector_select_cb)(void *ptr, int index);
+ void (*candidate_selector_shift_page_cb)(void *ptr, int direction);
+ void (*candidate_selector_deactivate_cb)(void *ptr);
+ /* surrounding text */
+ void (*request_surrounding_text_cb)(void *ptr);
+ int (*delete_surrounding_text_cb)(void *ptr, int offset, int len);
+ /* preedit segments array */
+ struct preedit_segment *psegs;
+ int nr_psegs;
+};
+
+#ifdef HAVE_PTHREAD_H
+#include <pthread.h>
+ #define UIM_DEFINE_MUTEX(mtx) \
+ pthread_mutex_t mtx = PTHREAD_MUTEX_INITIALIZER
+ #define UIM_DEFINE_MUTEX_STATIC(mtx) \
+ static pthread_mutex_t mtx = PTHREAD_MUTEX_INITIALIZER
+ #define UIM_LOCK_MUTEX(mtx) pthread_mutex_lock(&mtx)
+ #define UIM_UNLOCK_MUTEX(mtx) pthread_mutex_unlock(&mtx)
+#else
+ #define UIM_DEFINE_MUTEX(mtx)
+ #define UIM_DEFINE_MUTEX_STATIC(mtx)
+ #define UIM_LOCK_MUTEX(mtx)
+ #define UIM_UNLOCK_MUTEX(mtx)
+#endif /* HAVE_PTHREAD_H */
+
+#ifdef ENABLE_NLS
+#define UIM_PREPARE_SAVING_TEXTDOMAIN_CODESET() \
+ char *enc, *orig_encoding = NULL; \
+ const char *client_encoding;
+#define UIM_SWITCH_TEXTDOMAIN_CODESET(uc) \
+ if ((enc = bind_textdomain_codeset(GETTEXT_PACKAGE, NULL))) \
+ orig_encoding = strdup(enc); \
+ client_encoding = (uc) ? ((struct uim_context_ *)uc)->encoding : uim_last_client_encoding; \
+ bind_textdomain_codeset(GETTEXT_PACKAGE, client_encoding);
+#define UIM_RESTORE_TEXTDOMAIN_CODESET() \
+ bind_textdomain_codeset(GETTEXT_PACKAGE, orig_encoding); \
+ free(orig_encoding);
+#else /* ENABLE_NLS */
+#define UIM_PREPARE_SAVING_TEXTDOMAIN_CODESET()
+#define UIM_SWITCH_TEXTDOMAIN_CODESET(uc)
+#define UIM_RESTORE_TEXTDOMAIN_CODESET()
+#endif /* ENABLE_NLS */
+
+/* we cannot use the variadic macro (i.e. __VA_ARGS__) because we
+ should also support C89 compilers
+*/
+#define UIM_EVAL_STRING_INTERNAL(uc, sexp_str) \
+ if (uc) \
+ uim_eval_string(uc, sexp_str); \
+ else \
+ uim_scm_eval_c_string(sexp_str); \
+
+#define UIM_EVAL_STRING(uc, sexp_str) \
+ { \
+ UIM_PREPARE_SAVING_TEXTDOMAIN_CODESET(); \
+ UIM_SWITCH_TEXTDOMAIN_CODESET(uc); \
+ UIM_EVAL_STRING_INTERNAL(uc, sexp_str); \
+ UIM_RESTORE_TEXTDOMAIN_CODESET(); \
+ }
+
+#ifdef HAVE_PTHREAD_H
+
+ extern pthread_mutex_t mtx_uim_evaling;
+
+ #define UIM_EVAL_FSTRING1_WITH_MUTEX(uc, sexp_tmpl, arg1) \
+ UIM_LOCK_MUTEX(mtx_uim_evaling); \
+ UIM_EVAL_FSTRING1(uc, sexp_tmpl, arg1); \
+ UIM_UNLOCK_MUTEX(mtx_uim_evaling);
+
+ #define UIM_EVAL_FSTRING2_WITH_MUTEX(uc, sexp_tmpl, arg1, arg2) \
+ UIM_LOCK_MUTEX(mtx_uim_evaling); \
+ UIM_EVAL_FSTRING2(uc, sexp_tmpl, arg1, arg2); \
+ UIM_UNLOCK_MUTEX(mtx_uim_evaling);
+
+ #define UIM_EVAL_FSTRING3_WITH_MUTEX(uc, sexp_tmpl, arg1, arg2, arg3) \
+ UIM_LOCK_MUTEX(mtx_uim_evaling); \
+ UIM_EVAL_FSTRING3(uc, sexp_tmpl, arg1, arg2, arg3); \
+ UIM_UNLOCK_MUTEX(mtx_uim_evaling);
+
+#else
+
+ #define UIM_EVAL_FSTRING1_WITH_MUTEX(uc, sexp_tmpl, arg1) \
+ UIM_EVAL_FSTRING1(uc, sexp_tmpl, arg1);
+
+ #define UIM_EVAL_FSTRING2_WITH_MUTEX(uc, sexp_tmpl, arg1, arg2) \
+ UIM_EVAL_FSTRING2(uc, sexp_tmpl, arg1, arg2);
+
+ #define UIM_EVAL_FSTRING3_WITH_MUTEX(uc, sexp_tmpl, arg1, arg2, arg3) \
+ UIM_EVAL_FSTRING3(uc, sexp_tmpl, arg1, arg2, arg3);
+
+#endif /* HAVE_PTHREAD_H */
+
+#define UIM_EVAL_FSTRING1(uc, sexp_tmpl, arg1) \
+ { \
+ int form_size; \
+ char *buf; \
+ UIM_PREPARE_SAVING_TEXTDOMAIN_CODESET(); \
+ UIM_SWITCH_TEXTDOMAIN_CODESET(uc); \
+ form_size = uim_sizeof_sexp_str(sexp_tmpl, arg1); \
+ if (form_size != -1) { \
+ buf = malloc(form_size); \
+ snprintf(buf, form_size, sexp_tmpl, arg1); \
+ UIM_EVAL_STRING_INTERNAL(uc, buf); \
+ free(buf); \
+ } \
+ UIM_RESTORE_TEXTDOMAIN_CODESET(); \
+ }
+
+#define UIM_EVAL_FSTRING2(uc, sexp_tmpl, arg1, arg2) \
+ { \
+ int form_size; \
+ char *buf; \
+ UIM_PREPARE_SAVING_TEXTDOMAIN_CODESET(); \
+ UIM_SWITCH_TEXTDOMAIN_CODESET(uc); \
+ form_size = uim_sizeof_sexp_str(sexp_tmpl, arg1, arg2); \
+ if (form_size != -1) { \
+ buf = malloc(form_size); \
+ snprintf(buf, form_size, sexp_tmpl, arg1, arg2); \
+ UIM_EVAL_STRING_INTERNAL(uc, buf); \
+ free(buf); \
+ } \
+ UIM_RESTORE_TEXTDOMAIN_CODESET(); \
+ }
+
+#define UIM_EVAL_FSTRING3(uc, sexp_tmpl, arg1, arg2, arg3) \
+ { \
+ int form_size; \
+ char *buf; \
+ UIM_PREPARE_SAVING_TEXTDOMAIN_CODESET(); \
+ UIM_SWITCH_TEXTDOMAIN_CODESET(uc); \
+ form_size = uim_sizeof_sexp_str(sexp_tmpl, arg1, arg2, arg3); \
+ if (form_size != -1) { \
+ buf = malloc(form_size); \
+ snprintf(buf, form_size, sexp_tmpl, arg1, arg2, arg3); \
+ UIM_EVAL_STRING_INTERNAL(uc, buf); \
+ free(buf); \
+ } \
+ UIM_RESTORE_TEXTDOMAIN_CODESET(); \
+ }
+
+#define UIM_EVAL_FSTRING4(uc, sexp_tmpl, arg1, arg2, arg3, arg4) \
+ { \
+ int form_size; \
+ char *buf; \
+ UIM_PREPARE_SAVING_TEXTDOMAIN_CODESET(); \
+ UIM_SWITCH_TEXTDOMAIN_CODESET(uc); \
+ form_size = uim_sizeof_sexp_str(sexp_tmpl, arg1, arg2, arg3, arg4); \
+ if (form_size != -1) { \
+ buf = malloc(form_size); \
+ snprintf(buf, form_size, sexp_tmpl, arg1, arg2, arg3, arg4); \
+ UIM_EVAL_STRING_INTERNAL(uc, buf); \
+ free(buf); \
+ } \
+ UIM_RESTORE_TEXTDOMAIN_CODESET(); \
+ }
+
+#define UIM_EVAL_FSTRING5(uc, sexp_tmpl, arg1, arg2, arg3, arg4, arg5) \
+ { \
+ int form_size; \
+ char *buf; \
+ UIM_PREPARE_SAVING_TEXTDOMAIN_CODESET(); \
+ UIM_SWITCH_TEXTDOMAIN_CODESET(uc); \
+ form_size = uim_sizeof_sexp_str(sexp_tmpl, arg1, arg2, arg3, arg4, arg5); \
+ if (form_size != -1) { \
+ buf = malloc(form_size); \
+ snprintf(buf, form_size, sexp_tmpl, arg1, arg2, arg3, arg4, arg5); \
+ UIM_EVAL_STRING_INTERNAL(uc, buf); \
+ free(buf); \
+ } \
+ UIM_RESTORE_TEXTDOMAIN_CODESET(); \
+ }
+
+/**/
+uim_context
+uim_find_context(int id);
+void uim_scm_init(const char *verbose_level);
+void uim_scm_quit(void);
+
+#ifdef UIM_COMPAT_SCM
+void uim_init_compat_scm_subrs(void);
+#endif
+void uim_init_key_subrs(void);
+void uim_init_util_subrs(void);
+#ifdef UIM_COMPAT_TABLE
+void uim_init_table_subrs(void);
+#endif
+void uim_init_im_subrs(void);
+void uim_init_intl_subrs(void);
+
+/**/
+void uim_init_plugin(void);
+void uim_quit_plugin(void);
+
+int uim_iconv_is_convertible(const char *tocode, const char *fromcode);
+void *uim_iconv_create(const char *tocode, const char *fromcode);
+char *uim_iconv_code_conv(void *obj, const char *str);
+void uim_iconv_release(void *obj);
+
+int uim_sizeof_sexp_str(const char *tmpl, ...);
+void uim_eval_string(uim_context, char *str);
+void uim_release_preedit_segments(uim_context uc);
+void uim_update_preedit_segments(uim_context uc);
+
+extern struct uim_im *uim_im_array;
+extern int uim_nr_im;
+extern char *uim_last_client_encoding;
+
+#ifdef __cplusplus
+}
+#endif
+#endif
Modified: branches/r5rs/uim/uim-ipc.c
===================================================================
--- branches/r5rs/uim/uim-ipc.c 2005-09-24 19:22:26 UTC (rev 1575)
+++ branches/r5rs/uim/uim-ipc.c 2005-09-24 23:32:20 UTC (rev 1576)
@@ -43,7 +43,7 @@
#include <stdio.h>
#include <string.h>
-#include "uimint.h"
+#include "uim-internal.h"
#include "uim-helper.h"
#include "uim-util.h"
Modified: branches/r5rs/uim/uim-key.c
===================================================================
--- branches/r5rs/uim/uim-key.c 2005-09-24 19:22:26 UTC (rev 1575)
+++ branches/r5rs/uim/uim-key.c 2005-09-24 23:32:20 UTC (rev 1576)
@@ -38,7 +38,7 @@
#include "uim.h"
#include "uim-scm.h"
#include "uim-compat-scm.h"
-#include "uimint.h"
+#include "uim-internal.h"
struct key_entry {
int key;
Modified: branches/r5rs/uim/uim-module-manager.c
===================================================================
--- branches/r5rs/uim/uim-module-manager.c 2005-09-24 19:22:26 UTC (rev 1575)
+++ branches/r5rs/uim/uim-module-manager.c 2005-09-24 23:32:20 UTC (rev 1576)
@@ -42,7 +42,7 @@
#include "uim.h"
#include "uim-scm.h"
-#include "uimint.h"
+#include "uim-internal.h"
#define MODULE_LIST_FILENAME UIM_DATADIR"/modules"
#define LOADER_SCM_FILENAME UIM_DATADIR"/loader.scm"
Modified: branches/r5rs/uim/uim-scm-gc.c
===================================================================
--- branches/r5rs/uim/uim-scm-gc.c 2005-09-24 19:22:26 UTC (rev 1575)
+++ branches/r5rs/uim/uim-scm-gc.c 2005-09-24 23:32:20 UTC (rev 1576)
@@ -58,6 +58,7 @@
#if UIM_SCM_GCC4_READY_GC
+
void
uim_scm_gc_protect(uim_lisp *location)
{
Modified: branches/r5rs/uim/uim-scm.c
===================================================================
--- branches/r5rs/uim/uim-scm.c 2005-09-24 19:22:26 UTC (rev 1575)
+++ branches/r5rs/uim/uim-scm.c 2005-09-24 23:32:20 UTC (rev 1576)
@@ -40,7 +40,7 @@
#include "sigscheme/sigscheme.h"
#include "uim-scm.h"
#include "uim-compat-scm.h"
-#include "uimint.h"
+#include "uim-internal.h"
static void uim_scm_error(const char *msg, uim_lisp errobj);
Modified: branches/r5rs/uim/uim-scm.h
===================================================================
--- branches/r5rs/uim/uim-scm.h 2005-09-24 19:22:26 UTC (rev 1575)
+++ branches/r5rs/uim/uim-scm.h 2005-09-24 23:32:20 UTC (rev 1576)
@@ -193,7 +193,7 @@
uim_scm_return_value(void);
/*
TODO: reorganize UIM_EVAL_FSTRINGn(), uim_sizeof_sexp_str() and
- uim_eval_string() in uimint.h into this file
+ uim_eval_string() in uim-internal.h into this file
*/
/* type conversions */
Modified: branches/r5rs/uim/uim-table.c
===================================================================
--- branches/r5rs/uim/uim-table.c 2005-09-24 19:22:26 UTC (rev 1575)
+++ branches/r5rs/uim/uim-table.c 2005-09-24 23:32:20 UTC (rev 1576)
@@ -42,7 +42,7 @@
#include "uim-scm.h"
#include "uim-compat-scm.h"
#include "siod.h"
-#include "uimint.h"
+#include "uim-internal.h"
/*This file is for find entry from table such Japanese roma-ji table*/
Modified: branches/r5rs/uim/uim-util.c
===================================================================
--- branches/r5rs/uim/uim-util.c 2005-09-24 19:22:26 UTC (rev 1575)
+++ branches/r5rs/uim/uim-util.c 2005-09-24 23:32:20 UTC (rev 1576)
@@ -40,7 +40,7 @@
#include <string.h>
#include <locale.h>
#include <langinfo.h>
-#include "uimint.h"
+#include "uim-internal.h"
#include "gettext.h"
#include "uim-scm.h"
#include "uim-compat-scm.h"
Modified: branches/r5rs/uim/uim.c
===================================================================
--- branches/r5rs/uim/uim.c 2005-09-24 19:22:26 UTC (rev 1575)
+++ branches/r5rs/uim/uim.c 2005-09-24 23:32:20 UTC (rev 1576)
@@ -43,7 +43,7 @@
#include "uim-scm.h"
#include "uim-compat-scm.h"
#include "uim-custom.h"
-#include "uimint.h"
+#include "uim-internal.h"
#include "gettext.h"
#include "uim-util.h"
Modified: branches/r5rs/uim/uimint.h
===================================================================
More information about the uim-commit
mailing list