comparison Wnn/jlib/js.c @ 12:1f16ab4b33e5

add prototypes for functions to jslib.h
author Yoshiki Yazawa <yaz@cc.rim.or.jp>
date Sun, 02 Mar 2008 19:07:21 +0900
parents 338478efe78d
children a7ccf412ba02
comparison
equal deleted inserted replaced
11:aa17e2acfa01 12:1f16ab4b33e5
154 wnn_errorno = 0; /* here initialize wnn_errorno; */ \ 154 wnn_errorno = 0; /* here initialize wnn_errorno; */ \
155 } \ 155 } \
156 } 156 }
157 157
158 static void 158 static void
159 set_current_js (server) 159 set_current_js (register WNN_JSERVER_ID *server)
160 register WNN_JSERVER_ID *server;
161 { 160 {
162 current_js = server; 161 current_js = server;
163 current_sd = current_js->sd; 162 current_sd = current_js->sd;
164 } 163 }
165 164
166 /** デーモンが死んだ時のための後始末 **/ 165 /** デーモンが死んだ時のための後始末 **/
167 static void 166 static void
168 daemon_dead () 167 daemon_dead (void)
169 { 168 {
170 current_js->js_dead = -1; 169 current_js->js_dead = -1;
171 wnn_errorno = WNN_JSERVER_DEAD; 170 wnn_errorno = WNN_JSERVER_DEAD;
172 shutdown (current_sd, 2); 171 shutdown (current_sd, 2);
173 #ifdef HAVE_CLOSESOCKET 172 #ifdef HAVE_CLOSESOCKET
190 /** 189 /**
191 ソケットをオープンしてcurrent_sdにソケットfdを返す 190 ソケットをオープンしてcurrent_sdにソケットfdを返す
192 (cdというのはコミュニケーションデバイスの名残) 191 (cdというのはコミュニケーションデバイスの名残)
193 **/ 192 **/
194 static int 193 static int
195 cd_open_un (lang) 194 cd_open_un (register char *lang)
196 register char *lang;
197 { 195 {
198 #ifdef AF_UNIX 196 #ifdef AF_UNIX
199 int sd; 197 int sd;
200 struct sockaddr_un saddr; /** ソケット **/ 198 struct sockaddr_un saddr; /** ソケット **/
201 char *sock_name = NULL; 199 char *sock_name = NULL;
240 return -1; 238 return -1;
241 #endif 239 #endif
242 } 240 }
243 241
244 static int 242 static int
245 cd_open_in (server, lang, timeout) 243 cd_open_in (register char *server, register char *lang, register int timeout)
246 register char *server;
247 register char *lang;
248 register int timeout;
249 { 244 {
250 int sd; 245 int sd;
251 #ifdef INET6 246 #ifdef INET6
252 struct addrinfo hints, *res, *res0; 247 struct addrinfo hints, *res, *res0;
253 int error; 248 int error;
395 { 390 {
396 } 391 }
397 392
398 /* get server name and return serverNo */ 393 /* get server name and return serverNo */
399 static int 394 static int
400 _get_server_name (server, pserver) 395 _get_server_name (char *server, char *pserver)
401 char *server;
402 char *pserver;
403 { 396 {
404 register char *p; 397 register char *p;
405 #ifdef INET6 398 #ifdef INET6
406 int len; 399 int len;
407 400
433 /* Packet SND/RCV subroutines */ 426 /* Packet SND/RCV subroutines */
434 static void put4com (); 427 static void put4com ();
435 428
436 /** パケットのヘッダーを送る **/ 429 /** パケットのヘッダーを送る **/
437 static void 430 static void
438 snd_head (cmd) 431 snd_head (int cmd)
439 int cmd; /** cmd=コマンド **/
440 { 432 {
441 sbp = 0; 433 sbp = 0;
442 put4com (cmd); 434 put4com (cmd);
443 rbc = -1; 435 rbc = -1;
444 } 436 }
445 437
446 /** パケットのヘッダーを送る **/ 438 /** パケットのヘッダーを送る **/
447 static int 439 static int
448 snd_env_head (env, cmd) 440 snd_env_head (register struct wnn_env *env, int cmd)
449 register struct wnn_env *env;
450 int cmd; /** cmd=コマンド **/
451 { 441 {
452 snd_head (cmd); 442 snd_head (cmd);
453 put4com (env->env_id); 443 put4com (env->env_id);
454 return 0; 444 return 0;
455 } 445 }
456 446
457 /** パケットのヘッダーを送る **/ 447 /** パケットのヘッダーを送る **/
458 static int 448 static int
459 snd_server_head (server, cmd) 449 snd_server_head (register WNN_JSERVER_ID *server, int cmd)
460 register WNN_JSERVER_ID *server;
461 int cmd; /** cmd=コマンド **/
462 { 450 {
463 snd_head (cmd); 451 snd_head (cmd);
464 return 0; 452 return 0;
465 } 453 }
466 454
467 /** 送信バッファをフラッシュする **/ 455 /** 送信バッファをフラッシュする **/
468 static int 456 static int
469 snd_flush () 457 snd_flush (void)
470 { 458 {
471 if (sbp == 0) 459 if (sbp == 0)
472 return (-1); 460 return (-1);
473 writen (sbp); 461 writen (sbp);
474 sbp = 0; 462 sbp = 0;
475 return (0); 463 return (0);
476 } 464 }
477 465
478 static int 466 static int
479 writen (n) 467 writen (int n)
480 int n;
481 { 468 {
482 int cc, x; 469 int cc, x;
483 for (cc = 0; cc < n;) 470 for (cc = 0; cc < n;)
484 { 471 {
485 errno = 0; 472 errno = 0;
509 return (0); 496 return (0);
510 } 497 }
511 498
512 /** サーバへ1バイト送る **/ 499 /** サーバへ1バイト送る **/
513 static void 500 static void
514 put1com (c) 501 put1com (int c)
515 int c;
516 { 502 {
517 snd_buf[sbp++] = c; 503 snd_buf[sbp++] = c;
518 if (sbp >= S_BUF_SIZ) 504 if (sbp >= S_BUF_SIZ)
519 { 505 {
520 writen (S_BUF_SIZ); 506 writen (S_BUF_SIZ);
522 } 508 }
523 } 509 }
524 510
525 /** サーバへ2バイト送る **/ 511 /** サーバへ2バイト送る **/
526 static void 512 static void
527 put2com (c) 513 put2com (int c)
528 int c;
529 { 514 {
530 put1com (c >> (8 * 1)); 515 put1com (c >> (8 * 1));
531 put1com (c); 516 put1com (c);
532 } 517 }
533 518
534 /** サーバへ4バイト送る **/ 519 /** サーバへ4バイト送る **/
535 static void 520 static void
536 put4com (c) 521 put4com (int c)
537 int c;
538 { 522 {
539 put1com (c >> (8 * 3)); 523 put1com (c >> (8 * 3));
540 put1com (c >> (8 * 2)); 524 put1com (c >> (8 * 2));
541 put1com (c >> (8 * 1)); 525 put1com (c >> (8 * 1));
542 put1com (c); 526 put1com (c);
543 } 527 }
544 528
545 /** サーバへ文字列を送る **/ 529 /** サーバへ文字列を送る **/
546 static void 530 static void
547 putwscom (p) 531 putwscom (register w_char *p)
548 register w_char *p;
549 { 532 {
550 if (p == NULL) 533 if (p == NULL)
551 { 534 {
552 put2com (0); 535 put2com (0);
553 return; 536 return;
557 put2com (0); 540 put2com (0);
558 } 541 }
559 542
560 /** サーバへ文字列を送る **/ 543 /** サーバへ文字列を送る **/
561 static void 544 static void
562 putscom (p) 545 putscom (register char *p)
563 register char *p;
564 { 546 {
565 if (p == NULL) 547 if (p == NULL)
566 { 548 {
567 put1com (0); 549 put1com (0);
568 return; 550 return;
572 put1com (0); 554 put1com (0);
573 } 555 }
574 556
575 /** サーバから1バイト受ける **/ 557 /** サーバから1バイト受ける **/
576 static int 558 static int
577 get1com () 559 get1com (void)
578 { 560 {
579 static int rbp; 561 static int rbp;
580 static unsigned char rcv_buf[R_BUF_SIZ]; /** 受信 **/ 562 static unsigned char rcv_buf[R_BUF_SIZ]; /** 受信 **/
581 if (rbc <= 0) 563 if (rbc <= 0)
582 { 564 {
621 return rcv_buf[rbp++] & 0xFF; 603 return rcv_buf[rbp++] & 0xFF;
622 } 604 }
623 605
624 /** サーバから2バイト受ける **/ 606 /** サーバから2バイト受ける **/
625 static int 607 static int
626 get2com () 608 get2com (void)
627 { 609 {
628 register int h; 610 register int h;
629 h = get1com (); 611 h = get1com ();
630 return (h << 8) | get1com (); 612 return (h << 8) | get1com ();
631 } 613 }
632 614
633 /** サーバから4バイト受ける **/ 615 /** サーバから4バイト受ける **/
634 static int 616 static int
635 get4com () 617 get4com (void)
636 { 618 {
637 register int h1, h2, h3; 619 register int h1, h2, h3;
638 h1 = get1com () << 24; 620 h1 = get1com () << 24;
639 h2 = get1com () << 16; 621 h2 = get1com () << 16;
640 h3 = get1com () << 8; 622 h3 = get1com () << 8;
641 return h1 | h2 | h3 | get1com (); 623 return h1 | h2 | h3 | get1com ();
642 } 624 }
643 625
644 /** サーバへ文字列を送る **/ 626 /** サーバへ文字列を送る **/
645 static void 627 static void
646 getscom (p) 628 getscom (register char *p)
647 register char *p;
648 { 629 {
649 while ((*p++ = get1com ())) 630 while ((*p++ = get1com ()))
650 ; 631 ;
651 } 632 }
652 633
653 /** サーバへ文字列を送る **/ 634 /** サーバへ文字列を送る **/
654 static void 635 static void
655 getwscom (p) 636 getwscom (w_char register *p)
656 w_char register *p;
657 { 637 {
658 while ((*p++ = get2com ())) 638 while ((*p++ = get2com ()))
659 ; 639 ;
660 } 640 }
661 641
662 #ifdef nodef 642 #ifdef nodef
663 /* Moved from ../etc/string.c */ 643 /* Moved from ../etc/string.c */
664 /** **/ 644 /** **/
665 static int 645 static int
666 Strlen (s) 646 Strlen (register w_char *s)
667 register w_char *s;
668 { 647 {
669 register int n; 648 register int n;
670 649
671 for (n = 0; *s++ != 0; n++); 650 for (n = 0; *s++ != 0; n++);
672 return n; 651 return n;
673 } 652 }
674 653
675 /** **/ 654 /** **/
676 static w_char * 655 static w_char *
677 Strcpy (s1, s2) 656 Strcpy (register w_char *s1, register w_char *s2)
678 register w_char *s1;
679 register w_char *s2;
680 { 657 {
681 register w_char *d; 658 register w_char *d;
682 659
683 for (d = s1; (*d++ = *s2++) != 0;); 660 for (d = s1; (*d++ = *s2++) != 0;);
684 return s1; 661 return s1;
687 664
688 665
689 /* Debug Subroutines */ 666 /* Debug Subroutines */
690 #if DEBUG 667 #if DEBUG
691 void 668 void
692 xerror (s) 669 xerror (char *s)
693 char *s;
694 { 670 {
695 fprintf (stderr, "%s\n", s); 671 fprintf (stderr, "%s\n", s);
696 } 672 }
697 673
698 void 674 void
718 694
719 #endif 695 #endif
720 696
721 /* get login name form /etc/passwd file */ 697 /* get login name form /etc/passwd file */
722 static char * 698 static char *
723 getlogname () 699 getlogname (void)
724 { 700 {
725 struct passwd *getpwuid (); 701 struct passwd *getpwuid ();
726 return getpwuid (getuid ())->pw_name; 702 return getpwuid (getuid ())->pw_name;
727 } 703 }
728 704
739 ・global 715 ・global
740 ***/ 716 ***/
741 717
742 /** jserver と接続する。jserver_id を返す。 **/ 718 /** jserver と接続する。jserver_id を返す。 **/
743 WNN_JSERVER_ID * 719 WNN_JSERVER_ID *
744 js_open_lang (server, lang, timeout) 720 js_open_lang (register char *server, register char *lang, register int timeout)
745 register char *server, *lang;
746 register int timeout;
747 { 721 {
748 char *new_js; 722 char *new_js;
749 char host[WNN_HOSTLEN], user[WNN_ENVNAME_LEN]; 723 char host[WNN_HOSTLEN], user[WNN_ENVNAME_LEN];
750 int x; 724 int x;
751 725
826 800
827 801
828 /** ソケットをクローズする **/ 802 /** ソケットをクローズする **/
829 /** jserver との接続を close する。 **/ 803 /** jserver との接続を close する。 **/
830 int 804 int
831 js_close (server) 805 js_close (WNN_JSERVER_ID *server)
832 WNN_JSERVER_ID *server;
833 { 806 {
834 register int x; 807 register int x;
835 WNN_JSERVER_ID tmp_js_id; 808 WNN_JSERVER_ID tmp_js_id;
836 if (server == 0) 809 if (server == 0)
837 return (-1); 810 return (-1);
860 境を作る。env_name に既に存在する環境を指定した時にはその環境を 833 境を作る。env_name に既に存在する環境を指定した時にはその環境を
861 返し、NULL を指定した時には新しい環境を作って返す。 834 返し、NULL を指定した時には新しい環境を作って返す。
862 */ 835 */
863 836
864 struct wnn_env * 837 struct wnn_env *
865 js_connect_lang (server, env_name, lang) 838 js_connect_lang (WNN_JSERVER_ID *server, register char *env_name, char *lang)
866 register char *env_name;
867 WNN_JSERVER_ID *server;
868 char *lang;
869 { 839 {
870 register int e_id; 840 register int e_id;
871 register struct wnn_env *env; 841 register struct wnn_env *env;
872 void js_set_lang (); 842 void js_set_lang ();
873 843
895 } 865 }
896 866
897 #ifdef nodef 867 #ifdef nodef
898 /* set language value to env */ 868 /* set language value to env */
899 void 869 void
900 js_set_lang (env, lang) 870 js_set_lang (struct wnn_env *env, register char *lang)
901 struct wnn_env *env;
902 register char *lang;
903 { 871 {
904 register char *p; 872 register char *p;
905 extern char *getenv (); 873 extern char *getenv ();
906 874
907 /* if not specified language , use $LANG */ 875 /* if not specified language , use $LANG */
915 } 883 }
916 #endif 884 #endif
917 885
918 /* get language value from env */ 886 /* get language value from env */
919 char * 887 char *
920 js_get_lang (env) 888 js_get_lang (struct wnn_env *env)
921 struct wnn_env *env;
922 { 889 {
923 return (env->lang); 890 return (env->lang);
924 } 891 }
925 892
926 int 893 int
927 js_env_exist (server, env_name) 894 js_env_exist (register WNN_JSERVER_ID *server, register char *env_name)
928 register char *env_name;
929 register WNN_JSERVER_ID *server;
930 { 895 {
931 set_current_js (server); 896 set_current_js (server);
932 handler_of_jserver_dead (-1); 897 handler_of_jserver_dead (-1);
933 snd_head (JS_ENV_EXIST); 898 snd_head (JS_ENV_EXIST);
934 putscom (env_name); 899 putscom (env_name);
935 snd_flush (); 900 snd_flush ();
936 return (get4com ()); 901 return (get4com ());
937 } 902 }
938 903
939 int 904 int
940 js_env_sticky (env) 905 js_env_sticky (register struct wnn_env *env)
941 register struct wnn_env *env;
942 { 906 {
943 if (env == 0) 907 if (env == 0)
944 return (-1); 908 return (-1);
945 set_current_js (env->js_id); 909 set_current_js (env->js_id);
946 handler_of_jserver_dead (-1); 910 handler_of_jserver_dead (-1);
948 snd_flush (); 912 snd_flush ();
949 return (get4com ()); 913 return (get4com ());
950 } 914 }
951 915
952 int 916 int
953 js_env_un_sticky (env) 917 js_env_un_sticky (register struct wnn_env *env)
954 register struct wnn_env *env;
955 { 918 {
956 if (env == 0) 919 if (env == 0)
957 return (-1); 920 return (-1);
958 set_current_js (env->js_id); 921 set_current_js (env->js_id);
959 handler_of_jserver_dead (-1); 922 handler_of_jserver_dead (-1);
964 927
965 /** 928 /**
966 env で示される環境を無くす。 929 env で示される環境を無くす。
967 **/ 930 **/
968 int 931 int
969 js_disconnect (env) 932 js_disconnect (register struct wnn_env *env)
970 register struct wnn_env *env;
971 { 933 {
972 register int x; 934 register int x;
973 struct wnn_env tmp_env; 935 struct wnn_env tmp_env;
974 if (env == 0) 936 if (env == 0)
975 return (-1); 937 return (-1);
990 return x; 952 return x;
991 } 953 }
992 954
993 /** サーバとコネクトしているか **/ 955 /** サーバとコネクトしているか **/
994 int 956 int
995 js_isconnect (env) 957 js_isconnect (register struct wnn_env *env)
996 register struct wnn_env *env;
997 { 958 {
998 if (env && env->js_id) 959 if (env && env->js_id)
999 return (env->js_id->js_dead); 960 return (env->js_id->js_dead);
1000 return (-1); 961 return (-1);
1001 } 962 }
1002 963
1003 /** 964 /**
1004 env の 環境 との通信バッファを flush する。 965 env の 環境 との通信バッファを flush する。
1005 **/ 966 **/
1006 void 967 void
1007 js_flush (env) 968 js_flush (struct wnn_env *env)
1008 struct wnn_env *env; 969 {
1009 { 970 /* no operation */
1010 } 971 }
1011 972
1012 973
1013 974
1014 /* Parameter set/get */ 975 /* Parameter set/get */
1138 1099
1139 /** js_file_list_all **/ 1100 /** js_file_list_all **/
1140 static int rcv_file_list (); 1101 static int rcv_file_list ();
1141 1102
1142 int 1103 int
1143 js_file_list_all (server, ret) 1104 js_file_list_all (WNN_JSERVER_ID *server, struct wnn_ret_buf *ret)
1144 WNN_JSERVER_ID *server;
1145 struct wnn_ret_buf *ret;
1146 { 1105 {
1147 set_current_js (server); 1106 set_current_js (server);
1148 handler_of_jserver_dead (-1); 1107 handler_of_jserver_dead (-1);
1149 snd_server_head (server, JS_FILE_LIST_ALL); 1108 snd_server_head (server, JS_FILE_LIST_ALL);
1150 snd_flush (); 1109 snd_flush ();
1190 return count; 1149 return count;
1191 } 1150 }
1192 1151
1193 /** js_file_stat **/ 1152 /** js_file_stat **/
1194 int 1153 int
1195 js_file_stat (env, path, s) 1154 js_file_stat (struct wnn_env *env, char *path, WNN_FILE_STAT *s)
1196 struct wnn_env *env;
1197 char *path;
1198 WNN_FILE_STAT *s;
1199 { 1155 {
1200 register int x; 1156 register int x;
1201 if (env == 0) 1157 if (env == 0)
1202 return (-1); 1158 return (-1);
1203 set_current_js (env->js_id); 1159 set_current_js (env->js_id);
1211 } 1167 }
1212 1168
1213 1169
1214 /** js_file_info **/ 1170 /** js_file_info **/
1215 int 1171 int
1216 js_file_info (env, fid, file) 1172 js_file_info (struct wnn_env *env, int fid, register WNN_FILE_INFO_STRUCT *file)
1217 struct wnn_env *env;
1218 int fid;
1219 register WNN_FILE_INFO_STRUCT *file;
1220 { 1173 {
1221 register int x; 1174 register int x;
1222 if (env == 0) 1175 if (env == 0)
1223 return (-1); 1176 return (-1);
1224 set_current_js (env->js_id); 1177 set_current_js (env->js_id);
1240 return 0; 1193 return 0;
1241 } 1194 }
1242 1195
1243 /** js_file_loaded **/ 1196 /** js_file_loaded **/
1244 int 1197 int
1245 js_file_loaded (server, path) 1198 js_file_loaded (WNN_JSERVER_ID *server, char *path)
1246 WNN_JSERVER_ID *server;
1247 char *path;
1248 { 1199 {
1249 register int x; 1200 register int x;
1250 set_current_js (server); 1201 set_current_js (server);
1251 handler_of_jserver_dead (-1); 1202 handler_of_jserver_dead (-1);
1252 snd_server_head (server, JS_FILE_LOADED); 1203 snd_server_head (server, JS_FILE_LOADED);
1259 /** js_file_loaded_local **/ 1210 /** js_file_loaded_local **/
1260 static int check_local_file (); 1211 static int check_local_file ();
1261 static int file_loaded_local (); 1212 static int file_loaded_local ();
1262 1213
1263 int 1214 int
1264 js_file_loaded_local (server, path) 1215 js_file_loaded_local (WNN_JSERVER_ID *server, char *path)
1265 WNN_JSERVER_ID *server;
1266 char *path;
1267 { 1216 {
1268 int x; 1217 int x;
1269 set_current_js (server); 1218 set_current_js (server);
1270 handler_of_jserver_dead (-1); 1219 handler_of_jserver_dead (-1);
1271 1220
1367 } 1316 }
1368 1317
1369 1318
1370 /** js_hindo_file_create **/ 1319 /** js_hindo_file_create **/
1371 int 1320 int
1372 js_hindo_file_create (env, fid, fn, comment, hpasswd) 1321 js_hindo_file_create (struct wnn_env *env, int fid, char *fn, w_char *comment, char *hpasswd)
1373 struct wnn_env *env;
1374 int fid;
1375 char *fn;
1376 w_char *comment;
1377 char *hpasswd;
1378 { 1322 {
1379 register int x; 1323 register int x;
1380 if (env == 0) 1324 if (env == 0)
1381 return (-1); 1325 return (-1);
1382 set_current_js (env->js_id); 1326 set_current_js (env->js_id);
1393 return x; 1337 return x;
1394 } 1338 }
1395 1339
1396 /** js_dic_file_create **/ 1340 /** js_dic_file_create **/
1397 int 1341 int
1398 js_dic_file_create (env, fn, type, comment, passwd, hpasswd) 1342 js_dic_file_create (struct wnn_env *env, char *fn, int type, w_char *comment, char *passwd, char *hpasswd)
1399 struct wnn_env *env;
1400 char *fn;
1401 w_char *comment;
1402 char *passwd, *hpasswd;
1403 int type;
1404 { 1343 {
1405 register int x; 1344 register int x;
1406 if (env == 0) 1345 if (env == 0)
1407 return (-1); 1346 return (-1);
1408 set_current_js (env->js_id); 1347 set_current_js (env->js_id);
1855 /** js_dic_list_all **/ 1794 /** js_dic_list_all **/
1856 static int rcv_dic_list (); 1795 static int rcv_dic_list ();
1857 static void get_dic_info (); 1796 static void get_dic_info ();
1858 1797
1859 int 1798 int
1860 js_dic_list_all (server, ret) 1799 js_dic_list_all (WNN_JSERVER_ID *server, struct wnn_ret_buf *ret)
1861 WNN_JSERVER_ID *server;
1862 struct wnn_ret_buf *ret;
1863 { 1800 {
1864 set_current_js (server); 1801 set_current_js (server);
1865 handler_of_jserver_dead (-1); 1802 handler_of_jserver_dead (-1);
1866 snd_server_head (server, JS_DIC_LIST_ALL); 1803 snd_server_head (server, JS_DIC_LIST_ALL);
1867 snd_flush (); 1804 snd_flush ();
1902 dic->dic_no = -1; 1839 dic->dic_no = -1;
1903 return count; 1840 return count;
1904 } 1841 }
1905 1842
1906 static void 1843 static void
1907 get_dic_info (dic) 1844 get_dic_info (register WNN_DIC_INFO *dic)
1908 register WNN_DIC_INFO *dic;
1909 { 1845 {
1910 dic->dic_no = get4com (); /* dic_No */ 1846 dic->dic_no = get4com (); /* dic_No */
1911 dic->body = get4com (); /* body fid */ 1847 dic->body = get4com (); /* body fid */
1912 dic->hindo = get4com (); /* hindo fid */ 1848 dic->hindo = get4com (); /* hindo fid */
1913 dic->rw = get4com (); /* r/w */ 1849 dic->rw = get4com (); /* r/w */
1929 1865
1930 /*** Dic. Operation by dic_No. ***/ 1866 /*** Dic. Operation by dic_No. ***/
1931 1867
1932 /** js_word_add **/ 1868 /** js_word_add **/
1933 int 1869 int
1934 js_word_add (env, dic_no, yomi, kanji, comment, hinshi, init_hindo) 1870 js_word_add (struct wnn_env *env, int dic_no, w_char *yomi, w_char *kanji, w_char *comment, int hinshi, int init_hindo)
1935 struct wnn_env *env;
1936 int dic_no;
1937 w_char *yomi, *kanji, *comment;
1938 int hinshi, init_hindo;
1939 { 1871 {
1940 register int x; 1872 register int x;
1941 if (env == 0) 1873 if (env == 0)
1942 return (-1); 1874 return (-1);
1943 set_current_js (env->js_id); 1875 set_current_js (env->js_id);
1981 1913
1982 /** js_word_search **/ 1914 /** js_word_search **/
1983 static int rcv_word_data (); 1915 static int rcv_word_data ();
1984 1916
1985 int 1917 int
1986 js_word_search (env, dic_no, yomi, ret) 1918 js_word_search (struct wnn_env *env, int dic_no, w_char *yomi, struct wnn_ret_buf *ret)
1987 struct wnn_env *env;
1988 int dic_no;
1989 w_char *yomi;
1990 struct wnn_ret_buf *ret;
1991 { 1919 {
1992 if (env == 0) 1920 if (env == 0)
1993 return (-1); 1921 return (-1);
1994 set_current_js (env->js_id); 1922 set_current_js (env->js_id);
1995 handler_of_jserver_dead (-1); 1923 handler_of_jserver_dead (-1);
2001 return (rcv_word_data (ret, yomi)); 1929 return (rcv_word_data (ret, yomi));
2002 } 1930 }
2003 1931
2004 /** js_word_search_by_env **/ 1932 /** js_word_search_by_env **/
2005 int 1933 int
2006 js_word_search_by_env (env, yomi, ret) 1934 js_word_search_by_env (struct wnn_env *env, w_char *yomi, struct wnn_ret_buf *ret)
2007 struct wnn_env *env;
2008 w_char *yomi;
2009 struct wnn_ret_buf *ret;
2010 { 1935 {
2011 if (env == 0) 1936 if (env == 0)
2012 return (-1); 1937 return (-1);
2013 set_current_js (env->js_id); 1938 set_current_js (env->js_id);
2014 handler_of_jserver_dead (-1); 1939 handler_of_jserver_dead (-1);
2047 rcv_word_data (ret, yomi); 1972 rcv_word_data (ret, yomi);
2048 return (0); 1973 return (0);
2049 } 1974 }
2050 1975
2051 int 1976 int
2052 js_word_comment_set (env, dic_no, entry, comment) 1977 js_word_comment_set (struct wnn_env *env, int dic_no, int entry, w_char *comment)
2053 struct wnn_env *env;
2054 int dic_no, entry;
2055 w_char *comment;
2056 { 1978 {
2057 register int x; 1979 register int x;
2058 if (env == 0) 1980 if (env == 0)
2059 return (-1); 1981 return (-1);
2060 set_current_js (env->js_id); 1982 set_current_js (env->js_id);
2073 return (0); 1995 return (0);
2074 } 1996 }
2075 1997
2076 /** rcv for word_search **/ 1998 /** rcv for word_search **/
2077 static int 1999 static int
2078 rcv_word_data (ret, yomi) 2000 rcv_word_data (struct wnn_ret_buf *ret, w_char *yomi)
2079 struct wnn_ret_buf *ret; 2001 /* Yomi is not sent from server (at least for the time being). */
2080 w_char *yomi; /* Yomi is not sent from server
2081 * (at least for the time being).
2082 */
2083 { 2002 {
2084 register int x, j_c, k_c; 2003 register int x, j_c, k_c;
2085 w_char *k; 2004 w_char *k;
2086 register struct wnn_jdata *jd; 2005 register struct wnn_jdata *jd;
2087 register int cnt; 2006 register int cnt;
2128 } 2047 }
2129 2048
2130 2049
2131 /** js_dic_info **/ 2050 /** js_dic_info **/
2132 int 2051 int
2133 js_dic_info (env, dic_no, ret) 2052 js_dic_info (struct wnn_env *env, int dic_no, register WNN_DIC_INFO *ret)
2134 struct wnn_env *env;
2135 int dic_no;
2136 register WNN_DIC_INFO *ret;
2137 { 2053 {
2138 register int x; 2054 register int x;
2139 if (env == 0) 2055 if (env == 0)
2140 return (-1); 2056 return (-1);
2141 set_current_js (env->js_id); 2057 set_current_js (env->js_id);
2153 } 2069 }
2154 2070
2155 2071
2156 /** js_who **/ 2072 /** js_who **/
2157 int 2073 int
2158 js_who (server, ret) 2074 js_who (WNN_JSERVER_ID *server, struct wnn_ret_buf *ret)
2159 WNN_JSERVER_ID *server;
2160 struct wnn_ret_buf *ret;
2161 { 2075 {
2162 register int i, j, c; 2076 register int i, j, c;
2163 WNN_JWHO *w; 2077 WNN_JWHO *w;
2164 set_current_js (server); 2078 set_current_js (server);
2165 handler_of_jserver_dead (-1); 2079 handler_of_jserver_dead (-1);
2191 2105
2192 /** jserver 中の全ての環境に関する情報を得る。 2106 /** jserver 中の全ての環境に関する情報を得る。
2193 (ウラ技) 2107 (ウラ技)
2194 **/ 2108 **/
2195 int 2109 int
2196 js_env_list (server, ret) 2110 js_env_list (WNN_JSERVER_ID *server, struct wnn_ret_buf *ret)
2197 WNN_JSERVER_ID *server;
2198 struct wnn_ret_buf *ret;
2199 { 2111 {
2200 register int i, j, c; 2112 register int i, j, c;
2201 WNN_ENV_INFO *w; 2113 WNN_ENV_INFO *w;
2202 set_current_js (server); 2114 set_current_js (server);
2203 handler_of_jserver_dead (-1); 2115 handler_of_jserver_dead (-1);
2265 /**** 2177 /****
2266 Henkan 2178 Henkan
2267 ****/ 2179 ****/
2268 2180
2269 static void 2181 static void
2270 put_fzk_vec (hinsi, fzk, vec, vec1) 2182 put_fzk_vec (int hinsi, w_char *fzk, int vec, int vec1)
2271 int hinsi;
2272 w_char *fzk;
2273 int vec;
2274 int vec1;
2275 { 2183 {
2276 put4com (hinsi); 2184 put4com (hinsi);
2277 putwscom (fzk); 2185 putwscom (fzk);
2278 put4com (vec); 2186 put4com (vec);
2279 put4com (vec1); 2187 put4com (vec1);
2285 static int rcv_dai (); 2193 static int rcv_dai ();
2286 static void rcv_sho_x (); 2194 static void rcv_sho_x ();
2287 static void rcv_sho_kanji (); 2195 static void rcv_sho_kanji ();
2288 2196
2289 int 2197 int
2290 js_kanren (env, yomi, hinsi, fzk, vec, vec1, vec2, rb) 2198 js_kanren (struct wnn_env *env, w_char *yomi, int hinsi, w_char *fzk, int vec, int vec1, int vec2, struct wnn_ret_buf *rb)
2291 struct wnn_env *env;
2292 w_char *yomi;
2293 int hinsi;
2294 w_char *fzk;
2295 int vec;
2296 int vec1;
2297 int vec2;
2298 struct wnn_ret_buf *rb;
2299 { 2199 {
2300 if (env == 0) 2200 if (env == 0)
2301 return (-1); 2201 return (-1);
2302 set_current_js (env->js_id); 2202 set_current_js (env->js_id);
2303 handler_of_jserver_dead (-1); 2203 handler_of_jserver_dead (-1);
2457 2357
2458 /** 2358 /**
2459 kantan 2359 kantan
2460 **/ 2360 **/
2461 int 2361 int
2462 js_kantan_dai (env, yomi, hinsi, fzk, vec, vec1, rb) 2362 js_kantan_dai (struct wnn_env *env, w_char *yomi, int hinsi, w_char *fzk, int vec, int vec1, struct wnn_ret_buf *rb)
2463 struct wnn_env *env;
2464 w_char *yomi;
2465 int hinsi;
2466 w_char *fzk;
2467 int vec;
2468 int vec1;
2469 struct wnn_ret_buf *rb;
2470 { 2363 {
2471 if (env == 0) 2364 if (env == 0)
2472 return (-1); 2365 return (-1);
2473 set_current_js (env->js_id); 2366 set_current_js (env->js_id);
2474 handler_of_jserver_dead (-1); 2367 handler_of_jserver_dead (-1);
2480 2373
2481 return rcv_dai (rb); 2374 return rcv_dai (rb);
2482 } 2375 }
2483 2376
2484 int 2377 int
2485 js_kantan_sho (env, yomi, hinsi, fzk, vec, vec1, rb) 2378 js_kantan_sho (struct wnn_env *env, w_char *yomi, int hinsi, w_char *fzk, int vec, int vec1, struct wnn_ret_buf *rb)
2486 struct wnn_env *env;
2487 w_char *yomi;
2488 int hinsi;
2489 w_char *fzk;
2490 int vec;
2491 int vec1;
2492 struct wnn_ret_buf *rb;
2493 { 2379 {
2494 int sbncnt; 2380 int sbncnt;
2495 if (env == 0) 2381 if (env == 0)
2496 return (-1); 2382 return (-1);
2497 set_current_js (env->js_id); 2383 set_current_js (env->js_id);
2508 2394
2509 /** 2395 /**
2510 kanzen 2396 kanzen
2511 **/ 2397 **/
2512 int 2398 int
2513 js_kanzen_dai (env, yomi, hinsi, fzk, vec, vec1, rb) 2399 js_kanzen_dai (struct wnn_env *env, w_char *yomi, int hinsi, w_char *fzk, int vec, int vec1, struct wnn_ret_buf *rb)
2514 struct wnn_env *env;
2515 w_char *yomi;
2516 int hinsi;
2517 w_char *fzk;
2518 int vec;
2519 int vec1;
2520 struct wnn_ret_buf *rb;
2521 { 2400 {
2522 if (env == 0) 2401 if (env == 0)
2523 return (-1); 2402 return (-1);
2524 set_current_js (env->js_id); 2403 set_current_js (env->js_id);
2525 handler_of_jserver_dead (-1); 2404 handler_of_jserver_dead (-1);
2531 return rcv_dai (rb); 2410 return rcv_dai (rb);
2532 } 2411 }
2533 2412
2534 2413
2535 int 2414 int
2536 js_kanzen_sho (env, yomi, hinsi, fzk, vec, vec1, rb) 2415 js_kanzen_sho (struct wnn_env *env, w_char *yomi, int hinsi, w_char *fzk, int vec, int vec1, struct wnn_ret_buf *rb)
2537 struct wnn_env *env;
2538 w_char *yomi;
2539 int hinsi;
2540 w_char *fzk;
2541 int vec;
2542 int vec1;
2543 struct wnn_ret_buf *rb;
2544 { 2416 {
2545 int sbncnt; 2417 int sbncnt;
2546 if (env == 0) 2418 if (env == 0)
2547 return (-1); 2419 return (-1);
2548 set_current_js (env->js_id); 2420 set_current_js (env->js_id);
2556 return sbncnt; 2428 return sbncnt;
2557 } 2429 }
2558 2430
2559 /** js_version **/ 2431 /** js_version **/
2560 int 2432 int
2561 js_version (server, serv, libv) 2433 js_version (WNN_JSERVER_ID *server, int *serv, int *libv)
2562 int *serv, *libv;
2563 WNN_JSERVER_ID *server;
2564 { 2434 {
2565 set_current_js (server); 2435 set_current_js (server);
2566 handler_of_jserver_dead (-1); 2436 handler_of_jserver_dead (-1);
2567 snd_server_head (server, JS_VERSION); 2437 snd_server_head (server, JS_VERSION);
2568 snd_flush (); 2438 snd_flush ();
2569 *libv = JLIB_VERSION; 2439 *libv = JLIB_VERSION;
2570 return *serv = get4com (); 2440 return *serv = get4com ();
2571 } 2441 }
2572 2442
2573 static void 2443 static void
2574 re_alloc (ret, size) 2444 re_alloc (register struct wnn_ret_buf *ret, int size)
2575 register struct wnn_ret_buf *ret;
2576 int size;
2577 { 2445 {
2578 if (ret->size < size) 2446 if (ret->size < size)
2579 { 2447 {
2580 if (ret->buf) 2448 if (ret->buf)
2581 free ((char *) ret->buf); 2449 free ((char *) ret->buf);
2584 } 2452 }
2585 } 2453 }
2586 2454
2587 2455
2588 int 2456 int
2589 js_kill (server) 2457 js_kill (WNN_JSERVER_ID *server)
2590 WNN_JSERVER_ID *server;
2591 { 2458 {
2592 int x; 2459 int x;
2593 set_current_js (server); 2460 set_current_js (server);
2594 handler_of_jserver_dead (-1); 2461 handler_of_jserver_dead (-1);
2595 snd_server_head (server, JS_KILL); 2462 snd_server_head (server, JS_KILL);
2598 return (x); 2465 return (x);
2599 } 2466 }
2600 2467
2601 2468
2602 int 2469 int
2603 js_file_remove (server, n, pwd) 2470 js_file_remove (WNN_JSERVER_ID *server, char *n, char *pwd)
2604 WNN_JSERVER_ID *server;
2605 char *n, *pwd;
2606 { 2471 {
2607 register int x; 2472 register int x;
2608 set_current_js (server); 2473 set_current_js (server);
2609 handler_of_jserver_dead (-1); 2474 handler_of_jserver_dead (-1);
2610 snd_server_head (server, JS_FILE_REMOVE); 2475 snd_server_head (server, JS_FILE_REMOVE);
2618 } 2483 }
2619 return (x); 2484 return (x);
2620 } 2485 }
2621 2486
2622 int 2487 int
2623 js_file_remove_client (server, n, pwd) 2488 js_file_remove_client (WNN_JSERVER_ID *server, char *n, char *pwd)
2624 WNN_JSERVER_ID *server;
2625 char *n, *pwd;
2626 { 2489 {
2627 struct wnn_file_head fh; 2490 struct wnn_file_head fh;
2628 register FILE *fp; 2491 register FILE *fp;
2629 set_current_js (server); 2492 set_current_js (server);
2630 handler_of_jserver_dead (-1); 2493 handler_of_jserver_dead (-1);
2661 return (0); 2524 return (0);
2662 } 2525 }
2663 2526
2664 /** js_dic_file_create_client **/ 2527 /** js_dic_file_create_client **/
2665 int 2528 int
2666 js_dic_file_create_client (env, fn, type, com, passwd, hpasswd) 2529 js_dic_file_create_client (struct wnn_env *env, char *fn, int type, w_char *com, char *passwd, char *hpasswd)
2667 struct wnn_env *env;
2668 int type;
2669 char *fn;
2670 w_char *com;
2671 char *passwd, *hpasswd;
2672 { 2530 {
2673 int x; 2531 int x;
2674 if (type != WNN_REV_DICT && type != CWNN_REV_DICT && type != BWNN_REV_DICT && type != WNN_UD_DICT) 2532 if (type != WNN_REV_DICT && type != CWNN_REV_DICT && type != BWNN_REV_DICT && type != WNN_UD_DICT)
2675 { 2533 {
2676 wnn_errorno = WNN_NOT_A_UD; 2534 wnn_errorno = WNN_NOT_A_UD;
2686 } 2544 }
2687 2545
2688 2546
2689 /** js_hindo_file_create_client **/ 2547 /** js_hindo_file_create_client **/
2690 int 2548 int
2691 js_hindo_file_create_client (env, fid, fn, com, hpasswd) 2549 js_hindo_file_create_client (struct wnn_env *env, int fid, char *fn, w_char *com, char *hpasswd)
2692 struct wnn_env *env;
2693 int fid;
2694 char *fn;
2695 w_char *com;
2696 char *hpasswd;
2697 { 2550 {
2698 register int x; 2551 register int x;
2699 struct wnn_file_uniq funiq; 2552 struct wnn_file_uniq funiq;
2700 int serial; 2553 int serial;
2701 register int i; 2554 register int i;
2729 } 2582 }
2730 return (0); 2583 return (0);
2731 } 2584 }
2732 2585
2733 int 2586 int
2734 js_file_comment_set (env, fid, comment) 2587 js_file_comment_set (struct wnn_env *env, int fid, w_char *comment)
2735 struct wnn_env *env;
2736 int fid;
2737 w_char *comment;
2738 { 2588 {
2739 register int x; 2589 register int x;
2740 if (env == 0) 2590 if (env == 0)
2741 return (-1); 2591 return (-1);
2742 set_current_js (env->js_id); 2592 set_current_js (env->js_id);
2758 /* 2608 /*
2759 * Hinsi Primitives 2609 * Hinsi Primitives
2760 */ 2610 */
2761 2611
2762 int 2612 int
2763 js_hinsi_name (server, no, rb) 2613 js_hinsi_name (WNN_JSERVER_ID *server, int no, struct wnn_ret_buf *rb)
2764 WNN_JSERVER_ID *server;
2765 int no;
2766 struct wnn_ret_buf *rb;
2767 { 2614 {
2768 register int size; 2615 register int size;
2769 2616
2770 set_current_js (server); 2617 set_current_js (server);
2771 handler_of_jserver_dead (-1); 2618 handler_of_jserver_dead (-1);
2782 return (0); 2629 return (0);
2783 } 2630 }
2784 2631
2785 2632
2786 int 2633 int
2787 js_hinsi_number (server, name) 2634 js_hinsi_number (WNN_JSERVER_ID *server, w_char *name)
2788 WNN_JSERVER_ID *server;
2789 w_char *name;
2790 { 2635 {
2791 register int no; 2636 register int no;
2792 2637
2793 set_current_js (server); 2638 set_current_js (server);
2794 handler_of_jserver_dead (-1); 2639 handler_of_jserver_dead (-1);
2803 return (no); 2648 return (no);
2804 } 2649 }
2805 2650
2806 2651
2807 int 2652 int
2808 js_hinsi_list (env, dic_no, name, rb) 2653 js_hinsi_list (struct wnn_env *env, int dic_no, w_char *name, struct wnn_ret_buf *rb)
2809 struct wnn_env *env;
2810 int dic_no;
2811 w_char *name;
2812 struct wnn_ret_buf *rb;
2813 { 2654 {
2814 int size; 2655 int size;
2815 int count; 2656 int count;
2816 register w_char *s; 2657 register w_char *s;
2817 register w_char **r; 2658 register w_char **r;
2912 } 2753 }
2913 return (0); 2754 return (0);
2914 } 2755 }
2915 2756
2916 int 2757 int
2917 js_hinsi_table_set (env, dic_no, hinsi_table) 2758 js_hinsi_table_set (struct wnn_env *env, int dic_no, w_char *hinsi_table)
2918 struct wnn_env *env;
2919 int dic_no;
2920 w_char *hinsi_table;
2921 { 2759 {
2922 int x; 2760 int x;
2923 if (env == 0) 2761 if (env == 0)
2924 return (-1); 2762 return (-1);
2925 set_current_js (env->js_id); 2763 set_current_js (env->js_id);