Mercurial > hg > xemacs-beta
diff 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 |
line wrap: on
line diff
--- a/src/mule-wnnfns.c Mon Aug 13 09:12:43 2007 +0200 +++ b/src/mule-wnnfns.c Mon Aug 13 09:13:56 2007 +0200 @@ -53,20 +53,20 @@ * pw1: STRING or NIL * pw2: STRING or NIL * DESCRIPTION: - * $B<-=q09:37:18!%$%kL>!"IQEY09:37:18!%$%kL>!"M%@hEY!"<-=q09:37:18!%$%k%b!<%(BI - * $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# - * pw1, pw2 $B$O<-=q09:37:18!%$%k!"IQEY09:37:18!%$%k$N9%o!<%I!(B# + * $B<-=q%U%!%$%kL>!"IQEY%U%!%$%kL>!"M%@hEY!"<-=q%U%!%$%k%b!<%I(B + * $BIQEY%U%!%$%k%b!<%I$G;XDj$7$?<-=q$r%P%C%U%!$KDI2C$9$k!#(B + * pw1, pw2 $B$O<-=q%U%!%$%k!"IQEY%U%!%$%k$N%Q%9%o!<%I!#(B * * (wnn-server-dict-delete dic-no) * dic-no: INTEGER * RETURNS: $B%(%i!<$N;~(B nil - * 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 + * DESCRIPTION: dic-no $B$N<-=qHV9f$N<-=q$r!"%P%C%U%!$+$i(B * $B:o=|$9$k!#(B * * (wnn-server-dict-list) * RETURNS: ((dic-no1 file-name1 comment1 word-no1 nice1) * (dic-no2 file-name2 comment2 word-no2 nice2)...) - * 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 + * DESCRIPTION: $B%P%C%U%!>e$N<-=q$N%j%9%H$rF@$k!#(B * * (wnn-server-dict-comment dic-no comment) * RETURNS: $B%(%i!<$N;~(B nil @@ -88,14 +88,14 @@ * RETURNS: offset * DESCRIPTION: * $BJ8@aHV9f$G;XDj$5$l$?J8@a$NA48uJd$r$H$j$@$7(B - * $B!"8=:_$N%*09:37:18;89H$rJV$9!#(B + * $B!"8=:_$N%*%U%;%C%H$rJV$9!#(B * * (wnn-server-get-zenkouho offset) * bunsetu-no: INTEGER * dai: BOOLEAN * RETURNS: list of zenkouho * DESCRIPTION: - * $B%*09:37:18;96H$G;XDj$5$l$?8uJd$rF@$k!#(B + * $B%*%U%;%C%H$G;XDj$5$l$?8uJd$rF@$k!#(B * * (wnn-server-zenkouho-bun) * RETURNS: INTEGER @@ -140,7 +140,7 @@ * RETURNS: (kanji yomi jisho-no serial-no hinsi hindo * ima hyoka daihyoka kangovect) * DESCRIPTION: - * $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 + * $BJ8@a$N?'!9$J>pJs$rJQ49%P%C%U%!$+$i$H$j=P$9!#(B * * (wnn-server-henkan-quit) * RETURNS: BOOLEAN @@ -180,21 +180,21 @@ * entry: INTEGER * RETURNS: BOOLEAN * DESCRIPTION: - * $B<-=q$+$i%(%s15(B $BSe(Bp $B1995jHV9f$G<($5$l$kC18l$r:o=|$9$k!(B# + * $B<-=q$+$i%(%s%H%jHV9f$G<($5$l$kC18l$r:o=|$9$k!#(B * * (wnn-server-word-use dic-no entry) * dic-no: INTEGER * entry: INTEGER * RETURNS: BOOLEAN * DESCRIPTION: - * $B<-=q$+$i%(%s15(B $BSe(Bp $B1995jHV9f$G<($5$l$kC18l$NM-8z!?L58z$r1(B5 $BSe(Bp $B19950%k$9$k!(B# - * + * $B<-=q$+$i%(%s%H%jHV9f$G<($5$l$kC18l$NM-8z!?L58z$r%H%0%k$9$k!#(B + * * (wnn-server-word-info dic-no entry) * dic-no: INTEGER * entry: INTEGER * RETURNS: (yomi kanji comment hindo hinsi) * DESCRIPTION: - * $B<-=q$+$i%(%s15(B $BSe(Bp $B1995jHV9f$G<($5$l$kC18l$N>pJs$rF@$k!(B# + * $B<-=q$+$i%(%s%H%jHV9f$G<($5$l$kC18l$N>pJs$rF@$k!#(B * * (wnn-server-word-hindo-set dic-no entry hindo) * dic-no: INTEGER @@ -202,7 +202,7 @@ * hindo: INTEGER * RETURNS: BOOLEAN * DESCRIPTION: - * $B<-=q$+$i%(%s15(B $BSe(Bp $B1995jHV9f$G<($5$l$kC18l$NIQEY$r@_Dj$9$k!(B# + * $B<-=q$+$i%(%s%H%jHV9f$G<($5$l$kC18l$NIQEY$r@_Dj$9$k!#(B * * (wnn-server-word-search yomi) * yomi: STRING @@ -213,30 +213,30 @@ * (wnn-server-dict-save) * RETURNS: BOOLEAN * DESCRIPTION: - * $BA4$F$N<-=q$HIQEY09:37:18!%$%k$r%;!<%V$9$k!(B# + * $BA4$F$N<-=q$HIQEY%U%!%$%k$r%;!<%V$9$k!#(B * * (wnn-server-get-param) * RETURNS: (n nsho p1 p2 p3 ... p15) - * DESCRIPTION: $BJQ49i%a!<%?$rF@$k!(B# + * DESCRIPTION: $BJQ49%Q%i%a!<%?$rF@$k!#(B * * (wnn-server-set-param n sho p1 ... p15) * RETURNS: $B%(%i!<$N;~(B nil - * DESCRIPTION: $BJQ49i%a!<%?$r@_Dj$9$k!(B# + * DESCRIPTION: $BJQ49%Q%i%a!<%?$r@_Dj$9$k!#(B * * (wnn-server-get-msg error-no) * RETURNS: $B%(%i!<%a225;!<%8(B - * DESCRIPTION: $B%(%i!<HV9f$+$i%a226;!<%8$rF@$k!#(B + * DESCRIPTION: $B%(%i!<HV9f$+$i%a%C%;!<%8$rF@$k!#(B * * (wnn-server-fuzokugo-set fname) * RETURNS: $B%(%i!<$N;~(B nil - * 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# + * DESCRIPTION: $B%P%C%U%!$KImB08l%U%!%$%k$rFI$_9~$`!#(B * * (wnn-server-fuzokugo-get) - * RETURNS: $B09:37:18!%$%kL(B> - * 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# + * RETURNS: $B%U%!%$%kL>(B + * DESCRIPTION: $B%P%C%U%!$NImB08l%U%!%$%kL>$rF@$k!#(B * * (wnn-server-isconnect) - * RETURNS: $B%3mule-wnnfns.c/%H$7$F$l$P(B t, $B$7$F$J$1$l$P(B nil + * RETURNS: $B%3%M%/%H$7$F$l$P(B t, $B$7$F$J$1$l$P(B nil * DESCRIPTION: $B%5!<%P$H7Q$C$F$$$k$+D4$Y$k!#(B * * (wnn-server-hinsi-dicts hinsi-no) @@ -270,6 +270,7 @@ #include "window.h" #include "commonhd.h" +#include "mule-charset.h" #include "jllib.h" #include "cplib.h" @@ -283,12 +284,19 @@ #define WNNSERVER_T 2 #define WNNSERVER_K 3 +void w2m (w_char *wp, unsigned char *mp, unsigned char lb); +void m2w (unsigned char *mp, w_char *wp); +void w2y (w_char *w); +void c2m (unsigned char *cp, unsigned char *mp, unsigned char lb); +static void puts2 (char *s); +static int yes_or_no (unsigned char *s); + static struct wnn_buf *wnnfns_buf[NSERVER]; static struct wnn_env *wnnfns_env_norm[NSERVER]; static struct wnn_env *wnnfns_env_rev[NSERVER]; static int wnnfns_norm; static unsigned char lb_wnn_server_type[NSERVER] = -{LEADING_BYTE_JP, LEADING_BYTE_CN, LEADING_BYTE_INV, LEADING_BYTE_KR}; +{LEADING_BYTE_JAPANESE_JISX0208, LEADING_BYTE_CHINESE_GB2312, LEADING_BYTE_THAI_TIS620, LEADING_BYTE_KOREAN_KSC5601}; /* Lisp Variables and Constants Definition */ Lisp_Object Qjserver; @@ -298,6 +306,9 @@ Lisp_Object Qwnn_no_uniq; Lisp_Object Qwnn_uniq; Lisp_Object Qwnn_uniq_kanji; +Lisp_Object Qwnn_n, Qwnn_nsho, Qwnn_hindo, Qwnn_len, Qwnn_jiri, Qwnn_flag; +Lisp_Object Qwnn_jisho, Qwnn_sbn, Qwnn_dbn_len, Qwnn_sbn_cnt, Qwnn_suuji; +Lisp_Object Qwnn_kana, Qwnn_eisuu, Qwnn_kigou, Qwnn_toji_kakko, Qwnn_fuzokogo, Qwnn_kaikakko; Lisp_Object Vwnn_server_type; Lisp_Object Vcwnn_zhuyin; Lisp_Object Vwnnenv_sticky; @@ -313,7 +324,7 @@ login name LNAME in the server. Return nil if error occurs */ - (hname, lname)) + (hname, lname)) { char envname[32]; char langname[32]; @@ -339,12 +350,12 @@ strcpy (langname, "ko_KR"); break; } - strncpy (envname, XSTRING (lname)->data, 32); - if (NILP(hname)) strcpy (hostname, ""); + strncpy (envname, XSTRING (lname)->_data, 32); + if (EQ(hname, Qnil)) strcpy (hostname, ""); else { CHECK_STRING (hname); - strncpy (hostname, XSTRING (hname)->data, 32); + strncpy (hostname, XSTRING (hname)->_data, 32); } CHECK_STRING (lname); if (!(wnnfns_buf[snum] = jl_open_lang (envname, hostname, langname, @@ -372,20 +383,20 @@ Close the connection to jserver, Dictionary and friquency files are not saved. */ - ()) + ()) { int snum; if ((snum = check_wnn_server_type ()) == -1) return Qnil; if (!wnnfns_buf[snum]) return Qnil; if (wnnfns_env_norm[snum]) { - if (NILP(Vwnnenv_sticky)) jl_env_un_sticky_e (wnnfns_env_norm[snum]); + if (EQ(Vwnnenv_sticky, Qnil)) jl_env_un_sticky_e (wnnfns_env_norm[snum]); else jl_env_sticky_e (wnnfns_env_norm[snum]); jl_disconnect (wnnfns_env_norm[snum]); } if (wnnfns_env_rev[snum]) { - if (NILP(Vwnnenv_sticky)) jl_env_un_sticky_e (wnnfns_env_rev[snum]); + if (EQ(Vwnnenv_sticky, Qnil)) jl_env_un_sticky_e (wnnfns_env_rev[snum]); else jl_env_sticky_e (wnnfns_env_rev[snum]); jl_disconnect (wnnfns_env_rev[snum]); } @@ -401,30 +412,28 @@ PRIORITY, DICT-FILE-MODE, FREQ-FILE-MODE. Specify password files of dictionary and frequency, PW1 and PW2, if needed. */ - (int nargs, Lisp_Object *args)) + (int nargs, Lisp_Object *args)) { - static int yes_or_no (); - static void puts2 (); struct gcpro gcpro1; int snum; CHECK_STRING (args[0]); CHECK_STRING (args[1]); CHECK_INT (args[2]); - if (! NILP(args[5])) CHECK_STRING (args[5]); - if (! NILP(args[6])) CHECK_STRING (args[6]); + if (!EQ(args[5], Qnil)) CHECK_STRING (args[5]); + if (!EQ(args[6], Qnil)) CHECK_STRING (args[6]); if ((snum = check_wnn_server_type ()) == -1) return Qnil; if (!wnnfns_buf[snum]) return Qnil; GCPRO1 (*args); gcpro1.nvars = nargs; if (jl_dic_add (wnnfns_buf[snum], - XSTRING (args[0])->data, - XSTRING (args[1])->data, + XSTRING (args[0])->_data, + XSTRING (args[1])->_data, wnnfns_norm ? WNN_DIC_ADD_NOR : WNN_DIC_ADD_REV, XINT (args[2]), - (NILP(args[3])) ? WNN_DIC_RDONLY : WNN_DIC_RW, - (NILP(args[4])) ? WNN_DIC_RDONLY : WNN_DIC_RW, - (NILP(args[5])) ? 0 : XSTRING (args[5])->data, - (NILP(args[6])) ? 0 : XSTRING (args[6])->data, + (EQ(args[3], Qnil)) ? WNN_DIC_RDONLY : WNN_DIC_RW, + (EQ(args[4], Qnil)) ? WNN_DIC_RDONLY : WNN_DIC_RW, + (EQ(args[5], Qnil)) ? 0 : XSTRING (args[5])->_data, + (EQ(args[6], Qnil)) ? 0 : XSTRING (args[6])->_data, yes_or_no, puts2 ) < 0) { @@ -438,7 +447,7 @@ DEFUN ("wnn-server-dict-delete", Fwnn_dict_delete, 1, 1, 0, /* Remove dictionary specified by DIC-NUMBER from buffer. */ - (dicno)) + (dicno)) { int no; int snum; @@ -453,7 +462,7 @@ DEFUN ("wnn-server-dict-list", Fwnn_dict_list, 0, 0, 0, /* Return information of dictionaries. */ - ()) + ()) { WNN_DIC_INFO *dicinfo; int cnt, i; @@ -489,8 +498,8 @@ DEFUN ("wnn-server-dict-comment", Fwnn_dict_comment, 2, 2, 0, /* Set comment to dictionary specified by DIC-NUMBER. Comment string COMMENT -*/ - (dicno, comment)) +*/ + (dicno, comment)) { w_char wbuf[512]; int snum; @@ -498,7 +507,7 @@ CHECK_STRING (comment); if ((snum = check_wnn_server_type ()) == -1) return Qnil; if (!wnnfns_buf[snum]) return Qnil; - m2w (XSTRING (comment)->data, wbuf); + m2w (XSTRING (comment)->_data, wbuf); if (jl_dic_comment_set (wnnfns_buf[snum], XINT (dicno), wbuf) < 0) return Qnil; return Qt; @@ -508,11 +517,11 @@ DEFUN ("wnn-server-set-rev", Fwnn_set_rev, 1, 1, 0, /* Switch the translation mode to normal if T, or reverse if NIL. */ - (rev)) + (rev)) { int snum; if ((snum = check_wnn_server_type ()) == -1) return Qnil; - if (NILP(rev)) + if (EQ(rev, Qnil)) { if ((!wnnfns_buf[snum]) || (!wnnfns_env_norm[snum])) return; jl_env_set (wnnfns_buf[snum], wnnfns_env_norm[snum]); @@ -529,7 +538,7 @@ DEFUN ("wnn-server-henkan-begin", Fwnn_begin_henkan, 1, 1, 0, /* Translate YOMI string to kanji. Retuen the number of bunsetsu. */ - (hstring)) + (hstring)) { int cnt; w_char wbuf[5000]; @@ -537,7 +546,7 @@ CHECK_STRING (hstring); if ((snum = check_wnn_server_type ()) == -1) return Qnil; if (!wnnfns_buf[snum]) return Qnil; - m2w (XSTRING (hstring)->data, wbuf); + m2w (XSTRING (hstring)->_data, wbuf); if (snum == WNNSERVER_C) w2y (wbuf); @@ -547,6 +556,7 @@ #else if ((cnt = jl_ren_conv (wnnfns_buf[snum], wbuf, 0, -1, WNN_USE_MAE)) < 0) return Qnil; +#endif return make_int (cnt); } @@ -554,7 +564,7 @@ Get zenkouho at BUNSETSU-NUMBER. Second argument DAI is T if dai-bunsetsu, NIL if sho-bunsetsu. Return the current offset of zenkouho. */ - (bunNo, dai)) + (bunNo, dai)) { int no, offset; int snum; @@ -563,10 +573,10 @@ if ((snum = check_wnn_server_type ()) == -1) return Qnil; if (!wnnfns_buf[snum]) return Qnil; no = XINT (bunNo); - if (Vwnn_uniq_level == Qwnn_no_uniq) uniq_level = WNN_NO_UNIQ; - else if (Vwnn_uniq_level == Qwnn_uniq) uniq_level = WNN_UNIQ; + if (EQ(Vwnn_uniq_level, Qwnn_no_uniq)) uniq_level = WNN_NO_UNIQ; + else if (EQ(Vwnn_uniq_level, Qwnn_uniq)) uniq_level = WNN_UNIQ; else uniq_level = WNN_UNIQ_KNJ; - if (NILP(dai)) + if (EQ(dai, Qnil)) { if (offset = jl_zenkouho (wnnfns_buf[snum],no,WNN_USE_MAE, uniq_level) < 0) return Qnil; @@ -584,7 +594,7 @@ DEFUN ("wnn-server-get-zenkouho", Fwnn_get_zenkouho, 1, 1, 0, /* Get kanji string of KOUHO-NUMBER */ - (kouhoNo)) + (kouhoNo)) { unsigned char kanji_buf[256]; w_char wbuf[256]; @@ -602,7 +612,7 @@ DEFUN ("wnn-server-zenkouho-bun", Fwnn_zenkouho_bun, 0, 0, 0, /* For Wnn. */ - ()) + ()) { int snum; if ((snum = check_wnn_server_type ()) == -1) return Qnil; @@ -612,7 +622,7 @@ DEFUN ("wnn-server-zenkouho-suu", Fwnn_zenkouho_suu, 0, 0, 0, /* Return the number of zen kouho */ - ()) + ()) { int snum; if ((snum = check_wnn_server_type ()) == -1) return Qnil; @@ -622,7 +632,7 @@ DEFUN ("wnn-server-dai-top", Fwnn_dai_top, 1, 1, 0, /* Return T if bunsetsu BUN-NUMBER is dai-bunsetsu. */ - (bunNo)) + (bunNo)) { int snum; CHECK_INT (bunNo); @@ -635,7 +645,7 @@ DEFUN ("wnn-server-dai-end", Fwnn_dai_end, 1, 1, 0, /* Return the bunsetu number of the next dai-bunsetsu after BUN-NUMBER. */ - (bunNo)) + (bunNo)) { int snum; CHECK_INT (bunNo); @@ -647,13 +657,13 @@ DEFUN ("wnn-server-henkan-kakutei", Fwnn_kakutei, 2, 2, 0, /* Set candidate with OFFSET, DAI. DAI is T if dai-bunsetsu. */ - (offset, dai)) + (offset, dai)) { int snum; CHECK_INT (offset); if ((snum = check_wnn_server_type ()) == -1) return Qnil; if (!wnnfns_buf[snum]) return Qnil; - if (NILP(dai)) + if (EQ(dai, Qnil)) { if (jl_set_jikouho (wnnfns_buf[snum], XINT (offset)) < 0) return Qnil; } @@ -668,7 +678,7 @@ DEFUN ("wnn-server-bunsetu-henkou", Fwnn_bunsetu_henkou, 3, 3, 0, /* Change length of BUN-NUMBER bunsetu to LEN. DAI is T if dai-bunsetsu. */ - (bunNo, len, dai)) + (bunNo, len, dai)) { Lisp_Object val; int cnt, no; @@ -680,11 +690,11 @@ no = XINT (bunNo); #ifdef WNN6 if ((cnt = jl_fi_nobi_conv (wnnfns_buf[snum], no, XINT(len), -1, WNN_USE_MAE, - (NILP(dai)) ? WNN_SHO : WNN_DAI)) < 0) + (dai == Qnil) ? WNN_SHO : WNN_DAI)) < 0) return Qnil; #else if ((cnt = jl_nobi_conv (wnnfns_buf[snum], no, XINT(len), -1, WNN_USE_MAE, - (NILP(dai)) ? WNN_SHO : WNN_DAI)) < 0) + (EQ(dai, Qnil)) ? WNN_SHO : WNN_DAI)) < 0) return Qnil; #endif return make_int (cnt); @@ -693,7 +703,7 @@ DEFUN ("wnn-server-inspect", Fwnn_inspect, 1, 1, 0, /* Get bunsetsu information specified by BUN-NUMBER. */ - (bunNo)) + (bunNo)) { Lisp_Object val; struct wnn_jdata *info_buf; @@ -732,7 +742,7 @@ DEFUN ("wnn-server-henkan-quit", Fwnn_quit_henkan, 0, 0, 0, /* do nothing */ - ()) + ()) { int snum; if ((snum = check_wnn_server_type ()) == -1) return Qnil; @@ -743,7 +753,7 @@ DEFUN ("wnn-server-bunsetu-kanji", Fwnn_bunsetu_kanji, 1, 1, 0, /* Get the pair of kanji and length of bunsetsu specified by BUN-NUMBER. */ - (bunNo)) + (bunNo)) { int no; unsigned char kanji_buf[256]; @@ -765,7 +775,7 @@ DEFUN ("wnn-server-bunsetu-yomi", Fwnn_bunsetu_yomi, 1, 1, 0, /* Get the pair of yomi and length of bunsetsu specified by BUN-NUMBER. */ - (bunNo)) + (bunNo)) { int no; unsigned char yomi_buf[256]; @@ -787,7 +797,7 @@ DEFUN ("wnn-server-bunsetu-suu", Fwnn_bunsetu_suu, 0, 0, 0, /* Get the number of bunsetsu. */ - ()) + ()) { int snum; if ((snum = check_wnn_server_type ()) == -1) return Qnil; @@ -798,13 +808,13 @@ DEFUN ("wnn-server-hindo-update", Fwnn_hindo_update, 0, 1, 0, /* Update frequency of bunsetsu specified by NUM-NUMBER. */ - (bunNo)) + (bunNo)) { int no; Lisp_Object val; int snum; if ((snum = check_wnn_server_type ()) == -1) return Qnil; - if (NILP(bunNo)) no = -1; + if (EQ(bunNo, Qnil)) no = -1; else { CHECK_INT (bunNo); @@ -824,7 +834,7 @@ Add a word to dictionary. Arguments are DIC-NUMBER, KANJI, YOMI, COMMENT, HINSI-NUMBER */ - (dicno, kanji, yomi, comment, hinsi)) + (dicno, kanji, yomi, comment, hinsi)) { w_char yomi_buf[256], kanji_buf[256], comment_buf[256]; int snum; @@ -835,11 +845,11 @@ CHECK_INT (hinsi); if ((snum = check_wnn_server_type ()) == -1) return Qnil; if (!wnnfns_buf[snum]) return Qnil; - m2w (XSTRING (yomi)->data, yomi_buf); + m2w (XSTRING (yomi)->_data, yomi_buf); if (snum == WNNSERVER_C) w2y (yomi_buf); - m2w (XSTRING (kanji)->data, kanji_buf); - m2w (XSTRING (comment)->data, comment_buf); + m2w (XSTRING (kanji)->_data, kanji_buf); + m2w (XSTRING (comment)->_data, comment_buf); if (jl_word_add (wnnfns_buf[snum], XINT (dicno), yomi_buf, kanji_buf, comment_buf, XINT (hinsi), 0) < 0) return Qnil; @@ -850,7 +860,7 @@ DEFUN ("wnn-server-word-delete", Fwnn_word_sakujo, 2, 2, 0, /* Delete a word from dictionary, specified by DIC-NUMBER, SERIAL-NUMBER */ - (no, serial)) + (no, serial)) { int snum; CHECK_INT (no); @@ -866,7 +876,7 @@ DEFUN ("wnn-server-word-use", Fwnn_word_use, 2, 2, 0, /* Toggle on/off word, specified by DIC-NUMBER and SERIAL-NUMBER */ - (no, serial)) + (no, serial)) { int snum; CHECK_INT (no); @@ -881,7 +891,7 @@ DEFUN ("wnn-server-word-info", Fwnn_word_info, 2, 2, 0, /* Return list of yomi, kanji, comment, hindo, hinshi. */ - (no, serial)) + (no, serial)) { Lisp_Object val; struct wnn_jdata *info_buf; @@ -917,7 +927,7 @@ Set frequency to arbitrary value. Specified by DIC-NUMBER, SERIAL-NUMBER, FREQUENCY */ - (no, serial, hindo)) + (no, serial, hindo)) { int snum; CHECK_INT (no); @@ -939,7 +949,7 @@ Search a word YOMI from buffer. Return list of (kanji hinshi freq dic_no serial). */ - (yomi)) + (yomi)) { Lisp_Object val; struct wnn_jdata *wordinfo; @@ -953,7 +963,7 @@ if ((snum = check_wnn_server_type ()) == -1) return Qnil; lb = lb_wnn_server_type[snum]; if (!wnnfns_buf[snum]) return Qnil; - m2w (XSTRING (yomi)->data, wbuf); + m2w (XSTRING (yomi)->_data, wbuf); if (snum == WNNSERVER_C) w2y (wbuf); if ((count = jl_word_search_by_env (wnnfns_buf[snum], @@ -977,7 +987,7 @@ DEFUN ("wnn-server-dict-save", Fwnn_dict_save, 0, 0, 0, /* Save all dictionaries and frequency files. */ - ()) + ()) { int snum; if ((snum = check_wnn_server_type ()) == -1) return Qnil; @@ -990,7 +1000,7 @@ Returns (n nsho hindo len jiri flag jisho sbn dbn_len sbn_cnt suuji kana eisuu kigou toji_kakko fuzokogo kaikakko) */ - ()) + ()) { struct wnn_param param; int snum; @@ -1016,36 +1026,74 @@ Fcons (make_int (param.p15),Qnil))))))))))))))))); } -DEFUN ("wnn-server-set-param", Fwnn_set_param, 17, MANY, 0, /* -Set parameters, n nsho hindo len jiri flag jisho sbn dbn_len sbn_cnt -suuji kana eisuu kigou toji_kakko fuzokogo kaikakko +DEFUN ("wnn-server-set-param", Fwnn_set_param, 1, 1, 0, /* +Set parameters using an alist, where the CAR contains one of +wnn_n, wnn_nsho, wnn_hindo, wnn_len, wnn_jiri, wnn_flag, +wnn_jisho, wnn_sbn, wnn_dbn_len, wnn_sbn_cnt, wnn_suuji, +wnn_kana, wnn_eisuu, wnn_kigou, wnn_toji_kakko, wnn_fuzokogo, +or wnn_kaikakko and the CDR contains the value. */ - (int nargs, Lisp_Object *args)) + (Vsetvalues_alist)) { int rc; struct wnn_param param; + Lisp_Object tail, key, val; int snum; - for (rc = 0; rc < 17; rc++) CHECK_INT (args[rc]); + if ((snum = check_wnn_server_type ()) == -1) return Qnil; if (!wnnfns_buf[snum]) return Qnil; - param.n = XINT (args[0]); - param.nsho = XINT (args[1]); - param.p1 = XINT (args[2]); - param.p2 = XINT (args[3]); - param.p3 = XINT (args[4]); - param.p4 = XINT (args[5]); - param.p5 = XINT (args[6]); - param.p6 = XINT (args[7]); - param.p7 = XINT (args[8]); - param.p8 = XINT (args[9]); - param.p9 = XINT (args[10]); - param.p10 = XINT (args[11]); - param.p11 = XINT (args[12]); - param.p12 = XINT (args[13]); - param.p13 = XINT (args[14]); - param.p14 = XINT (args[15]); - param.p15 = XINT (args[16]); - + rc = jl_param_get (wnnfns_buf[snum], ¶m); + if (rc < 0) return Qnil; + + EXTERNAL_PROPERTY_LIST_LOOP (tail, key, val, Vsetvalues_alist) + { + int setval; + CHECK_INT (val); + setval = XINT (val); + if (EQ (key, Qwnn_n)) param.n = setval; + else if (EQ (key, Qwnn_nsho)) param.nsho = setval; + else if (EQ (key, Qwnn_hindo)) param.p1 = setval; + else if (EQ (key, Qwnn_len)) param.p2 = setval; + else if (EQ (key, Qwnn_jiri)) param.p3 = setval; + else if (EQ (key, Qwnn_flag)) param.p4 = setval; + else if (EQ (key, Qwnn_jisho)) param.p5 = setval; + else if (EQ (key, Qwnn_sbn)) param.p6 = setval; + else if (EQ (key, Qwnn_dbn_len)) param.p7 = setval; + else if (EQ (key, Qwnn_sbn_cnt)) param.p8 = setval; + else if (EQ (key, Qwnn_suuji)) param.p9 = setval; + else if (EQ (key, Qwnn_kana)) param.p10 = setval; + else if (EQ (key, Qwnn_eisuu)) param.p11 = setval; + else if (EQ (key, Qwnn_kigou)) param.p12 = setval; + else if (EQ (key, Qwnn_toji_kakko)) param.p13 = setval; + else if (EQ (key, Qwnn_fuzokogo)) param.p14 = setval; + else if (EQ (key, Qwnn_kaikakko)) param.p15 = setval; + else + { + signal_simple_error ("Invalid wnn keyword", key); + return Qnil; + } + } + +#if 0 + printf("wnn_n = %d\n",param.n); + printf("wnn_nsho = %d\n",param.nsho); + printf("wnn_hindo = %d\n",param.p1); + printf("wnn_len = %d\n",param.p2); + printf("wnn_jiri = %d\n",param.p3); + printf("wnn_flag = %d\n",param.p4); + printf("wnn_jisho = %d\n",param.p5); + printf("wnn_sbn = %d\n",param.p6); + printf("wnn_dbn_len = %d\n",param.p7); + printf("wnn_sbn_cnt = %d\n",param.p8); + printf("wnn_suuji = %d\n",param.p9); + printf("wnn_kana = %d\n",param.p10); + printf("wnn_eisuu = %d\n",param.p11); + printf("wnn_kigou = %d\n",param.p12); + printf("wnn_toji_kakko = %d\n",param.p13); + printf("wnn_fuzokogo = %d\n",param.p14); + printf("wnn_kaikakko = %d\n",param.p15); +#endif + rc = jl_param_set (wnnfns_buf[snum], ¶m); if (rc < 0) return Qnil; return Qt; @@ -1054,7 +1102,7 @@ DEFUN ("wnn-server-get-msg", Fwnn_get_msg, 0, 0, 0, /* Get message string from wnn_perror. */ - ()) + ()) { char mbuf[256]; char *msgp; @@ -1092,13 +1140,13 @@ DEFUN ("wnn-server-fuzokugo-set", Fwnn_fuzokugo_set, 1, 1, 0, /* For Wnn. */ - (file)) + (file)) { int snum; CHECK_STRING (file); if ((snum = check_wnn_server_type ()) == -1) return Qnil; if (!wnnfns_buf[snum]) return Qnil; - if (jl_fuzokugo_set (wnnfns_buf[snum], XSTRING (file)->data) < 0) + if (jl_fuzokugo_set (wnnfns_buf[snum], XSTRING (file)->_data) < 0) return Qnil; return Qt; } @@ -1106,7 +1154,7 @@ DEFUN ("wnn-server-fuzokugo-get", Fwnn_fuzokugo_get, 0, 0, 0, /* For Wnn. */ - ()) + ()) { char fname[256]; int snum; @@ -1120,7 +1168,7 @@ DEFUN ("wnn-server-isconnect", Fwnn_isconnect, 0, 0, 0, /* For Wnn. */ - ()) + ()) { int snum; if ((snum = check_wnn_server_type ()) == -1) return Qnil; @@ -1132,7 +1180,7 @@ DEFUN ("wnn-server-hinsi-dicts", Fwnn_hinsi_dicts, 1, 1, 0, /* For Wnn. */ - (hinsi)) + (hinsi)) { int *area; int cnt; @@ -1155,7 +1203,7 @@ DEFUN ("wnn-server-hinsi-list", Fwnn_hinsi_list, 2, 2, 0, /* For Wnn. */ - (dicno, name)) + (dicno, name)) { int cnt; Lisp_Object val; @@ -1169,7 +1217,7 @@ if ((snum = check_wnn_server_type ()) == -1) return Qnil; lb = lb_wnn_server_type[snum]; if (!wnnfns_buf[snum]) return Qnil; - m2w (XSTRING (name)->data, wbuf); + m2w (XSTRING (name)->_data, wbuf); if ((cnt = jl_hinsi_list (wnnfns_buf[snum], XINT (dicno), wbuf, &area)) < 0) return Qnil; if (cnt == 0) return make_int (0); @@ -1186,7 +1234,7 @@ DEFUN ("wnn-server-hinsi-name", Fwnn_hinsi_name, 1, 1, 0, /* For Wnn. */ - (no)) + (no)) { unsigned char name[256]; w_char *wname; @@ -1206,27 +1254,25 @@ FISYS-FREQ-FILE-MODE. Specify password files of dictionary and frequency, PW1 and PW2, if needed. */ - (int nargs, Lisp_Object *args)) + (int nargs, Lisp_Object *args)) { - static int yes_or_no(); - static void puts2(); struct gcpro gcpro1; int snum; CHECK_STRING (args[0]); CHECK_STRING (args[1]); - if (! NILP(args[3])) CHECK_STRING (args[3]); + if (args[3] != Qnil) CHECK_STRING (args[3]); if ((snum = check_wnn_server_type()) == -1) return Qnil; if(!wnnfns_buf[snum]) return Qnil; GCPRO1 (*args); gcpro1.nvars = nargs; if(jl_fi_dic_add(wnnfns_buf[snum], - XSTRING(args[0])->data, - XSTRING(args[1])->data, + XSTRING(args[0])->_data, + XSTRING(args[1])->_data, WNN_FI_SYSTEM_DICT, WNN_DIC_RDONLY, - (NILP(args[2])) ? WNN_DIC_RDONLY : WNN_DIC_RW, + (args[2] == Qnil) ? WNN_DIC_RDONLY : WNN_DIC_RW, 0, - (NILP(args[3])) ? 0 : XSTRING(args[3])->data, + (args[3] == Qnil) ? 0 : XSTRING(args[3])->_data, yes_or_no, puts2 ) < 0) { UNGCPRO; @@ -1241,28 +1287,26 @@ FIUSR-DICT-FILE-MODE, FIUSR-FREQ-FILE-MODE. Specify password files of dictionary and frequency, PW1 and PW2, if needed. */ - (int nargs, Lisp_Object *args)) + (int nargs, Lisp_Object *args)) { - static int yes_or_no(); - static void puts2(); struct gcpro gcpro1; int snum; CHECK_STRING (args[0]); CHECK_STRING (args[1]); - if (! NILP(args[4])) CHECK_STRING (args[4]); - if (! NILP(args[5])) CHECK_STRING (args[5]); + if (args[4] != Qnil) CHECK_STRING (args[4]); + if (args[5] != Qnil) CHECK_STRING (args[5]); if ((snum = check_wnn_server_type()) == -1) return Qnil; if(!wnnfns_buf[snum]) return Qnil; GCPRO1 (*args); gcpro1.nvars = nargs; if(jl_fi_dic_add(wnnfns_buf[snum], - XSTRING(args[0])->data, - XSTRING(args[1])->data, + XSTRING(args[0])->_data, + XSTRING(args[1])->_data, WNN_FI_USER_DICT, - (NILP(args[2])) ? WNN_DIC_RDONLY : WNN_DIC_RW, - (NILP(args[3])) ? WNN_DIC_RDONLY : WNN_DIC_RW, - (NILP(args[4])) ? 0 : XSTRING(args[4])->data, - (NILP(args[5])) ? 0 : XSTRING(args[5])->data, + (args[2] == Qnil) ? WNN_DIC_RDONLY : WNN_DIC_RW, + (args[3] == Qnil) ? WNN_DIC_RDONLY : WNN_DIC_RW, + (args[4] == Qnil) ? 0 : XSTRING(args[4])->_data, + (args[5] == Qnil) ? 0 : XSTRING(args[5])->_data, yes_or_no, puts2 ) < 0) { UNGCPRO; @@ -1276,10 +1320,8 @@ Add dictionary specified by NOTRANS-DICT-FILE-NAME, PRIORITY, DICT-FILE-MODE. Specify password files of dictionary and frequency PW1 if needed. */ - (int nargs, Lisp_Object *args)) + (int nargs, Lisp_Object *args)) { - static int yes_or_no(); - static void puts2(); struct gcpro gcpro1; int snum; int dic_no; @@ -1288,7 +1330,7 @@ struct wnn_henkan_env henv; CHECK_STRING (args[0]); CHECK_INT (args[1]); - if (! NILP(args[3])) CHECK_STRING (args[3]); + if (args[3] != Qnil) CHECK_STRING (args[3]); if ((snum = check_wnn_server_type()) == -1) return Qnil; if(!wnnfns_buf[snum]) return Qnil; GCPRO1 (*args); @@ -1300,12 +1342,12 @@ dic_no = js_get_autolearning_dic(cur_env, WNN_MUHENKAN_LEARNING); if (dic_no == WNN_NO_LEARNING) { if((dic_no = jl_dic_add(wnnfns_buf[snum], - XSTRING(args[0])->data, + XSTRING(args[0])->_data, 0, wnnfns_norm ? WNN_DIC_ADD_NOR : WNN_DIC_ADD_REV, XINT(args[1]), WNN_DIC_RW, WNN_DIC_RW, - (NILP(args[3])) ? 0 : XSTRING(args[3])->data, + (args[3] == Qnil) ? 0 : XSTRING(args[3])->_data, 0, yes_or_no, puts2)) < 0) { @@ -1322,7 +1364,7 @@ } } vmask |= WNN_ENV_MUHENKAN_LEARN_MASK; - henv.muhenkan_flag = (NILP(args[2])) ? WNN_DIC_RDONLY : WNN_DIC_RW; + henv.muhenkan_flag = (args[2] == Qnil) ? WNN_DIC_RDONLY : WNN_DIC_RW; if(jl_set_henkan_env(wnnfns_buf[snum], vmask, &henv) < 0) { @@ -1337,10 +1379,8 @@ Add dictionary specified by BMODIFY-DICT-FILE-NAME, PRIORITY, DICT-FILE-MODE. Specify password files of dictionary and frequency PW1 if needed. */ - (int nargs, Lisp_Object *args)) + (int nargs, Lisp_Object *args)) { - static int yes_or_no(); - static void puts2(); struct gcpro gcpro1; int snum; int dic_no; @@ -1349,7 +1389,7 @@ struct wnn_henkan_env henv; CHECK_STRING (args[0]); CHECK_INT (args[1]); - if (! NILP(args[3])) CHECK_STRING (args[3]); + if (args[3] != Qnil) CHECK_STRING (args[3]); if ((snum = check_wnn_server_type()) == -1) return Qnil; if(!wnnfns_buf[snum]) return Qnil; GCPRO1 (*args); @@ -1361,12 +1401,12 @@ dic_no = js_get_autolearning_dic(cur_env, WNN_BUNSETSUGIRI_LEARNING); if (dic_no == WNN_NO_LEARNING) { if((dic_no = jl_dic_add(wnnfns_buf[snum], - XSTRING(args[0])->data, + XSTRING(args[0])->_data, 0, wnnfns_norm ? WNN_DIC_ADD_NOR : WNN_DIC_ADD_REV, XINT(args[1]), WNN_DIC_RW, WNN_DIC_RW, - (NILP(args[3])) ? 0 : XSTRING(args[3])->data, + (args[3] == Qnil) ? 0 : XSTRING(args[3])->_data, 0, yes_or_no, puts2)) < 0) { @@ -1383,7 +1423,7 @@ } } vmask |= WNN_ENV_BUNSETSUGIRI_LEARN_MASK; - henv.bunsetsugiri_flag = (NILP(args[2])) ? WNN_DIC_RDONLY : WNN_DIC_RW; + henv.bunsetsugiri_flag = (args[2] == Qnil) ? WNN_DIC_RDONLY : WNN_DIC_RW; if(jl_set_henkan_env(wnnfns_buf[snum], vmask, &henv) < 0) { @@ -1397,7 +1437,7 @@ DEFUN ("wnn-server-set-last-is-first", Fwnn_last_is_first, 1, 1, 0, /* For FI-Wnn. */ - (mode)) + (mode)) { int snum; unsigned long vmask = 0; @@ -1405,7 +1445,7 @@ if ((snum = check_wnn_server_type()) == -1) return Qnil; if(!wnnfns_buf[snum]) return Qnil; vmask |= WNN_ENV_LAST_IS_FIRST_MASK; - henv.last_is_first_flag = (NILP(mode)) ? False : True; + henv.last_is_first_flag = (mode == Qnil) ? False : True; if(jl_set_henkan_env(wnnfns_buf[snum], vmask, &henv) < 0) return Qnil; @@ -1415,7 +1455,7 @@ DEFUN ("wnn-server-set-complex-conv-mode", Fwnn_complex_conv, 1, 1, 0, /* For FI-Wnn. */ - (mode)) + (mode)) { int snum; unsigned long vmask = 0; @@ -1423,7 +1463,7 @@ if ((snum = check_wnn_server_type()) == -1) return Qnil; if(!wnnfns_buf[snum]) return Qnil; vmask |= WNN_ENV_COMPLEX_CONV_MASK; - henv.complex_flag = (NILP(mode)) ? False : True; + henv.complex_flag = (mode == Qnil) ? False : True; if(jl_set_henkan_env(wnnfns_buf[snum], vmask, &henv) < 0) return Qnil; @@ -1433,7 +1473,7 @@ DEFUN ("wnn-server-set-okuri-learn-mode", Fwnn_okuri_learn, 1, 1, 0, /* For FI-Wnn. */ - (mode)) + (mode)) { int snum; unsigned long vmask = 0; @@ -1441,7 +1481,7 @@ if ((snum = check_wnn_server_type()) == -1) return Qnil; if(!wnnfns_buf[snum]) return Qnil; vmask |= WNN_ENV_OKURI_LEARN_MASK; - henv.okuri_learn_flag = (NILP(mode)) ? False : True; + henv.okuri_learn_flag = (mode == Qnil) ? False : True; if(jl_set_henkan_env(wnnfns_buf[snum], vmask, &henv) < 0) return Qnil; @@ -1451,7 +1491,7 @@ DEFUN ("wnn-server-set-okuri-flag", Fwnn_okuri_flag, 1, 1, 0, /* For FI-Wnn. */ - (mode)) + (mode)) { int snum; unsigned long vmask = 0; @@ -1475,7 +1515,7 @@ DEFUN ("wnn-server-set-prefix-learn-mode", Fwnn_prefix_learn, 1, 1, 0, /* For FI-Wnn. */ - (mode)) + (mode)) { int snum; unsigned long vmask = 0; @@ -1483,7 +1523,7 @@ if ((snum = check_wnn_server_type()) == -1) return Qnil; if(!wnnfns_buf[snum]) return Qnil; vmask |= WNN_ENV_PREFIX_LEARN_MASK; - henv.prefix_learn_flag = (NILP(mode)) ? False : True; + henv.prefix_learn_flag = (mode == Qnil) ? False : True; if(jl_set_henkan_env(wnnfns_buf[snum], vmask, &henv) < 0) return Qnil; @@ -1493,7 +1533,7 @@ DEFUN ("wnn-server-set-prefix-flag", Fwnn_prefix_flag, 1, 1, 0, /* For FI-Wnn. */ - (mode)) + (mode)) { int snum; unsigned long vmask = 0; @@ -1515,7 +1555,7 @@ DEFUN ("wnn-server-set-suffix-learn-mode", Fwnn_suffix_learn, 1, 1, 0, /* For FI-Wnn. */ - (mode)) + (mode)) { int snum; unsigned long vmask = 0; @@ -1523,7 +1563,7 @@ if ((snum = check_wnn_server_type()) == -1) return Qnil; if(!wnnfns_buf[snum]) return Qnil; vmask |= WNN_ENV_SUFFIX_LEARN_MASK; - henv.suffix_learn_flag = (NILP(mode)) ? False : True; + henv.suffix_learn_flag = (mode == Qnil) ? False : True; if(jl_set_henkan_env(wnnfns_buf[snum], vmask, &henv) < 0) return Qnil; @@ -1533,7 +1573,7 @@ DEFUN ("wnn-server-set-common-learn-mode", Fwnn_common_learn, 1, 1, 0, /* For FI-Wnn. */ - (mode)) + (mode)) { int snum; unsigned long vmask = 0; @@ -1541,7 +1581,7 @@ if ((snum = check_wnn_server_type()) == -1) return Qnil; if(!wnnfns_buf[snum]) return Qnil; vmask |= WNN_ENV_COMMON_LAERN_MASK; - henv.common_learn_flag = (NILP(mode)) ? False : True; + henv.common_learn_flag = (mode == Qnil) ? False : True; if(jl_set_henkan_env(wnnfns_buf[snum], vmask, &henv) < 0) return Qnil; @@ -1551,7 +1591,7 @@ DEFUN ("wnn-server-set-freq-func-mode", Fwnn_freq_func, 1, 1, 0, /* For FI-Wnn. */ - (mode)) + (mode)) { int snum; unsigned long vmask = 0; @@ -1573,7 +1613,7 @@ DEFUN ("wnn-server-set-numeric-mode", Fwnn_numeric, 1, 1, 0, /* For FI-Wnn. */ - (mode)) + (mode)) { int snum; unsigned long vmask = 0; @@ -1601,7 +1641,7 @@ DEFUN ("wnn-server-set-alphabet-mode", Fwnn_alphabet, 1, 1, 0, /* For FI-Wnn. */ - (mode)) + (mode)) { int snum; unsigned long vmask = 0; @@ -1623,7 +1663,7 @@ DEFUN ("wnn-server-set-symbol-mode", Fwnn_symbol, 1, 1, 0, /* For FI-Wnn. */ - (mode)) + (mode)) { int snum; unsigned long vmask = 0; @@ -1645,7 +1685,7 @@ DEFUN ("wnn-server-set-yuragi-mode", Fwnn_yuragi, 1, 1, 0, /* For FI-Wnn. */ - (mode)) + (mode)) { int snum; unsigned long vmask = 0; @@ -1653,7 +1693,7 @@ if ((snum = check_wnn_server_type()) == -1) return Qnil; if(!wnnfns_buf[snum]) return Qnil; vmask |= WNN_ENV_YURAGI_MASK; - henv.yuragi_flag = (NILP(mode)) ? False : True; + henv.yuragi_flag = (mode == Qnil) ? False : True; if(jl_set_henkan_env(wnnfns_buf[snum], vmask, &henv) < 0) return Qnil; @@ -1663,7 +1703,7 @@ DEFUN ("wnn-reset-previous-info", Fwnn_reset_prev, 0, 0, 0, /* For FI-Wnn. */ - ()) + ()) { int snum; if ((snum = check_wnn_server_type()) == -1) return Qnil; @@ -1676,7 +1716,7 @@ DEFUN ("wnn-server-version", Fwnn_version, 0, 0, 0, /* Returns Wnn server version ID. */ - ()) + ()) { int snum; int serv; @@ -1695,7 +1735,7 @@ DEFUN ("wnn-server-hinsi-number", Fwnn_hinsi_number, 1, 1, 0, /* For Wnn. */ - (name)) + (name)) { w_char w_buf[256]; int no; @@ -1703,7 +1743,7 @@ CHECK_STRING (name); if ((snum = check_wnn_server_type ()) == -1) return Qnil; if (!wnnfns_buf[snum]) return Qnil; - m2w (XSTRING (name)->data, w_buf); + m2w (XSTRING (name)->_data, w_buf); if ((no = jl_hinsi_number (wnnfns_buf[snum], w_buf)) < 0) return Qnil; return make_int (no); } @@ -1780,6 +1820,23 @@ defsymbol (&Qwnn_no_uniq, "wnn-no-uniq"); defsymbol (&Qwnn_uniq, "wnn-uniq"); defsymbol (&Qwnn_uniq_kanji, "wnn-uniq-kanji"); + defsymbol (&Qwnn_n, "wnn_n"); + defsymbol (&Qwnn_nsho, "wnn_nsho"); + defsymbol (&Qwnn_hindo, "wnn_hindo"); + defsymbol (&Qwnn_len, "wnn_len"); + defsymbol (&Qwnn_jiri, "wnn_jiri"); + defsymbol (&Qwnn_flag, "wnn_flag"); + defsymbol (&Qwnn_jisho, "wnn_jisho"); + defsymbol (&Qwnn_sbn, "wnn_sbn"); + defsymbol (&Qwnn_dbn_len, "wnn_dbn_len"); + defsymbol (&Qwnn_sbn_cnt, "wnn_sbn_cnt"); + defsymbol (&Qwnn_suuji, "wnn_suuji"); + defsymbol (&Qwnn_kana, "wnn_kana"); + defsymbol (&Qwnn_eisuu, "wnn_eisuu"); + defsymbol (&Qwnn_kigou, "wnn_kigou"); + defsymbol (&Qwnn_toji_kakko, "wnn_toji_kakko"); + defsymbol (&Qwnn_fuzokogo, "wnn_fuzokogo"); + defsymbol (&Qwnn_kaikakko, "wnn_kaikakko"); } void @@ -1829,17 +1886,17 @@ switch (wc & 0x8080) { case 0x80: - if (Vwnn_server_type == Qcserver) + if (EQ(Vwnn_server_type, Qcserver)) { len = cwnn_yincod_pzy (pzy, wc, - (NILP(Vcwnn_zhuyin)) + (EQ(Vcwnn_zhuyin, Qnil)) ? CWNN_PINYIN : CWNN_ZHUYIN); for (i = 0; i < len; i++) { if (pzy[i] & 0x80) { - *mp++ = LEADING_BYTE_PRV11; + *mp++ = PRE_LEADING_BYTE_PRIVATE_1; /* #### Not sure about this one... */ *mp++ = lb_sisheng; } *mp++ = pzy[i]; @@ -1847,7 +1904,7 @@ } else { - *mp++ = LEADING_BYTE_KANA; + *mp++ = LEADING_BYTE_KATAKANA_JISX0201; *mp++ = (wc & 0xff); } break; @@ -1857,10 +1914,10 @@ *mp++ = wc & 0x00ff; break; case 0x8000: - if (lb == LEADING_BYTE_JP) - *mp++ = LEADING_BYTE_JP2; - else if (lb == LEADING_BYTE_BIG5_1) - *mp++ = LEADING_BYTE_BIG5_2; + if (lb == LEADING_BYTE_JAPANESE_JISX0208) + *mp++ = LEADING_BYTE_JAPANESE_JISX0212; + else if (lb == LEADING_BYTE_CHINESE_BIG5_1) + *mp++ = LEADING_BYTE_CHINESE_BIG5_2; else *mp++ = lb; *mp++ = (wc & 0xff00) >> 8; @@ -1881,31 +1938,27 @@ while (ch = *mp++) { - if (BUFBYTE_ASCII_P (ch)) - { - *wp++ = ch; - } - else if (BUFBYTE_LEADING_BYTE_P (ch)) + if (BUFBYTE_LEADING_BYTE_P (ch)) { switch (ch) { - case LEADING_BYTE_KANA: + case LEADING_BYTE_KATAKANA_JISX0201: *wp++ = *mp++; break; - case LEADING_BYTE_ROMAN: + case LEADING_BYTE_LATIN_JISX0201: *wp++ = *mp++ & 0x7F; break; - case LEADING_BYTE_JPOLD: - case LEADING_BYTE_CN: - case LEADING_BYTE_JP: - case LEADING_BYTE_KR: + case LEADING_BYTE_JAPANESE_JISX0208_1978: + case LEADING_BYTE_CHINESE_GB2312: + case LEADING_BYTE_JAPANESE_JISX0208: + case LEADING_BYTE_KOREAN_KSC5601: /* case LEADING_BYTE_TW: */ ch = *mp++; *wp++ = (ch << 8) | *mp++; break; - case LEADING_BYTE_JP2: + case LEADING_BYTE_JAPANESE_JISX0212: ch = *mp++; *wp++ = (ch << 8) | (*mp++ & 0x7f); break; - case LEADING_BYTE_PRV11: + case PRE_LEADING_BYTE_PRIVATE_1: /* #### Not sure about this one... */ ch = *mp++; if (ch == lb_sisheng) *wp++ = 0x8e80 | *mp++; @@ -1913,9 +1966,13 @@ mp++; break; default: /* ignore this character */ - mp += mule_charset_bytes[ch] - 1; + mp += REP_BYTES_BY_FIRST_BYTE(ch) - 1; } } + else + { + *wp++ = ch; + } } *wp = 0; } @@ -1944,7 +2001,7 @@ w++; pin++; } len = cwnn_pzy_yincod (ybuf, pbuf, - (NILP(Vcwnn_zhuyin)) ? CWNN_PINYIN : CWNN_ZHUYIN); + (EQ(Vcwnn_zhuyin, Qnil)) ? CWNN_PINYIN : CWNN_ZHUYIN); if (len <= 0) return; @@ -1985,7 +2042,7 @@ static int yes_or_no (unsigned char *s) { - extern Lisp_Object Fy_or_n_p (); + extern Lisp_Object Fy_or_n_p(); unsigned char mbuf[512]; unsigned char lb; int len; @@ -1993,19 +2050,31 @@ if ((snum = check_wnn_server_type ()) == -1) return 0; lb = lb_wnn_server_type[snum]; /* if no message found, create file without query */ -/* if (wnn_msg_cat->msg_bd == 0) return 1;*/ + /* if (wnn_msg_cat->msg_bd == 0) return 1;*/ if (*s == 0) return 1; c2m (s, mbuf, lb); /* truncate "(Y/N)" */ for (len = 0; (mbuf[len]) && (len < 512); len++); for (; (mbuf[len] != '(') && (len > 0); len--); - if (NILP(Fy_or_n_p (make_string (mbuf, len)))) return 0; +#if 0 + if (Fy_or_n_p (make_string (mbuf, len)) == Qnil) return 0; else return (1); +#else + { + Lisp_Object yes, str; + + str = make_string (mbuf, len); + yes = call1(Qyes_or_no_p, EQ(str, Qnil)); + if (NILP (yes)) return 0; + else return (1); + } +#endif } static void puts2 (char *s) { +#if 0 Lisp_Object args[1]; char mbuf[512]; unsigned char lb; @@ -2016,16 +2085,19 @@ c2m (s, mbuf, lb); args[0] = make_string (mbuf, strlen (mbuf)); Fmessage (1, args); +#else + message("%s",s); +#endif } int check_wnn_server_type (void) { - if (Vwnn_server_type == Qjserver) + if (EQ(Vwnn_server_type, Qjserver)) { return WNNSERVER_J; } - else if (Vwnn_server_type == Qcserver) + else if (EQ(Vwnn_server_type, Qcserver)) { return WNNSERVER_C; } @@ -2033,7 +2105,7 @@ { return WNNSERVER_T; } */ - else if (Vwnn_server_type == Qkserver) + else if (EQ(Vwnn_server_type, Qkserver)) { return WNNSERVER_K; }