Mercurial > kinput2.yaz
annotate cmd/kinput2.c @ 1:31f1de16683a
imported patch 01_Kinput2.ad.patch
author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
---|---|
date | Mon, 08 Mar 2010 20:07:05 +0900 |
parents | 92745d501b9a |
children | 115737ec0041 598fcbe482b5 |
rev | line source |
---|---|
0
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
1 /* |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
2 * kinput2 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
3 */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
4 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
5 /* |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
6 * Copyright (C) 1991 by Software Research Associates, Inc. |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
7 * |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
8 * Permission to use, copy, modify, and distribute this software and its |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
9 * documentation for any purpose and without fee is hereby granted, provided |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
10 * that the above copyright notice appear in all copies and that both that |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
11 * copyright notice and this permission notice appear in supporting |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
12 * documentation, and that the name of Software Research Associates not be |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
13 * used in advertising or publicity pertaining to distribution of the |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
14 * software without specific, written prior permission. Software Research |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
15 * Associates makes no representations about the suitability of this software |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
16 * for any purpose. It is provided "as is" without express or implied |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
17 * warranty. |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
18 * |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
19 * Author: Makoto Ishisone, Software Research Associates, Inc., Japan |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
20 * ishisone@sra.co.jp |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
21 */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
22 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
23 #ifndef lint |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
24 static char *rcsid = "$Id: kinput2.c,v 1.46 2002/01/06 15:13:38 ishisone Exp $"; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
25 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
26 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
27 #include <stdio.h> |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
28 #include <signal.h> |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
29 #include <X11/Intrinsic.h> |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
30 #include <X11/StringDefs.h> |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
31 #include <X11/Shell.h> |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
32 #include "patchlevel.h" |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
33 #include "AsyncErr.h" |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
34 #include "MyDispatch.h" |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
35 #include "IOECall.h" |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
36 #include "ConvMgr.h" |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
37 #include "KIProto.h" |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
38 #include "XimpProto.h" |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
39 #include "IMProto.h" |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
40 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
41 #if !defined(USE_WNN) && !defined(USE_CANNA) && !defined(USE_SJ3) && !defined(USE_ATOK) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
42 #define USE_WNN /* default */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
43 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
44 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
45 #ifdef USE_WNN |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
46 #include "CcWnn.h" |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
47 #include "WcharDisp.h" |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
48 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
49 #ifdef USE_CANNA |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
50 #include "Canna.h" |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
51 #include "WcharDisp.h" |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
52 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
53 #ifdef USE_SJ3 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
54 #include "Sj3.h" |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
55 #include "WcharDisp.h" |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
56 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
57 #ifdef USE_ATOK |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
58 #include "Atok.h" |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
59 #include "WcharDisp.h" |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
60 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
61 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
62 #include "DebugPrint.h" |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
63 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
64 int debug_all; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
65 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
66 /* application resource */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
67 typedef struct { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
68 char *conversionEngine; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
69 int debugLevel; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
70 Boolean useKinputProtocol; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
71 Boolean useXimpProtocol; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
72 Boolean useXIMProtocol; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
73 Boolean appdefs_loaded; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
74 } AppResRec, *AppResP; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
75 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
76 static AppResRec appres; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
77 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
78 static XtResource app_resources[] = { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
79 { "conversionEngine", "ConversionEngine", XtRString, sizeof(String), |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
80 XtOffset(AppResP, conversionEngine), XtRString, (XtPointer)"" }, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
81 { "debugLevel", "DebugLevel", XtRInt, sizeof(int), |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
82 XtOffset(AppResP, debugLevel), XtRImmediate, (XtPointer)0 }, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
83 { "useKinputProtocol", "UseKinputProtocol", XtRBoolean, sizeof(Boolean), |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
84 XtOffset(AppResP, useKinputProtocol), XtRImmediate, (XtPointer)True }, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
85 { "useXimpProtocol", "UseXimpProtocol", XtRBoolean, sizeof(Boolean), |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
86 XtOffset(AppResP, useXimpProtocol), XtRImmediate, (XtPointer)True }, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
87 { "useXIMProtocol", "UseXIMProtocol", XtRBoolean, sizeof(Boolean), |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
88 XtOffset(AppResP, useXIMProtocol), XtRImmediate, (XtPointer)True }, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
89 { "ki2AppDefsLoaded", "Ki2AppDefsLoaded", XtRBoolean, sizeof(Boolean), |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
90 XtOffset(AppResP, appdefs_loaded), XtRImmediate, (XtPointer)True }, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
91 }; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
92 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
93 static String fallback_resources[] = { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
94 "*ki2AppDefsLoaded: false", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
95 "Kinput2.mappedWhenManaged: false", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
96 "Kinput2.width: 1", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
97 "Kinput2.height: 1", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
98 NULL, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
99 }; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
100 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
101 static XrmOptionDescRec options[] = { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
102 {"-bc", "*KinputProtocol.backwardCompatible", XrmoptionNoArg, "True"}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
103 {"-font", "*JpWcharDisplay.font", XrmoptionSepArg, NULL}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
104 {"-kanjifont", "*JpWcharDisplay.kanjiFont", XrmoptionSepArg, NULL}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
105 {"-kanafont", "*JpWcharDisplay.kanaFont", XrmoptionSepArg, NULL}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
106 {"-kinput", ".useKinputProtocol", XrmoptionNoArg, "on"}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
107 {"+kinput", ".useKinputProtocol", XrmoptionNoArg, "off"}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
108 {"-ximp", ".useXimpProtocol", XrmoptionNoArg, "on"}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
109 {"+ximp", ".useXimpProtocol", XrmoptionNoArg, "off"}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
110 {"-xim", ".useXIMProtocol", XrmoptionNoArg, "on"}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
111 {"+xim", ".useXIMProtocol", XrmoptionNoArg, "off"}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
112 {"-tbheight", "*ConversionControl.titlebarHeight", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
113 XrmoptionSepArg, NULL}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
114 #ifdef DEBUG |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
115 {"-debug", ".debugLevel", XrmoptionNoArg, "1"}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
116 {"-trace", ".debugLevel", XrmoptionNoArg, "10"}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
117 {"-debuglevel", ".debugLevel", XrmoptionSepArg, NULL}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
118 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
119 #ifdef USE_WNN |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
120 {"-wnn", ".conversionEngine", XrmoptionNoArg, "wnn"}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
121 {"-jserver", "*CcWnn.jserver", XrmoptionSepArg, NULL}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
122 {"-ccdef", "*CcWnn.ccdef", XrmoptionSepArg, NULL}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
123 {"-wnnenvname", "*CcWnn.wnnEnvname", XrmoptionSepArg, NULL}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
124 {"-wnnenvrc4", "*CcWnn.wnnEnvrc4", XrmoptionSepArg, NULL}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
125 {"-wnnenvrc6", "*CcWnn.wnnEnvrc6", XrmoptionSepArg, NULL}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
126 {"-wnnenvrc", "*CcWnn.wnnEnvrc", XrmoptionSepArg, NULL}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
127 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
128 #ifdef USE_CANNA |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
129 {"-canna", ".conversionEngine", XrmoptionNoArg, "canna"}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
130 {"-cannaserver", "*Canna.cannahost", XrmoptionSepArg, NULL}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
131 {"-cs", "*Canna.cannahost", XrmoptionSepArg, NULL}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
132 {"-cannafile", "*Canna.cannafile", XrmoptionSepArg, NULL}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
133 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
134 #ifdef USE_SJ3 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
135 {"-sj3", ".conversionEngine", XrmoptionNoArg, "sj3"}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
136 {"-sj3serv", "*Sj3.sj3serv", XrmoptionSepArg, NULL}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
137 {"-sj3serv2", "*Sj3.sj3serv2", XrmoptionSepArg, NULL}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
138 {"-sj3user", "*Sj3.sj3user", XrmoptionSepArg, NULL}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
139 {"-rcfile", "*Sj3.rcfile", XrmoptionSepArg, NULL}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
140 {"-sbfile", "*Sj3.sbfile", XrmoptionSepArg, NULL}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
141 {"-rkfile", "*Sj3.rkfile", XrmoptionSepArg, NULL}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
142 {"-hkfile", "*Sj3.hkfile", XrmoptionSepArg, NULL}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
143 {"-zhfile", "*Sj3.zhfile", XrmoptionSepArg, NULL}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
144 {"-sjrc", "*Sj3.rcfile", XrmoptionSepArg, NULL}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
145 {"-sjsb", "*Sj3.sbfile", XrmoptionSepArg, NULL}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
146 {"-sjrk", "*Sj3.rkfile", XrmoptionSepArg, NULL}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
147 {"-sjhk", "*Sj3.hkfile", XrmoptionSepArg, NULL}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
148 {"-sjzh", "*Sj3.zhfile", XrmoptionSepArg, NULL}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
149 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
150 #ifdef USE_ATOK |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
151 {"-atok", ".conversionEngine", XrmoptionNoArg, "atok"}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
152 {"-atokserver", "*Atok.server", XrmoptionSepArg, NULL}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
153 {"-as", "*Atok.server", XrmoptionSepArg, NULL}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
154 {"-atokport", "*Atok.port", XrmoptionSepArg, NULL}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
155 {"-atokconf", "*Atok.conf", XrmoptionSepArg, NULL}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
156 {"-atokstyle", "*Atok.style", XrmoptionSepArg, NULL}, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
157 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
158 }; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
159 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
160 XtAppContext apc; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
161 Widget toplevel; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
162 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
163 static int numProtocols; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
164 static int (*DefaultErrorHandler)(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
165 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
166 #if XtSpecificationRelease > 5 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
167 static XtSignalId interrupt; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
168 static void interruptCallback(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
169 #else |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
170 static void exitTimer(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
171 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
172 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
173 static WidgetClass getInputObjClass(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
174 static int IgnoreBadWindow(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
175 #ifdef SIGNALRETURNSINT |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
176 static int scheduleExit(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
177 #else |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
178 static void scheduleExit(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
179 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
180 static void Destroyed(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
181 static void Exit(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
182 static void realExit(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
183 static void usage(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
184 static void print_version(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
185 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
186 int |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
187 main(ac, av) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
188 int ac; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
189 char **av; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
190 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
191 Widget manager, protocol; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
192 int i; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
193 WidgetClass inputobjclass, displayobjclass; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
194 Widget inputobj; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
195 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
196 toplevel = XtAppInitialize(&apc, "Kinput2", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
197 options, XtNumber(options), |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
198 &ac, av, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
199 fallback_resources, (ArgList)NULL, 0); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
200 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
201 /* check invalid argument */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
202 if (ac > 1) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
203 int do_usage = 0; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
204 for (i = 1; i < ac; i++) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
205 if (!strcmp(av[i], "-version")) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
206 print_version(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
207 } else { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
208 fprintf(stderr, "unknown argument: %s\n", av[i]); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
209 do_usage = 1; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
210 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
211 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
212 if (do_usage) usage(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
213 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
214 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
215 /* initialize asynchronous error handler */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
216 XAEInit(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
217 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
218 /* initialize I/O error callback handler */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
219 XIOEInit(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
220 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
221 XtGetApplicationResources(toplevel, &appres, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
222 app_resources, XtNumber(app_resources), |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
223 NULL, 0); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
224 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
225 /* |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
226 * If the application-specific class resource file |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
227 * (the "app-defaults" file) is not found, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
228 * print a warning message. |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
229 */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
230 if (!appres.appdefs_loaded) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
231 fprintf(stderr, "Warning: Cannot load app-defaults file.\n"); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
232 fprintf(stderr, " Kinput2 may not work properly without it.\n"); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
233 fprintf(stderr, " Maybe kinput2 is not installed correctly,\n"); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
234 fprintf(stderr, " or your file search path (specified by\n"); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
235 fprintf(stderr, " environment variable 'XFILESEARCHPATH')\n"); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
236 fprintf(stderr, " is wrong.\n"); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
237 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
238 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
239 /* set debug level */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
240 debug_all = appres.debugLevel; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
241 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
242 #ifdef RANDOM_ID |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
243 /* |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
244 * one nasty hack here: |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
245 * |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
246 * kinput clients often use server's window ID for the only key |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
247 * value to identify their conversion server (kinput), and they |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
248 * think it is dead and take appropriate action (eg connecting to |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
249 * the new server) when they notice the ID has changed. |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
250 * |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
251 * but it is likely that another kinput has the same resource ID |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
252 * base (because X servers always choose the smallest unused ID |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
253 * base for new clients). and if it is the same, so is the owner |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
254 * window ID, and the clients don't notice the change. |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
255 * |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
256 * to get rid of the problem, we add some small random offset to |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
257 * the resource ID so that every time we get different owner ID |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
258 * even if the resource ID base is the same. |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
259 * |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
260 * of course it heavily depends on the current implementaion of |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
261 * the resource ID allocation in Xlib, so I call it 'nasty'. |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
262 */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
263 XtDisplay(toplevel)->resource_id += getpid() % 1024; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
264 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
265 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
266 inputobjclass = getInputObjClass(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
267 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
268 inputobj = XtCreateWidget("inputObj", inputobjclass, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
269 toplevel, 0, 0); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
270 XtRealizeWidget(inputobj); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
271 ICRegisterTriggerKeys(inputobj); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
272 /* |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
273 Destroying the `inputobj' is postponed until all the widgets |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
274 are realized in order to prevent duplicate initialization of |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
275 input object, that is, to prevent making connection twice to |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
276 input conversion server. |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
277 */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
278 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
279 displayobjclass = jpWcharDisplayObjectClass; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
280 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
281 manager = XtVaCreateManagedWidget("convmanager", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
282 conversionManagerWidgetClass, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
283 toplevel, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
284 XtNwidth, 1, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
285 XtNheight, 1, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
286 NULL); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
287 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
288 numProtocols = 0; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
289 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
290 if (appres.useKinputProtocol) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
291 protocol = XtVaCreateWidget("kinputprotocol", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
292 kinputProtocolWidgetClass, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
293 manager, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
294 XtNlanguage, "JAPANESE", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
295 XtNinputObjectClass, inputobjclass, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
296 XtNdisplayObjectClass, displayobjclass, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
297 XtNwidth, 1, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
298 XtNheight, 1, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
299 NULL); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
300 XtAddCallback(protocol, XtNdestroyCallback, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
301 Destroyed, (XtPointer)NULL); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
302 numProtocols++; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
303 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
304 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
305 if (appres.useXimpProtocol) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
306 protocol = XtVaCreateWidget("ximpprotocol", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
307 ximpProtocolWidgetClass, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
308 manager, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
309 XtNlocaleName, "ja_JP", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
310 XtNinputObjectClass, inputobjclass, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
311 XtNdisplayObjectClass, displayobjclass, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
312 XtNwidth, 1, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
313 XtNheight, 1, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
314 NULL); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
315 XtAddCallback(protocol, XtNdestroyCallback, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
316 Destroyed, (XtPointer)NULL); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
317 numProtocols++; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
318 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
319 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
320 if (appres.useXIMProtocol) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
321 protocol = XtVaCreateWidget("improtocol", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
322 imProtocolWidgetClass, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
323 manager, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
324 XtNlanguage, "ja_JP", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
325 XtNinputObjectClass, inputobjclass, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
326 XtNdisplayObjectClass, displayobjclass, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
327 XtNwidth, 1, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
328 XtNheight, 1, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
329 NULL); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
330 XtAddCallback(protocol, XtNdestroyCallback, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
331 Destroyed, (XtPointer)NULL); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
332 numProtocols++; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
333 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
334 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
335 if (numProtocols == 0) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
336 fprintf(stderr, "no protocols activated\n"); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
337 exit(1); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
338 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
339 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
340 /* set signal handler */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
341 if (signal(SIGINT, SIG_IGN) != SIG_IGN) signal(SIGINT, scheduleExit); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
342 #if XtSpecificationRelease > 5 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
343 interrupt = XtAppAddSignal(apc, interruptCallback, (XtPointer)NULL); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
344 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
345 signal(SIGTERM, scheduleExit); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
346 #ifdef USE_WNN |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
347 signal(SIGPIPE, SIG_IGN); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
348 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
349 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
350 /* set my error handler */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
351 DefaultErrorHandler = XAESetErrorHandler(IgnoreBadWindow); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
352 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
353 XtRealizeWidget(toplevel); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
354 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
355 XtDestroyWidget(inputobj); /* Don't move this before XtRealizeWidget() */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
356 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
357 for (;;) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
358 XEvent event; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
359 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
360 XtAppNextEvent(apc, &event); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
361 XtDispatchEvent(&event); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
362 MyDispatchEvent(&event); /* additional dispatcher */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
363 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
364 /* NOTREACHED */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
365 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
366 return 0; /* for lint */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
367 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
368 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
369 static WidgetClass |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
370 getInputObjClass() |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
371 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
372 WidgetClass class; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
373 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
374 #ifdef USE_WNN |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
375 if (!strcmp(appres.conversionEngine, "wnn")) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
376 return ccWnnObjectClass; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
377 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
378 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
379 #ifdef USE_CANNA |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
380 if (!strcmp(appres.conversionEngine, "canna") || |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
381 !strcmp(appres.conversionEngine, "iroha")) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
382 return cannaObjectClass; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
383 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
384 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
385 #ifdef USE_SJ3 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
386 if (!strcmp(appres.conversionEngine, "sj3")) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
387 return sj3ObjectClass; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
388 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
389 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
390 #ifdef USE_ATOK |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
391 if (!strcmp(appres.conversionEngine, "atok")) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
392 return atokObjectClass; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
393 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
394 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
395 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
396 /* set default input object */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
397 #ifdef USE_ATOK |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
398 class = atokObjectClass; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
399 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
400 #ifdef USE_SJ3 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
401 class = sj3ObjectClass; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
402 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
403 #ifdef USE_CANNA |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
404 class = cannaObjectClass; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
405 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
406 #ifdef USE_WNN |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
407 class = ccWnnObjectClass; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
408 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
409 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
410 return class; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
411 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
412 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
413 static int |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
414 IgnoreBadWindow(dpy, error) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
415 Display *dpy; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
416 XErrorEvent *error; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
417 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
418 /* |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
419 * BadWindow events will be sent if any of the active clients die |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
420 * during conversion. Although I select DestroyNotify event on the |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
421 * client windows to detect their destruction and take appropriate |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
422 * actions, and I'm careful when doing critical operations, but still |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
423 * there is a chance of getting unexpecting BadWindow error caused by |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
424 * client death. |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
425 * There are also chances of getting BadDrawable as well. |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
426 * So I set the error handler to ignore BadWindow/BadDrawable errors. |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
427 * Of course I'd better check if the resourceid field of the error |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
428 * event is the window ID of a client, but I'm too lazy to do that... |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
429 * P.S. We should ignore BadColor also.. |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
430 */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
431 if (error->error_code != BadWindow && |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
432 error->error_code != BadDrawable && |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
433 error->error_code != BadColor) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
434 /* invoke default error handler */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
435 (*DefaultErrorHandler)(dpy, error); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
436 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
437 return 0; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
438 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
439 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
440 #ifdef SIGNALRETURNSINT |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
441 static int |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
442 #else |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
443 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
444 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
445 scheduleExit() |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
446 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
447 #if XtSpecificationRelease > 5 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
448 XtNoticeSignal(interrupt); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
449 #else |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
450 /* |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
451 * It is unwise to do complex operation (in this case, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
452 * XtDestroyWidget) in a signal handler. |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
453 * So postpone the real work... |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
454 */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
455 XtAppAddTimeOut(apc, 1L, exitTimer, (XtPointer)NULL); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
456 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
457 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
458 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
459 #if XtSpecificationRelease > 5 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
460 /* ARGSUSED */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
461 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
462 interruptCallback(cldata, sigid) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
463 XtPointer cldata; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
464 XtSignalId *sigid; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
465 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
466 Exit(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
467 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
468 #else |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
469 /* ARGSUSED */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
470 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
471 exitTimer(cldata, timerp) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
472 XtPointer cldata; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
473 XtIntervalId *timerp; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
474 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
475 Exit(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
476 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
477 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
478 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
479 /* ARGSUSED */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
480 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
481 Destroyed(w, client_data, call_data) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
482 Widget w; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
483 XtPointer client_data; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
484 XtPointer call_data; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
485 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
486 static int cnt = 0; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
487 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
488 /* |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
489 * if all the protocol widgets are dead, kill myself. |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
490 */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
491 if (++cnt >= numProtocols) Exit(); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
492 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
493 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
494 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
495 Exit() |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
496 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
497 static int exiting = 0; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
498 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
499 TRACE(("Exit()\n")); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
500 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
501 if (exiting) return; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
502 exiting = 1; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
503 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
504 /* |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
505 * Destroy all widgets. |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
506 */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
507 XtDestroyWidget(toplevel); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
508 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
509 /* |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
510 * Postpone calling exit() until next XtNextEvent(), |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
511 * in order to give each widget time to execute their |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
512 * destroy procedure. |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
513 */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
514 XtAppAddTimeOut(apc, 1L, realExit, (XtPointer)NULL); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
515 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
516 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
517 /* ARGSUSED */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
518 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
519 realExit(cldata, timerp) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
520 XtPointer cldata; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
521 XtIntervalId *timerp; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
522 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
523 exit(0); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
524 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
525 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
526 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
527 usage() |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
528 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
529 char **p; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
530 static char *syntaxtable[] = { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
531 #ifdef USE_WNN |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
532 "-wnn", "use Wnn as the conversion engine", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
533 "-jserver <hostname>", "specify jserver host", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
534 "-ccdef <ccdeffile>", "specify character conversion def. file", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
535 "-wnnenvname <name>", "specify Wnn environment name", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
536 "-wnnenvrc4 <wnnenvrcfile>", "specify Wnn environment file for Wnn4", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
537 "-wnnenvrc6 <wnnenvrcfile>", "specify Wnn environment file for Wnn6", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
538 "-wnnenvrc <wnnenvrcfile>", "specify Wnn environment file", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
539 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
540 #ifdef USE_CANNA |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
541 "-canna", "use Canna (Iroha) as the conversion engine", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
542 "{-cannaserver|-cs} <hostname>[:n]", "specify cannaserver host", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
543 "-cannafile <cannafile>", "specify canna customize file", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
544 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
545 #ifdef USE_SJ3 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
546 "-sj3", "use SJ3 as the conversion engine", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
547 "-sj3serv <hostname>", "specify first sj3serv host", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
548 "-sj3serv2 <hostname>", "specify second sj3serv host", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
549 "-sj3user <user>", "specify user name connect to sj3serv", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
550 "{-rcfile|-sjrc} <file>", "specify resource definition file", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
551 "{-sbfile|-sjsb} <file>", "specify symbol table file", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
552 "{-rkfile|-sjrk} <file>", "specify roma-kana coversion definition file", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
553 "{-hkfile|-sjhk} <file>", "specify hira-kata coversion definition file", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
554 "{-zhfile|-sjzh} <file>", "specify zen/han coversion definition file", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
555 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
556 #ifdef USE_ATOK |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
557 "-atok", "use ATOK as the conversion engine", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
558 "{-atokserver|-as} <hostname>", "specify atok server host", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
559 "-atokport <port#>", "specify atok service port", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
560 "-atokconf <file>", "specify atok customize file", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
561 "-atokstyle <file>", "specify atok style file", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
562 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
563 "-bc", "backward compatible mode", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
564 "-font <font>", "ASCII font to be used", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
565 "-kanjifont <font>", "KANJI font to be used", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
566 "-kanafont <font>", "KANA font to be used", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
567 "-/+kinput", "activate/deactivate kinput protocol family", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
568 "-/+ximp", "activate/deactivate Ximp protocol", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
569 "-/+xim", "activate/deactivate X Input Method protocol", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
570 "-tbheight <number>", "specify pop-up shell's titlebar height", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
571 "-background <color>", "background color", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
572 "-foreground <color>", "foreground color", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
573 "-rv", "reverse video mode", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
574 "-display <display>", "specify display", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
575 "-version", "print version information and exit", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
576 #ifdef DEBUG |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
577 "-debug", "print debug messages (debug level 1)", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
578 "-trace", "print trace messages (debug level 10)", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
579 "-debuglevel <level>", "set debug level", |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
580 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
581 NULL, NULL, |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
582 }; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
583 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
584 fprintf(stderr, "options are:\n"); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
585 for (p = syntaxtable; *p != NULL; p += 2) { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
586 fprintf(stderr, " %-30s %s\n", *p, *(p + 1)); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
587 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
588 exit(1); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
589 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
590 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
591 static void |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
592 print_version() |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
593 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
594 char *p; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
595 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
596 printf("kinput2 %s ", KINPUT2_VERSION); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
597 if (PATCHLEVEL > 0) printf("fix %d ", PATCHLEVEL); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
598 #ifdef STATUS |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
599 printf("-%s- ", STATUS); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
600 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
601 printf(" ("); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
602 p = DATE + 7; /* skip '$Date: ' */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
603 while (*p != '\0' && *p != ' ') { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
604 putchar(*p); /* print date */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
605 p++; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
606 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
607 printf(")\n"); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
608 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
609 printf("\toptions: "); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
610 #ifdef USE_WNN |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
611 #ifdef USE_WNN6 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
612 printf("[Wnn6] "); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
613 #else |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
614 printf("[Wnn] "); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
615 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
616 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
617 #ifdef USE_CANNA |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
618 printf("[Canna2] "); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
619 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
620 #ifdef USE_SJ3 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
621 printf("[Sj3] "); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
622 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
623 #ifdef USE_ATOK |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
624 printf("[Atok] "); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
625 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
626 #ifdef DEBUG |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
627 printf("[DEBUG] "); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
628 #endif |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
629 printf("\n"); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
630 exit(0); |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
631 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
632 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
633 #if defined(USE_WNN) && defined(NEED_Strlen) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
634 /* |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
635 * Wnn/jlib/js.c should have this function... |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
636 */ |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
637 int |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
638 Strlen(s) |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
639 unsigned short *s; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
640 { |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
641 int n = 0; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
642 |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
643 while (*s++) n++; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
644 return n; |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
645 } |
92745d501b9a
initial import from kinput2-v3.1
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff
changeset
|
646 #endif |