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], &param);
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], &param); 1097 rc = jl_param_set (wnnfns_buf[snum], &param);
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 }