Mercurial > freewnn
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); |