Import sj3-patches-20040916

Signed-off-by: Masanori Ogino <mogino@acm.org>
This commit is contained in:
Masanori Ogino 2023-11-27 11:34:52 +09:00
commit a76f53bc03
78 changed files with 3433 additions and 3852 deletions

View file

@ -31,17 +31,20 @@
* $SonyRCSfile: level1.c,v $
* $SonyRevision: 1.4 $
* $SonyDate: 1995/04/17 10:36:08 $
*
* $Id: level1.c,v 1.2 2004/07/20 15:55:43 hiroo Exp $
*/
#include "sj_sysvdef.h"
#include <stdio.h>
#include <netdb.h>
#include <pwd.h>
#include <string.h>
#include <sys/un.h>
#include <sys/types.h>
#include <sys/param.h>
#include <unistd.h>
#include <netinet/in.h>
#ifdef TLI
#include <fcntl.h>
@ -58,16 +61,14 @@
#include "sj3cmd.h"
#include "sj3err.h"
#include "sj3lib.h"
#include "sj3lowlib.h"
#ifdef SVR4
#define signal sigset
#endif
char *getlogin();
#ifndef lint
static char rcsid_sony[] = "$SonyId: level1.c,v 1.4 1995/04/17 10:36:08 notanaka Exp $ SONY;";
static char rcsid_patch[] = "$Id: level1.c,v 1.2 2004/07/20 15:55:43 hiroo Exp $";
#endif
int sj3_error_number;
@ -103,10 +104,11 @@ static int ReadErrorFlag = FALSE;
} \
}
static put_flush()
static int
put_flush(void)
{
register int i, j;
register u_char *p;
int i, j;
u_char *p;
for (i = putpos, p = putbuf ; i > 0 ; i -= j, p += j) {
#ifdef TLI
@ -127,27 +129,31 @@ static put_flush()
return 0;
}
static put_byte(c)
register int c;
static void
put_byte(int c)
{
putbuf[putpos++] = c;
}
static put_word(c)
register int c;
static void
put_word(int c)
{
put_byte(c >> 8);
put_byte(c & 0xff);
}
static put_int(c)
register int c;
static void
put_int(int c)
{
put_byte(c >> (8 * 3));
put_byte(c >> (8 * 2));
put_byte(c >> (8 * 1));
put_byte(c);
}
static put_cmd(cmd)
register int cmd;
static void
put_cmd(int cmd)
{
ReadErrorFlag = FALSE;
putpos = getlen = 0;
@ -156,20 +162,21 @@ register int cmd;
#define put_string put_ndata
static u_char *put_ndata(p, n)
register u_char *p;
register int n;
static u_char*
put_ndata(u_char* p, int n)
{
while (n-- > 0) put_byte(p ? *p++ : 0);
return p;
}
static put_over(buflen, n, func1, str1, len1, func2, str2, len2,
func3, str3, len3, func4, str4, len4)
int buflen, n;
u_char *(*func1)(), *(*func2)(), *(*func3)(), *(*func4)();
u_char *str1, *str2, *str3, *str4;
int len1, len2, len3, len4;
static int
put_over(
int buflen,
int n,
u_char* (*func1)(), u_char* str1, int len1,
u_char* (*func2)(), u_char* str2, int len2,
u_char* (*func3)(), u_char* str3, int len3,
u_char* (*func4)(), u_char* str4, int len4)
{
#define ARGNUM 4
u_char *(*func[ARGNUM])();
@ -201,7 +208,8 @@ int len1, len2, len3, len4;
return 0;
}
static get_buffer()
static int
get_buffer(void)
{
if (ReadErrorFlag) return ERROR;
getpos = getlen = 0;
@ -221,7 +229,8 @@ static get_buffer()
return getlen;
}
static get_byte()
static u_char
get_byte(void)
{
if ((getpos >= getlen) && (get_buffer() == ERROR)) {
ReadErrorFlag = TRUE;
@ -229,28 +238,33 @@ static get_byte()
}
return(getbuf[getpos++] & 0xff);
}
static get_word()
static int
get_word(void)
{
register int i;
int i;
i = get_byte();
return ((i << 8) | get_byte());
}
static get_int()
static int
get_int(void)
{
register int i0;
register int i1;
register int i2;
int i0;
int i1;
int i2;
i0 = get_byte();
i1 = get_byte();
i2 = get_byte();
return ((i0 << (8*3)) | (i1 << (8*2)) | (i2 << (8*1)) | get_byte());
}
static u_char *get_string(p)
register u_char *p;
static u_char*
get_string(u_char* p)
{
register int c;
int c;
do {
*p++ = c = get_byte();
@ -258,11 +272,11 @@ register u_char *p;
return p;
}
static get_nstring(p, n)
register u_char *p;
register int n;
static int
get_nstring(u_char* p, int n)
{
register int c;
int c;
c = get_byte();
while (c) {
@ -272,24 +286,29 @@ register int n;
if (n > 0) *p++ = 0;
return n;
}
static u_char *get_ndata(p, n)
register u_char *p;
register int n;
static u_char*
get_ndata(u_char* p, int n)
{
while (n-- > 0) *p++ = get_byte();
return p;
}
static skip_string()
static void
skip_string(void)
{
while (get_byte()) ;
}
static skip_ndata(n)
register int n;
static void
skip_ndata(int n)
{
while (n-- > 0) get_byte();
}
#ifndef TLI
static open_unix()
static int
open_unix(void)
{
int fd, len;
struct sockaddr_un sunix;
@ -316,19 +335,19 @@ static open_unix()
}
#endif
sj3_set_timeout(timeout)
int timeout;
{
sj3_timeout = timeout;
}
static void
connect_timeout()
{
}
void
sj3_set_timeout(int timeout)
{
sj3_timeout = timeout;
}
static void
connect_timeout(void)
{
}
static open_inet(host)
char *host;
static int
open_inet(char* host)
{
#ifdef TLI
int val;
@ -339,7 +358,6 @@ char *host;
struct nd_addrlist *addrs;
void *handlep;
char host_name[BUFSIZ], proto_name[BUFSIZ], *port_name, *tmp_addr;
extern char *strchr();
extern void *setnetpath();
extern struct netconfig *getnetpath();
#else
@ -469,12 +487,12 @@ char *host;
}
int sj3_make_connection(client, serv, user, prog)
SJ3_CLIENT_ENV *client;
char *serv;
char *user;
char *prog;
int
sj3_make_connection(
SJ3_CLIENT_ENV* client,
char* serv,
char* user,
char* prog)
{
char host[MAXHOSTNAMELEN];
int tmp;
@ -484,16 +502,18 @@ char *prog;
client -> fd = -1;
if (!serv || *serv == '\0' || !strcmp(serv, af_unix_str)) {
if (!serv || *serv == '\0' || !strcmp(serv, af_unix_str))
#ifdef TLI
serv = LocalHost;
strcpy(host, af_unix_str);
{
serv = LocalHost;
strcpy(host, af_unix_str);
} else {
gethostname(host, sizeof(host));
gethostname(host, sizeof(host));
}
if ((server_fd = open_inet(serv)) == ERROR) return ERROR;
if ((server_fd = open_inet(serv)) == ERROR) return ERROR;
#else
{
if ((server_fd = open_unix()) == ERROR) return ERROR;
strcpy(host, af_unix_str);
}
@ -568,8 +588,9 @@ char *prog;
return ReadErrorFlag ? ERROR : 0;
}
int sj3_erase_connection(client)
SJ3_CLIENT_ENV *client;
int
sj3_erase_connection(SJ3_CLIENT_ENV* client)
{
client_init(client);
@ -588,11 +609,10 @@ SJ3_CLIENT_ENV *client;
}
long sj3_open_dictionary(client, dictname, password)
SJ3_CLIENT_ENV *client;
char *dictname;
char *password;
long
sj3_open_dictionary(
SJ3_CLIENT_ENV* client,
char* dictname, char* password)
{
int res;
int dictlen, passlen;
@ -619,9 +639,9 @@ char *password;
res = get_int();
return ReadErrorFlag ? ERROR : res;
}
int sj3_close_dictionary(client, dicid)
SJ3_CLIENT_ENV *client;
long dicid;
int
sj3_close_dictionary(SJ3_CLIENT_ENV* client, long dicid)
{
client_init(client);
@ -634,11 +654,10 @@ long dicid;
}
int sj3_open_study_file(client, stdyname, password)
SJ3_CLIENT_ENV *client;
char *stdyname;
char *password;
int
sj3_open_study_file(
SJ3_CLIENT_ENV* client,
char* stdyname, char* password)
{
int stdylen, passlen;
int datalen, buflen;
@ -663,8 +682,9 @@ char *password;
if (sj3_error_number = get_int()) return ERROR;
return ReadErrorFlag ? ERROR : 0;
}
int sj3_close_study_file(client)
SJ3_CLIENT_ENV *client;
int
sj3_close_study_file(SJ3_CLIENT_ENV* client)
{
client_init(client);
@ -676,9 +696,8 @@ SJ3_CLIENT_ENV *client;
}
int sj3_get_id_size(client)
SJ3_CLIENT_ENV *client;
int
sj3_get_id_size(SJ3_CLIENT_ENV* client)
{
client_init(client);
@ -691,9 +710,8 @@ SJ3_CLIENT_ENV *client;
}
int sj3_lock_server(client)
SJ3_CLIENT_ENV *client;
int
sj3_lock_server(SJ3_CLIENT_ENV* client)
{
client_init(client);
@ -703,8 +721,9 @@ SJ3_CLIENT_ENV *client;
if (sj3_error_number = get_int()) return ERROR;
return ReadErrorFlag ? ERROR : 0;
}
int sj3_unlock_server(client)
SJ3_CLIENT_ENV *client;
int
sj3_unlock_server(SJ3_CLIENT_ENV *client)
{
client_init(client);
@ -716,15 +735,15 @@ SJ3_CLIENT_ENV *client;
}
int sj3_ikkatu_henkan(client, src, dst, dstsiz, mb_flag)
SJ3_CLIENT_ENV *client;
u_char *src;
register u_char *dst;
register int dstsiz;
int mb_flag;
int
sj3_ikkatu_henkan(
SJ3_CLIENT_ENV* client,
u_char* src,
u_char* dst,
int dstsiz,
int mb_flag)
{
register int c;
int c;
u_char *top;
int result;
int len;
@ -793,13 +812,13 @@ error2:
}
int sj3_bunsetu_henkan(client, yomi, len, kanji, mb_flag)
SJ3_CLIENT_ENV *client;
u_char *yomi;
int len;
u_char *kanji;
int mb_flag;
int
sj3_bunsetu_henkan(
SJ3_CLIENT_ENV* client,
u_char* yomi,
int len,
u_char* kanji,
int mb_flag)
{
int result;
int buflen;
@ -828,11 +847,13 @@ int mb_flag;
get_string( get_ndata(kanji, cliptr -> stdy_size) );
return ReadErrorFlag ? ERROR : result;
}
int sj3_bunsetu_jikouho(client, kanji, mode, mb_flag)
SJ3_CLIENT_ENV *client;
u_char *kanji;
int mode;
int mb_flag;
int
sj3_bunsetu_jikouho(
SJ3_CLIENT_ENV* client,
u_char* kanji,
int mode,
int mb_flag)
{
int result;
@ -851,11 +872,11 @@ int mb_flag;
get_string( get_ndata(kanji, cliptr -> stdy_size) );
return ReadErrorFlag ? ERROR : result;
}
int sj3_bunsetu_maekouho(client, kanji, mode, mb_flag)
SJ3_CLIENT_ENV *client;
u_char *kanji;
int mode;
int mb_flag;
int
sj3_bunsetu_maekouho(
SJ3_CLIENT_ENV* client,
u_char* kanji, int mode, int mb_flag)
{
int result;
@ -876,12 +897,12 @@ int mb_flag;
}
int sj3_bunsetu_kouhosuu(client, yomi, len, mb_flag)
SJ3_CLIENT_ENV *client;
u_char *yomi;
int len;
int mb_flag;
int
sj3_bunsetu_kouhosuu(
SJ3_CLIENT_ENV* client,
u_char* yomi,
int len,
int mb_flag)
{
int result;
int buflen;
@ -909,12 +930,14 @@ int mb_flag;
result = get_int();
return ReadErrorFlag ? ERROR : result;
}
int sj3_bunsetu_zenkouho(client, yomi, len, douon, mb_flag)
SJ3_CLIENT_ENV *client;
u_char *yomi;
int len;
SJ3_DOUON *douon;
int mb_flag;
int
sj3_bunsetu_zenkouho(
SJ3_CLIENT_ENV* client,
u_char* yomi,
int len,
SJ3_DOUON* douon,
int mb_flag)
{
int cnt = 0;
int buflen;
@ -951,10 +974,8 @@ int mb_flag;
}
int sj3_tango_gakusyuu(client, stdy)
SJ3_CLIENT_ENV *client;
SJ3_STUDYREC *stdy;
int
sj3_tango_gakusyuu(SJ3_CLIENT_ENV* client, SJ3_STUDYREC* stdy)
{
int buflen;
@ -975,12 +996,14 @@ SJ3_STUDYREC *stdy;
if (sj3_error_number = get_int()) return ERROR;
return ReadErrorFlag ? ERROR : 0;
}
int sj3_bunsetu_gakusyuu(client, yomi1, yomi2, stdy, mb_flag)
SJ3_CLIENT_ENV *client;
u_char *yomi1;
u_char *yomi2;
SJ3_STUDYREC *stdy;
int mb_flag;
int
sj3_bunsetu_gakusyuu(
SJ3_CLIENT_ENV* client,
u_char* yomi1,
u_char* yomi2,
SJ3_STUDYREC* stdy,
int mb_flag)
{
int yomilen1, yomilen2;
int datalen, buflen;
@ -1012,14 +1035,14 @@ int mb_flag;
}
int sj3_tango_touroku(client, dicid, yomi, kanji, code, mb_flag)
SJ3_CLIENT_ENV *client;
long dicid;
u_char *yomi;
u_char *kanji;
int code;
int mb_flag;
int
sj3_tango_touroku(
SJ3_CLIENT_ENV* client,
long dicid,
u_char* yomi,
u_char* kanji,
int code,
int mb_flag)
{
int yomilen, kanjilen;
int datalen, buflen;
@ -1049,13 +1072,15 @@ int mb_flag;
if (sj3_error_number = get_int()) return ERROR;
return ReadErrorFlag ? ERROR : 0;
}
int sj3_tango_sakujo(client, dicid, yomi, kanji, code, mb_flag)
SJ3_CLIENT_ENV *client;
long dicid;
u_char *yomi;
u_char *kanji;
int code;
int mb_flag;
int
sj3_tango_sakujo(
SJ3_CLIENT_ENV* client,
long dicid,
u_char* yomi,
u_char* kanji,
int code,
int mb_flag)
{
int yomilen, kanjilen;
int datalen, buflen;
@ -1087,14 +1112,14 @@ int mb_flag;
}
int sj3_tango_syutoku(client, dicid, buf, mb_flag)
SJ3_CLIENT_ENV *client;
int dicid;
u_char *buf;
int mb_flag;
int
sj3_tango_syutoku(
SJ3_CLIENT_ENV* client,
int dicid,
u_char* buf,
int mb_flag)
{
register u_char *p;
u_char *p;
client_init(client);
@ -1112,13 +1137,15 @@ int mb_flag;
*p = get_int();
return ReadErrorFlag ? ERROR : 0;
}
int sj3_tango_jikouho(client, dicid, buf, mb_flag)
SJ3_CLIENT_ENV *client;
int dicid;
u_char *buf;
int mb_flag;
int
sj3_tango_jikouho(
SJ3_CLIENT_ENV* client,
int dicid,
u_char* buf,
int mb_flag)
{
register u_char *p;
u_char *p;
client_init(client);
@ -1136,13 +1163,15 @@ int mb_flag;
*p = get_int();
return ReadErrorFlag ? ERROR : 0;
}
int sj3_tango_maekouho(client, dicid, buf, mb_flag)
SJ3_CLIENT_ENV *client;
int dicid;
u_char *buf;
int mb_flag;
int
sj3_tango_maekouho(
SJ3_CLIENT_ENV* client,
int dicid,
u_char* buf,
int mb_flag)
{
register u_char *p;
u_char *p;
client_init(client);
@ -1162,13 +1191,13 @@ int mb_flag;
}
int sj3_make_dict_file(client, path, idxlen, seglen, segnum)
SJ3_CLIENT_ENV *client;
char *path;
int idxlen;
int seglen;
int segnum;
int
sj3_make_dict_file(
SJ3_CLIENT_ENV* client,
char* path,
int idxlen,
int seglen,
int segnum)
{
int pathlen;
int buflen, datalen;
@ -1197,13 +1226,13 @@ int segnum;
}
int sj3_make_study_file(client, path, stynum, clstep, cllen)
SJ3_CLIENT_ENV *client;
char *path;
int stynum;
int clstep;
int cllen;
int
sj3_make_study_file(
SJ3_CLIENT_ENV* client,
char* path,
int stynum,
int clstep,
int cllen)
{
int pathlen;
int buflen, datalen;
@ -1232,10 +1261,8 @@ int cllen;
}
int sj3_make_directory(client, path)
SJ3_CLIENT_ENV *client;
char *path;
int
sj3_make_directory(SJ3_CLIENT_ENV* client, char* path)
{
int pathlen;
int buflen;
@ -1260,11 +1287,8 @@ char *path;
}
int sj3_access(client, path, mode)
SJ3_CLIENT_ENV *client;
char *path;
int mode;
int
sj3_access(SJ3_CLIENT_ENV* client, char* path, int mode)
{
int result;
int pathlen;
@ -1292,11 +1316,8 @@ int mode;
}
int sj3_who(client, ret, num)
SJ3_CLIENT_ENV *client;
SJ3_WHO_STRUCT *ret;
int num;
int
sj3_who(SJ3_CLIENT_ENV* client, SJ3_WHO_STRUCT* ret, int num)
{
int i, j;
@ -1331,9 +1352,8 @@ int num;
}
int sj3_quit(client)
SJ3_CLIENT_ENV *client;
int
sj3_quit(SJ3_CLIENT_ENV* client)
{
client_init(client);
@ -1343,8 +1363,9 @@ SJ3_CLIENT_ENV *client;
if (sj3_error_number = get_int()) return ERROR;
return ReadErrorFlag ? ERROR : 0;
}
int sj3_kill(client)
SJ3_CLIENT_ENV *client;
int
sj3_kill(SJ3_CLIENT_ENV* client)
{
client_init(client);
@ -1356,11 +1377,8 @@ SJ3_CLIENT_ENV *client;
}
int sj3_version(client, dst, dstsiz)
SJ3_CLIENT_ENV *client;
char *dst;
int dstsiz;
int
sj3_version(SJ3_CLIENT_ENV* client, char* dst, int dstsiz)
{
int c;

View file

@ -31,28 +31,28 @@
* $SonyRCSfile: sj.c,v $
* $SonyRevision: 1.2 $
* $SonyDate: 1994/12/09 11:27:09 $
*
* $Id$
*/
#include <stdio.h>
#include <ctype.h>
#include <locale.h>
#include <pwd.h>
#include <setjmp.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/file.h>
#include <ctype.h>
#include <unistd.h>
#include "sj_const.h"
#include "Const.h"
#include "sj3err.h"
#include "sj3lib.h"
#include "sj3lowlib.h"
#include "sj_hinsi.h"
extern int sj3_error_number;
extern int sj3_str_sjistoeuc(), sj3_str_euctosjis(), sj3_sjistoeuclen();
#ifdef __sony_news
extern int _sys_code;
#else
@ -79,12 +79,10 @@ static u_char buf1[YomiBufSize];
static u_char buf2[YomiBufSize];
static u_char kbuf[KanjiBufSize];
char *getlogin(), *getenv();
long sj3_open_dictionary();
#ifndef __sony_news
static int
set_sys_code()
set_sys_code(void)
{
char *loc;
@ -97,11 +95,11 @@ set_sys_code()
#endif
static make_dirs(path)
char *path;
static int
make_dirs(char* path)
{
char tmp[PathNameLen];
register char *p;
char *p;
int i;
for (p = path ; *p ; p++) {
@ -118,10 +116,8 @@ char *path;
}
sj3_open(host, user)
char *host;
char *user;
int
sj3_open(char* host, char* user)
{
char tmp[PathNameLen];
char *p;
@ -195,19 +191,17 @@ server_dead:
return SJ3_SERVER_DEAD;
}
sj3_open_with_list(host, user, dicts_num, dicts, error_num, error_index)
char *host;
char *user;
int dicts_num;
char **dicts;
int *error_num;
int **error_index;
int
sj3_open_with_list(
char* host, char* user, int dicts_num,
char** dicts, int* error_num, int** error_index)
{
char tmp[PathNameLen];
char *p;
int err = SJ3_NORMAL_END;
int i, err_id_num = 0;
long *dict_idx;
long *dict_idx = NULL;
if (client.fd != -1) return SJ3_ALREADY_CONNECTED;
@ -304,7 +298,10 @@ server_dead:
mdicid = udicid = 0;
return SJ3_SERVER_DEAD;
}
sj3_close()
int
sj3_close(void)
{
int err = SJ3_NORMAL_END;
int i;
@ -368,12 +365,8 @@ server_dead:
}
sj3_getkan(yomi, bun, knj, knjsiz)
u_char *yomi;
SJ3_BUNSETU *bun;
u_char *knj;
int knjsiz;
int
sj3_getkan(u_char* yomi, SJ3_BUNSETU* bun, u_char* knj, int knjsiz)
{
u_char *src;
int buncnt = 0;
@ -424,11 +417,10 @@ int knjsiz;
return buncnt;
}
sj3_getkan_euc(yomi, bun, knj, knjsiz)
u_char *yomi;
SJ3_BUNSETU *bun;
u_char *knj;
int knjsiz;
int
sj3_getkan_euc(u_char* yomi, SJ3_BUNSETU* bun, u_char* knj, int knjsiz)
{
u_char *src, *yp, *kp, *khp;
int buncnt = 0, i;
@ -523,11 +515,9 @@ int knjsiz;
return buncnt;
}
sj3_getkan_mb(yomi, bun, knj, knjsiz)
u_char *yomi;
SJ3_BUNSETU *bun;
u_char *knj;
int knjsiz;
int
sj3_getkan_mb(u_char* yomi, SJ3_BUNSETU* bun, u_char* knj, int knjsiz)
{
#ifndef __sony_news
if (_sys_code == SYS_NOTDEF)
@ -540,9 +530,8 @@ int knjsiz;
}
sj3_douoncnt(yomi)
u_char *yomi;
int
sj3_douoncnt(u_char* yomi)
{
int i;
@ -560,8 +549,10 @@ u_char *yomi;
return i;
}
sj3_douoncnt_euc(yomi)
u_char *yomi;
int
sj3_douoncnt_euc(u_char* yomi)
{
int i, l, flag;
u_char *yp;
@ -591,8 +582,9 @@ u_char *yomi;
return i;
}
sj3_douoncnt_mb(yomi)
u_char *yomi;
int
sj3_douoncnt_mb(u_char* yomi)
{
#ifndef __sony_news
if (_sys_code == SYS_NOTDEF)
@ -605,10 +597,8 @@ u_char *yomi;
}
sj3_getdouon(yomi, dou)
u_char *yomi;
SJ3_DOUON *dou;
int
sj3_getdouon(u_char* yomi, SJ3_DOUON* dou)
{
int i;
@ -625,9 +615,10 @@ SJ3_DOUON *dou;
return i;
}
sj3_getdouon_euc(yomi, dou)
u_char *yomi;
SJ3_DOUON *dou;
int
sj3_getdouon_euc(u_char* yomi, SJ3_DOUON* dou)
{
int i, j, l;
@ -665,9 +656,10 @@ SJ3_DOUON *dou;
}
return i;
}
sj3_getdouon_mb(yomi, dou)
u_char *yomi;
SJ3_DOUON *dou;
int
sj3_getdouon_mb(u_char* yomi, SJ3_DOUON* dou)
{
#ifndef __sony_news
if (_sys_code == SYS_NOTDEF)
@ -679,8 +671,9 @@ SJ3_DOUON *dou;
return sj3_getdouon(yomi, dou);
}
sj3_gakusyuu(dcid)
SJ3_STUDYREC *dcid;
int
sj3_gakusyuu(SJ3_STUDYREC* dcid)
{
if (sj3_tango_gakusyuu(&client, dcid) == ERROR) {
if (client.fd < 0) {
@ -692,10 +685,9 @@ SJ3_STUDYREC *dcid;
return 0;
}
sj3_gakusyuu2(yomi1, yomi2, dcid)
u_char *yomi1;
u_char *yomi2;
SJ3_STUDYREC *dcid;
int
sj3_gakusyuu2(u_char* yomi1, u_char* yomi2, SJ3_STUDYREC* dcid)
{
if (sj3_bunsetu_gakusyuu(&client, yomi1, yomi2, dcid, MBCODE_SJIS) == ERROR) {
if (client.fd < 0) {
@ -706,10 +698,10 @@ SJ3_STUDYREC *dcid;
}
return 0;
}
sj3_gakusyuu2_euc(yomi1, yomi2, dcid)
u_char *yomi1;
u_char *yomi2;
SJ3_STUDYREC *dcid;
int
sj3_gakusyuu2_euc(u_char* yomi1, u_char* yomi2, SJ3_STUDYREC* dcid)
{
int l, flag;
u_char *y1p, *y2p;
@ -738,10 +730,10 @@ SJ3_STUDYREC *dcid;
}
return 0;
}
sj3_gakusyuu2_mb(yomi1, yomi2, dcid)
u_char *yomi1;
u_char *yomi2;
SJ3_STUDYREC *dcid;
int
sj3_gakusyuu2_mb(u_char* yomi1, u_char* yomi2, SJ3_STUDYREC* dcid)
{
#ifndef __sony_news
if (_sys_code == SYS_NOTDEF)
@ -753,10 +745,9 @@ SJ3_STUDYREC *dcid;
return sj3_gakusyuu2(yomi1, yomi2, dcid);
}
sj3_touroku(yomi, kanji, code)
u_char *yomi;
u_char *kanji;
int code;
int
sj3_touroku(u_char* yomi, u_char* kanji, int code)
{
if (sj3_tango_touroku(&client, udicid, yomi, kanji, code, MBCODE_SJIS)) {
if (client.fd < 0) {
@ -780,10 +771,10 @@ int code;
return 0;
}
sj3_touroku_euc(yomi, kanji, code)
u_char *yomi;
u_char *kanji;
int code;
int
sj3_touroku_euc(u_char* yomi, u_char* kanji, int code)
{
int l, flag;
u_char *yp;
@ -825,10 +816,10 @@ int code;
return 0;
}
sj3_touroku_mb(yomi, kanji, code)
u_char *yomi;
u_char *kanji;
int code;
int
sj3_touroku_mb(u_char* yomi, u_char* kanji, int code)
{
#ifndef __sony_news
if (_sys_code == SYS_NOTDEF)
@ -840,10 +831,9 @@ int code;
return sj3_touroku(yomi, kanji, code);
}
sj3_syoukyo(yomi, kanji, code)
u_char *yomi;
u_char *kanji;
int code;
int
sj3_syoukyo(u_char* yomi, u_char* kanji, int code)
{
if (sj3_tango_sakujo(&client, udicid, yomi, kanji, code, MBCODE_SJIS)) {
if (client.fd < 0) {
@ -863,10 +853,10 @@ int code;
}
return 0;
}
sj3_syoukyo_euc(yomi, kanji, code)
u_char *yomi;
u_char *kanji;
int code;
int
sj3_syoukyo_euc(u_char* yomi, u_char* kanji, int code)
{
int l, flag;
u_char *yp;
@ -904,10 +894,10 @@ int code;
}
return 0;
}
sj3_syoukyo_mb(yomi, kanji, code)
u_char *yomi;
u_char *kanji;
int code;
int
sj3_syoukyo_mb(u_char* yomi, u_char* kanji, int code)
{
#ifndef __sony_news
if (_sys_code == SYS_NOTDEF)
@ -919,8 +909,9 @@ int code;
return sj3_syoukyo(yomi, kanji, code);
}
sj3_getdict(buf)
u_char *buf;
int
sj3_getdict(u_char* buf)
{
if (sj3_tango_syutoku(&client, udicid, buf, MBCODE_SJIS)) {
if (client.fd < 0) {
@ -931,8 +922,10 @@ u_char *buf;
}
return 0;
}
sj3_getdict_euc(buf)
u_char *buf;
int
sj3_getdict_euc(u_char* buf)
{
int l, ll, slen;
@ -969,8 +962,10 @@ u_char *buf;
}
return 0;
}
sj3_getdict_mb(buf)
u_char *buf;
int
sj3_getdict_mb(u_char* buf)
{
#ifndef __sony_news
if (_sys_code == SYS_NOTDEF)
@ -982,8 +977,8 @@ u_char *buf;
return sj3_getdict(buf);
}
sj3_nextdict(buf)
u_char *buf;
int
sj3_nextdict(u_char* buf)
{
if (sj3_tango_jikouho(&client, udicid, buf, MBCODE_SJIS)) {
if (client.fd < 0) {
@ -994,8 +989,10 @@ u_char *buf;
}
return 0;
}
sj3_nextdict_euc(buf)
u_char *buf;
int
sj3_nextdict_euc(u_char* buf)
{
int l, ll, slen;
@ -1032,8 +1029,10 @@ u_char *buf;
}
return 0;
}
sj3_nextdict_mb(buf)
u_char *buf;
int
sj3_nextdict_mb(u_char* buf)
{
#ifndef __sony_news
if (_sys_code == SYS_NOTDEF)
@ -1045,8 +1044,8 @@ u_char *buf;
return sj3_nextdict(buf);
}
sj3_prevdict(buf)
u_char *buf;
int
sj3_prevdict(u_char* buf)
{
if (sj3_tango_maekouho(&client, udicid, buf, MBCODE_SJIS)) {
if (client.fd < 0) {
@ -1057,8 +1056,10 @@ u_char *buf;
}
return 0;
}
sj3_prevdict_euc(buf)
u_char *buf;
int
sj3_prevdict_euc(u_char* buf)
{
int l, ll, slen;
@ -1095,8 +1096,10 @@ u_char *buf;
}
return 0;
}
sj3_prevdict_mb(buf)
u_char *buf;
int
sj3_prevdict_mb(u_char* buf)
{
#ifndef __sony_news
if (_sys_code == SYS_NOTDEF)
@ -1108,7 +1111,8 @@ u_char *buf;
return sj3_prevdict(buf);
}
sj3_lockserv()
int
sj3_lockserv(void)
{
if (sj3_lock_server(&client) == ERROR) {
if (client.fd < 0) {
@ -1119,7 +1123,10 @@ sj3_lockserv()
}
return 0;
}
sj3_unlockserv()
int
sj3_unlockserv(void)
{
if (sj3_unlock_server(&client)) {
if (client.fd < 0) {

View file

@ -31,11 +31,14 @@
* $SonyRCSfile: sj3lib.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:03:57 $
*
* $Id$
*/
#ifndef _SJ3LIB_H_
#define _SJ3LIB_H_ 1
#include <sys/types.h>
#define SJ3_NORMAL_END 0
#define SJ3_SERVER_DEAD (1 << 0)
@ -150,3 +153,103 @@ typedef struct douon {
#define SJ3_H_RAVERB 98
#define SJ3_H_WAVERB 99
#define SJ3_H_SINGLE 189
/* moved from include/sj3lowlib.h for function prototypes.
* $SonyRCSfile: sj3lowlib.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:00:59 $
*/
typedef struct sj3_client_env {
int fd;
int serv_dead_flg;
int stdy_size;
short svr_version;
short cli_version;
char default_char[2];
} SJ3_CLIENT_ENV;
#ifndef SJ3_NAME_LENGTH
# define SJ3_NAME_LENGTH 128
#endif
typedef struct sj3_who_struct {
int fd;
char hostname[SJ3_NAME_LENGTH];
char username[SJ3_NAME_LENGTH];
char progname[SJ3_NAME_LENGTH];
} SJ3_WHO_STRUCT;
#define MBCODE_SJIS 1
#define MBCODE_EUC 2
/* level1.c */
void sj3_set_timeout(int timeout);
int sj3_make_connection(SJ3_CLIENT_ENV *client, char *serv, char *user, char *prog);
int sj3_erase_connection(SJ3_CLIENT_ENV *client);
long sj3_open_dictionary(SJ3_CLIENT_ENV *client, char *dictname, char *password);
int sj3_close_dictionary(SJ3_CLIENT_ENV *client, long dicid);
int sj3_open_study_file(SJ3_CLIENT_ENV *client, char *stdyname, char *password);
int sj3_close_study_file(SJ3_CLIENT_ENV *client);
int sj3_get_id_size(SJ3_CLIENT_ENV *client);
int sj3_lock_server(SJ3_CLIENT_ENV *client);
int sj3_unlock_server(SJ3_CLIENT_ENV *client);
int sj3_ikkatu_henkan(SJ3_CLIENT_ENV *client, u_char *src, u_char *dst, int dstsiz, int mb_flag);
int sj3_bunsetu_henkan(SJ3_CLIENT_ENV *client, u_char *yomi, int len, u_char *kanji, int mb_flag);
int sj3_bunsetu_jikouho(SJ3_CLIENT_ENV *client, u_char *kanji, int mode, int mb_flag);
int sj3_bunsetu_maekouho(SJ3_CLIENT_ENV *client, u_char *kanji, int mode, int mb_flag);
int sj3_bunsetu_kouhosuu(SJ3_CLIENT_ENV *client, u_char *yomi, int len, int mb_flag);
int sj3_bunsetu_zenkouho(SJ3_CLIENT_ENV *client, u_char *yomi, int len, SJ3_DOUON *douon, int mb_flag);
int sj3_tango_gakusyuu(SJ3_CLIENT_ENV *client, SJ3_STUDYREC *stdy);
int sj3_bunsetu_gakusyuu(SJ3_CLIENT_ENV *client, u_char *yomi1, u_char *yomi2, SJ3_STUDYREC *stdy, int mb_flag);
int sj3_tango_touroku(SJ3_CLIENT_ENV *client, long dicid, u_char *yomi, u_char *kanji, int code, int mb_flag);
int sj3_tango_sakujo(SJ3_CLIENT_ENV *client, long dicid, u_char *yomi, u_char *kanji, int code, int mb_flag);
int sj3_tango_syutoku(SJ3_CLIENT_ENV *client, int dicid, u_char *buf, int mb_flag);
int sj3_tango_jikouho(SJ3_CLIENT_ENV *client, int dicid, u_char *buf, int mb_flag);
int sj3_tango_maekouho(SJ3_CLIENT_ENV *client, int dicid, u_char *buf, int mb_flag);
int sj3_make_dict_file(SJ3_CLIENT_ENV *client, char *path, int idxlen, int seglen, int segnum);
int sj3_make_study_file(SJ3_CLIENT_ENV *client, char *path, int stynum, int clstep, int cllen);
int sj3_make_directory(SJ3_CLIENT_ENV *client, char *path);
int sj3_access(SJ3_CLIENT_ENV *client, char *path, int mode);
int sj3_who(SJ3_CLIENT_ENV *client, SJ3_WHO_STRUCT *ret, int num);
int sj3_quit(SJ3_CLIENT_ENV *client);
int sj3_kill(SJ3_CLIENT_ENV *client);
int sj3_version(SJ3_CLIENT_ENV *client, char *dst, int dstsiz);
/* sj.c */
int sj3_open(char *host, char *user);
int sj3_open_with_list(char *host, char *user, int dicts_num, char **dicts, int *error_num, int **error_index);
int sj3_close(void);
int sj3_getkan(u_char *yomi, SJ3_BUNSETU *bun, u_char *knj, int knjsiz);
int sj3_getkan_euc(u_char *yomi, SJ3_BUNSETU *bun, u_char *knj, int knjsiz);
int sj3_getkan_mb(u_char *yomi, SJ3_BUNSETU *bun, u_char *knj, int knjsiz);
int sj3_douoncnt(u_char *yomi);
int sj3_douoncnt_euc(u_char *yomi);
int sj3_douoncnt_mb(u_char *yomi);
int sj3_getdouon(u_char *yomi, SJ3_DOUON *dou);
int sj3_getdouon_euc(u_char *yomi, SJ3_DOUON *dou);
int sj3_getdouon_mb(u_char *yomi, SJ3_DOUON *dou);
int sj3_gakusyuu(SJ3_STUDYREC *dcid);
int sj3_gakusyuu2(u_char *yomi1, u_char *yomi2, SJ3_STUDYREC *dcid);
int sj3_gakusyuu2_euc(u_char *yomi1, u_char *yomi2, SJ3_STUDYREC *dcid);
int sj3_gakusyuu2_mb(u_char *yomi1, u_char *yomi2, SJ3_STUDYREC *dcid);
int sj3_touroku(u_char *yomi, u_char *kanji, int code);
int sj3_touroku_euc(u_char *yomi, u_char *kanji, int code);
int sj3_touroku_mb(u_char *yomi, u_char *kanji, int code);
int sj3_syoukyo(u_char *yomi, u_char *kanji, int code);
int sj3_syoukyo_euc(u_char *yomi, u_char *kanji, int code);
int sj3_syoukyo_mb(u_char *yomi, u_char *kanji, int code);
int sj3_getdict(u_char *buf);
int sj3_getdict_euc(u_char *buf);
int sj3_getdict_mb(u_char *buf);
int sj3_nextdict(u_char *buf);
int sj3_nextdict_euc(u_char *buf);
int sj3_nextdict_mb(u_char *buf);
int sj3_prevdict(u_char *buf);
int sj3_prevdict_euc(u_char *buf);
int sj3_prevdict_mb(u_char *buf);
int sj3_lockserv(void);
int sj3_unlockserv(void);
#endif /* _SJ3LIB_H_ */