Mercurial > hg > xemacs-beta
comparison src/mule-wnnfns.c @ 98:0d2f883870bc r20-1b1
Import from CVS: tag r20-1b1
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:13:56 +0200 |
parents | 1ce6082ce73f |
children | a145efe76779 |
comparison
equal
deleted
inserted
replaced
97:498bf5da1c90 | 98:0d2f883870bc |
---|---|
51 * dict-file-mode: BOOLEAN | 51 * dict-file-mode: BOOLEAN |
52 * hindo-file-mode: BOOLEAN | 52 * hindo-file-mode: BOOLEAN |
53 * pw1: STRING or NIL | 53 * pw1: STRING or NIL |
54 * pw2: STRING or NIL | 54 * pw2: STRING or NIL |
55 * DESCRIPTION: | 55 * DESCRIPTION: |
56 * $B<-=q09:37:18!%$%kL>!"IQEY09:37:18!%$%kL>!"M%@hEY!"<-=q09:37:18!%$%k%b!<%(BI | 56 * $B<-=q%U%!%$%kL>!"IQEY%U%!%$%kL>!"M%@hEY!"<-=q%U%!%$%k%b!<%I(B |
57 * $BIQEY09:37:18!%$%k%b!<%I$G;XDj$7$?<-=q$r/export/willow0/xemacs-20.0-release/editor/src/mule/SCCS/s.mule-wnnfns.cC09:37:18!$KDI2C$9$k!(B# | 57 * $BIQEY%U%!%$%k%b!<%I$G;XDj$7$?<-=q$r%P%C%U%!$KDI2C$9$k!#(B |
58 * pw1, pw2 $B$O<-=q09:37:18!%$%k!"IQEY09:37:18!%$%k$N9%o!<%I!(B# | 58 * pw1, pw2 $B$O<-=q%U%!%$%k!"IQEY%U%!%$%k$N%Q%9%o!<%I!#(B |
59 * | 59 * |
60 * (wnn-server-dict-delete dic-no) | 60 * (wnn-server-dict-delete dic-no) |
61 * dic-no: INTEGER | 61 * dic-no: INTEGER |
62 * RETURNS: $B%(%i!<$N;~(B nil | 62 * RETURNS: $B%(%i!<$N;~(B nil |
63 * DESCRIPTION: dic-no $B$N<-=qHV9f$N<-=q$r!"/export/willow0/xemacs-20.0-release/editor/src/mule/SCCS/s.mule-wnnfns.cC09:37:18!$+$i(B | 63 * DESCRIPTION: dic-no $B$N<-=qHV9f$N<-=q$r!"%P%C%U%!$+$i(B |
64 * $B:o=|$9$k!#(B | 64 * $B:o=|$9$k!#(B |
65 * | 65 * |
66 * (wnn-server-dict-list) | 66 * (wnn-server-dict-list) |
67 * RETURNS: ((dic-no1 file-name1 comment1 word-no1 nice1) | 67 * RETURNS: ((dic-no1 file-name1 comment1 word-no1 nice1) |
68 * (dic-no2 file-name2 comment2 word-no2 nice2)...) | 68 * (dic-no2 file-name2 comment2 word-no2 nice2)...) |
69 * DESCRIPTION: $B/export/willow0/xemacs-20.0-release/editor/src/mule/SCCS/s.mule-wnnfns.cC09:37:18!>e$N<-=q$N%j%9%H$rF@$k!#(B | 69 * DESCRIPTION: $B%P%C%U%!>e$N<-=q$N%j%9%H$rF@$k!#(B |
70 * | 70 * |
71 * (wnn-server-dict-comment dic-no comment) | 71 * (wnn-server-dict-comment dic-no comment) |
72 * RETURNS: $B%(%i!<$N;~(B nil | 72 * RETURNS: $B%(%i!<$N;~(B nil |
73 * DESCRIPTION: dic-no $B$N<-=q$K%3%a%s%H$r$D$1$k!#(B | 73 * DESCRIPTION: dic-no $B$N<-=q$K%3%a%s%H$r$D$1$k!#(B |
74 * | 74 * |
86 * bunsetu-no: INTEGER | 86 * bunsetu-no: INTEGER |
87 * dai: BOOLEAN | 87 * dai: BOOLEAN |
88 * RETURNS: offset | 88 * RETURNS: offset |
89 * DESCRIPTION: | 89 * DESCRIPTION: |
90 * $BJ8@aHV9f$G;XDj$5$l$?J8@a$NA48uJd$r$H$j$@$7(B | 90 * $BJ8@aHV9f$G;XDj$5$l$?J8@a$NA48uJd$r$H$j$@$7(B |
91 * $B!"8=:_$N%*09:37:18;89H$rJV$9!#(B | 91 * $B!"8=:_$N%*%U%;%C%H$rJV$9!#(B |
92 * | 92 * |
93 * (wnn-server-get-zenkouho offset) | 93 * (wnn-server-get-zenkouho offset) |
94 * bunsetu-no: INTEGER | 94 * bunsetu-no: INTEGER |
95 * dai: BOOLEAN | 95 * dai: BOOLEAN |
96 * RETURNS: list of zenkouho | 96 * RETURNS: list of zenkouho |
97 * DESCRIPTION: | 97 * DESCRIPTION: |
98 * $B%*09:37:18;96H$G;XDj$5$l$?8uJd$rF@$k!#(B | 98 * $B%*%U%;%C%H$G;XDj$5$l$?8uJd$rF@$k!#(B |
99 * | 99 * |
100 * (wnn-server-zenkouho-bun) | 100 * (wnn-server-zenkouho-bun) |
101 * RETURNS: INTEGER | 101 * RETURNS: INTEGER |
102 * DESCRIPTION: | 102 * DESCRIPTION: |
103 * $BA48uJd$rI=<($7$F$$$kJ8@aHV9f$rF@$k!#(B | 103 * $BA48uJd$rI=<($7$F$$$kJ8@aHV9f$rF@$k!#(B |
138 * (wnn-bunsetu-kouho-inspect bunsetu-no) | 138 * (wnn-bunsetu-kouho-inspect bunsetu-no) |
139 * bunsetu-no: INTEGER | 139 * bunsetu-no: INTEGER |
140 * RETURNS: (kanji yomi jisho-no serial-no hinsi hindo | 140 * RETURNS: (kanji yomi jisho-no serial-no hinsi hindo |
141 * ima hyoka daihyoka kangovect) | 141 * ima hyoka daihyoka kangovect) |
142 * DESCRIPTION: | 142 * DESCRIPTION: |
143 * $BJ8@a$N?'!9$J>pJs$rJQ49/export/willow0/xemacs-20.0-release/editor/src/mule/SCCS/s.mule-wnnfns.cC09:37:18!$+$i$H$j=P$9!#(B | 143 * $BJ8@a$N?'!9$J>pJs$rJQ49%P%C%U%!$+$i$H$j=P$9!#(B |
144 * | 144 * |
145 * (wnn-server-henkan-quit) | 145 * (wnn-server-henkan-quit) |
146 * RETURNS: BOOLEAN | 146 * RETURNS: BOOLEAN |
147 * DESCRIPTION: | 147 * DESCRIPTION: |
148 * $B2?$b$7$J$$!#(B | 148 * $B2?$b$7$J$$!#(B |
178 * (wnn-server-word-delete dic-no entry) | 178 * (wnn-server-word-delete dic-no entry) |
179 * dic-no: INTEGER | 179 * dic-no: INTEGER |
180 * entry: INTEGER | 180 * entry: INTEGER |
181 * RETURNS: BOOLEAN | 181 * RETURNS: BOOLEAN |
182 * DESCRIPTION: | 182 * DESCRIPTION: |
183 * $B<-=q$+$i%(%s15(B $BSe(Bp $B1995jHV9f$G<($5$l$kC18l$r:o=|$9$k!(B# | 183 * $B<-=q$+$i%(%s%H%jHV9f$G<($5$l$kC18l$r:o=|$9$k!#(B |
184 * | 184 * |
185 * (wnn-server-word-use dic-no entry) | 185 * (wnn-server-word-use dic-no entry) |
186 * dic-no: INTEGER | 186 * dic-no: INTEGER |
187 * entry: INTEGER | 187 * entry: INTEGER |
188 * RETURNS: BOOLEAN | 188 * RETURNS: BOOLEAN |
189 * DESCRIPTION: | 189 * DESCRIPTION: |
190 * $B<-=q$+$i%(%s15(B $BSe(Bp $B1995jHV9f$G<($5$l$kC18l$NM-8z!?L58z$r1(B5 $BSe(Bp $B19950%k$9$k!(B# | 190 * $B<-=q$+$i%(%s%H%jHV9f$G<($5$l$kC18l$NM-8z!?L58z$r%H%0%k$9$k!#(B |
191 * | 191 * |
192 * (wnn-server-word-info dic-no entry) | 192 * (wnn-server-word-info dic-no entry) |
193 * dic-no: INTEGER | 193 * dic-no: INTEGER |
194 * entry: INTEGER | 194 * entry: INTEGER |
195 * RETURNS: (yomi kanji comment hindo hinsi) | 195 * RETURNS: (yomi kanji comment hindo hinsi) |
196 * DESCRIPTION: | 196 * DESCRIPTION: |
197 * $B<-=q$+$i%(%s15(B $BSe(Bp $B1995jHV9f$G<($5$l$kC18l$N>pJs$rF@$k!(B# | 197 * $B<-=q$+$i%(%s%H%jHV9f$G<($5$l$kC18l$N>pJs$rF@$k!#(B |
198 * | 198 * |
199 * (wnn-server-word-hindo-set dic-no entry hindo) | 199 * (wnn-server-word-hindo-set dic-no entry hindo) |
200 * dic-no: INTEGER | 200 * dic-no: INTEGER |
201 * entry: INTEGER | 201 * entry: INTEGER |
202 * hindo: INTEGER | 202 * hindo: INTEGER |
203 * RETURNS: BOOLEAN | 203 * RETURNS: BOOLEAN |
204 * DESCRIPTION: | 204 * DESCRIPTION: |
205 * $B<-=q$+$i%(%s15(B $BSe(Bp $B1995jHV9f$G<($5$l$kC18l$NIQEY$r@_Dj$9$k!(B# | 205 * $B<-=q$+$i%(%s%H%jHV9f$G<($5$l$kC18l$NIQEY$r@_Dj$9$k!#(B |
206 * | 206 * |
207 * (wnn-server-word-search yomi) | 207 * (wnn-server-word-search yomi) |
208 * yomi: STRING | 208 * yomi: STRING |
209 * RETURNS: a LIST of dict-joho | 209 * RETURNS: a LIST of dict-joho |
210 * DESCRIPTION: | 210 * DESCRIPTION: |
211 * $BA4$F$N<-=q$+$iC18l8!:w$r9T$J$&!#(B | 211 * $BA4$F$N<-=q$+$iC18l8!:w$r9T$J$&!#(B |
212 * | 212 * |
213 * (wnn-server-dict-save) | 213 * (wnn-server-dict-save) |
214 * RETURNS: BOOLEAN | 214 * RETURNS: BOOLEAN |
215 * DESCRIPTION: | 215 * DESCRIPTION: |
216 * $BA4$F$N<-=q$HIQEY09:37:18!%$%k$r%;!<%V$9$k!(B# | 216 * $BA4$F$N<-=q$HIQEY%U%!%$%k$r%;!<%V$9$k!#(B |
217 * | 217 * |
218 * (wnn-server-get-param) | 218 * (wnn-server-get-param) |
219 * RETURNS: (n nsho p1 p2 p3 ... p15) | 219 * RETURNS: (n nsho p1 p2 p3 ... p15) |
220 * DESCRIPTION: $BJQ49i%a!<%?$rF@$k!(B# | 220 * DESCRIPTION: $BJQ49%Q%i%a!<%?$rF@$k!#(B |
221 * | 221 * |
222 * (wnn-server-set-param n sho p1 ... p15) | 222 * (wnn-server-set-param n sho p1 ... p15) |
223 * RETURNS: $B%(%i!<$N;~(B nil | 223 * RETURNS: $B%(%i!<$N;~(B nil |
224 * DESCRIPTION: $BJQ49i%a!<%?$r@_Dj$9$k!(B# | 224 * DESCRIPTION: $BJQ49%Q%i%a!<%?$r@_Dj$9$k!#(B |
225 * | 225 * |
226 * (wnn-server-get-msg error-no) | 226 * (wnn-server-get-msg error-no) |
227 * RETURNS: $B%(%i!<%a225;!<%8(B | 227 * RETURNS: $B%(%i!<%a225;!<%8(B |
228 * DESCRIPTION: $B%(%i!<HV9f$+$i%a226;!<%8$rF@$k!#(B | 228 * DESCRIPTION: $B%(%i!<HV9f$+$i%a%C%;!<%8$rF@$k!#(B |
229 * | 229 * |
230 * (wnn-server-fuzokugo-set fname) | 230 * (wnn-server-fuzokugo-set fname) |
231 * RETURNS: $B%(%i!<$N;~(B nil | 231 * RETURNS: $B%(%i!<$N;~(B nil |
232 * DESCRIPTION: $B/export/willow0/xemacs-20.0-release/editor/src/mule/SCCS/s.mule-wnnfns.cC09:37:18!$KImB08l09:37:18!%$%k$rFI$_9~$`!(B# | 232 * DESCRIPTION: $B%P%C%U%!$KImB08l%U%!%$%k$rFI$_9~$`!#(B |
233 * | 233 * |
234 * (wnn-server-fuzokugo-get) | 234 * (wnn-server-fuzokugo-get) |
235 * RETURNS: $B09:37:18!%$%kL(B> | 235 * RETURNS: $B%U%!%$%kL>(B |
236 * DESCRIPTION: $B/export/willow0/xemacs-20.0-release/editor/src/mule/SCCS/s.mule-wnnfns.cC09:37:18!$NImB08l09:37:18!%$%kL>$rF@$k!(B# | 236 * DESCRIPTION: $B%P%C%U%!$NImB08l%U%!%$%kL>$rF@$k!#(B |
237 * | 237 * |
238 * (wnn-server-isconnect) | 238 * (wnn-server-isconnect) |
239 * RETURNS: $B%3mule-wnnfns.c/%H$7$F$l$P(B t, $B$7$F$J$1$l$P(B nil | 239 * RETURNS: $B%3%M%/%H$7$F$l$P(B t, $B$7$F$J$1$l$P(B nil |
240 * DESCRIPTION: $B%5!<%P$H7Q$C$F$$$k$+D4$Y$k!#(B | 240 * DESCRIPTION: $B%5!<%P$H7Q$C$F$$$k$+D4$Y$k!#(B |
241 * | 241 * |
242 * (wnn-server-hinsi-dicts hinsi-no) | 242 * (wnn-server-hinsi-dicts hinsi-no) |
243 * RETURNS: (dic-no1 dic-no2 ...) | 243 * RETURNS: (dic-no1 dic-no2 ...) |
244 * DESCRIPTION: hinsi-no $B$NIJ;l$,EPO?$G$-$k<-=q$N%j%9%H$rF@$k!#(B | 244 * DESCRIPTION: hinsi-no $B$NIJ;l$,EPO?$G$-$k<-=q$N%j%9%H$rF@$k!#(B |
268 | 268 |
269 #include "buffer.h" | 269 #include "buffer.h" |
270 #include "window.h" | 270 #include "window.h" |
271 | 271 |
272 #include "commonhd.h" | 272 #include "commonhd.h" |
273 #include "mule-charset.h" | |
273 #include "jllib.h" | 274 #include "jllib.h" |
274 #include "cplib.h" | 275 #include "cplib.h" |
275 | 276 |
276 /* UCHAR $B$,Fs=EDj5A$5$l$k$N$G(B */ | 277 /* UCHAR $B$,Fs=EDj5A$5$l$k$N$G(B */ |
277 #define _UCHAR_T | 278 #define _UCHAR_T |
281 #define WNNSERVER_J 0 | 282 #define WNNSERVER_J 0 |
282 #define WNNSERVER_C 1 | 283 #define WNNSERVER_C 1 |
283 #define WNNSERVER_T 2 | 284 #define WNNSERVER_T 2 |
284 #define WNNSERVER_K 3 | 285 #define WNNSERVER_K 3 |
285 | 286 |
287 void w2m (w_char *wp, unsigned char *mp, unsigned char lb); | |
288 void m2w (unsigned char *mp, w_char *wp); | |
289 void w2y (w_char *w); | |
290 void c2m (unsigned char *cp, unsigned char *mp, unsigned char lb); | |
291 static void puts2 (char *s); | |
292 static int yes_or_no (unsigned char *s); | |
293 | |
286 static struct wnn_buf *wnnfns_buf[NSERVER]; | 294 static struct wnn_buf *wnnfns_buf[NSERVER]; |
287 static struct wnn_env *wnnfns_env_norm[NSERVER]; | 295 static struct wnn_env *wnnfns_env_norm[NSERVER]; |
288 static struct wnn_env *wnnfns_env_rev[NSERVER]; | 296 static struct wnn_env *wnnfns_env_rev[NSERVER]; |
289 static int wnnfns_norm; | 297 static int wnnfns_norm; |
290 static unsigned char lb_wnn_server_type[NSERVER] = | 298 static unsigned char lb_wnn_server_type[NSERVER] = |
291 {LEADING_BYTE_JP, LEADING_BYTE_CN, LEADING_BYTE_INV, LEADING_BYTE_KR}; | 299 {LEADING_BYTE_JAPANESE_JISX0208, LEADING_BYTE_CHINESE_GB2312, LEADING_BYTE_THAI_TIS620, LEADING_BYTE_KOREAN_KSC5601}; |
292 | 300 |
293 /* Lisp Variables and Constants Definition */ | 301 /* Lisp Variables and Constants Definition */ |
294 Lisp_Object Qjserver; | 302 Lisp_Object Qjserver; |
295 Lisp_Object Qcserver; | 303 Lisp_Object Qcserver; |
296 /*Lisp_Object Qtserver;*/ | 304 /*Lisp_Object Qtserver;*/ |
297 Lisp_Object Qkserver; | 305 Lisp_Object Qkserver; |
298 Lisp_Object Qwnn_no_uniq; | 306 Lisp_Object Qwnn_no_uniq; |
299 Lisp_Object Qwnn_uniq; | 307 Lisp_Object Qwnn_uniq; |
300 Lisp_Object Qwnn_uniq_kanji; | 308 Lisp_Object Qwnn_uniq_kanji; |
309 Lisp_Object Qwnn_n, Qwnn_nsho, Qwnn_hindo, Qwnn_len, Qwnn_jiri, Qwnn_flag; | |
310 Lisp_Object Qwnn_jisho, Qwnn_sbn, Qwnn_dbn_len, Qwnn_sbn_cnt, Qwnn_suuji; | |
311 Lisp_Object Qwnn_kana, Qwnn_eisuu, Qwnn_kigou, Qwnn_toji_kakko, Qwnn_fuzokogo, Qwnn_kaikakko; | |
301 Lisp_Object Vwnn_server_type; | 312 Lisp_Object Vwnn_server_type; |
302 Lisp_Object Vcwnn_zhuyin; | 313 Lisp_Object Vcwnn_zhuyin; |
303 Lisp_Object Vwnnenv_sticky; | 314 Lisp_Object Vwnnenv_sticky; |
304 Lisp_Object Vwnn_uniq_level; | 315 Lisp_Object Vwnn_uniq_level; |
305 int lb_sisheng; | 316 int lb_sisheng; |
311 DEFUN ("wnn-server-open", Fwnn_open, 2, 2, 0, /* | 322 DEFUN ("wnn-server-open", Fwnn_open, 2, 2, 0, /* |
312 Connect to jserver of host HNAME, make an environment with | 323 Connect to jserver of host HNAME, make an environment with |
313 login name LNAME in the server. | 324 login name LNAME in the server. |
314 Return nil if error occurs | 325 Return nil if error occurs |
315 */ | 326 */ |
316 (hname, lname)) | 327 (hname, lname)) |
317 { | 328 { |
318 char envname[32]; | 329 char envname[32]; |
319 char langname[32]; | 330 char langname[32]; |
320 char hostname[32]; | 331 char hostname[32]; |
321 int snum; | 332 int snum; |
337 */ | 348 */ |
338 case WNNSERVER_K: | 349 case WNNSERVER_K: |
339 strcpy (langname, "ko_KR"); | 350 strcpy (langname, "ko_KR"); |
340 break; | 351 break; |
341 } | 352 } |
342 strncpy (envname, XSTRING (lname)->data, 32); | 353 strncpy (envname, XSTRING (lname)->_data, 32); |
343 if (NILP(hname)) strcpy (hostname, ""); | 354 if (EQ(hname, Qnil)) strcpy (hostname, ""); |
344 else | 355 else |
345 { | 356 { |
346 CHECK_STRING (hname); | 357 CHECK_STRING (hname); |
347 strncpy (hostname, XSTRING (hname)->data, 32); | 358 strncpy (hostname, XSTRING (hname)->_data, 32); |
348 } | 359 } |
349 CHECK_STRING (lname); | 360 CHECK_STRING (lname); |
350 if (!(wnnfns_buf[snum] = jl_open_lang (envname, hostname, langname, | 361 if (!(wnnfns_buf[snum] = jl_open_lang (envname, hostname, langname, |
351 0, 0, 0, EGG_TIMEOUT))) | 362 0, 0, 0, EGG_TIMEOUT))) |
352 { | 363 { |
370 | 381 |
371 DEFUN ("wnn-server-close", Fwnn_close, 0, 0, 0, /* | 382 DEFUN ("wnn-server-close", Fwnn_close, 0, 0, 0, /* |
372 Close the connection to jserver, Dictionary and friquency files | 383 Close the connection to jserver, Dictionary and friquency files |
373 are not saved. | 384 are not saved. |
374 */ | 385 */ |
375 ()) | 386 ()) |
376 { | 387 { |
377 int snum; | 388 int snum; |
378 if ((snum = check_wnn_server_type ()) == -1) return Qnil; | 389 if ((snum = check_wnn_server_type ()) == -1) return Qnil; |
379 if (!wnnfns_buf[snum]) return Qnil; | 390 if (!wnnfns_buf[snum]) return Qnil; |
380 if (wnnfns_env_norm[snum]) | 391 if (wnnfns_env_norm[snum]) |
381 { | 392 { |
382 if (NILP(Vwnnenv_sticky)) jl_env_un_sticky_e (wnnfns_env_norm[snum]); | 393 if (EQ(Vwnnenv_sticky, Qnil)) jl_env_un_sticky_e (wnnfns_env_norm[snum]); |
383 else jl_env_sticky_e (wnnfns_env_norm[snum]); | 394 else jl_env_sticky_e (wnnfns_env_norm[snum]); |
384 jl_disconnect (wnnfns_env_norm[snum]); | 395 jl_disconnect (wnnfns_env_norm[snum]); |
385 } | 396 } |
386 if (wnnfns_env_rev[snum]) | 397 if (wnnfns_env_rev[snum]) |
387 { | 398 { |
388 if (NILP(Vwnnenv_sticky)) jl_env_un_sticky_e (wnnfns_env_rev[snum]); | 399 if (EQ(Vwnnenv_sticky, Qnil)) jl_env_un_sticky_e (wnnfns_env_rev[snum]); |
389 else jl_env_sticky_e (wnnfns_env_rev[snum]); | 400 else jl_env_sticky_e (wnnfns_env_rev[snum]); |
390 jl_disconnect (wnnfns_env_rev[snum]); | 401 jl_disconnect (wnnfns_env_rev[snum]); |
391 } | 402 } |
392 jl_env_set (wnnfns_buf[snum], 0); | 403 jl_env_set (wnnfns_buf[snum], 0); |
393 jl_close (wnnfns_buf[snum]); | 404 jl_close (wnnfns_buf[snum]); |
399 DEFUN ("wnn-server-dict-add", Fwnn_dict_add, 5, MANY, 0, /* | 410 DEFUN ("wnn-server-dict-add", Fwnn_dict_add, 5, MANY, 0, /* |
400 Add dictionary specified by DICT-FILE-NAME, FREQ-FILE-NAME, | 411 Add dictionary specified by DICT-FILE-NAME, FREQ-FILE-NAME, |
401 PRIORITY, DICT-FILE-MODE, FREQ-FILE-MODE. | 412 PRIORITY, DICT-FILE-MODE, FREQ-FILE-MODE. |
402 Specify password files of dictionary and frequency, PW1 and PW2, if needed. | 413 Specify password files of dictionary and frequency, PW1 and PW2, if needed. |
403 */ | 414 */ |
404 (int nargs, Lisp_Object *args)) | 415 (int nargs, Lisp_Object *args)) |
405 { | 416 { |
406 static int yes_or_no (); | |
407 static void puts2 (); | |
408 struct gcpro gcpro1; | 417 struct gcpro gcpro1; |
409 int snum; | 418 int snum; |
410 CHECK_STRING (args[0]); | 419 CHECK_STRING (args[0]); |
411 CHECK_STRING (args[1]); | 420 CHECK_STRING (args[1]); |
412 CHECK_INT (args[2]); | 421 CHECK_INT (args[2]); |
413 if (! NILP(args[5])) CHECK_STRING (args[5]); | 422 if (!EQ(args[5], Qnil)) CHECK_STRING (args[5]); |
414 if (! NILP(args[6])) CHECK_STRING (args[6]); | 423 if (!EQ(args[6], Qnil)) CHECK_STRING (args[6]); |
415 if ((snum = check_wnn_server_type ()) == -1) return Qnil; | 424 if ((snum = check_wnn_server_type ()) == -1) return Qnil; |
416 if (!wnnfns_buf[snum]) return Qnil; | 425 if (!wnnfns_buf[snum]) return Qnil; |
417 GCPRO1 (*args); | 426 GCPRO1 (*args); |
418 gcpro1.nvars = nargs; | 427 gcpro1.nvars = nargs; |
419 if (jl_dic_add (wnnfns_buf[snum], | 428 if (jl_dic_add (wnnfns_buf[snum], |
420 XSTRING (args[0])->data, | 429 XSTRING (args[0])->_data, |
421 XSTRING (args[1])->data, | 430 XSTRING (args[1])->_data, |
422 wnnfns_norm ? WNN_DIC_ADD_NOR : WNN_DIC_ADD_REV, | 431 wnnfns_norm ? WNN_DIC_ADD_NOR : WNN_DIC_ADD_REV, |
423 XINT (args[2]), | 432 XINT (args[2]), |
424 (NILP(args[3])) ? WNN_DIC_RDONLY : WNN_DIC_RW, | 433 (EQ(args[3], Qnil)) ? WNN_DIC_RDONLY : WNN_DIC_RW, |
425 (NILP(args[4])) ? WNN_DIC_RDONLY : WNN_DIC_RW, | 434 (EQ(args[4], Qnil)) ? WNN_DIC_RDONLY : WNN_DIC_RW, |
426 (NILP(args[5])) ? 0 : XSTRING (args[5])->data, | 435 (EQ(args[5], Qnil)) ? 0 : XSTRING (args[5])->_data, |
427 (NILP(args[6])) ? 0 : XSTRING (args[6])->data, | 436 (EQ(args[6], Qnil)) ? 0 : XSTRING (args[6])->_data, |
428 yes_or_no, | 437 yes_or_no, |
429 puts2 ) < 0) | 438 puts2 ) < 0) |
430 { | 439 { |
431 UNGCPRO; | 440 UNGCPRO; |
432 return Qnil; | 441 return Qnil; |
436 } | 445 } |
437 | 446 |
438 DEFUN ("wnn-server-dict-delete", Fwnn_dict_delete, 1, 1, 0, /* | 447 DEFUN ("wnn-server-dict-delete", Fwnn_dict_delete, 1, 1, 0, /* |
439 Remove dictionary specified by DIC-NUMBER from buffer. | 448 Remove dictionary specified by DIC-NUMBER from buffer. |
440 */ | 449 */ |
441 (dicno)) | 450 (dicno)) |
442 { | 451 { |
443 int no; | 452 int no; |
444 int snum; | 453 int snum; |
445 CHECK_INT (dicno); | 454 CHECK_INT (dicno); |
446 if ((snum = check_wnn_server_type ()) == -1) return Qnil; | 455 if ((snum = check_wnn_server_type ()) == -1) return Qnil; |
451 } | 460 } |
452 | 461 |
453 DEFUN ("wnn-server-dict-list", Fwnn_dict_list, 0, 0, 0, /* | 462 DEFUN ("wnn-server-dict-list", Fwnn_dict_list, 0, 0, 0, /* |
454 Return information of dictionaries. | 463 Return information of dictionaries. |
455 */ | 464 */ |
456 ()) | 465 ()) |
457 { | 466 { |
458 WNN_DIC_INFO *dicinfo; | 467 WNN_DIC_INFO *dicinfo; |
459 int cnt, i; | 468 int cnt, i; |
460 unsigned char comment[1024]; | 469 unsigned char comment[1024]; |
461 Lisp_Object val; | 470 Lisp_Object val; |
487 } | 496 } |
488 | 497 |
489 DEFUN ("wnn-server-dict-comment", Fwnn_dict_comment, 2, 2, 0, /* | 498 DEFUN ("wnn-server-dict-comment", Fwnn_dict_comment, 2, 2, 0, /* |
490 Set comment to dictionary specified by DIC-NUMBER. | 499 Set comment to dictionary specified by DIC-NUMBER. |
491 Comment string COMMENT | 500 Comment string COMMENT |
492 */ | 501 */ |
493 (dicno, comment)) | 502 (dicno, comment)) |
494 { | 503 { |
495 w_char wbuf[512]; | 504 w_char wbuf[512]; |
496 int snum; | 505 int snum; |
497 CHECK_INT (dicno); | 506 CHECK_INT (dicno); |
498 CHECK_STRING (comment); | 507 CHECK_STRING (comment); |
499 if ((snum = check_wnn_server_type ()) == -1) return Qnil; | 508 if ((snum = check_wnn_server_type ()) == -1) return Qnil; |
500 if (!wnnfns_buf[snum]) return Qnil; | 509 if (!wnnfns_buf[snum]) return Qnil; |
501 m2w (XSTRING (comment)->data, wbuf); | 510 m2w (XSTRING (comment)->_data, wbuf); |
502 if (jl_dic_comment_set (wnnfns_buf[snum], XINT (dicno), wbuf) < 0) | 511 if (jl_dic_comment_set (wnnfns_buf[snum], XINT (dicno), wbuf) < 0) |
503 return Qnil; | 512 return Qnil; |
504 return Qt; | 513 return Qt; |
505 } | 514 } |
506 | 515 |
507 | 516 |
508 DEFUN ("wnn-server-set-rev", Fwnn_set_rev, 1, 1, 0, /* | 517 DEFUN ("wnn-server-set-rev", Fwnn_set_rev, 1, 1, 0, /* |
509 Switch the translation mode to normal if T, or reverse if NIL. | 518 Switch the translation mode to normal if T, or reverse if NIL. |
510 */ | 519 */ |
511 (rev)) | 520 (rev)) |
512 { | 521 { |
513 int snum; | 522 int snum; |
514 if ((snum = check_wnn_server_type ()) == -1) return Qnil; | 523 if ((snum = check_wnn_server_type ()) == -1) return Qnil; |
515 if (NILP(rev)) | 524 if (EQ(rev, Qnil)) |
516 { | 525 { |
517 if ((!wnnfns_buf[snum]) || (!wnnfns_env_norm[snum])) return; | 526 if ((!wnnfns_buf[snum]) || (!wnnfns_env_norm[snum])) return; |
518 jl_env_set (wnnfns_buf[snum], wnnfns_env_norm[snum]); | 527 jl_env_set (wnnfns_buf[snum], wnnfns_env_norm[snum]); |
519 wnnfns_norm = 1; | 528 wnnfns_norm = 1; |
520 } | 529 } |
527 } | 536 } |
528 | 537 |
529 DEFUN ("wnn-server-henkan-begin", Fwnn_begin_henkan, 1, 1, 0, /* | 538 DEFUN ("wnn-server-henkan-begin", Fwnn_begin_henkan, 1, 1, 0, /* |
530 Translate YOMI string to kanji. Retuen the number of bunsetsu. | 539 Translate YOMI string to kanji. Retuen the number of bunsetsu. |
531 */ | 540 */ |
532 (hstring)) | 541 (hstring)) |
533 { | 542 { |
534 int cnt; | 543 int cnt; |
535 w_char wbuf[5000]; | 544 w_char wbuf[5000]; |
536 int snum; | 545 int snum; |
537 CHECK_STRING (hstring); | 546 CHECK_STRING (hstring); |
538 if ((snum = check_wnn_server_type ()) == -1) return Qnil; | 547 if ((snum = check_wnn_server_type ()) == -1) return Qnil; |
539 if (!wnnfns_buf[snum]) return Qnil; | 548 if (!wnnfns_buf[snum]) return Qnil; |
540 m2w (XSTRING (hstring)->data, wbuf); | 549 m2w (XSTRING (hstring)->_data, wbuf); |
541 if (snum == WNNSERVER_C) | 550 if (snum == WNNSERVER_C) |
542 w2y (wbuf); | 551 w2y (wbuf); |
543 | 552 |
544 #ifdef WNN6 | 553 #ifdef WNN6 |
545 if ((cnt = jl_fi_ren_conv (wnnfns_buf[snum], wbuf, 0, -1, WNN_USE_MAE)) < 0) | 554 if ((cnt = jl_fi_ren_conv (wnnfns_buf[snum], wbuf, 0, -1, WNN_USE_MAE)) < 0) |
546 return Qnil; | 555 return Qnil; |
547 #else | 556 #else |
548 if ((cnt = jl_ren_conv (wnnfns_buf[snum], wbuf, 0, -1, WNN_USE_MAE)) < 0) | 557 if ((cnt = jl_ren_conv (wnnfns_buf[snum], wbuf, 0, -1, WNN_USE_MAE)) < 0) |
549 return Qnil; | 558 return Qnil; |
559 #endif | |
550 return make_int (cnt); | 560 return make_int (cnt); |
551 } | 561 } |
552 | 562 |
553 DEFUN ("wnn-server-zenkouho", Fwnn_zenkouho, 2, 2, 0, /* | 563 DEFUN ("wnn-server-zenkouho", Fwnn_zenkouho, 2, 2, 0, /* |
554 Get zenkouho at BUNSETSU-NUMBER. Second argument DAI is T | 564 Get zenkouho at BUNSETSU-NUMBER. Second argument DAI is T |
555 if dai-bunsetsu, NIL if sho-bunsetsu. Return the current offset of zenkouho. | 565 if dai-bunsetsu, NIL if sho-bunsetsu. Return the current offset of zenkouho. |
556 */ | 566 */ |
557 (bunNo, dai)) | 567 (bunNo, dai)) |
558 { | 568 { |
559 int no, offset; | 569 int no, offset; |
560 int snum; | 570 int snum; |
561 int uniq_level; | 571 int uniq_level; |
562 CHECK_INT (bunNo); | 572 CHECK_INT (bunNo); |
563 if ((snum = check_wnn_server_type ()) == -1) return Qnil; | 573 if ((snum = check_wnn_server_type ()) == -1) return Qnil; |
564 if (!wnnfns_buf[snum]) return Qnil; | 574 if (!wnnfns_buf[snum]) return Qnil; |
565 no = XINT (bunNo); | 575 no = XINT (bunNo); |
566 if (Vwnn_uniq_level == Qwnn_no_uniq) uniq_level = WNN_NO_UNIQ; | 576 if (EQ(Vwnn_uniq_level, Qwnn_no_uniq)) uniq_level = WNN_NO_UNIQ; |
567 else if (Vwnn_uniq_level == Qwnn_uniq) uniq_level = WNN_UNIQ; | 577 else if (EQ(Vwnn_uniq_level, Qwnn_uniq)) uniq_level = WNN_UNIQ; |
568 else uniq_level = WNN_UNIQ_KNJ; | 578 else uniq_level = WNN_UNIQ_KNJ; |
569 if (NILP(dai)) | 579 if (EQ(dai, Qnil)) |
570 { | 580 { |
571 if (offset = jl_zenkouho (wnnfns_buf[snum],no,WNN_USE_MAE, uniq_level) < 0) | 581 if (offset = jl_zenkouho (wnnfns_buf[snum],no,WNN_USE_MAE, uniq_level) < 0) |
572 return Qnil; | 582 return Qnil; |
573 } | 583 } |
574 else | 584 else |
582 | 592 |
583 | 593 |
584 DEFUN ("wnn-server-get-zenkouho", Fwnn_get_zenkouho, 1, 1, 0, /* | 594 DEFUN ("wnn-server-get-zenkouho", Fwnn_get_zenkouho, 1, 1, 0, /* |
585 Get kanji string of KOUHO-NUMBER | 595 Get kanji string of KOUHO-NUMBER |
586 */ | 596 */ |
587 (kouhoNo)) | 597 (kouhoNo)) |
588 { | 598 { |
589 unsigned char kanji_buf[256]; | 599 unsigned char kanji_buf[256]; |
590 w_char wbuf[256]; | 600 w_char wbuf[256]; |
591 int snum; | 601 int snum; |
592 unsigned char lb; | 602 unsigned char lb; |
600 } | 610 } |
601 | 611 |
602 DEFUN ("wnn-server-zenkouho-bun", Fwnn_zenkouho_bun, 0, 0, 0, /* | 612 DEFUN ("wnn-server-zenkouho-bun", Fwnn_zenkouho_bun, 0, 0, 0, /* |
603 For Wnn. | 613 For Wnn. |
604 */ | 614 */ |
605 ()) | 615 ()) |
606 { | 616 { |
607 int snum; | 617 int snum; |
608 if ((snum = check_wnn_server_type ()) == -1) return Qnil; | 618 if ((snum = check_wnn_server_type ()) == -1) return Qnil; |
609 return make_int (jl_zenkouho_bun (wnnfns_buf[snum])); | 619 return make_int (jl_zenkouho_bun (wnnfns_buf[snum])); |
610 } | 620 } |
611 | 621 |
612 DEFUN ("wnn-server-zenkouho-suu", Fwnn_zenkouho_suu, 0, 0, 0, /* | 622 DEFUN ("wnn-server-zenkouho-suu", Fwnn_zenkouho_suu, 0, 0, 0, /* |
613 Return the number of zen kouho | 623 Return the number of zen kouho |
614 */ | 624 */ |
615 ()) | 625 ()) |
616 { | 626 { |
617 int snum; | 627 int snum; |
618 if ((snum = check_wnn_server_type ()) == -1) return Qnil; | 628 if ((snum = check_wnn_server_type ()) == -1) return Qnil; |
619 return make_int (jl_zenkouho_suu (wnnfns_buf[snum])); | 629 return make_int (jl_zenkouho_suu (wnnfns_buf[snum])); |
620 } | 630 } |
621 | 631 |
622 DEFUN ("wnn-server-dai-top", Fwnn_dai_top, 1, 1, 0, /* | 632 DEFUN ("wnn-server-dai-top", Fwnn_dai_top, 1, 1, 0, /* |
623 Return T if bunsetsu BUN-NUMBER is dai-bunsetsu. | 633 Return T if bunsetsu BUN-NUMBER is dai-bunsetsu. |
624 */ | 634 */ |
625 (bunNo)) | 635 (bunNo)) |
626 { | 636 { |
627 int snum; | 637 int snum; |
628 CHECK_INT (bunNo); | 638 CHECK_INT (bunNo); |
629 if ((snum = check_wnn_server_type ()) == -1) return Qnil; | 639 if ((snum = check_wnn_server_type ()) == -1) return Qnil; |
630 if (!wnnfns_buf[snum]) return Qnil; | 640 if (!wnnfns_buf[snum]) return Qnil; |
633 } | 643 } |
634 | 644 |
635 DEFUN ("wnn-server-dai-end", Fwnn_dai_end, 1, 1, 0, /* | 645 DEFUN ("wnn-server-dai-end", Fwnn_dai_end, 1, 1, 0, /* |
636 Return the bunsetu number of the next dai-bunsetsu after BUN-NUMBER. | 646 Return the bunsetu number of the next dai-bunsetsu after BUN-NUMBER. |
637 */ | 647 */ |
638 (bunNo)) | 648 (bunNo)) |
639 { | 649 { |
640 int snum; | 650 int snum; |
641 CHECK_INT (bunNo); | 651 CHECK_INT (bunNo); |
642 if ((snum = check_wnn_server_type ()) == -1) return Qnil; | 652 if ((snum = check_wnn_server_type ()) == -1) return Qnil; |
643 if (!wnnfns_buf[snum]) return Qnil; | 653 if (!wnnfns_buf[snum]) return Qnil; |
645 } | 655 } |
646 | 656 |
647 DEFUN ("wnn-server-henkan-kakutei", Fwnn_kakutei, 2, 2, 0, /* | 657 DEFUN ("wnn-server-henkan-kakutei", Fwnn_kakutei, 2, 2, 0, /* |
648 Set candidate with OFFSET, DAI. DAI is T if dai-bunsetsu. | 658 Set candidate with OFFSET, DAI. DAI is T if dai-bunsetsu. |
649 */ | 659 */ |
650 (offset, dai)) | 660 (offset, dai)) |
651 { | 661 { |
652 int snum; | 662 int snum; |
653 CHECK_INT (offset); | 663 CHECK_INT (offset); |
654 if ((snum = check_wnn_server_type ()) == -1) return Qnil; | 664 if ((snum = check_wnn_server_type ()) == -1) return Qnil; |
655 if (!wnnfns_buf[snum]) return Qnil; | 665 if (!wnnfns_buf[snum]) return Qnil; |
656 if (NILP(dai)) | 666 if (EQ(dai, Qnil)) |
657 { | 667 { |
658 if (jl_set_jikouho (wnnfns_buf[snum], XINT (offset)) < 0) return Qnil; | 668 if (jl_set_jikouho (wnnfns_buf[snum], XINT (offset)) < 0) return Qnil; |
659 } | 669 } |
660 else | 670 else |
661 { | 671 { |
666 } | 676 } |
667 | 677 |
668 DEFUN ("wnn-server-bunsetu-henkou", Fwnn_bunsetu_henkou, 3, 3, 0, /* | 678 DEFUN ("wnn-server-bunsetu-henkou", Fwnn_bunsetu_henkou, 3, 3, 0, /* |
669 Change length of BUN-NUMBER bunsetu to LEN. DAI is T if dai-bunsetsu. | 679 Change length of BUN-NUMBER bunsetu to LEN. DAI is T if dai-bunsetsu. |
670 */ | 680 */ |
671 (bunNo, len, dai)) | 681 (bunNo, len, dai)) |
672 { | 682 { |
673 Lisp_Object val; | 683 Lisp_Object val; |
674 int cnt, no; | 684 int cnt, no; |
675 int snum; | 685 int snum; |
676 CHECK_INT (bunNo); | 686 CHECK_INT (bunNo); |
678 if ((snum = check_wnn_server_type ()) == -1) return Qnil; | 688 if ((snum = check_wnn_server_type ()) == -1) return Qnil; |
679 if (!wnnfns_buf[snum]) return Qnil; | 689 if (!wnnfns_buf[snum]) return Qnil; |
680 no = XINT (bunNo); | 690 no = XINT (bunNo); |
681 #ifdef WNN6 | 691 #ifdef WNN6 |
682 if ((cnt = jl_fi_nobi_conv (wnnfns_buf[snum], no, XINT(len), -1, WNN_USE_MAE, | 692 if ((cnt = jl_fi_nobi_conv (wnnfns_buf[snum], no, XINT(len), -1, WNN_USE_MAE, |
683 (NILP(dai)) ? WNN_SHO : WNN_DAI)) < 0) | 693 (dai == Qnil) ? WNN_SHO : WNN_DAI)) < 0) |
684 return Qnil; | 694 return Qnil; |
685 #else | 695 #else |
686 if ((cnt = jl_nobi_conv (wnnfns_buf[snum], no, XINT(len), -1, WNN_USE_MAE, | 696 if ((cnt = jl_nobi_conv (wnnfns_buf[snum], no, XINT(len), -1, WNN_USE_MAE, |
687 (NILP(dai)) ? WNN_SHO : WNN_DAI)) < 0) | 697 (EQ(dai, Qnil)) ? WNN_SHO : WNN_DAI)) < 0) |
688 return Qnil; | 698 return Qnil; |
689 #endif | 699 #endif |
690 return make_int (cnt); | 700 return make_int (cnt); |
691 } | 701 } |
692 | 702 |
693 DEFUN ("wnn-server-inspect", Fwnn_inspect, 1, 1, 0, /* | 703 DEFUN ("wnn-server-inspect", Fwnn_inspect, 1, 1, 0, /* |
694 Get bunsetsu information specified by BUN-NUMBER. | 704 Get bunsetsu information specified by BUN-NUMBER. |
695 */ | 705 */ |
696 (bunNo)) | 706 (bunNo)) |
697 { | 707 { |
698 Lisp_Object val; | 708 Lisp_Object val; |
699 struct wnn_jdata *info_buf; | 709 struct wnn_jdata *info_buf; |
700 unsigned char cbuf[512]; | 710 unsigned char cbuf[512]; |
701 w_char wbuf[256]; | 711 w_char wbuf[256]; |
730 | 740 |
731 | 741 |
732 DEFUN ("wnn-server-henkan-quit", Fwnn_quit_henkan, 0, 0, 0, /* | 742 DEFUN ("wnn-server-henkan-quit", Fwnn_quit_henkan, 0, 0, 0, /* |
733 do nothing | 743 do nothing |
734 */ | 744 */ |
735 ()) | 745 ()) |
736 { | 746 { |
737 int snum; | 747 int snum; |
738 if ((snum = check_wnn_server_type ()) == -1) return Qnil; | 748 if ((snum = check_wnn_server_type ()) == -1) return Qnil; |
739 if (!wnnfns_buf[snum]) return Qnil; | 749 if (!wnnfns_buf[snum]) return Qnil; |
740 return Qt; | 750 return Qt; |
741 } | 751 } |
742 | 752 |
743 DEFUN ("wnn-server-bunsetu-kanji", Fwnn_bunsetu_kanji, 1, 1, 0, /* | 753 DEFUN ("wnn-server-bunsetu-kanji", Fwnn_bunsetu_kanji, 1, 1, 0, /* |
744 Get the pair of kanji and length of bunsetsu specified by BUN-NUMBER. | 754 Get the pair of kanji and length of bunsetsu specified by BUN-NUMBER. |
745 */ | 755 */ |
746 (bunNo)) | 756 (bunNo)) |
747 { | 757 { |
748 int no; | 758 int no; |
749 unsigned char kanji_buf[256]; | 759 unsigned char kanji_buf[256]; |
750 w_char wbuf[256]; | 760 w_char wbuf[256]; |
751 int kanji_len; | 761 int kanji_len; |
763 } | 773 } |
764 | 774 |
765 DEFUN ("wnn-server-bunsetu-yomi", Fwnn_bunsetu_yomi, 1, 1, 0, /* | 775 DEFUN ("wnn-server-bunsetu-yomi", Fwnn_bunsetu_yomi, 1, 1, 0, /* |
766 Get the pair of yomi and length of bunsetsu specified by BUN-NUMBER. | 776 Get the pair of yomi and length of bunsetsu specified by BUN-NUMBER. |
767 */ | 777 */ |
768 (bunNo)) | 778 (bunNo)) |
769 { | 779 { |
770 int no; | 780 int no; |
771 unsigned char yomi_buf[256]; | 781 unsigned char yomi_buf[256]; |
772 w_char wbuf[256]; | 782 w_char wbuf[256]; |
773 int yomi_len; | 783 int yomi_len; |
785 } | 795 } |
786 | 796 |
787 DEFUN ("wnn-server-bunsetu-suu", Fwnn_bunsetu_suu, 0, 0, 0, /* | 797 DEFUN ("wnn-server-bunsetu-suu", Fwnn_bunsetu_suu, 0, 0, 0, /* |
788 Get the number of bunsetsu. | 798 Get the number of bunsetsu. |
789 */ | 799 */ |
790 ()) | 800 ()) |
791 { | 801 { |
792 int snum; | 802 int snum; |
793 if ((snum = check_wnn_server_type ()) == -1) return Qnil; | 803 if ((snum = check_wnn_server_type ()) == -1) return Qnil; |
794 if (!wnnfns_buf[snum]) return Qnil; | 804 if (!wnnfns_buf[snum]) return Qnil; |
795 return make_int (jl_bun_suu (wnnfns_buf[snum])); | 805 return make_int (jl_bun_suu (wnnfns_buf[snum])); |
796 } | 806 } |
797 | 807 |
798 DEFUN ("wnn-server-hindo-update", Fwnn_hindo_update, 0, 1, 0, /* | 808 DEFUN ("wnn-server-hindo-update", Fwnn_hindo_update, 0, 1, 0, /* |
799 Update frequency of bunsetsu specified by NUM-NUMBER. | 809 Update frequency of bunsetsu specified by NUM-NUMBER. |
800 */ | 810 */ |
801 (bunNo)) | 811 (bunNo)) |
802 { | 812 { |
803 int no; | 813 int no; |
804 Lisp_Object val; | 814 Lisp_Object val; |
805 int snum; | 815 int snum; |
806 if ((snum = check_wnn_server_type ()) == -1) return Qnil; | 816 if ((snum = check_wnn_server_type ()) == -1) return Qnil; |
807 if (NILP(bunNo)) no = -1; | 817 if (EQ(bunNo, Qnil)) no = -1; |
808 else | 818 else |
809 { | 819 { |
810 CHECK_INT (bunNo); | 820 CHECK_INT (bunNo); |
811 no = XINT (bunNo); | 821 no = XINT (bunNo); |
812 } | 822 } |
822 | 832 |
823 DEFUN ("wnn-server-word-add", Fwnn_word_toroku, 5, 5, 0, /* | 833 DEFUN ("wnn-server-word-add", Fwnn_word_toroku, 5, 5, 0, /* |
824 Add a word to dictionary. Arguments are | 834 Add a word to dictionary. Arguments are |
825 DIC-NUMBER, KANJI, YOMI, COMMENT, HINSI-NUMBER | 835 DIC-NUMBER, KANJI, YOMI, COMMENT, HINSI-NUMBER |
826 */ | 836 */ |
827 (dicno, kanji, yomi, comment, hinsi)) | 837 (dicno, kanji, yomi, comment, hinsi)) |
828 { | 838 { |
829 w_char yomi_buf[256], kanji_buf[256], comment_buf[256]; | 839 w_char yomi_buf[256], kanji_buf[256], comment_buf[256]; |
830 int snum; | 840 int snum; |
831 CHECK_INT (dicno); | 841 CHECK_INT (dicno); |
832 CHECK_STRING (kanji); | 842 CHECK_STRING (kanji); |
833 CHECK_STRING (yomi); | 843 CHECK_STRING (yomi); |
834 CHECK_STRING (comment); | 844 CHECK_STRING (comment); |
835 CHECK_INT (hinsi); | 845 CHECK_INT (hinsi); |
836 if ((snum = check_wnn_server_type ()) == -1) return Qnil; | 846 if ((snum = check_wnn_server_type ()) == -1) return Qnil; |
837 if (!wnnfns_buf[snum]) return Qnil; | 847 if (!wnnfns_buf[snum]) return Qnil; |
838 m2w (XSTRING (yomi)->data, yomi_buf); | 848 m2w (XSTRING (yomi)->_data, yomi_buf); |
839 if (snum == WNNSERVER_C) | 849 if (snum == WNNSERVER_C) |
840 w2y (yomi_buf); | 850 w2y (yomi_buf); |
841 m2w (XSTRING (kanji)->data, kanji_buf); | 851 m2w (XSTRING (kanji)->_data, kanji_buf); |
842 m2w (XSTRING (comment)->data, comment_buf); | 852 m2w (XSTRING (comment)->_data, comment_buf); |
843 if (jl_word_add (wnnfns_buf[snum], XINT (dicno), yomi_buf, kanji_buf, | 853 if (jl_word_add (wnnfns_buf[snum], XINT (dicno), yomi_buf, kanji_buf, |
844 comment_buf, XINT (hinsi), 0) < 0) | 854 comment_buf, XINT (hinsi), 0) < 0) |
845 return Qnil; | 855 return Qnil; |
846 else return Qt; | 856 else return Qt; |
847 } | 857 } |
848 | 858 |
849 | 859 |
850 DEFUN ("wnn-server-word-delete", Fwnn_word_sakujo, 2, 2, 0, /* | 860 DEFUN ("wnn-server-word-delete", Fwnn_word_sakujo, 2, 2, 0, /* |
851 Delete a word from dictionary, specified by DIC-NUMBER, SERIAL-NUMBER | 861 Delete a word from dictionary, specified by DIC-NUMBER, SERIAL-NUMBER |
852 */ | 862 */ |
853 (no, serial)) | 863 (no, serial)) |
854 { | 864 { |
855 int snum; | 865 int snum; |
856 CHECK_INT (no); | 866 CHECK_INT (no); |
857 CHECK_INT (serial); | 867 CHECK_INT (serial); |
858 if ((snum = check_wnn_server_type ()) == -1) return Qnil; | 868 if ((snum = check_wnn_server_type ()) == -1) return Qnil; |
864 | 874 |
865 | 875 |
866 DEFUN ("wnn-server-word-use", Fwnn_word_use, 2, 2, 0, /* | 876 DEFUN ("wnn-server-word-use", Fwnn_word_use, 2, 2, 0, /* |
867 Toggle on/off word, specified by DIC-NUMBER and SERIAL-NUMBER | 877 Toggle on/off word, specified by DIC-NUMBER and SERIAL-NUMBER |
868 */ | 878 */ |
869 (no, serial)) | 879 (no, serial)) |
870 { | 880 { |
871 int snum; | 881 int snum; |
872 CHECK_INT (no); | 882 CHECK_INT (no); |
873 CHECK_INT (serial); | 883 CHECK_INT (serial); |
874 if ((snum = check_wnn_server_type ()) == -1) return Qnil; | 884 if ((snum = check_wnn_server_type ()) == -1) return Qnil; |
879 } | 889 } |
880 | 890 |
881 DEFUN ("wnn-server-word-info", Fwnn_word_info, 2, 2, 0, /* | 891 DEFUN ("wnn-server-word-info", Fwnn_word_info, 2, 2, 0, /* |
882 Return list of yomi, kanji, comment, hindo, hinshi. | 892 Return list of yomi, kanji, comment, hindo, hinshi. |
883 */ | 893 */ |
884 (no, serial)) | 894 (no, serial)) |
885 { | 895 { |
886 Lisp_Object val; | 896 Lisp_Object val; |
887 struct wnn_jdata *info_buf; | 897 struct wnn_jdata *info_buf; |
888 unsigned char cbuf[512]; | 898 unsigned char cbuf[512]; |
889 int snum; | 899 int snum; |
915 | 925 |
916 DEFUN ("wnn-server-word-hindo-set", Fwnn_hindo_set, 3, 3, 0, /* | 926 DEFUN ("wnn-server-word-hindo-set", Fwnn_hindo_set, 3, 3, 0, /* |
917 Set frequency to arbitrary value. Specified by DIC-NUMBER, | 927 Set frequency to arbitrary value. Specified by DIC-NUMBER, |
918 SERIAL-NUMBER, FREQUENCY | 928 SERIAL-NUMBER, FREQUENCY |
919 */ | 929 */ |
920 (no, serial, hindo)) | 930 (no, serial, hindo)) |
921 { | 931 { |
922 int snum; | 932 int snum; |
923 CHECK_INT (no); | 933 CHECK_INT (no); |
924 CHECK_INT (serial); | 934 CHECK_INT (serial); |
925 CHECK_INT (hindo); | 935 CHECK_INT (hindo); |
937 | 947 |
938 DEFUN ("wnn-server-word-search", Fwnn_dict_search, 1, 1, 0, /* | 948 DEFUN ("wnn-server-word-search", Fwnn_dict_search, 1, 1, 0, /* |
939 Search a word YOMI from buffer. | 949 Search a word YOMI from buffer. |
940 Return list of (kanji hinshi freq dic_no serial). | 950 Return list of (kanji hinshi freq dic_no serial). |
941 */ | 951 */ |
942 (yomi)) | 952 (yomi)) |
943 { | 953 { |
944 Lisp_Object val; | 954 Lisp_Object val; |
945 struct wnn_jdata *wordinfo; | 955 struct wnn_jdata *wordinfo; |
946 int i, count; | 956 int i, count; |
947 w_char wbuf[256]; | 957 w_char wbuf[256]; |
951 unsigned char lb; | 961 unsigned char lb; |
952 CHECK_STRING (yomi); | 962 CHECK_STRING (yomi); |
953 if ((snum = check_wnn_server_type ()) == -1) return Qnil; | 963 if ((snum = check_wnn_server_type ()) == -1) return Qnil; |
954 lb = lb_wnn_server_type[snum]; | 964 lb = lb_wnn_server_type[snum]; |
955 if (!wnnfns_buf[snum]) return Qnil; | 965 if (!wnnfns_buf[snum]) return Qnil; |
956 m2w (XSTRING (yomi)->data, wbuf); | 966 m2w (XSTRING (yomi)->_data, wbuf); |
957 if (snum == WNNSERVER_C) | 967 if (snum == WNNSERVER_C) |
958 w2y (wbuf); | 968 w2y (wbuf); |
959 if ((count = jl_word_search_by_env (wnnfns_buf[snum], | 969 if ((count = jl_word_search_by_env (wnnfns_buf[snum], |
960 wbuf, &wordinfo)) < 0) | 970 wbuf, &wordinfo)) < 0) |
961 return Qnil; | 971 return Qnil; |
975 } | 985 } |
976 | 986 |
977 DEFUN ("wnn-server-dict-save", Fwnn_dict_save, 0, 0, 0, /* | 987 DEFUN ("wnn-server-dict-save", Fwnn_dict_save, 0, 0, 0, /* |
978 Save all dictionaries and frequency files. | 988 Save all dictionaries and frequency files. |
979 */ | 989 */ |
980 ()) | 990 ()) |
981 { | 991 { |
982 int snum; | 992 int snum; |
983 if ((snum = check_wnn_server_type ()) == -1) return Qnil; | 993 if ((snum = check_wnn_server_type ()) == -1) return Qnil; |
984 if (!wnnfns_buf[snum]) return Qnil; | 994 if (!wnnfns_buf[snum]) return Qnil; |
985 if (jl_dic_save_all (wnnfns_buf[snum]) < 0) return Qnil; | 995 if (jl_dic_save_all (wnnfns_buf[snum]) < 0) return Qnil; |
988 | 998 |
989 DEFUN ("wnn-server-get-param", Fwnn_get_param, 0, 0, 0, /* | 999 DEFUN ("wnn-server-get-param", Fwnn_get_param, 0, 0, 0, /* |
990 Returns (n nsho hindo len jiri flag jisho sbn dbn_len sbn_cnt | 1000 Returns (n nsho hindo len jiri flag jisho sbn dbn_len sbn_cnt |
991 suuji kana eisuu kigou toji_kakko fuzokogo kaikakko) | 1001 suuji kana eisuu kigou toji_kakko fuzokogo kaikakko) |
992 */ | 1002 */ |
993 ()) | 1003 ()) |
994 { | 1004 { |
995 struct wnn_param param; | 1005 struct wnn_param param; |
996 int snum; | 1006 int snum; |
997 if ((snum = check_wnn_server_type ()) == -1) return Qnil; | 1007 if ((snum = check_wnn_server_type ()) == -1) return Qnil; |
998 if (!wnnfns_buf[snum]) return Qnil; | 1008 if (!wnnfns_buf[snum]) return Qnil; |
1014 Fcons (make_int (param.p13), | 1024 Fcons (make_int (param.p13), |
1015 Fcons (make_int (param.p14), | 1025 Fcons (make_int (param.p14), |
1016 Fcons (make_int (param.p15),Qnil))))))))))))))))); | 1026 Fcons (make_int (param.p15),Qnil))))))))))))))))); |
1017 } | 1027 } |
1018 | 1028 |
1019 DEFUN ("wnn-server-set-param", Fwnn_set_param, 17, MANY, 0, /* | 1029 DEFUN ("wnn-server-set-param", Fwnn_set_param, 1, 1, 0, /* |
1020 Set parameters, n nsho hindo len jiri flag jisho sbn dbn_len sbn_cnt | 1030 Set parameters using an alist, where the CAR contains one of |
1021 suuji kana eisuu kigou toji_kakko fuzokogo kaikakko | 1031 wnn_n, wnn_nsho, wnn_hindo, wnn_len, wnn_jiri, wnn_flag, |
1022 */ | 1032 wnn_jisho, wnn_sbn, wnn_dbn_len, wnn_sbn_cnt, wnn_suuji, |
1023 (int nargs, Lisp_Object *args)) | 1033 wnn_kana, wnn_eisuu, wnn_kigou, wnn_toji_kakko, wnn_fuzokogo, |
1034 or wnn_kaikakko and the CDR contains the value. | |
1035 */ | |
1036 (Vsetvalues_alist)) | |
1024 { | 1037 { |
1025 int rc; | 1038 int rc; |
1026 struct wnn_param param; | 1039 struct wnn_param param; |
1027 int snum; | 1040 Lisp_Object tail, key, val; |
1028 for (rc = 0; rc < 17; rc++) CHECK_INT (args[rc]); | 1041 int snum; |
1029 if ((snum = check_wnn_server_type ()) == -1) return Qnil; | 1042 |
1030 if (!wnnfns_buf[snum]) return Qnil; | 1043 if ((snum = check_wnn_server_type ()) == -1) return Qnil; |
1031 param.n = XINT (args[0]); | 1044 if (!wnnfns_buf[snum]) return Qnil; |
1032 param.nsho = XINT (args[1]); | 1045 rc = jl_param_get (wnnfns_buf[snum], ¶m); |
1033 param.p1 = XINT (args[2]); | 1046 if (rc < 0) return Qnil; |
1034 param.p2 = XINT (args[3]); | 1047 |
1035 param.p3 = XINT (args[4]); | 1048 EXTERNAL_PROPERTY_LIST_LOOP (tail, key, val, Vsetvalues_alist) |
1036 param.p4 = XINT (args[5]); | 1049 { |
1037 param.p5 = XINT (args[6]); | 1050 int setval; |
1038 param.p6 = XINT (args[7]); | 1051 CHECK_INT (val); |
1039 param.p7 = XINT (args[8]); | 1052 setval = XINT (val); |
1040 param.p8 = XINT (args[9]); | 1053 if (EQ (key, Qwnn_n)) param.n = setval; |
1041 param.p9 = XINT (args[10]); | 1054 else if (EQ (key, Qwnn_nsho)) param.nsho = setval; |
1042 param.p10 = XINT (args[11]); | 1055 else if (EQ (key, Qwnn_hindo)) param.p1 = setval; |
1043 param.p11 = XINT (args[12]); | 1056 else if (EQ (key, Qwnn_len)) param.p2 = setval; |
1044 param.p12 = XINT (args[13]); | 1057 else if (EQ (key, Qwnn_jiri)) param.p3 = setval; |
1045 param.p13 = XINT (args[14]); | 1058 else if (EQ (key, Qwnn_flag)) param.p4 = setval; |
1046 param.p14 = XINT (args[15]); | 1059 else if (EQ (key, Qwnn_jisho)) param.p5 = setval; |
1047 param.p15 = XINT (args[16]); | 1060 else if (EQ (key, Qwnn_sbn)) param.p6 = setval; |
1048 | 1061 else if (EQ (key, Qwnn_dbn_len)) param.p7 = setval; |
1062 else if (EQ (key, Qwnn_sbn_cnt)) param.p8 = setval; | |
1063 else if (EQ (key, Qwnn_suuji)) param.p9 = setval; | |
1064 else if (EQ (key, Qwnn_kana)) param.p10 = setval; | |
1065 else if (EQ (key, Qwnn_eisuu)) param.p11 = setval; | |
1066 else if (EQ (key, Qwnn_kigou)) param.p12 = setval; | |
1067 else if (EQ (key, Qwnn_toji_kakko)) param.p13 = setval; | |
1068 else if (EQ (key, Qwnn_fuzokogo)) param.p14 = setval; | |
1069 else if (EQ (key, Qwnn_kaikakko)) param.p15 = setval; | |
1070 else | |
1071 { | |
1072 signal_simple_error ("Invalid wnn keyword", key); | |
1073 return Qnil; | |
1074 } | |
1075 } | |
1076 | |
1077 #if 0 | |
1078 printf("wnn_n = %d\n",param.n); | |
1079 printf("wnn_nsho = %d\n",param.nsho); | |
1080 printf("wnn_hindo = %d\n",param.p1); | |
1081 printf("wnn_len = %d\n",param.p2); | |
1082 printf("wnn_jiri = %d\n",param.p3); | |
1083 printf("wnn_flag = %d\n",param.p4); | |
1084 printf("wnn_jisho = %d\n",param.p5); | |
1085 printf("wnn_sbn = %d\n",param.p6); | |
1086 printf("wnn_dbn_len = %d\n",param.p7); | |
1087 printf("wnn_sbn_cnt = %d\n",param.p8); | |
1088 printf("wnn_suuji = %d\n",param.p9); | |
1089 printf("wnn_kana = %d\n",param.p10); | |
1090 printf("wnn_eisuu = %d\n",param.p11); | |
1091 printf("wnn_kigou = %d\n",param.p12); | |
1092 printf("wnn_toji_kakko = %d\n",param.p13); | |
1093 printf("wnn_fuzokogo = %d\n",param.p14); | |
1094 printf("wnn_kaikakko = %d\n",param.p15); | |
1095 #endif | |
1096 | |
1049 rc = jl_param_set (wnnfns_buf[snum], ¶m); | 1097 rc = jl_param_set (wnnfns_buf[snum], ¶m); |
1050 if (rc < 0) return Qnil; | 1098 if (rc < 0) return Qnil; |
1051 return Qt; | 1099 return Qt; |
1052 } | 1100 } |
1053 | 1101 |
1054 DEFUN ("wnn-server-get-msg", Fwnn_get_msg, 0, 0, 0, /* | 1102 DEFUN ("wnn-server-get-msg", Fwnn_get_msg, 0, 0, 0, /* |
1055 Get message string from wnn_perror. | 1103 Get message string from wnn_perror. |
1056 */ | 1104 */ |
1057 ()) | 1105 ()) |
1058 { | 1106 { |
1059 char mbuf[256]; | 1107 char mbuf[256]; |
1060 char *msgp; | 1108 char *msgp; |
1061 int snum; | 1109 int snum; |
1062 unsigned char lb; | 1110 unsigned char lb; |
1090 | 1138 |
1091 | 1139 |
1092 DEFUN ("wnn-server-fuzokugo-set", Fwnn_fuzokugo_set, 1, 1, 0, /* | 1140 DEFUN ("wnn-server-fuzokugo-set", Fwnn_fuzokugo_set, 1, 1, 0, /* |
1093 For Wnn. | 1141 For Wnn. |
1094 */ | 1142 */ |
1095 (file)) | 1143 (file)) |
1096 { | 1144 { |
1097 int snum; | 1145 int snum; |
1098 CHECK_STRING (file); | 1146 CHECK_STRING (file); |
1099 if ((snum = check_wnn_server_type ()) == -1) return Qnil; | 1147 if ((snum = check_wnn_server_type ()) == -1) return Qnil; |
1100 if (!wnnfns_buf[snum]) return Qnil; | 1148 if (!wnnfns_buf[snum]) return Qnil; |
1101 if (jl_fuzokugo_set (wnnfns_buf[snum], XSTRING (file)->data) < 0) | 1149 if (jl_fuzokugo_set (wnnfns_buf[snum], XSTRING (file)->_data) < 0) |
1102 return Qnil; | 1150 return Qnil; |
1103 return Qt; | 1151 return Qt; |
1104 } | 1152 } |
1105 | 1153 |
1106 DEFUN ("wnn-server-fuzokugo-get", Fwnn_fuzokugo_get, 0, 0, 0, /* | 1154 DEFUN ("wnn-server-fuzokugo-get", Fwnn_fuzokugo_get, 0, 0, 0, /* |
1107 For Wnn. | 1155 For Wnn. |
1108 */ | 1156 */ |
1109 ()) | 1157 ()) |
1110 { | 1158 { |
1111 char fname[256]; | 1159 char fname[256]; |
1112 int snum; | 1160 int snum; |
1113 if ((snum = check_wnn_server_type ()) == -1) return Qnil; | 1161 if ((snum = check_wnn_server_type ()) == -1) return Qnil; |
1114 if (!wnnfns_buf[snum]) return Qnil; | 1162 if (!wnnfns_buf[snum]) return Qnil; |
1118 | 1166 |
1119 | 1167 |
1120 DEFUN ("wnn-server-isconnect", Fwnn_isconnect, 0, 0, 0, /* | 1168 DEFUN ("wnn-server-isconnect", Fwnn_isconnect, 0, 0, 0, /* |
1121 For Wnn. | 1169 For Wnn. |
1122 */ | 1170 */ |
1123 ()) | 1171 ()) |
1124 { | 1172 { |
1125 int snum; | 1173 int snum; |
1126 if ((snum = check_wnn_server_type ()) == -1) return Qnil; | 1174 if ((snum = check_wnn_server_type ()) == -1) return Qnil; |
1127 if (!wnnfns_buf[snum]) return Qnil; | 1175 if (!wnnfns_buf[snum]) return Qnil; |
1128 if (jl_isconnect (wnnfns_buf[snum])) return Qt; | 1176 if (jl_isconnect (wnnfns_buf[snum])) return Qt; |
1130 } | 1178 } |
1131 | 1179 |
1132 DEFUN ("wnn-server-hinsi-dicts", Fwnn_hinsi_dicts, 1, 1, 0, /* | 1180 DEFUN ("wnn-server-hinsi-dicts", Fwnn_hinsi_dicts, 1, 1, 0, /* |
1133 For Wnn. | 1181 For Wnn. |
1134 */ | 1182 */ |
1135 (hinsi)) | 1183 (hinsi)) |
1136 { | 1184 { |
1137 int *area; | 1185 int *area; |
1138 int cnt; | 1186 int cnt; |
1139 Lisp_Object val; | 1187 Lisp_Object val; |
1140 int snum; | 1188 int snum; |
1153 } | 1201 } |
1154 | 1202 |
1155 DEFUN ("wnn-server-hinsi-list", Fwnn_hinsi_list, 2, 2, 0, /* | 1203 DEFUN ("wnn-server-hinsi-list", Fwnn_hinsi_list, 2, 2, 0, /* |
1156 For Wnn. | 1204 For Wnn. |
1157 */ | 1205 */ |
1158 (dicno, name)) | 1206 (dicno, name)) |
1159 { | 1207 { |
1160 int cnt; | 1208 int cnt; |
1161 Lisp_Object val; | 1209 Lisp_Object val; |
1162 w_char wbuf[256]; | 1210 w_char wbuf[256]; |
1163 w_char **area; | 1211 w_char **area; |
1167 CHECK_INT (dicno); | 1215 CHECK_INT (dicno); |
1168 CHECK_STRING (name); | 1216 CHECK_STRING (name); |
1169 if ((snum = check_wnn_server_type ()) == -1) return Qnil; | 1217 if ((snum = check_wnn_server_type ()) == -1) return Qnil; |
1170 lb = lb_wnn_server_type[snum]; | 1218 lb = lb_wnn_server_type[snum]; |
1171 if (!wnnfns_buf[snum]) return Qnil; | 1219 if (!wnnfns_buf[snum]) return Qnil; |
1172 m2w (XSTRING (name)->data, wbuf); | 1220 m2w (XSTRING (name)->_data, wbuf); |
1173 if ((cnt = jl_hinsi_list (wnnfns_buf[snum], XINT (dicno), wbuf, &area)) < 0) | 1221 if ((cnt = jl_hinsi_list (wnnfns_buf[snum], XINT (dicno), wbuf, &area)) < 0) |
1174 return Qnil; | 1222 return Qnil; |
1175 if (cnt == 0) return make_int (0); | 1223 if (cnt == 0) return make_int (0); |
1176 val = Qnil; | 1224 val = Qnil; |
1177 for (area += cnt; cnt > 0; cnt--) | 1225 for (area += cnt; cnt > 0; cnt--) |
1184 } | 1232 } |
1185 | 1233 |
1186 DEFUN ("wnn-server-hinsi-name", Fwnn_hinsi_name, 1, 1, 0, /* | 1234 DEFUN ("wnn-server-hinsi-name", Fwnn_hinsi_name, 1, 1, 0, /* |
1187 For Wnn. | 1235 For Wnn. |
1188 */ | 1236 */ |
1189 (no)) | 1237 (no)) |
1190 { | 1238 { |
1191 unsigned char name[256]; | 1239 unsigned char name[256]; |
1192 w_char *wname; | 1240 w_char *wname; |
1193 int snum; | 1241 int snum; |
1194 unsigned char lb; | 1242 unsigned char lb; |
1204 DEFUN ("wnn-server-fisys-dict-add", Fwnn_fisys_dict_add, 3, MANY, 0, /* | 1252 DEFUN ("wnn-server-fisys-dict-add", Fwnn_fisys_dict_add, 3, MANY, 0, /* |
1205 Add dictionary specified by FISYS-DICT-FILE-NAME, FISYS-FREQ-FILE-NAME, | 1253 Add dictionary specified by FISYS-DICT-FILE-NAME, FISYS-FREQ-FILE-NAME, |
1206 FISYS-FREQ-FILE-MODE. | 1254 FISYS-FREQ-FILE-MODE. |
1207 Specify password files of dictionary and frequency, PW1 and PW2, if needed. | 1255 Specify password files of dictionary and frequency, PW1 and PW2, if needed. |
1208 */ | 1256 */ |
1209 (int nargs, Lisp_Object *args)) | 1257 (int nargs, Lisp_Object *args)) |
1210 { | 1258 { |
1211 static int yes_or_no(); | |
1212 static void puts2(); | |
1213 struct gcpro gcpro1; | 1259 struct gcpro gcpro1; |
1214 int snum; | 1260 int snum; |
1215 CHECK_STRING (args[0]); | 1261 CHECK_STRING (args[0]); |
1216 CHECK_STRING (args[1]); | 1262 CHECK_STRING (args[1]); |
1217 if (! NILP(args[3])) CHECK_STRING (args[3]); | 1263 if (args[3] != Qnil) CHECK_STRING (args[3]); |
1218 if ((snum = check_wnn_server_type()) == -1) return Qnil; | 1264 if ((snum = check_wnn_server_type()) == -1) return Qnil; |
1219 if(!wnnfns_buf[snum]) return Qnil; | 1265 if(!wnnfns_buf[snum]) return Qnil; |
1220 GCPRO1 (*args); | 1266 GCPRO1 (*args); |
1221 gcpro1.nvars = nargs; | 1267 gcpro1.nvars = nargs; |
1222 if(jl_fi_dic_add(wnnfns_buf[snum], | 1268 if(jl_fi_dic_add(wnnfns_buf[snum], |
1223 XSTRING(args[0])->data, | 1269 XSTRING(args[0])->_data, |
1224 XSTRING(args[1])->data, | 1270 XSTRING(args[1])->_data, |
1225 WNN_FI_SYSTEM_DICT, | 1271 WNN_FI_SYSTEM_DICT, |
1226 WNN_DIC_RDONLY, | 1272 WNN_DIC_RDONLY, |
1227 (NILP(args[2])) ? WNN_DIC_RDONLY : WNN_DIC_RW, | 1273 (args[2] == Qnil) ? WNN_DIC_RDONLY : WNN_DIC_RW, |
1228 0, | 1274 0, |
1229 (NILP(args[3])) ? 0 : XSTRING(args[3])->data, | 1275 (args[3] == Qnil) ? 0 : XSTRING(args[3])->_data, |
1230 yes_or_no, | 1276 yes_or_no, |
1231 puts2 ) < 0) { | 1277 puts2 ) < 0) { |
1232 UNGCPRO; | 1278 UNGCPRO; |
1233 return Qnil; | 1279 return Qnil; |
1234 } | 1280 } |
1239 DEFUN ("wnn-server-fiusr-dict-add", Fwnn_fiusr_dict_add, 4, MANY, 0, /* | 1285 DEFUN ("wnn-server-fiusr-dict-add", Fwnn_fiusr_dict_add, 4, MANY, 0, /* |
1240 Add dictionary specified by FIUSR-DICT-FILE-NAME, FIUSR-FREQ-FILE-NAME, | 1286 Add dictionary specified by FIUSR-DICT-FILE-NAME, FIUSR-FREQ-FILE-NAME, |
1241 FIUSR-DICT-FILE-MODE, FIUSR-FREQ-FILE-MODE. | 1287 FIUSR-DICT-FILE-MODE, FIUSR-FREQ-FILE-MODE. |
1242 Specify password files of dictionary and frequency, PW1 and PW2, if needed. | 1288 Specify password files of dictionary and frequency, PW1 and PW2, if needed. |
1243 */ | 1289 */ |
1244 (int nargs, Lisp_Object *args)) | 1290 (int nargs, Lisp_Object *args)) |
1245 { | 1291 { |
1246 static int yes_or_no(); | |
1247 static void puts2(); | |
1248 struct gcpro gcpro1; | 1292 struct gcpro gcpro1; |
1249 int snum; | 1293 int snum; |
1250 CHECK_STRING (args[0]); | 1294 CHECK_STRING (args[0]); |
1251 CHECK_STRING (args[1]); | 1295 CHECK_STRING (args[1]); |
1252 if (! NILP(args[4])) CHECK_STRING (args[4]); | 1296 if (args[4] != Qnil) CHECK_STRING (args[4]); |
1253 if (! NILP(args[5])) CHECK_STRING (args[5]); | 1297 if (args[5] != Qnil) CHECK_STRING (args[5]); |
1254 if ((snum = check_wnn_server_type()) == -1) return Qnil; | 1298 if ((snum = check_wnn_server_type()) == -1) return Qnil; |
1255 if(!wnnfns_buf[snum]) return Qnil; | 1299 if(!wnnfns_buf[snum]) return Qnil; |
1256 GCPRO1 (*args); | 1300 GCPRO1 (*args); |
1257 gcpro1.nvars = nargs; | 1301 gcpro1.nvars = nargs; |
1258 if(jl_fi_dic_add(wnnfns_buf[snum], | 1302 if(jl_fi_dic_add(wnnfns_buf[snum], |
1259 XSTRING(args[0])->data, | 1303 XSTRING(args[0])->_data, |
1260 XSTRING(args[1])->data, | 1304 XSTRING(args[1])->_data, |
1261 WNN_FI_USER_DICT, | 1305 WNN_FI_USER_DICT, |
1262 (NILP(args[2])) ? WNN_DIC_RDONLY : WNN_DIC_RW, | 1306 (args[2] == Qnil) ? WNN_DIC_RDONLY : WNN_DIC_RW, |
1263 (NILP(args[3])) ? WNN_DIC_RDONLY : WNN_DIC_RW, | 1307 (args[3] == Qnil) ? WNN_DIC_RDONLY : WNN_DIC_RW, |
1264 (NILP(args[4])) ? 0 : XSTRING(args[4])->data, | 1308 (args[4] == Qnil) ? 0 : XSTRING(args[4])->_data, |
1265 (NILP(args[5])) ? 0 : XSTRING(args[5])->data, | 1309 (args[5] == Qnil) ? 0 : XSTRING(args[5])->_data, |
1266 yes_or_no, | 1310 yes_or_no, |
1267 puts2 ) < 0) { | 1311 puts2 ) < 0) { |
1268 UNGCPRO; | 1312 UNGCPRO; |
1269 return Qnil; | 1313 return Qnil; |
1270 } | 1314 } |
1274 | 1318 |
1275 DEFUN ("wnn-server-notrans-dict-add", Fwnn_notrans_dict_add, 3, MANY, 0, /* | 1319 DEFUN ("wnn-server-notrans-dict-add", Fwnn_notrans_dict_add, 3, MANY, 0, /* |
1276 Add dictionary specified by NOTRANS-DICT-FILE-NAME, PRIORITY, DICT-FILE-MODE. | 1320 Add dictionary specified by NOTRANS-DICT-FILE-NAME, PRIORITY, DICT-FILE-MODE. |
1277 Specify password files of dictionary and frequency PW1 if needed. | 1321 Specify password files of dictionary and frequency PW1 if needed. |
1278 */ | 1322 */ |
1279 (int nargs, Lisp_Object *args)) | 1323 (int nargs, Lisp_Object *args)) |
1280 { | 1324 { |
1281 static int yes_or_no(); | |
1282 static void puts2(); | |
1283 struct gcpro gcpro1; | 1325 struct gcpro gcpro1; |
1284 int snum; | 1326 int snum; |
1285 int dic_no; | 1327 int dic_no; |
1286 struct wnn_env *cur_env; | 1328 struct wnn_env *cur_env; |
1287 unsigned long vmask = 0; | 1329 unsigned long vmask = 0; |
1288 struct wnn_henkan_env henv; | 1330 struct wnn_henkan_env henv; |
1289 CHECK_STRING (args[0]); | 1331 CHECK_STRING (args[0]); |
1290 CHECK_INT (args[1]); | 1332 CHECK_INT (args[1]); |
1291 if (! NILP(args[3])) CHECK_STRING (args[3]); | 1333 if (args[3] != Qnil) CHECK_STRING (args[3]); |
1292 if ((snum = check_wnn_server_type()) == -1) return Qnil; | 1334 if ((snum = check_wnn_server_type()) == -1) return Qnil; |
1293 if(!wnnfns_buf[snum]) return Qnil; | 1335 if(!wnnfns_buf[snum]) return Qnil; |
1294 GCPRO1 (*args); | 1336 GCPRO1 (*args); |
1295 gcpro1.nvars = nargs; | 1337 gcpro1.nvars = nargs; |
1296 if(wnnfns_norm) | 1338 if(wnnfns_norm) |
1298 else | 1340 else |
1299 cur_env = wnnfns_env_rev[snum]; | 1341 cur_env = wnnfns_env_rev[snum]; |
1300 dic_no = js_get_autolearning_dic(cur_env, WNN_MUHENKAN_LEARNING); | 1342 dic_no = js_get_autolearning_dic(cur_env, WNN_MUHENKAN_LEARNING); |
1301 if (dic_no == WNN_NO_LEARNING) { | 1343 if (dic_no == WNN_NO_LEARNING) { |
1302 if((dic_no = jl_dic_add(wnnfns_buf[snum], | 1344 if((dic_no = jl_dic_add(wnnfns_buf[snum], |
1303 XSTRING(args[0])->data, | 1345 XSTRING(args[0])->_data, |
1304 0, | 1346 0, |
1305 wnnfns_norm ? WNN_DIC_ADD_NOR : WNN_DIC_ADD_REV, | 1347 wnnfns_norm ? WNN_DIC_ADD_NOR : WNN_DIC_ADD_REV, |
1306 XINT(args[1]), | 1348 XINT(args[1]), |
1307 WNN_DIC_RW, WNN_DIC_RW, | 1349 WNN_DIC_RW, WNN_DIC_RW, |
1308 (NILP(args[3])) ? 0 : XSTRING(args[3])->data, | 1350 (args[3] == Qnil) ? 0 : XSTRING(args[3])->_data, |
1309 0, | 1351 0, |
1310 yes_or_no, | 1352 yes_or_no, |
1311 puts2)) < 0) { | 1353 puts2)) < 0) { |
1312 UNGCPRO; | 1354 UNGCPRO; |
1313 return Qnil; | 1355 return Qnil; |
1320 UNGCPRO; | 1362 UNGCPRO; |
1321 return Qnil; | 1363 return Qnil; |
1322 } | 1364 } |
1323 } | 1365 } |
1324 vmask |= WNN_ENV_MUHENKAN_LEARN_MASK; | 1366 vmask |= WNN_ENV_MUHENKAN_LEARN_MASK; |
1325 henv.muhenkan_flag = (NILP(args[2])) ? WNN_DIC_RDONLY : WNN_DIC_RW; | 1367 henv.muhenkan_flag = (args[2] == Qnil) ? WNN_DIC_RDONLY : WNN_DIC_RW; |
1326 if(jl_set_henkan_env(wnnfns_buf[snum], | 1368 if(jl_set_henkan_env(wnnfns_buf[snum], |
1327 vmask, | 1369 vmask, |
1328 &henv) < 0) { | 1370 &henv) < 0) { |
1329 UNGCPRO; | 1371 UNGCPRO; |
1330 return Qnil; | 1372 return Qnil; |
1335 | 1377 |
1336 DEFUN ("wnn-server-bmodify-dict-add", Fwnn_bmodify_dict_add, 3, MANY, 0, /* | 1378 DEFUN ("wnn-server-bmodify-dict-add", Fwnn_bmodify_dict_add, 3, MANY, 0, /* |
1337 Add dictionary specified by BMODIFY-DICT-FILE-NAME, PRIORITY, DICT-FILE-MODE. | 1379 Add dictionary specified by BMODIFY-DICT-FILE-NAME, PRIORITY, DICT-FILE-MODE. |
1338 Specify password files of dictionary and frequency PW1 if needed. | 1380 Specify password files of dictionary and frequency PW1 if needed. |
1339 */ | 1381 */ |
1340 (int nargs, Lisp_Object *args)) | 1382 (int nargs, Lisp_Object *args)) |
1341 { | 1383 { |
1342 static int yes_or_no(); | |
1343 static void puts2(); | |
1344 struct gcpro gcpro1; | 1384 struct gcpro gcpro1; |
1345 int snum; | 1385 int snum; |
1346 int dic_no; | 1386 int dic_no; |
1347 struct wnn_env *cur_env; | 1387 struct wnn_env *cur_env; |
1348 unsigned long vmask = 0; | 1388 unsigned long vmask = 0; |
1349 struct wnn_henkan_env henv; | 1389 struct wnn_henkan_env henv; |
1350 CHECK_STRING (args[0]); | 1390 CHECK_STRING (args[0]); |
1351 CHECK_INT (args[1]); | 1391 CHECK_INT (args[1]); |
1352 if (! NILP(args[3])) CHECK_STRING (args[3]); | 1392 if (args[3] != Qnil) CHECK_STRING (args[3]); |
1353 if ((snum = check_wnn_server_type()) == -1) return Qnil; | 1393 if ((snum = check_wnn_server_type()) == -1) return Qnil; |
1354 if(!wnnfns_buf[snum]) return Qnil; | 1394 if(!wnnfns_buf[snum]) return Qnil; |
1355 GCPRO1 (*args); | 1395 GCPRO1 (*args); |
1356 gcpro1.nvars = nargs; | 1396 gcpro1.nvars = nargs; |
1357 if(wnnfns_norm) | 1397 if(wnnfns_norm) |
1359 else | 1399 else |
1360 cur_env = wnnfns_env_rev[snum]; | 1400 cur_env = wnnfns_env_rev[snum]; |
1361 dic_no = js_get_autolearning_dic(cur_env, WNN_BUNSETSUGIRI_LEARNING); | 1401 dic_no = js_get_autolearning_dic(cur_env, WNN_BUNSETSUGIRI_LEARNING); |
1362 if (dic_no == WNN_NO_LEARNING) { | 1402 if (dic_no == WNN_NO_LEARNING) { |
1363 if((dic_no = jl_dic_add(wnnfns_buf[snum], | 1403 if((dic_no = jl_dic_add(wnnfns_buf[snum], |
1364 XSTRING(args[0])->data, | 1404 XSTRING(args[0])->_data, |
1365 0, | 1405 0, |
1366 wnnfns_norm ? WNN_DIC_ADD_NOR : WNN_DIC_ADD_REV, | 1406 wnnfns_norm ? WNN_DIC_ADD_NOR : WNN_DIC_ADD_REV, |
1367 XINT(args[1]), | 1407 XINT(args[1]), |
1368 WNN_DIC_RW, WNN_DIC_RW, | 1408 WNN_DIC_RW, WNN_DIC_RW, |
1369 (NILP(args[3])) ? 0 : XSTRING(args[3])->data, | 1409 (args[3] == Qnil) ? 0 : XSTRING(args[3])->_data, |
1370 0, | 1410 0, |
1371 yes_or_no, | 1411 yes_or_no, |
1372 puts2)) < 0) { | 1412 puts2)) < 0) { |
1373 UNGCPRO; | 1413 UNGCPRO; |
1374 return Qnil; | 1414 return Qnil; |
1381 UNGCPRO; | 1421 UNGCPRO; |
1382 return Qnil; | 1422 return Qnil; |
1383 } | 1423 } |
1384 } | 1424 } |
1385 vmask |= WNN_ENV_BUNSETSUGIRI_LEARN_MASK; | 1425 vmask |= WNN_ENV_BUNSETSUGIRI_LEARN_MASK; |
1386 henv.bunsetsugiri_flag = (NILP(args[2])) ? WNN_DIC_RDONLY : WNN_DIC_RW; | 1426 henv.bunsetsugiri_flag = (args[2] == Qnil) ? WNN_DIC_RDONLY : WNN_DIC_RW; |
1387 if(jl_set_henkan_env(wnnfns_buf[snum], | 1427 if(jl_set_henkan_env(wnnfns_buf[snum], |
1388 vmask, | 1428 vmask, |
1389 &henv) < 0) { | 1429 &henv) < 0) { |
1390 UNGCPRO; | 1430 UNGCPRO; |
1391 return Qnil; | 1431 return Qnil; |
1395 } | 1435 } |
1396 | 1436 |
1397 DEFUN ("wnn-server-set-last-is-first", Fwnn_last_is_first, 1, 1, 0, /* | 1437 DEFUN ("wnn-server-set-last-is-first", Fwnn_last_is_first, 1, 1, 0, /* |
1398 For FI-Wnn. | 1438 For FI-Wnn. |
1399 */ | 1439 */ |
1400 (mode)) | 1440 (mode)) |
1401 { | 1441 { |
1402 int snum; | 1442 int snum; |
1403 unsigned long vmask = 0; | 1443 unsigned long vmask = 0; |
1404 struct wnn_henkan_env henv; | 1444 struct wnn_henkan_env henv; |
1405 if ((snum = check_wnn_server_type()) == -1) return Qnil; | 1445 if ((snum = check_wnn_server_type()) == -1) return Qnil; |
1406 if(!wnnfns_buf[snum]) return Qnil; | 1446 if(!wnnfns_buf[snum]) return Qnil; |
1407 vmask |= WNN_ENV_LAST_IS_FIRST_MASK; | 1447 vmask |= WNN_ENV_LAST_IS_FIRST_MASK; |
1408 henv.last_is_first_flag = (NILP(mode)) ? False : True; | 1448 henv.last_is_first_flag = (mode == Qnil) ? False : True; |
1409 if(jl_set_henkan_env(wnnfns_buf[snum], | 1449 if(jl_set_henkan_env(wnnfns_buf[snum], |
1410 vmask, | 1450 vmask, |
1411 &henv) < 0) return Qnil; | 1451 &henv) < 0) return Qnil; |
1412 return Qt; | 1452 return Qt; |
1413 } | 1453 } |
1414 | 1454 |
1415 DEFUN ("wnn-server-set-complex-conv-mode", Fwnn_complex_conv, 1, 1, 0, /* | 1455 DEFUN ("wnn-server-set-complex-conv-mode", Fwnn_complex_conv, 1, 1, 0, /* |
1416 For FI-Wnn. | 1456 For FI-Wnn. |
1417 */ | 1457 */ |
1418 (mode)) | 1458 (mode)) |
1419 { | 1459 { |
1420 int snum; | 1460 int snum; |
1421 unsigned long vmask = 0; | 1461 unsigned long vmask = 0; |
1422 struct wnn_henkan_env henv; | 1462 struct wnn_henkan_env henv; |
1423 if ((snum = check_wnn_server_type()) == -1) return Qnil; | 1463 if ((snum = check_wnn_server_type()) == -1) return Qnil; |
1424 if(!wnnfns_buf[snum]) return Qnil; | 1464 if(!wnnfns_buf[snum]) return Qnil; |
1425 vmask |= WNN_ENV_COMPLEX_CONV_MASK; | 1465 vmask |= WNN_ENV_COMPLEX_CONV_MASK; |
1426 henv.complex_flag = (NILP(mode)) ? False : True; | 1466 henv.complex_flag = (mode == Qnil) ? False : True; |
1427 if(jl_set_henkan_env(wnnfns_buf[snum], | 1467 if(jl_set_henkan_env(wnnfns_buf[snum], |
1428 vmask, | 1468 vmask, |
1429 &henv) < 0) return Qnil; | 1469 &henv) < 0) return Qnil; |
1430 return Qt; | 1470 return Qt; |
1431 } | 1471 } |
1432 | 1472 |
1433 DEFUN ("wnn-server-set-okuri-learn-mode", Fwnn_okuri_learn, 1, 1, 0, /* | 1473 DEFUN ("wnn-server-set-okuri-learn-mode", Fwnn_okuri_learn, 1, 1, 0, /* |
1434 For FI-Wnn. | 1474 For FI-Wnn. |
1435 */ | 1475 */ |
1436 (mode)) | 1476 (mode)) |
1437 { | 1477 { |
1438 int snum; | 1478 int snum; |
1439 unsigned long vmask = 0; | 1479 unsigned long vmask = 0; |
1440 struct wnn_henkan_env henv; | 1480 struct wnn_henkan_env henv; |
1441 if ((snum = check_wnn_server_type()) == -1) return Qnil; | 1481 if ((snum = check_wnn_server_type()) == -1) return Qnil; |
1442 if(!wnnfns_buf[snum]) return Qnil; | 1482 if(!wnnfns_buf[snum]) return Qnil; |
1443 vmask |= WNN_ENV_OKURI_LEARN_MASK; | 1483 vmask |= WNN_ENV_OKURI_LEARN_MASK; |
1444 henv.okuri_learn_flag = (NILP(mode)) ? False : True; | 1484 henv.okuri_learn_flag = (mode == Qnil) ? False : True; |
1445 if(jl_set_henkan_env(wnnfns_buf[snum], | 1485 if(jl_set_henkan_env(wnnfns_buf[snum], |
1446 vmask, | 1486 vmask, |
1447 &henv) < 0) return Qnil; | 1487 &henv) < 0) return Qnil; |
1448 return Qt; | 1488 return Qt; |
1449 } | 1489 } |
1450 | 1490 |
1451 DEFUN ("wnn-server-set-okuri-flag", Fwnn_okuri_flag, 1, 1, 0, /* | 1491 DEFUN ("wnn-server-set-okuri-flag", Fwnn_okuri_flag, 1, 1, 0, /* |
1452 For FI-Wnn. | 1492 For FI-Wnn. |
1453 */ | 1493 */ |
1454 (mode)) | 1494 (mode)) |
1455 { | 1495 { |
1456 int snum; | 1496 int snum; |
1457 unsigned long vmask = 0; | 1497 unsigned long vmask = 0; |
1458 struct wnn_henkan_env henv; | 1498 struct wnn_henkan_env henv; |
1459 CHECK_INT (mode); | 1499 CHECK_INT (mode); |
1473 } | 1513 } |
1474 | 1514 |
1475 DEFUN ("wnn-server-set-prefix-learn-mode", Fwnn_prefix_learn, 1, 1, 0, /* | 1515 DEFUN ("wnn-server-set-prefix-learn-mode", Fwnn_prefix_learn, 1, 1, 0, /* |
1476 For FI-Wnn. | 1516 For FI-Wnn. |
1477 */ | 1517 */ |
1478 (mode)) | 1518 (mode)) |
1479 { | 1519 { |
1480 int snum; | 1520 int snum; |
1481 unsigned long vmask = 0; | 1521 unsigned long vmask = 0; |
1482 struct wnn_henkan_env henv; | 1522 struct wnn_henkan_env henv; |
1483 if ((snum = check_wnn_server_type()) == -1) return Qnil; | 1523 if ((snum = check_wnn_server_type()) == -1) return Qnil; |
1484 if(!wnnfns_buf[snum]) return Qnil; | 1524 if(!wnnfns_buf[snum]) return Qnil; |
1485 vmask |= WNN_ENV_PREFIX_LEARN_MASK; | 1525 vmask |= WNN_ENV_PREFIX_LEARN_MASK; |
1486 henv.prefix_learn_flag = (NILP(mode)) ? False : True; | 1526 henv.prefix_learn_flag = (mode == Qnil) ? False : True; |
1487 if(jl_set_henkan_env(wnnfns_buf[snum], | 1527 if(jl_set_henkan_env(wnnfns_buf[snum], |
1488 vmask, | 1528 vmask, |
1489 &henv) < 0) return Qnil; | 1529 &henv) < 0) return Qnil; |
1490 return Qt; | 1530 return Qt; |
1491 } | 1531 } |
1492 | 1532 |
1493 DEFUN ("wnn-server-set-prefix-flag", Fwnn_prefix_flag, 1, 1, 0, /* | 1533 DEFUN ("wnn-server-set-prefix-flag", Fwnn_prefix_flag, 1, 1, 0, /* |
1494 For FI-Wnn. | 1534 For FI-Wnn. |
1495 */ | 1535 */ |
1496 (mode)) | 1536 (mode)) |
1497 { | 1537 { |
1498 int snum; | 1538 int snum; |
1499 unsigned long vmask = 0; | 1539 unsigned long vmask = 0; |
1500 struct wnn_henkan_env henv; | 1540 struct wnn_henkan_env henv; |
1501 CHECK_INT (mode); | 1541 CHECK_INT (mode); |
1513 } | 1553 } |
1514 | 1554 |
1515 DEFUN ("wnn-server-set-suffix-learn-mode", Fwnn_suffix_learn, 1, 1, 0, /* | 1555 DEFUN ("wnn-server-set-suffix-learn-mode", Fwnn_suffix_learn, 1, 1, 0, /* |
1516 For FI-Wnn. | 1556 For FI-Wnn. |
1517 */ | 1557 */ |
1518 (mode)) | 1558 (mode)) |
1519 { | 1559 { |
1520 int snum; | 1560 int snum; |
1521 unsigned long vmask = 0; | 1561 unsigned long vmask = 0; |
1522 struct wnn_henkan_env henv; | 1562 struct wnn_henkan_env henv; |
1523 if ((snum = check_wnn_server_type()) == -1) return Qnil; | 1563 if ((snum = check_wnn_server_type()) == -1) return Qnil; |
1524 if(!wnnfns_buf[snum]) return Qnil; | 1564 if(!wnnfns_buf[snum]) return Qnil; |
1525 vmask |= WNN_ENV_SUFFIX_LEARN_MASK; | 1565 vmask |= WNN_ENV_SUFFIX_LEARN_MASK; |
1526 henv.suffix_learn_flag = (NILP(mode)) ? False : True; | 1566 henv.suffix_learn_flag = (mode == Qnil) ? False : True; |
1527 if(jl_set_henkan_env(wnnfns_buf[snum], | 1567 if(jl_set_henkan_env(wnnfns_buf[snum], |
1528 vmask, | 1568 vmask, |
1529 &henv) < 0) return Qnil; | 1569 &henv) < 0) return Qnil; |
1530 return Qt; | 1570 return Qt; |
1531 } | 1571 } |
1532 | 1572 |
1533 DEFUN ("wnn-server-set-common-learn-mode", Fwnn_common_learn, 1, 1, 0, /* | 1573 DEFUN ("wnn-server-set-common-learn-mode", Fwnn_common_learn, 1, 1, 0, /* |
1534 For FI-Wnn. | 1574 For FI-Wnn. |
1535 */ | 1575 */ |
1536 (mode)) | 1576 (mode)) |
1537 { | 1577 { |
1538 int snum; | 1578 int snum; |
1539 unsigned long vmask = 0; | 1579 unsigned long vmask = 0; |
1540 struct wnn_henkan_env henv; | 1580 struct wnn_henkan_env henv; |
1541 if ((snum = check_wnn_server_type()) == -1) return Qnil; | 1581 if ((snum = check_wnn_server_type()) == -1) return Qnil; |
1542 if(!wnnfns_buf[snum]) return Qnil; | 1582 if(!wnnfns_buf[snum]) return Qnil; |
1543 vmask |= WNN_ENV_COMMON_LAERN_MASK; | 1583 vmask |= WNN_ENV_COMMON_LAERN_MASK; |
1544 henv.common_learn_flag = (NILP(mode)) ? False : True; | 1584 henv.common_learn_flag = (mode == Qnil) ? False : True; |
1545 if(jl_set_henkan_env(wnnfns_buf[snum], | 1585 if(jl_set_henkan_env(wnnfns_buf[snum], |
1546 vmask, | 1586 vmask, |
1547 &henv) < 0) return Qnil; | 1587 &henv) < 0) return Qnil; |
1548 return Qt; | 1588 return Qt; |
1549 } | 1589 } |
1550 | 1590 |
1551 DEFUN ("wnn-server-set-freq-func-mode", Fwnn_freq_func, 1, 1, 0, /* | 1591 DEFUN ("wnn-server-set-freq-func-mode", Fwnn_freq_func, 1, 1, 0, /* |
1552 For FI-Wnn. | 1592 For FI-Wnn. |
1553 */ | 1593 */ |
1554 (mode)) | 1594 (mode)) |
1555 { | 1595 { |
1556 int snum; | 1596 int snum; |
1557 unsigned long vmask = 0; | 1597 unsigned long vmask = 0; |
1558 struct wnn_henkan_env henv; | 1598 struct wnn_henkan_env henv; |
1559 CHECK_INT (mode); | 1599 CHECK_INT (mode); |
1571 } | 1611 } |
1572 | 1612 |
1573 DEFUN ("wnn-server-set-numeric-mode", Fwnn_numeric, 1, 1, 0, /* | 1613 DEFUN ("wnn-server-set-numeric-mode", Fwnn_numeric, 1, 1, 0, /* |
1574 For FI-Wnn. | 1614 For FI-Wnn. |
1575 */ | 1615 */ |
1576 (mode)) | 1616 (mode)) |
1577 { | 1617 { |
1578 int snum; | 1618 int snum; |
1579 unsigned long vmask = 0; | 1619 unsigned long vmask = 0; |
1580 struct wnn_henkan_env henv; | 1620 struct wnn_henkan_env henv; |
1581 CHECK_INT (mode); | 1621 CHECK_INT (mode); |
1599 } | 1639 } |
1600 | 1640 |
1601 DEFUN ("wnn-server-set-alphabet-mode", Fwnn_alphabet, 1, 1, 0, /* | 1641 DEFUN ("wnn-server-set-alphabet-mode", Fwnn_alphabet, 1, 1, 0, /* |
1602 For FI-Wnn. | 1642 For FI-Wnn. |
1603 */ | 1643 */ |
1604 (mode)) | 1644 (mode)) |
1605 { | 1645 { |
1606 int snum; | 1646 int snum; |
1607 unsigned long vmask = 0; | 1647 unsigned long vmask = 0; |
1608 struct wnn_henkan_env henv; | 1648 struct wnn_henkan_env henv; |
1609 CHECK_INT (mode); | 1649 CHECK_INT (mode); |
1621 } | 1661 } |
1622 | 1662 |
1623 DEFUN ("wnn-server-set-symbol-mode", Fwnn_symbol, 1, 1, 0, /* | 1663 DEFUN ("wnn-server-set-symbol-mode", Fwnn_symbol, 1, 1, 0, /* |
1624 For FI-Wnn. | 1664 For FI-Wnn. |
1625 */ | 1665 */ |
1626 (mode)) | 1666 (mode)) |
1627 { | 1667 { |
1628 int snum; | 1668 int snum; |
1629 unsigned long vmask = 0; | 1669 unsigned long vmask = 0; |
1630 struct wnn_henkan_env henv; | 1670 struct wnn_henkan_env henv; |
1631 CHECK_INT (mode); | 1671 CHECK_INT (mode); |
1643 } | 1683 } |
1644 | 1684 |
1645 DEFUN ("wnn-server-set-yuragi-mode", Fwnn_yuragi, 1, 1, 0, /* | 1685 DEFUN ("wnn-server-set-yuragi-mode", Fwnn_yuragi, 1, 1, 0, /* |
1646 For FI-Wnn. | 1686 For FI-Wnn. |
1647 */ | 1687 */ |
1648 (mode)) | 1688 (mode)) |
1649 { | 1689 { |
1650 int snum; | 1690 int snum; |
1651 unsigned long vmask = 0; | 1691 unsigned long vmask = 0; |
1652 struct wnn_henkan_env henv; | 1692 struct wnn_henkan_env henv; |
1653 if ((snum = check_wnn_server_type()) == -1) return Qnil; | 1693 if ((snum = check_wnn_server_type()) == -1) return Qnil; |
1654 if(!wnnfns_buf[snum]) return Qnil; | 1694 if(!wnnfns_buf[snum]) return Qnil; |
1655 vmask |= WNN_ENV_YURAGI_MASK; | 1695 vmask |= WNN_ENV_YURAGI_MASK; |
1656 henv.yuragi_flag = (NILP(mode)) ? False : True; | 1696 henv.yuragi_flag = (mode == Qnil) ? False : True; |
1657 if(jl_set_henkan_env(wnnfns_buf[snum], | 1697 if(jl_set_henkan_env(wnnfns_buf[snum], |
1658 vmask, | 1698 vmask, |
1659 &henv) < 0) return Qnil; | 1699 &henv) < 0) return Qnil; |
1660 return Qt; | 1700 return Qt; |
1661 } | 1701 } |
1662 | 1702 |
1663 DEFUN ("wnn-reset-previous-info", Fwnn_reset_prev, 0, 0, 0, /* | 1703 DEFUN ("wnn-reset-previous-info", Fwnn_reset_prev, 0, 0, 0, /* |
1664 For FI-Wnn. | 1704 For FI-Wnn. |
1665 */ | 1705 */ |
1666 ()) | 1706 ()) |
1667 { | 1707 { |
1668 int snum; | 1708 int snum; |
1669 if ((snum = check_wnn_server_type()) == -1) return Qnil; | 1709 if ((snum = check_wnn_server_type()) == -1) return Qnil; |
1670 if(!wnnfns_buf[snum]) return Qnil; | 1710 if(!wnnfns_buf[snum]) return Qnil; |
1671 if(jl_reset_prev_bun(wnnfns_buf[snum]) < 0) return Qnil; | 1711 if(jl_reset_prev_bun(wnnfns_buf[snum]) < 0) return Qnil; |
1674 #endif /* Wnn6 */ | 1714 #endif /* Wnn6 */ |
1675 | 1715 |
1676 DEFUN ("wnn-server-version", Fwnn_version, 0, 0, 0, /* | 1716 DEFUN ("wnn-server-version", Fwnn_version, 0, 0, 0, /* |
1677 Returns Wnn server version ID. | 1717 Returns Wnn server version ID. |
1678 */ | 1718 */ |
1679 ()) | 1719 ()) |
1680 { | 1720 { |
1681 int snum; | 1721 int snum; |
1682 int serv; | 1722 int serv; |
1683 int libv; | 1723 int libv; |
1684 struct wnn_env *cur_env; | 1724 struct wnn_env *cur_env; |
1693 } | 1733 } |
1694 | 1734 |
1695 DEFUN ("wnn-server-hinsi-number", Fwnn_hinsi_number, 1, 1, 0, /* | 1735 DEFUN ("wnn-server-hinsi-number", Fwnn_hinsi_number, 1, 1, 0, /* |
1696 For Wnn. | 1736 For Wnn. |
1697 */ | 1737 */ |
1698 (name)) | 1738 (name)) |
1699 { | 1739 { |
1700 w_char w_buf[256]; | 1740 w_char w_buf[256]; |
1701 int no; | 1741 int no; |
1702 int snum; | 1742 int snum; |
1703 CHECK_STRING (name); | 1743 CHECK_STRING (name); |
1704 if ((snum = check_wnn_server_type ()) == -1) return Qnil; | 1744 if ((snum = check_wnn_server_type ()) == -1) return Qnil; |
1705 if (!wnnfns_buf[snum]) return Qnil; | 1745 if (!wnnfns_buf[snum]) return Qnil; |
1706 m2w (XSTRING (name)->data, w_buf); | 1746 m2w (XSTRING (name)->_data, w_buf); |
1707 if ((no = jl_hinsi_number (wnnfns_buf[snum], w_buf)) < 0) return Qnil; | 1747 if ((no = jl_hinsi_number (wnnfns_buf[snum], w_buf)) < 0) return Qnil; |
1708 return make_int (no); | 1748 return make_int (no); |
1709 } | 1749 } |
1710 | 1750 |
1711 void | 1751 void |
1778 defsymbol (&Qkserver, "kserver"); | 1818 defsymbol (&Qkserver, "kserver"); |
1779 | 1819 |
1780 defsymbol (&Qwnn_no_uniq, "wnn-no-uniq"); | 1820 defsymbol (&Qwnn_no_uniq, "wnn-no-uniq"); |
1781 defsymbol (&Qwnn_uniq, "wnn-uniq"); | 1821 defsymbol (&Qwnn_uniq, "wnn-uniq"); |
1782 defsymbol (&Qwnn_uniq_kanji, "wnn-uniq-kanji"); | 1822 defsymbol (&Qwnn_uniq_kanji, "wnn-uniq-kanji"); |
1823 defsymbol (&Qwnn_n, "wnn_n"); | |
1824 defsymbol (&Qwnn_nsho, "wnn_nsho"); | |
1825 defsymbol (&Qwnn_hindo, "wnn_hindo"); | |
1826 defsymbol (&Qwnn_len, "wnn_len"); | |
1827 defsymbol (&Qwnn_jiri, "wnn_jiri"); | |
1828 defsymbol (&Qwnn_flag, "wnn_flag"); | |
1829 defsymbol (&Qwnn_jisho, "wnn_jisho"); | |
1830 defsymbol (&Qwnn_sbn, "wnn_sbn"); | |
1831 defsymbol (&Qwnn_dbn_len, "wnn_dbn_len"); | |
1832 defsymbol (&Qwnn_sbn_cnt, "wnn_sbn_cnt"); | |
1833 defsymbol (&Qwnn_suuji, "wnn_suuji"); | |
1834 defsymbol (&Qwnn_kana, "wnn_kana"); | |
1835 defsymbol (&Qwnn_eisuu, "wnn_eisuu"); | |
1836 defsymbol (&Qwnn_kigou, "wnn_kigou"); | |
1837 defsymbol (&Qwnn_toji_kakko, "wnn_toji_kakko"); | |
1838 defsymbol (&Qwnn_fuzokogo, "wnn_fuzokogo"); | |
1839 defsymbol (&Qwnn_kaikakko, "wnn_kaikakko"); | |
1783 } | 1840 } |
1784 | 1841 |
1785 void | 1842 void |
1786 vars_of_mule_wnn (void) | 1843 vars_of_mule_wnn (void) |
1787 { | 1844 { |
1827 while (wc = *wp++) | 1884 while (wc = *wp++) |
1828 { | 1885 { |
1829 switch (wc & 0x8080) | 1886 switch (wc & 0x8080) |
1830 { | 1887 { |
1831 case 0x80: | 1888 case 0x80: |
1832 if (Vwnn_server_type == Qcserver) | 1889 if (EQ(Vwnn_server_type, Qcserver)) |
1833 { | 1890 { |
1834 len = cwnn_yincod_pzy (pzy, wc, | 1891 len = cwnn_yincod_pzy (pzy, wc, |
1835 (NILP(Vcwnn_zhuyin)) | 1892 (EQ(Vcwnn_zhuyin, Qnil)) |
1836 ? CWNN_PINYIN | 1893 ? CWNN_PINYIN |
1837 : CWNN_ZHUYIN); | 1894 : CWNN_ZHUYIN); |
1838 for (i = 0; i < len; i++) | 1895 for (i = 0; i < len; i++) |
1839 { | 1896 { |
1840 if (pzy[i] & 0x80) | 1897 if (pzy[i] & 0x80) |
1841 { | 1898 { |
1842 *mp++ = LEADING_BYTE_PRV11; | 1899 *mp++ = PRE_LEADING_BYTE_PRIVATE_1; /* #### Not sure about this one... */ |
1843 *mp++ = lb_sisheng; | 1900 *mp++ = lb_sisheng; |
1844 } | 1901 } |
1845 *mp++ = pzy[i]; | 1902 *mp++ = pzy[i]; |
1846 } | 1903 } |
1847 } | 1904 } |
1848 else | 1905 else |
1849 { | 1906 { |
1850 *mp++ = LEADING_BYTE_KANA; | 1907 *mp++ = LEADING_BYTE_KATAKANA_JISX0201; |
1851 *mp++ = (wc & 0xff); | 1908 *mp++ = (wc & 0xff); |
1852 } | 1909 } |
1853 break; | 1910 break; |
1854 case 0x8080: | 1911 case 0x8080: |
1855 *mp++ = lb; | 1912 *mp++ = lb; |
1856 *mp++ = (wc & 0xff00) >> 8; | 1913 *mp++ = (wc & 0xff00) >> 8; |
1857 *mp++ = wc & 0x00ff; | 1914 *mp++ = wc & 0x00ff; |
1858 break; | 1915 break; |
1859 case 0x8000: | 1916 case 0x8000: |
1860 if (lb == LEADING_BYTE_JP) | 1917 if (lb == LEADING_BYTE_JAPANESE_JISX0208) |
1861 *mp++ = LEADING_BYTE_JP2; | 1918 *mp++ = LEADING_BYTE_JAPANESE_JISX0212; |
1862 else if (lb == LEADING_BYTE_BIG5_1) | 1919 else if (lb == LEADING_BYTE_CHINESE_BIG5_1) |
1863 *mp++ = LEADING_BYTE_BIG5_2; | 1920 *mp++ = LEADING_BYTE_CHINESE_BIG5_2; |
1864 else | 1921 else |
1865 *mp++ = lb; | 1922 *mp++ = lb; |
1866 *mp++ = (wc & 0xff00) >> 8; | 1923 *mp++ = (wc & 0xff00) >> 8; |
1867 *mp++ = wc & 0x00ff | 0x80; | 1924 *mp++ = wc & 0x00ff | 0x80; |
1868 break; | 1925 break; |
1879 { | 1936 { |
1880 unsigned int ch; | 1937 unsigned int ch; |
1881 | 1938 |
1882 while (ch = *mp++) | 1939 while (ch = *mp++) |
1883 { | 1940 { |
1884 if (BUFBYTE_ASCII_P (ch)) | 1941 if (BUFBYTE_LEADING_BYTE_P (ch)) |
1885 { | |
1886 *wp++ = ch; | |
1887 } | |
1888 else if (BUFBYTE_LEADING_BYTE_P (ch)) | |
1889 { | 1942 { |
1890 switch (ch) | 1943 switch (ch) |
1891 { | 1944 { |
1892 case LEADING_BYTE_KANA: | 1945 case LEADING_BYTE_KATAKANA_JISX0201: |
1893 *wp++ = *mp++; break; | 1946 *wp++ = *mp++; break; |
1894 case LEADING_BYTE_ROMAN: | 1947 case LEADING_BYTE_LATIN_JISX0201: |
1895 *wp++ = *mp++ & 0x7F; break; | 1948 *wp++ = *mp++ & 0x7F; break; |
1896 case LEADING_BYTE_JPOLD: | 1949 case LEADING_BYTE_JAPANESE_JISX0208_1978: |
1897 case LEADING_BYTE_CN: | 1950 case LEADING_BYTE_CHINESE_GB2312: |
1898 case LEADING_BYTE_JP: | 1951 case LEADING_BYTE_JAPANESE_JISX0208: |
1899 case LEADING_BYTE_KR: | 1952 case LEADING_BYTE_KOREAN_KSC5601: |
1900 /* case LEADING_BYTE_TW: */ | 1953 /* case LEADING_BYTE_TW: */ |
1901 ch = *mp++; | 1954 ch = *mp++; |
1902 *wp++ = (ch << 8) | *mp++; | 1955 *wp++ = (ch << 8) | *mp++; |
1903 break; | 1956 break; |
1904 case LEADING_BYTE_JP2: | 1957 case LEADING_BYTE_JAPANESE_JISX0212: |
1905 ch = *mp++; | 1958 ch = *mp++; |
1906 *wp++ = (ch << 8) | (*mp++ & 0x7f); | 1959 *wp++ = (ch << 8) | (*mp++ & 0x7f); |
1907 break; | 1960 break; |
1908 case LEADING_BYTE_PRV11: | 1961 case PRE_LEADING_BYTE_PRIVATE_1: /* #### Not sure about this one... */ |
1909 ch = *mp++; | 1962 ch = *mp++; |
1910 if (ch == lb_sisheng) | 1963 if (ch == lb_sisheng) |
1911 *wp++ = 0x8e80 | *mp++; | 1964 *wp++ = 0x8e80 | *mp++; |
1912 else | 1965 else |
1913 mp++; | 1966 mp++; |
1914 break; | 1967 break; |
1915 default: /* ignore this character */ | 1968 default: /* ignore this character */ |
1916 mp += mule_charset_bytes[ch] - 1; | 1969 mp += REP_BYTES_BY_FIRST_BYTE(ch) - 1; |
1917 } | 1970 } |
1971 } | |
1972 else | |
1973 { | |
1974 *wp++ = ch; | |
1918 } | 1975 } |
1919 } | 1976 } |
1920 *wp = 0; | 1977 *wp = 0; |
1921 } | 1978 } |
1922 | 1979 |
1942 {*pin =0; break;} | 1999 {*pin =0; break;} |
1943 else *pin = *w; | 2000 else *pin = *w; |
1944 w++; pin++; | 2001 w++; pin++; |
1945 } | 2002 } |
1946 len = cwnn_pzy_yincod (ybuf, pbuf, | 2003 len = cwnn_pzy_yincod (ybuf, pbuf, |
1947 (NILP(Vcwnn_zhuyin)) ? CWNN_PINYIN : CWNN_ZHUYIN); | 2004 (EQ(Vcwnn_zhuyin, Qnil)) ? CWNN_PINYIN : CWNN_ZHUYIN); |
1948 if (len <= 0) | 2005 if (len <= 0) |
1949 return; | 2006 return; |
1950 | 2007 |
1951 pin = ybuf; | 2008 pin = ybuf; |
1952 while (1) | 2009 while (1) |
1983 } | 2040 } |
1984 | 2041 |
1985 static int | 2042 static int |
1986 yes_or_no (unsigned char *s) | 2043 yes_or_no (unsigned char *s) |
1987 { | 2044 { |
1988 extern Lisp_Object Fy_or_n_p (); | 2045 extern Lisp_Object Fy_or_n_p(); |
1989 unsigned char mbuf[512]; | 2046 unsigned char mbuf[512]; |
1990 unsigned char lb; | 2047 unsigned char lb; |
1991 int len; | 2048 int len; |
1992 int snum; | 2049 int snum; |
1993 if ((snum = check_wnn_server_type ()) == -1) return 0; | 2050 if ((snum = check_wnn_server_type ()) == -1) return 0; |
1994 lb = lb_wnn_server_type[snum]; | 2051 lb = lb_wnn_server_type[snum]; |
1995 /* if no message found, create file without query */ | 2052 /* if no message found, create file without query */ |
1996 /* if (wnn_msg_cat->msg_bd == 0) return 1;*/ | 2053 /* if (wnn_msg_cat->msg_bd == 0) return 1;*/ |
1997 if (*s == 0) return 1; | 2054 if (*s == 0) return 1; |
1998 c2m (s, mbuf, lb); | 2055 c2m (s, mbuf, lb); |
1999 /* truncate "(Y/N)" */ | 2056 /* truncate "(Y/N)" */ |
2000 for (len = 0; (mbuf[len]) && (len < 512); len++); | 2057 for (len = 0; (mbuf[len]) && (len < 512); len++); |
2001 for (; (mbuf[len] != '(') && (len > 0); len--); | 2058 for (; (mbuf[len] != '(') && (len > 0); len--); |
2002 if (NILP(Fy_or_n_p (make_string (mbuf, len)))) return 0; | 2059 #if 0 |
2060 if (Fy_or_n_p (make_string (mbuf, len)) == Qnil) return 0; | |
2003 else return (1); | 2061 else return (1); |
2062 #else | |
2063 { | |
2064 Lisp_Object yes, str; | |
2065 | |
2066 str = make_string (mbuf, len); | |
2067 yes = call1(Qyes_or_no_p, EQ(str, Qnil)); | |
2068 if (NILP (yes)) return 0; | |
2069 else return (1); | |
2070 } | |
2071 #endif | |
2004 } | 2072 } |
2005 | 2073 |
2006 static void | 2074 static void |
2007 puts2 (char *s) | 2075 puts2 (char *s) |
2008 { | 2076 { |
2077 #if 0 | |
2009 Lisp_Object args[1]; | 2078 Lisp_Object args[1]; |
2010 char mbuf[512]; | 2079 char mbuf[512]; |
2011 unsigned char lb; | 2080 unsigned char lb; |
2012 extern Lisp_Object Fmessage (); | 2081 extern Lisp_Object Fmessage (); |
2013 int snum; | 2082 int snum; |
2014 if ((snum = check_wnn_server_type ()) == -1) return; | 2083 if ((snum = check_wnn_server_type ()) == -1) return; |
2015 lb = lb_wnn_server_type[snum]; | 2084 lb = lb_wnn_server_type[snum]; |
2016 c2m (s, mbuf, lb); | 2085 c2m (s, mbuf, lb); |
2017 args[0] = make_string (mbuf, strlen (mbuf)); | 2086 args[0] = make_string (mbuf, strlen (mbuf)); |
2018 Fmessage (1, args); | 2087 Fmessage (1, args); |
2088 #else | |
2089 message("%s",s); | |
2090 #endif | |
2019 } | 2091 } |
2020 | 2092 |
2021 int | 2093 int |
2022 check_wnn_server_type (void) | 2094 check_wnn_server_type (void) |
2023 { | 2095 { |
2024 if (Vwnn_server_type == Qjserver) | 2096 if (EQ(Vwnn_server_type, Qjserver)) |
2025 { | 2097 { |
2026 return WNNSERVER_J; | 2098 return WNNSERVER_J; |
2027 } | 2099 } |
2028 else if (Vwnn_server_type == Qcserver) | 2100 else if (EQ(Vwnn_server_type, Qcserver)) |
2029 { | 2101 { |
2030 return WNNSERVER_C; | 2102 return WNNSERVER_C; |
2031 } | 2103 } |
2032 /* else if (Vwnn_server_type == Qtserver) | 2104 /* else if (Vwnn_server_type == Qtserver) |
2033 { | 2105 { |
2034 return WNNSERVER_T; | 2106 return WNNSERVER_T; |
2035 } */ | 2107 } */ |
2036 else if (Vwnn_server_type == Qkserver) | 2108 else if (EQ(Vwnn_server_type, Qkserver)) |
2037 { | 2109 { |
2038 return WNNSERVER_K; | 2110 return WNNSERVER_K; |
2039 } | 2111 } |
2040 else return -1; | 2112 else return -1; |
2041 } | 2113 } |