1 /* Copyright 1992 NEC Corporation, Tokyo, Japan.
2  *
3  * Permission to use, copy, modify, distribute and sell this software
4  * and its documentation for any purpose is hereby granted without
5  * fee, provided that the above copyright notice appear in all copies
6  * and that both that copyright notice and this permission notice
7  * appear in supporting documentation, and that the name of NEC
8  * Corporation not be used in advertising or publicity pertaining to
9  * distribution of the software without specific, written prior
10  * permission.  NEC Corporation makes no representations about the
11  * suitability of this software for any purpose.  It is provided "as
12  * is" without express or implied warranty.
13  *
14  * NEC CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
15  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
16  * NO EVENT SHALL NEC CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
17  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
18  * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
19  * OTHER TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
20  * PERFORMANCE OF THIS SOFTWARE.
21  */
22 
23 #if !defined(lint) && !defined(__CODECENTER__)
24 static char emptymap_id[] = "@(#) 102.1 $Id: emptymap.h,v 1.3 2003/09/17 08:50:53 aida_s Exp $";
25 #endif /* lint */
26 
27 extern AlphaMode(), HenkanNyuryokuMode(), ZenHiraKakuteiMode();
28 extern ZenKataKakuteiMode(), HanKataKakuteiMode(), ZenAlphaKakuteiMode();
29 extern HanAlphaKakuteiMode(), KigoIchiran();
30 #ifndef NO_EXTEND_MENU
31 extern HexMode(), BushuMode();
32 #endif
33 extern KigoIchiran(), UiUtilMode();
34 extern YomiBaseHiraKataToggle(), YomiBaseZenHanToggle();
35 extern YomiBaseKanaEisuToggle(), YomiBaseKakuteiHenkanToggle();
36 extern YomiBaseRotateForw(), YomiBaseRotateBack();
37 extern DoFuncSequence(),UseOtherKeymap(), YomiModeBackup();
38 extern dicTouroku pro((uiContext)), dicSakujo pro((uiContext));
39 #ifndef NO_EXTEND_MENU
40 extern kigoRussia(), kigoGreek(), kigoKeisen();
41 extern dicMount(), serverChange(), serverFin();
42 extern chikujiInit();
43 #endif
44 
45 #define NONE CANNA_FN_Undefined
46 
47 static struct funccfunc empty_funcs[] = {
48   {CANNA_FN_SelfInsert		,EmptySelfInsert	},
49   {CANNA_FN_FunctionalInsert	,EmptyYomiInsert	},
50   {CANNA_FN_QuotedInsert	,EmptyQuotedInsert	},
51   {CANNA_FN_AlphaMode		,AlphaMode		},
52   {CANNA_FN_HenkanNyuryokuMode	,HenkanNyuryokuMode	},
53   {CANNA_FN_KigouMode		,KigoIchiran		},
54   {CANNA_FN_DeletePrevious	,EmptyDeletePrevious	},
55   {CANNA_FN_Kakutei		,EmptyKakutei		},
56   {CANNA_FN_Quit		,EmptyQuit		},
57   {CANNA_FN_ExtendMode		,UiUtilMode		},
58   {CANNA_FN_BaseHiragana	,EmptyBaseHira		},
59   {CANNA_FN_BaseKatakana	,EmptyBaseKata		},
60   {CANNA_FN_BaseKana		,EmptyBaseKana		},
61   {CANNA_FN_BaseEisu		,EmptyBaseEisu		},
62   {CANNA_FN_BaseZenkaku		,EmptyBaseZen		},
63   {CANNA_FN_BaseHankaku		,EmptyBaseHan		},
64   {CANNA_FN_BaseKakutei		,EmptyBaseKakutei	},
65   {CANNA_FN_BaseHenkan		,EmptyBaseHenkan	},
66   {CANNA_FN_BaseHiraKataToggle	,YomiBaseHiraKataToggle	},
67   {CANNA_FN_BaseZenHanToggle	,YomiBaseZenHanToggle	},
68   {CANNA_FN_BaseKanaEisuToggle	,YomiBaseKanaEisuToggle	},
69   {CANNA_FN_BaseKakuteiHenkanToggle ,YomiBaseKakuteiHenkanToggle	},
70   {CANNA_FN_BaseRotateForward	,YomiBaseRotateForw	},
71   {CANNA_FN_BaseRotateBackward	,YomiBaseRotateBack	},
72   {CANNA_FN_FuncSequence	,DoFuncSequence		},
73   {CANNA_FN_TemporalMode	,YomiModeBackup		},
74 
75   {CANNA_FN_Nop			,AlphaNop		},
76   {CANNA_FN_UseOtherKeymap	,UseOtherKeymap		},
77   {CANNA_FN_UserMode		,(int (*) pro((struct _uiContext *)))
78                                  ProcExtraFunc		},
79 
80 #ifndef NO_EXTEND_MENU
81   {CANNA_FN_DefineDicMode	,dicTouroku		},
82   {CANNA_FN_DeleteDicMode	,dicSakujo		},
83   {CANNA_FN_HexMode		,HexMode		},
84   {CANNA_FN_BushuMode		,BushuMode		},
85   {CANNA_FN_RussianMode		,kigoRussia		},
86   {CANNA_FN_GreekMode		,kigoGreek		},
87   {CANNA_FN_LineMode		,kigoKeisen		},
88   {CANNA_FN_SyncDic		,dicSync		},
89   {CANNA_FN_DicMountMode	,dicMount		},
90   {CANNA_FN_ChangeServerMode	,serverChange		},
91   {CANNA_FN_DisconnectServer	,serverFin		},
92   {CANNA_FN_ShowServer		,showServer		},
93   {CANNA_FN_ShowGakushu		,showGakushu		},
94   {CANNA_FN_ShowVersion		,showVersion		},
95   {CANNA_FN_ShowPhonogramFile	,showRomkanaFile	},
96   {CANNA_FN_ShowCannaFile	,showInitFile		},
97   {CANNA_FN_EnterChikujiMode	,chikujiInit		},
98   {CANNA_FN_EnterRenbunMode	,renbunInit		},
99 #endif
100   {DEFAULTBEHAVIOR		,EmptySelfInsert	},
101   {0				,0			},
102 };
103 
104 BYTE empty_kmap[256] =
105 {
106 /* C-@ */       CANNA_FN_SelfInsert,
107 /* C-a */       CANNA_FN_SelfInsert,
108 /* C-b */       CANNA_FN_SelfInsert,
109 /* C-c */       CANNA_FN_SelfInsert,
110 /* C-d */       CANNA_FN_SelfInsert,
111 /* C-e */       CANNA_FN_SelfInsert,
112 /* C-f */       CANNA_FN_SelfInsert,
113 /* C-g */       CANNA_FN_Quit,
114 /* C-h */       CANNA_FN_DeletePrevious,
115 /* C-i */       CANNA_FN_SelfInsert,
116 /* C-j */       CANNA_FN_Kakutei,
117 /* C-k */       CANNA_FN_SelfInsert,
118 /* C-l */       CANNA_FN_SelfInsert,
119 /* C-m */       CANNA_FN_Kakutei,
120 /* C-n */       CANNA_FN_SelfInsert,
121 /* C-o */       CANNA_FN_AlphaMode,
122 /* C-p */       CANNA_FN_SelfInsert,
123 /* C-q */       CANNA_FN_QuotedInsert,
124 /* C-r */       CANNA_FN_SelfInsert,
125 /* C-s */       CANNA_FN_SelfInsert,
126 /* C-t */       CANNA_FN_SelfInsert,
127 /* C-u */       CANNA_FN_SelfInsert,
128 /* C-v */       CANNA_FN_SelfInsert,
129 /* C-w */       CANNA_FN_SelfInsert,
130 /* C-x */       CANNA_FN_SelfInsert,
131 /* C-y */       CANNA_FN_SelfInsert,
132 /* C-z */       CANNA_FN_SelfInsert,
133 /* C-[ */       CANNA_FN_SelfInsert,
134 /* C-\ */       CANNA_FN_SelfInsert,
135 /* C-] */       CANNA_FN_SelfInsert,
136 /* C-^ */       CANNA_FN_SelfInsert,
137 /* C-_ */       CANNA_FN_SelfInsert,
138 /* space */     CANNA_FN_SelfInsert,
139 /* ! */         CANNA_FN_FunctionalInsert,
140 /* " */         CANNA_FN_FunctionalInsert,
141 /* # */         CANNA_FN_FunctionalInsert,
142 /* $ */         CANNA_FN_FunctionalInsert,
143 /* % */         CANNA_FN_FunctionalInsert,
144 /* & */         CANNA_FN_FunctionalInsert,
145 /* ' */         CANNA_FN_FunctionalInsert,
146 /* ( */         CANNA_FN_FunctionalInsert,
147 /* ) */         CANNA_FN_FunctionalInsert,
148 /* * */         CANNA_FN_FunctionalInsert,
149 /* + */         CANNA_FN_FunctionalInsert,
150 /* , */         CANNA_FN_FunctionalInsert,
151 /* - */         CANNA_FN_FunctionalInsert,
152 /* . */         CANNA_FN_FunctionalInsert,
153 /* / */         CANNA_FN_FunctionalInsert,
154 /* 0 */         CANNA_FN_FunctionalInsert,
155 /* 1 */         CANNA_FN_FunctionalInsert,
156 /* 2 */         CANNA_FN_FunctionalInsert,
157 /* 3 */         CANNA_FN_FunctionalInsert,
158 /* 4 */         CANNA_FN_FunctionalInsert,
159 /* 5 */         CANNA_FN_FunctionalInsert,
160 /* 6 */         CANNA_FN_FunctionalInsert,
161 /* 7 */         CANNA_FN_FunctionalInsert,
162 /* 8 */         CANNA_FN_FunctionalInsert,
163 /* 9 */         CANNA_FN_FunctionalInsert,
164 /* : */         CANNA_FN_FunctionalInsert,
165 /* ; */         CANNA_FN_FunctionalInsert,
166 /* < */         CANNA_FN_FunctionalInsert,
167 /* = */         CANNA_FN_FunctionalInsert,
168 /* > */         CANNA_FN_FunctionalInsert,
169 /* ? */         CANNA_FN_FunctionalInsert,
170 /* @ */         CANNA_FN_FunctionalInsert,
171 /* A */         CANNA_FN_FunctionalInsert,
172 /* B */         CANNA_FN_FunctionalInsert,
173 /* C */         CANNA_FN_FunctionalInsert,
174 /* D */         CANNA_FN_FunctionalInsert,
175 /* E */         CANNA_FN_FunctionalInsert,
176 /* F */         CANNA_FN_FunctionalInsert,
177 /* G */         CANNA_FN_FunctionalInsert,
178 /* H */         CANNA_FN_FunctionalInsert,
179 /* I */         CANNA_FN_FunctionalInsert,
180 /* J */         CANNA_FN_FunctionalInsert,
181 /* K */         CANNA_FN_FunctionalInsert,
182 /* L */         CANNA_FN_FunctionalInsert,
183 /* M */         CANNA_FN_FunctionalInsert,
184 /* N */         CANNA_FN_FunctionalInsert,
185 /* O */         CANNA_FN_FunctionalInsert,
186 /* P */         CANNA_FN_FunctionalInsert,
187 /* Q */         CANNA_FN_FunctionalInsert,
188 /* R */         CANNA_FN_FunctionalInsert,
189 /* S */         CANNA_FN_FunctionalInsert,
190 /* T */         CANNA_FN_FunctionalInsert,
191 /* U */         CANNA_FN_FunctionalInsert,
192 /* V */         CANNA_FN_FunctionalInsert,
193 /* W */         CANNA_FN_FunctionalInsert,
194 /* X */         CANNA_FN_FunctionalInsert,
195 /* Y */         CANNA_FN_FunctionalInsert,
196 /* Z */         CANNA_FN_FunctionalInsert,
197 /* [ */         CANNA_FN_FunctionalInsert,
198 /* \ */         CANNA_FN_FunctionalInsert,
199 /* ] */         CANNA_FN_FunctionalInsert,
200 /* ^ */         CANNA_FN_FunctionalInsert,
201 /* _ */         CANNA_FN_FunctionalInsert,
202 /* ` */         CANNA_FN_FunctionalInsert,
203 /* a */         CANNA_FN_FunctionalInsert,
204 /* b */         CANNA_FN_FunctionalInsert,
205 /* c */         CANNA_FN_FunctionalInsert,
206 /* d */         CANNA_FN_FunctionalInsert,
207 /* e */         CANNA_FN_FunctionalInsert,
208 /* f */         CANNA_FN_FunctionalInsert,
209 /* g */         CANNA_FN_FunctionalInsert,
210 /* h */         CANNA_FN_FunctionalInsert,
211 /* i */         CANNA_FN_FunctionalInsert,
212 /* j */         CANNA_FN_FunctionalInsert,
213 /* k */         CANNA_FN_FunctionalInsert,
214 /* l */         CANNA_FN_FunctionalInsert,
215 /* m */         CANNA_FN_FunctionalInsert,
216 /* n */         CANNA_FN_FunctionalInsert,
217 /* o */         CANNA_FN_FunctionalInsert,
218 /* p */         CANNA_FN_FunctionalInsert,
219 /* q */         CANNA_FN_FunctionalInsert,
220 /* r */         CANNA_FN_FunctionalInsert,
221 /* s */         CANNA_FN_FunctionalInsert,
222 /* t */         CANNA_FN_FunctionalInsert,
223 /* u */         CANNA_FN_FunctionalInsert,
224 /* v */         CANNA_FN_FunctionalInsert,
225 /* w */         CANNA_FN_FunctionalInsert,
226 /* x */         CANNA_FN_FunctionalInsert,
227 /* y */         CANNA_FN_FunctionalInsert,
228 /* z */         CANNA_FN_FunctionalInsert,
229 /* { */         CANNA_FN_FunctionalInsert,
230 /* | */         CANNA_FN_FunctionalInsert,
231 /* } */         CANNA_FN_FunctionalInsert,
232 /* ~ */         CANNA_FN_FunctionalInsert,
233 /* DEL */       CANNA_FN_SelfInsert,
234 /* Nfer */      CANNA_FN_Kakutei,
235 /* Xfer */      CANNA_FN_AlphaMode,
236 /* Up */        NONE,
237 /* Left */      NONE,
238 /* Right */     NONE,
239 /* Down */      NONE,
240 /* Insert */    CANNA_FN_KigouMode,
241 /* Rollup */    NONE,
242 /* Rolldown */  NONE,
243 /* Home */      CANNA_FN_ExtendMode,
244 /* Help */      CANNA_FN_ExtendMode,
245 /* KeyPad */    NONE,
246 /* 8c */        NONE,
247 /* 8d */        NONE,
248 /* 8e */        NONE,
249 /* 8f */        NONE,
250 /* S-nfer */    NONE,
251 /* S-xfer */    CANNA_FN_AlphaMode,
252 /* S-up */      NONE,
253 /* S-left */    NONE,
254 /* S-right */   NONE,
255 /* S-down */    NONE,
256 /* C-nfer */    NONE,
257 /* C-xfer */    CANNA_FN_AlphaMode,
258 /* C-up */      NONE,
259 /* C-left */    NONE,
260 /* C-right */   NONE,
261 /* C-down */    NONE,
262 /* 9c */        NONE,
263 /* 9d */        NONE,
264 /* 9e */        NONE,
265 /* 9f */        NONE,
266 /* KANASPACE */ NONE,
267 /* �� */        CANNA_FN_FunctionalInsert,
268 /* �� */        CANNA_FN_FunctionalInsert,
269 /* �� */        CANNA_FN_FunctionalInsert,
270 /* �� */        CANNA_FN_FunctionalInsert,
271 /* �� */        CANNA_FN_FunctionalInsert,
272 /* �� */        CANNA_FN_FunctionalInsert,
273 /* �� */        CANNA_FN_FunctionalInsert,
274 /* �� */        CANNA_FN_FunctionalInsert,
275 /* �� */        CANNA_FN_FunctionalInsert,
276 /* �� */        CANNA_FN_FunctionalInsert,
277 /* �� */        CANNA_FN_FunctionalInsert,
278 /* �� */        CANNA_FN_FunctionalInsert,
279 /* �� */        CANNA_FN_FunctionalInsert,
280 /* �� */        CANNA_FN_FunctionalInsert,
281 /* �� */        CANNA_FN_FunctionalInsert,
282 /* �� */        CANNA_FN_FunctionalInsert,
283 /* �� */        CANNA_FN_FunctionalInsert,
284 /* �� */        CANNA_FN_FunctionalInsert,
285 /* �� */        CANNA_FN_FunctionalInsert,
286 /* �� */        CANNA_FN_FunctionalInsert,
287 /* �� */        CANNA_FN_FunctionalInsert,
288 /* �� */        CANNA_FN_FunctionalInsert,
289 /* �� */        CANNA_FN_FunctionalInsert,
290 /* �� */        CANNA_FN_FunctionalInsert,
291 /* �� */        CANNA_FN_FunctionalInsert,
292 /* �� */        CANNA_FN_FunctionalInsert,
293 /* �� */        CANNA_FN_FunctionalInsert,
294 /* �� */        CANNA_FN_FunctionalInsert,
295 /* �� */        CANNA_FN_FunctionalInsert,
296 /* �� */        CANNA_FN_FunctionalInsert,
297 /* �� */        CANNA_FN_FunctionalInsert,
298 /* �� */        CANNA_FN_FunctionalInsert,
299 /* �� */        CANNA_FN_FunctionalInsert,
300 /* �� */        CANNA_FN_FunctionalInsert,
301 /* �� */        CANNA_FN_FunctionalInsert,
302 /* �� */        CANNA_FN_FunctionalInsert,
303 /* �� */        CANNA_FN_FunctionalInsert,
304 /* �� */        CANNA_FN_FunctionalInsert,
305 /* �� */        CANNA_FN_FunctionalInsert,
306 /* �� */        CANNA_FN_FunctionalInsert,
307 /* �� */        CANNA_FN_FunctionalInsert,
308 /* �� */        CANNA_FN_FunctionalInsert,
309 /* �� */        CANNA_FN_FunctionalInsert,
310 /* �� */        CANNA_FN_FunctionalInsert,
311 /* �� */        CANNA_FN_FunctionalInsert,
312 /* �� */        CANNA_FN_FunctionalInsert,
313 /* �� */        CANNA_FN_FunctionalInsert,
314 /* �� */        CANNA_FN_FunctionalInsert,
315 /* �� */        CANNA_FN_FunctionalInsert,
316 /* �� */        CANNA_FN_FunctionalInsert,
317 /* �� */        CANNA_FN_FunctionalInsert,
318 /* �� */        CANNA_FN_FunctionalInsert,
319 /* �� */        CANNA_FN_FunctionalInsert,
320 /* �� */        CANNA_FN_FunctionalInsert,
321 /* �� */        CANNA_FN_FunctionalInsert,
322 /* �� */        CANNA_FN_FunctionalInsert,
323 /* �� */        CANNA_FN_FunctionalInsert,
324 /* �� */        CANNA_FN_FunctionalInsert,
325 /* �� */        CANNA_FN_FunctionalInsert,
326 /* �� */        CANNA_FN_FunctionalInsert,
327 /* �� */        CANNA_FN_FunctionalInsert,
328 /* �� */        CANNA_FN_FunctionalInsert,
329 /* �� */        CANNA_FN_FunctionalInsert,
330 /* F1 */        NONE,
331 /* F2 */        NONE,
332 /* F3 */        NONE,
333 /* F4 */        NONE,
334 /* F5 */        NONE,
335 /* F6 */        NONE,
336 /* F7 */        NONE,
337 /* F8 */        NONE,
338 /* F9 */        NONE,
339 /* F10 */       NONE,
340 /* ea */        NONE,
341 /* eb */        NONE,
342 /* ec */        NONE,
343 /* ed */        NONE,
344 /* ee */        NONE,
345 /* ef */        NONE,
346 /* PF1 */       NONE,
347 /* PF2 */       NONE,
348 /* PF3 */       NONE,
349 /* PF4 */       NONE,
350 /* PF5 */       NONE,
351 /* PF6 */       NONE,
352 /* PF7 */       NONE,
353 /* PF8 */       NONE,
354 /* PF9 */       NONE,
355 /* PF10 */      NONE,
356 /* fa */        NONE,
357 /* fb */        NONE,
358 /* fc */        NONE,
359 /* fd */        NONE,
360 /* fe */        NONE,
361 /* ff */        NONE,
362 };
363 
364 KanjiModeRec empty_mode = {
365   searchfunc,
366   empty_kmap,
367   CANNA_KANJIMODE_TABLE_SHARED | CANNA_KANJIMODE_EMPTY_MODE,
368   empty_funcs,
369 };
370