Rename to Sj4

This commit is contained in:
Nishi 2026-06-20 02:12:04 +09:00
commit 0a2839610b
121 changed files with 1471 additions and 1461 deletions

View file

@ -1,25 +1,25 @@
cmake_minimum_required(VERSION 3.11) cmake_minimum_required(VERSION 3.11)
project(sj3) project(sj4)
file(GLOB_RECURSE SJ3CORE_SRCS lib/sj3core/**.c) file(GLOB_RECURSE SJ4CORE_SRCS lib/sj4core/**.c)
add_library(sj3core STATIC ${SJ3CORE_SRCS}) add_library(sj4core STATIC ${SJ4CORE_SRCS})
target_include_directories(sj3core PUBLIC include/sj3common include/sj3core) target_include_directories(sj4core PUBLIC include/sj4common include/sj4core)
target_include_directories(sj3core PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) target_include_directories(sj4core PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
#file(GLOB_RECURSE SJ3RKCV_SRCS lib/sj3rkcv/**.c) #file(GLOB_RECURSE SJ4RKCV_SRCS lib/sj4rkcv/**.c)
#add_library(sj3rkcv STATIC ${SJ3RKCV_SRCS}) #add_library(sj4rkcv STATIC ${SJ4RKCV_SRCS})
#target_include_directories(sj3rkcv PUBLIC include/sj3common include/sj3rkcv) #target_include_directories(sj4rkcv PUBLIC include/sj4common include/sj4rkcv)
#target_include_directories(sj3rkcv PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) #target_include_directories(sj4rkcv PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
file(GLOB_RECURSE SJ3MKDIC_SRCS src/sj3mkdic/**.c) file(GLOB_RECURSE SJ4MKDIC_SRCS src/sj4mkdic/**.c)
add_executable(sj3mkdic ${SJ3MKDIC_SRCS}) add_executable(sj4mkdic ${SJ4MKDIC_SRCS})
target_include_directories(sj3mkdic PRIVATE include/sj3common include/sj3core) target_include_directories(sj4mkdic PRIVATE include/sj4common include/sj4core)
file(GLOB_RECURSE SJ3TEST_SRCS src/sj3test/**.c) file(GLOB_RECURSE SJ4TEST_SRCS src/sj4test/**.c)
add_executable(sj3test ${SJ3TEST_SRCS}) add_executable(sj4test ${SJ4TEST_SRCS})
target_link_libraries(sj3test PRIVATE sj3core) target_link_libraries(sj4test PRIVATE sj4core)
#target_compile_definitions(sj3core PUBLIC SJ3_GLOBAL) #target_compile_definitions(sj4core PUBLIC SJ4_GLOBAL)
target_compile_definitions(sj3mkdic PRIVATE UTF8 ENGLISH) target_compile_definitions(sj4mkdic PRIVATE UTF8 ENGLISH)

View file

@ -1,103 +0,0 @@
/*
* Copyright (c) 1991-1994 Sony Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL SONY CORPORATION BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name of Sony Corporation
* shall not be used in advertising or otherwise to promote the sale, use
* or other dealings in this Software without prior written authorization
* from Sony Corporation.
*
*/
/*
* $SonyRCSfile: sj3err.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:00:58 $
*/
#define SJ3_InternalError -1
#define SJ3_NormalEnd 0
#define SJ3_ServerDown 1
#define SJ3_OpenSocket 2
#define SJ3_ConnectSocket 3
#define SJ3_GetHostByName 4
#define SJ3_NotOpened 5
#define SJ3_NotEnoughMemory 6
#define SJ3_IllegalCommand 7
#define SJ3_DifferentVersion 11
#define SJ3_NoHostName 12
#define SJ3_NoUserName 13
#define SJ3_NotAllowedUser 14
#define SJ3_AlreadyConnected 15
#define SJ3_NotConnected 16
#define SJ3_TooLongParameter 21
#define SJ3_IllegalParameter 22
#define SJ3_BadDictID 31
#define SJ3_IllegalDictFile 32
#define SJ3_IllegalStdyFile 33
#define SJ3_IncorrectPasswd 34
#define SJ3_FileNotExist 35
#define SJ3_CannotAccessFile 36
#define SJ3_CannotOpenFile 37
#define SJ3_CannotCreateFile 38
#define SJ3_FileReadError 39
#define SJ3_FileWriteError 40
#define SJ3_FileSeekError 41
#define SJ3_StdyAlreadyOpened 51
#define SJ3_StdyFileNotOpened 52
#define SJ3_TooSmallStdyArea 53
#define SJ3_LockedByOther 61
#define SJ3_NotLocked 62
#define SJ3_NoSuchDict 71
#define SJ3_ReadOnlyDict 72
#define SJ3_DictLocked 73
#define SJ3_BadYomiString 74
#define SJ3_BadKanjiString 75
#define SJ3_BadHinsiCode 76
#define SJ3_AddDictFailed 81
#define SJ3_AlreadyExistWord 82
#define SJ3_NoMoreDouonWord 83
#define SJ3_NoMoreUserDict 84
#define SJ3_NoMoreIndexBlock 85
#define SJ3_DelDictFailed 91
#define SJ3_NoSuchWord 92
#define SJ3_DirAlreadyExist 101
#define SJ3_CannotCreateDir 102
#define SJ3_NoMoreDictData 111
#define SJ3_UserConnected 121
#define SJ3_TooLongPasswd 131
#define SJ3_TooLongComment 132
#define SJ3_CannotCodeConvert 133

View file

@ -1,357 +0,0 @@
/*
* Copyright (c) 2004 Iwata <iwata@quasiquote.org>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#ifndef KANAKAN_H
#define KANAKAN_H
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <errno.h>
#include <sys/stat.h>
#ifdef _WIN32
#include <io.h>
#else
#include <unistd.h>
#endif
#include "sj_kcnv.h"
#include "sj_struct.h"
#ifdef SJ3_GLOBAL
#define SJ3_CONTEXT
#define SJ3_CONTEXT2 void
#define SJ3_CONTEXT_PASS
#define SJ3_CONTEXT_PASS2
#else
#define SJ3_CONTEXT Sj3Context *ctx,
#define SJ3_CONTEXT2 Sj3Context* ctx
#define SJ3_CONTEXT_PASS ctx,
#define SJ3_CONTEXT_PASS2 ctx
#endif
/*
* NOTE:
* All of these funtions calling rule are not following
* ANSI like arguement lists, fun(dest, src, ...).
* There are fun(src, dest, ...).
*/
/* adddic.c */
u_int adddic(SJ3_CONTEXT u_char*, u_char*, TypeGram);
/* addelcmn.c */
void set_size(u_char*, int, int, int);
u_int addel_arg(SJ3_CONTEXT u_char*, u_char*, TypeGram, u_char*, int);
int cvtknj(SJ3_CONTEXT u_char*, u_char*, u_char*);
int srchkana(SJ3_CONTEXT u_char**, int*);
int srchgram(u_char*, u_char**, TypeGram);
int srchkanji(u_char**, u_char*, int);
TypeIdxOfs count_uidx(SJ3_CONTEXT2);
void chg_uidx(SJ3_CONTEXT TypeDicSeg, u_char*, int);
/* alloc.c */
JREC* alloc_jrec(SJ3_CONTEXT2);
void free_jrec(SJ3_CONTEXT JREC*);
CLREC* alloc_clrec(SJ3_CONTEXT2);
void free_clrec(SJ3_CONTEXT CLREC*);
/* charsize.c */
int codesize(u_char);
/* chrtbl.c */
extern u_char chrtbl[256];
/* cl2knj.c */
int cl2knj(SJ3_CONTEXT u_char*, int, u_char*);
int nextcl(SJ3_CONTEXT u_char*, int);
int prevcl(SJ3_CONTEXT u_char*, int);
int selectnum(SJ3_CONTEXT2);
/* clstudy.c */
int clstudy(SJ3_CONTEXT u_char*, u_char*, STDYOUT*);
void delclsub(SJ3_CONTEXT u_char*);
void mkclidx(SJ3_CONTEXT2);
/* cmpstr.c */
int cmpstr(u_char*, u_char*);
/* conjunc.c */
extern u_char* conjadr[];
/* connect.c */
extern u_char connadr[];
extern u_char* rigtadr[];
/* cvtclknj.c */
void cvtclknj(SJ3_CONTEXT2);
/* cvtdict.c */
void cvtdict(SJ3_CONTEXT KHREC*, CLREC*, int);
void cvtminasi(SJ3_CONTEXT int);
void cvtwakachi(SJ3_CONTEXT CLREC*);
/* cvtkanji.c */
void cvtphknj(SJ3_CONTEXT2);
void cvtkouho(SJ3_CONTEXT KHREC*);
void setstyrec(SJ3_CONTEXT KHREC*);
/* deldic.c */
u_int deldic(SJ3_CONTEXT u_char*, u_char*, TypeGram);
/* dict.c */
void get_askknj(SJ3_CONTEXT2);
int seldict(SJ3_CONTEXT TypeDicID);
u_char* get_idxptr(SJ3_CONTEXT TypeDicSeg);
/* functbl.c */
extern VFunc cvtnum_func[];
extern UCPFunc getkan_func[];
extern IFunc setjrec_func[];
extern IFunc hiraknj_func[];
/* fuzoku.c */
void setclrec(SJ3_CONTEXT JREC*, u_char*, TypeCnct);
RECURS void srchfzk(SJ3_CONTEXT JREC*, u_char*, TypeCnct, int);
/* fzkyomi.c */
extern u_char* fzkadr[];
/* getkanji.c */
u_char* getkan_none(u_char*, u_char*, u_char*, int, int);
u_char* getkan_hira(u_char*, u_char*, u_char*, int, int);
u_char* getkan_kata(u_char*, u_char*, u_char*, int, int);
u_char* getkan_knj(SJ3_CONTEXT u_char*, u_char*, u_char*, int, int);
u_char* getkan_ofs(SJ3_CONTEXT u_char*, u_char*, u_char*, int, int);
u_char* getkan_norm(u_char*, u_char*, u_char*, int, int);
u_char* getkan_ascii(u_char*, u_char*, u_char*, int, int);
int getkanji(SJ3_CONTEXT u_char*, int, u_char*, u_char*);
/* getrank.c */
void getrank(SJ3_CONTEXT2);
/* hzstrlen.c */
int euc_codesize(u_char c);
int hzstrlen(u_char*, int);
/* init.c */
void seg_count(SJ3_CONTEXT DICT*);
void mkidxtbl(SJ3_CONTEXT DICT*);
void initwork(SJ3_CONTEXT2);
#ifndef SJ3_GLOBAL
Sj3Context* alloccontext(const char*);
void free_context(Sj3Context*);
#endif
/* istrcmp.c */
int istrcmp(u_char*, u_char*, int, int);
/* memcpy.c */
void sstrncpy(u_char*, u_char*, int);
/* memory.c */
JREC* free_jlst(SJ3_CONTEXT JREC*);
CLREC* free_clst(SJ3_CONTEXT CLREC*, int);
void free_clall(SJ3_CONTEXT CLREC*);
void free_jall(SJ3_CONTEXT JREC*);
void freework(SJ3_CONTEXT2);
/* mk2claus.c */
void mk2claus(SJ3_CONTEXT2);
/* mkbunset.c */
void mkbunsetu(SJ3_CONTEXT2);
CLREC* argclrec(SJ3_CONTEXT int);
/* mkjiritu.c */
void mkjiritu(SJ3_CONTEXT int);
JREC* argjrec(SJ3_CONTEXT int, JREC*);
/* mkkouho.c */
void mkkouho(SJ3_CONTEXT2);
u_char* makekan_none(SJ3_CONTEXT u_char*, u_char*, int);
u_char* makekan_1byte(SJ3_CONTEXT u_char*, u_char*, int);
u_char* makekan_knj(SJ3_CONTEXT u_char*, u_char*, int);
u_char* makekan_ofs(SJ3_CONTEXT u_char*, u_char*, int);
u_char* makekan_norm(SJ3_CONTEXT u_char*, u_char*, int);
u_char* makekan_ascii(SJ3_CONTEXT u_char*, u_char*, int);
int sel_sjmode(JREC*);
/* mknumber.c */
void num_type00(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type01(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type02(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type03(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type04(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type05(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type06(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type07(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type08(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type09(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type10(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type11(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type12(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type13(SJ3_CONTEXT u_char*, u_char*, JREC*);
void num_type14(SJ3_CONTEXT u_char*, u_char*, JREC*);
/* mvmemd.c */
void mvmemd(u_char*, u_char*, int);
/* mvmemi.c */
void mvmemi(u_char*, u_char*, int);
/* peepdic.c */
int getusr(SJ3_CONTEXT u_char*);
int nextusr(SJ3_CONTEXT u_char*);
int prevusr(SJ3_CONTEXT u_char*);
/* ph2knj.c */
int ph2knj(SJ3_CONTEXT u_char*, u_char*, int);
/* ph_khtbl.c */
int ph_khtbl(SJ3_CONTEXT CLREC*);
/* priority.c */
int priority(SJ3_CONTEXT CLREC*);
void pritiny(SJ3_CONTEXT2);
/* prtytbl.c */
extern u_char taipri[7][45];
extern u_char sttpri[5][31];
/* s2ctbl.c */
extern u_char kigou[];
/* sdepend.c */
DictFile* opendict(SJ3_CONTEXT char*, char*);
int closedict(SJ3_CONTEXT DictFile*);
void lock_dict(DictFile*, int);
void unlock_dict(DictFile*, int);
int is_dict_locked(DictFile*);
StdyFile* openstdy(char*, char*);
int closestdy(StdyFile*);
int putstydic(SJ3_CONTEXT2);
int putcldic(SJ3_CONTEXT2);
int makedict(char*, int, int, int);
int makestdy(char*, int, int, int);
void sj_closeall(SJ3_CONTEXT2);
int set_dictpass(DictFile*, char*);
int set_stdypass(SJ3_CONTEXT char*);
int set_dictcmnt(DictFile*, char*);
int set_stdycmnt(SJ3_CONTEXT char*);
int get_stdysize(SJ3_CONTEXT int*, int*, int*);
/* selclrec.c */
void selclrec(SJ3_CONTEXT2);
/* selsuuji.c */
extern u_short* selsjadrs[];
/* setconj.c */
int setconj(SJ3_CONTEXT TypeGram, JREC*, CREC*);
/* setjrec.c */
int setj_atrb(SJ3_CONTEXT u_char*);
int setj_ofs(SJ3_CONTEXT u_char*);
int setj_knj(SJ3_CONTEXT u_char*);
int setj_norm1(SJ3_CONTEXT u_char*);
int setj_norm2(SJ3_CONTEXT u_char*);
int setj_norm3(SJ3_CONTEXT u_char*); /* unused??? */
void setjrec(SJ3_CONTEXT u_char*, int);
void setnumrec(SJ3_CONTEXT u_char*, JREC*, TypeGram);
void setcrec(SJ3_CONTEXT u_char*);
/* setkouho.c */
void setkouho(SJ3_CONTEXT CLREC*, TypeDicOfs, int);
void ph_setkouho(SJ3_CONTEXT CLREC*, TypeDicOfs, STDYIN*);
int hiraknj_atrb(SJ3_CONTEXT u_char*, int*);
int hiraknj_ofs(SJ3_CONTEXT u_char*, int*);
int hiraknj_knj(SJ3_CONTEXT u_char*, int*);
int hiraknj_hask(SJ3_CONTEXT u_char*, int*);
int hiraknj_kask(SJ3_CONTEXT u_char*, int*);
int hiraknj_norm(SJ3_CONTEXT u_char*, int*);
int hiraknj_hira(SJ3_CONTEXT u_char*, int*);
/* setubi.c */
u_char* getstb(TypeGram);
void setubi(SJ3_CONTEXT JREC*, u_char*);
/* sj2code.c */
int sj2cd_chr(u_char*, u_char*);
int sj2cd_str(u_char*, u_char*, int);
/* skiphblk.c */
u_char* skiphblk(u_char*);
/* skipkstr.c */
u_char* skipkstr(u_char*);
/* srchdict.c */
int yomicmp(SJ3_CONTEXT u_char*, u_char*, u_char*);
u_char* srchdict(SJ3_CONTEXT u_char*);
/* srchhead.c */
int srchhead(SJ3_CONTEXT2);
/* srchidx.c */
TypeDicSeg srchidx(SJ3_CONTEXT TypeDicSeg, int);
/* srchnum.c*/
void srchnum(SJ3_CONTEXT2);
void setwdnum(SJ3_CONTEXT u_char*, int, u_short*);
int setucnum(SJ3_CONTEXT u_char*, int, u_char*);
/* sstrcmp.c */
int sstrcmp(u_char*, u_char*);
/* sstrlen.c */
int sstrlen(u_char*);
/* sstrncmp.c */
int sstrncmp(u_char*, u_char*, int);
/* stbtbl.c */
extern u_char* stbadr[];
/* stttbl.c */
extern u_char* settou_ptr[];
extern u_char scncttbl[2][24];
/* study.c */
int study(SJ3_CONTEXT STDYOUT*);
STDYIN* srchstdy(SJ3_CONTEXT TypeDicSeg, TypeDicOfs, TypeDicID);
/* suujitbl.c */
extern u_char suuji_tbl[];
extern u_char kurai1_tbl[];
extern u_char kurai2_tbl[];
extern u_char num1tbl[];
extern u_char num2tbl[];
extern u_char num3tbl[];
extern u_char num4tbl[];
extern u_char num5tbl[];
extern u_char num6tbl[];
/* terminat.c */
int terminate(SJ3_CONTEXT TypeCnct, u_char*);
/* termtbl.c */
extern u_char termtbl[];
/* wakachi.c */
void wakachi(SJ3_CONTEXT2);
#endif /* KANAKAN_H */

View file

@ -63,16 +63,16 @@
#define LOGOUTFILE NULL #define LOGOUTFILE NULL
#define ERROROUTFILE "/dev/null" #define ERROROUTFILE "/dev/null"
#define ADDRESSFAMILY "unspec" #define ADDRESSFAMILY "unspec"
#define PORTNAME "sj3" #define PORTNAME "sj4"
#define LOCALHOST "localhost" #define LOCALHOST "localhost"
#define CHROOTFLAG 1 #define CHROOTFLAG 1
#define MAINDICTIONARY "sj3main.dic" #define MAINDICTIONARY "sj4main.dic"
#define USERDICTIONARY "private.dic" #define USERDICTIONARY "private.dic"
#define STUDYFILE "study.dat" #define STUDYFILE "study.dat"
/* /*
* Change the default Port number of sj3 for FreeBSD. * Change the default Port number of sj4 for FreeBSD.
* Patched by Hidekazu Kuroki(hidekazu@cs.titech.ac.jp) 1996/8/20 * Patched by Hidekazu Kuroki(hidekazu@cs.titech.ac.jp) 1996/8/20
*/ */
#define PORTNUMBER "3086" #define PORTNUMBER "3086"

View file

@ -28,72 +28,72 @@
*/ */
/* /*
* $SonyRCSfile: sj3cmd.h,v $ * $SonyRCSfile: sj4cmd.h,v $
* $SonyRevision: 1.1 $ * $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:00:57 $ * $SonyDate: 1994/06/03 08:00:57 $
*/ */
#define SJ3SERV_VERSION_NO 2 #define SJ4SERV_VERSION_NO 2
#define SJ3_CONNECT 1 #define SJ4_CONNECT 1
#define SJ3_DISCONNECT 2 #define SJ4_DISCONNECT 2
#define SJ3_OPENDICT 11 #define SJ4_OPENDICT 11
#define SJ3_CLOSEDICT 12 #define SJ4_CLOSEDICT 12
#define SJ3_OPENSTDY 21 #define SJ4_OPENSTDY 21
#define SJ3_CLOSESTDY 22 #define SJ4_CLOSESTDY 22
#define SJ3_STDYSIZE 23 #define SJ4_STDYSIZE 23
#define SJ3_LOCK 31 #define SJ4_LOCK 31
#define SJ3_UNLOCK 32 #define SJ4_UNLOCK 32
#define SJ3_PH2KNJ 41 #define SJ4_PH2KNJ 41
#define SJ3_CL2KNJ 51 #define SJ4_CL2KNJ 51
#define SJ3_NEXTCL 52 #define SJ4_NEXTCL 52
#define SJ3_PREVCL 53 #define SJ4_PREVCL 53
#define SJ3_CL2KNJ_ALL 54 #define SJ4_CL2KNJ_ALL 54
#define SJ3_CL2KNJ_CNT 55 #define SJ4_CL2KNJ_CNT 55
#define SJ3_STUDY 61 #define SJ4_STUDY 61
#define SJ3_CLSTUDY 62 #define SJ4_CLSTUDY 62
#define SJ3_ADDDICT 71 #define SJ4_ADDDICT 71
#define SJ3_DELDICT 72 #define SJ4_DELDICT 72
#define SJ3_MAKEDICT 81 #define SJ4_MAKEDICT 81
#define SJ3_MAKESTDY 82 #define SJ4_MAKESTDY 82
#define SJ3_MAKEDIR 83 #define SJ4_MAKEDIR 83
#define SJ3_ACCESS 84 #define SJ4_ACCESS 84
#define SJ3_GETDICT 91 #define SJ4_GETDICT 91
#define SJ3_NEXTDICT 92 #define SJ4_NEXTDICT 92
#define SJ3_PREVDICT 93 #define SJ4_PREVDICT 93
#define SJ3_WHO 100 #define SJ4_WHO 100
#define SJ3_QUIT 101 #define SJ4_QUIT 101
#define SJ3_KILL 102 #define SJ4_KILL 102
#define SJ3_VERSION 103 #define SJ4_VERSION 103
#define SJ3_DICTPASS 104 #define SJ4_DICTPASS 104
#define SJ3_DICTCMNT 105 #define SJ4_DICTCMNT 105
#define SJ3_STDYPASS 106 #define SJ4_STDYPASS 106
#define SJ3_STDYCMNT 107 #define SJ4_STDYCMNT 107
#define SJ3_SETCVER 110 #define SJ4_SETCVER 110
#define SJ3_PH2KNJ_EUC 111 #define SJ4_PH2KNJ_EUC 111
#define SJ3_CL2KNJ_EUC 112 #define SJ4_CL2KNJ_EUC 112
#define SJ3_NEXTCL_EUC 113 #define SJ4_NEXTCL_EUC 113
#define SJ3_PREVCL_EUC 114 #define SJ4_PREVCL_EUC 114
#define SJ3_CL2KNJ_ALL_EUC 115 #define SJ4_CL2KNJ_ALL_EUC 115
#define SJ3_CL2KNJ_CNT_EUC 116 #define SJ4_CL2KNJ_CNT_EUC 116
#define SJ3_CLSTUDY_EUC 117 #define SJ4_CLSTUDY_EUC 117
#define SJ3_ADDDICT_EUC 118 #define SJ4_ADDDICT_EUC 118
#define SJ3_DELDICT_EUC 119 #define SJ4_DELDICT_EUC 119
#define SJ3_GETDICT_EUC 120 #define SJ4_GETDICT_EUC 120
#define SJ3_NEXTDICT_EUC 121 #define SJ4_NEXTDICT_EUC 121
#define SJ3_PREVDICT_EUC 122 #define SJ4_PREVDICT_EUC 122

103
include/sj4common/sj4err.h Normal file
View file

@ -0,0 +1,103 @@
/*
* Copyright (c) 1991-1994 Sony Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL SONY CORPORATION BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name of Sony Corporation
* shall not be used in advertising or otherwise to promote the sale, use
* or other dealings in this Software without prior written authorization
* from Sony Corporation.
*
*/
/*
* $SonyRCSfile: sj4err.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:00:58 $
*/
#define SJ4_InternalError -1
#define SJ4_NormalEnd 0
#define SJ4_ServerDown 1
#define SJ4_OpenSocket 2
#define SJ4_ConnectSocket 3
#define SJ4_GetHostByName 4
#define SJ4_NotOpened 5
#define SJ4_NotEnoughMemory 6
#define SJ4_IllegalCommand 7
#define SJ4_DifferentVersion 11
#define SJ4_NoHostName 12
#define SJ4_NoUserName 13
#define SJ4_NotAllowedUser 14
#define SJ4_AlreadyConnected 15
#define SJ4_NotConnected 16
#define SJ4_TooLongParameter 21
#define SJ4_IllegalParameter 22
#define SJ4_BadDictID 31
#define SJ4_IllegalDictFile 32
#define SJ4_IllegalStdyFile 33
#define SJ4_IncorrectPasswd 34
#define SJ4_FileNotExist 35
#define SJ4_CannotAccessFile 36
#define SJ4_CannotOpenFile 37
#define SJ4_CannotCreateFile 38
#define SJ4_FileReadError 39
#define SJ4_FileWriteError 40
#define SJ4_FileSeekError 41
#define SJ4_StdyAlreadyOpened 51
#define SJ4_StdyFileNotOpened 52
#define SJ4_TooSmallStdyArea 53
#define SJ4_LockedByOther 61
#define SJ4_NotLocked 62
#define SJ4_NoSuchDict 71
#define SJ4_ReadOnlyDict 72
#define SJ4_DictLocked 73
#define SJ4_BadYomiString 74
#define SJ4_BadKanjiString 75
#define SJ4_BadHinsiCode 76
#define SJ4_AddDictFailed 81
#define SJ4_AlreadyExistWord 82
#define SJ4_NoMoreDouonWord 83
#define SJ4_NoMoreUserDict 84
#define SJ4_NoMoreIndexBlock 85
#define SJ4_DelDictFailed 91
#define SJ4_NoSuchWord 92
#define SJ4_DirAlreadyExist 101
#define SJ4_CannotCreateDir 102
#define SJ4_NoMoreDictData 111
#define SJ4_UserConnected 121
#define SJ4_TooLongPasswd 131
#define SJ4_TooLongComment 132
#define SJ4_CannotCodeConvert 133

View file

@ -18,20 +18,20 @@
#define SJ_STRING_H #define SJ_STRING_H
/* string.c */ /* string.c */
int sj3_str_sjistoeuc(unsigned char*, int, unsigned char*, unsigned char*, int*); int sj4_str_sjistoeuc(unsigned char*, int, unsigned char*, unsigned char*, int*);
int sj3_str_euctosjis(unsigned char*, int, unsigned char*, unsigned char*, int*); int sj4_str_euctosjis(unsigned char*, int, unsigned char*, unsigned char*, int*);
int sj3_sjistoeuclen(unsigned char*, int); int sj4_sjistoeuclen(unsigned char*, int);
int sj3_sjistoeuc(unsigned char* s, int, unsigned char*, int); int sj4_sjistoeuc(unsigned char* s, int, unsigned char*, int);
int sj3_euctosjis(unsigned char* s, int, unsigned char*, int); int sj4_euctosjis(unsigned char* s, int, unsigned char*, int);
void sj_euc2sjis(unsigned char*); void sj_euc2sjis(unsigned char*);
void sj_jis2sjis(unsigned char*); void sj_jis2sjis(unsigned char*);
void sj_sjis2euc(unsigned char*); void sj_sjis2euc(unsigned char*);
void sj_sjis2jis(unsigned char*); void sj_sjis2jis(unsigned char*);
unsigned short sj3_jis2sjis(unsigned short); unsigned short sj4_jis2sjis(unsigned short);
unsigned short sj3_jis2euc(unsigned short); unsigned short sj4_jis2euc(unsigned short);
unsigned short sj3_sjis2jis(unsigned short); unsigned short sj4_sjis2jis(unsigned short);
unsigned short sj3_euc2sjis(unsigned short); unsigned short sj4_euc2sjis(unsigned short);
unsigned short sj3_sjis2euc(unsigned short); unsigned short sj4_sjis2euc(unsigned short);
#endif /* SJ3INTERN_H */ #endif /* SJ4INTERN_H */

View file

@ -116,7 +116,7 @@ typedef struct global {
typedef struct dictfile { typedef struct dictfile {
DICT dict; DICT dict;
int refcnt; int refcnt;
#ifdef SJ3_LOCK #ifdef SJ4_LOCK
fd_set lock; fd_set lock;
#endif #endif
FILE* fp; FILE* fp;
@ -154,7 +154,7 @@ typedef struct workarea {
Global global; Global global;
} WorkArea; } WorkArea;
typedef struct sj3context { typedef struct sj4context {
Global* work; Global* work;
STDY* stdy; STDY* stdy;
@ -162,6 +162,6 @@ typedef struct sj3context {
JREC* jrec_pool; JREC* jrec_pool;
CLREC* clrec_free; CLREC* clrec_free;
CLREC* clrec_pool; CLREC* clrec_pool;
} Sj3Context; } Sj4Context;
#endif #endif

View file

@ -28,34 +28,34 @@
*/ */
/* /*
* $SonyRCSfile: sj3lowlib.h,v $ * $SonyRCSfile: sj4lowlib.h,v $
* $SonyRevision: 1.1 $ * $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:00:59 $ * $SonyDate: 1994/06/03 08:00:59 $
*/ */
#ifndef SJ3LOWLIB_H #ifndef SJ4LOWLIB_H
#define SJ3LOWLIB_H #define SJ4LOWLIB_H
typedef struct sj3_client_env { typedef struct sj4_client_env {
int fd; int fd;
int serv_dead_flg; int serv_dead_flg;
int stdy_size; int stdy_size;
short svr_version; short svr_version;
short cli_version; short cli_version;
char default_char[2]; char default_char[2];
} SJ3_CLIENT_ENV; } SJ4_CLIENT_ENV;
#ifndef SJ3_NAME_LENGTH #ifndef SJ4_NAME_LENGTH
#define SJ3_NAME_LENGTH 128 #define SJ4_NAME_LENGTH 128
#endif #endif
typedef struct sj3_who_struct { typedef struct sj4_who_struct {
int fd; int fd;
char hostname[SJ3_NAME_LENGTH]; char hostname[SJ4_NAME_LENGTH];
char username[SJ3_NAME_LENGTH]; char username[SJ4_NAME_LENGTH];
char progname[SJ3_NAME_LENGTH]; char progname[SJ4_NAME_LENGTH];
} SJ3_WHO_STRUCT; } SJ4_WHO_STRUCT;
#define MBCODE_SJIS 1 #define MBCODE_SJIS 1
#define MBCODE_EUC 2 #define MBCODE_EUC 2
#endif /* SJ3LOWLIB_H */ #endif /* SJ4LOWLIB_H */

View file

@ -36,7 +36,7 @@
#ifndef SJ_GLOBAL_H #ifndef SJ_GLOBAL_H
#define SJ_GLOBAL_H #define SJ_GLOBAL_H
#ifdef SJ3_GLOBAL #ifdef SJ4_GLOBAL
extern Global* work_base; extern Global* work_base;
extern STDY* stdy_base; extern STDY* stdy_base;
#endif #endif

View file

@ -0,0 +1,357 @@
/*
* Copyright (c) 2004 Iwata <iwata@quasiquote.org>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#ifndef KANAKAN_H
#define KANAKAN_H
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <errno.h>
#include <sys/stat.h>
#ifdef _WIN32
#include <io.h>
#else
#include <unistd.h>
#endif
#include "sj_kcnv.h"
#include "sj_struct.h"
#ifdef SJ4_GLOBAL
#define SJ4_CONTEXT
#define SJ4_CONTEXT2 void
#define SJ4_CONTEXT_PASS
#define SJ4_CONTEXT_PASS2
#else
#define SJ4_CONTEXT Sj4Context *ctx,
#define SJ4_CONTEXT2 Sj4Context* ctx
#define SJ4_CONTEXT_PASS ctx,
#define SJ4_CONTEXT_PASS2 ctx
#endif
/*
* NOTE:
* All of these funtions calling rule are not following
* ANSI like arguement lists, fun(dest, src, ...).
* There are fun(src, dest, ...).
*/
/* adddic.c */
u_int adddic(SJ4_CONTEXT u_char*, u_char*, TypeGram);
/* addelcmn.c */
void set_size(u_char*, int, int, int);
u_int addel_arg(SJ4_CONTEXT u_char*, u_char*, TypeGram, u_char*, int);
int cvtknj(SJ4_CONTEXT u_char*, u_char*, u_char*);
int srchkana(SJ4_CONTEXT u_char**, int*);
int srchgram(u_char*, u_char**, TypeGram);
int srchkanji(u_char**, u_char*, int);
TypeIdxOfs count_uidx(SJ4_CONTEXT2);
void chg_uidx(SJ4_CONTEXT TypeDicSeg, u_char*, int);
/* alloc.c */
JREC* alloc_jrec(SJ4_CONTEXT2);
void free_jrec(SJ4_CONTEXT JREC*);
CLREC* alloc_clrec(SJ4_CONTEXT2);
void free_clrec(SJ4_CONTEXT CLREC*);
/* charsize.c */
int codesize(u_char);
/* chrtbl.c */
extern u_char chrtbl[256];
/* cl2knj.c */
int cl2knj(SJ4_CONTEXT u_char*, int, u_char*);
int nextcl(SJ4_CONTEXT u_char*, int);
int prevcl(SJ4_CONTEXT u_char*, int);
int selectnum(SJ4_CONTEXT2);
/* clstudy.c */
int clstudy(SJ4_CONTEXT u_char*, u_char*, STDYOUT*);
void delclsub(SJ4_CONTEXT u_char*);
void mkclidx(SJ4_CONTEXT2);
/* cmpstr.c */
int cmpstr(u_char*, u_char*);
/* conjunc.c */
extern u_char* conjadr[];
/* connect.c */
extern u_char connadr[];
extern u_char* rigtadr[];
/* cvtclknj.c */
void cvtclknj(SJ4_CONTEXT2);
/* cvtdict.c */
void cvtdict(SJ4_CONTEXT KHREC*, CLREC*, int);
void cvtminasi(SJ4_CONTEXT int);
void cvtwakachi(SJ4_CONTEXT CLREC*);
/* cvtkanji.c */
void cvtphknj(SJ4_CONTEXT2);
void cvtkouho(SJ4_CONTEXT KHREC*);
void setstyrec(SJ4_CONTEXT KHREC*);
/* deldic.c */
u_int deldic(SJ4_CONTEXT u_char*, u_char*, TypeGram);
/* dict.c */
void get_askknj(SJ4_CONTEXT2);
int seldict(SJ4_CONTEXT TypeDicID);
u_char* get_idxptr(SJ4_CONTEXT TypeDicSeg);
/* functbl.c */
extern VFunc cvtnum_func[];
extern UCPFunc getkan_func[];
extern IFunc setjrec_func[];
extern IFunc hiraknj_func[];
/* fuzoku.c */
void setclrec(SJ4_CONTEXT JREC*, u_char*, TypeCnct);
RECURS void srchfzk(SJ4_CONTEXT JREC*, u_char*, TypeCnct, int);
/* fzkyomi.c */
extern u_char* fzkadr[];
/* getkanji.c */
u_char* getkan_none(u_char*, u_char*, u_char*, int, int);
u_char* getkan_hira(u_char*, u_char*, u_char*, int, int);
u_char* getkan_kata(u_char*, u_char*, u_char*, int, int);
u_char* getkan_knj(SJ4_CONTEXT u_char*, u_char*, u_char*, int, int);
u_char* getkan_ofs(SJ4_CONTEXT u_char*, u_char*, u_char*, int, int);
u_char* getkan_norm(u_char*, u_char*, u_char*, int, int);
u_char* getkan_ascii(u_char*, u_char*, u_char*, int, int);
int getkanji(SJ4_CONTEXT u_char*, int, u_char*, u_char*);
/* getrank.c */
void getrank(SJ4_CONTEXT2);
/* hzstrlen.c */
int euc_codesize(u_char c);
int hzstrlen(u_char*, int);
/* init.c */
void seg_count(SJ4_CONTEXT DICT*);
void mkidxtbl(SJ4_CONTEXT DICT*);
void initwork(SJ4_CONTEXT2);
#ifndef SJ4_GLOBAL
Sj4Context* alloccontext(const char*);
void free_context(Sj4Context*);
#endif
/* istrcmp.c */
int istrcmp(u_char*, u_char*, int, int);
/* memcpy.c */
void sstrncpy(u_char*, u_char*, int);
/* memory.c */
JREC* free_jlst(SJ4_CONTEXT JREC*);
CLREC* free_clst(SJ4_CONTEXT CLREC*, int);
void free_clall(SJ4_CONTEXT CLREC*);
void free_jall(SJ4_CONTEXT JREC*);
void freework(SJ4_CONTEXT2);
/* mk2claus.c */
void mk2claus(SJ4_CONTEXT2);
/* mkbunset.c */
void mkbunsetu(SJ4_CONTEXT2);
CLREC* argclrec(SJ4_CONTEXT int);
/* mkjiritu.c */
void mkjiritu(SJ4_CONTEXT int);
JREC* argjrec(SJ4_CONTEXT int, JREC*);
/* mkkouho.c */
void mkkouho(SJ4_CONTEXT2);
u_char* makekan_none(SJ4_CONTEXT u_char*, u_char*, int);
u_char* makekan_1byte(SJ4_CONTEXT u_char*, u_char*, int);
u_char* makekan_knj(SJ4_CONTEXT u_char*, u_char*, int);
u_char* makekan_ofs(SJ4_CONTEXT u_char*, u_char*, int);
u_char* makekan_norm(SJ4_CONTEXT u_char*, u_char*, int);
u_char* makekan_ascii(SJ4_CONTEXT u_char*, u_char*, int);
int sel_sjmode(JREC*);
/* mknumber.c */
void num_type00(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type01(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type02(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type03(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type04(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type05(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type06(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type07(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type08(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type09(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type10(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type11(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type12(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type13(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type14(SJ4_CONTEXT u_char*, u_char*, JREC*);
/* mvmemd.c */
void mvmemd(u_char*, u_char*, int);
/* mvmemi.c */
void mvmemi(u_char*, u_char*, int);
/* peepdic.c */
int getusr(SJ4_CONTEXT u_char*);
int nextusr(SJ4_CONTEXT u_char*);
int prevusr(SJ4_CONTEXT u_char*);
/* ph2knj.c */
int ph2knj(SJ4_CONTEXT u_char*, u_char*, int);
/* ph_khtbl.c */
int ph_khtbl(SJ4_CONTEXT CLREC*);
/* priority.c */
int priority(SJ4_CONTEXT CLREC*);
void pritiny(SJ4_CONTEXT2);
/* prtytbl.c */
extern u_char taipri[7][45];
extern u_char sttpri[5][31];
/* s2ctbl.c */
extern u_char kigou[];
/* sdepend.c */
DictFile* opendict(SJ4_CONTEXT char*, char*);
int closedict(SJ4_CONTEXT DictFile*);
void lock_dict(DictFile*, int);
void unlock_dict(DictFile*, int);
int is_dict_locked(DictFile*);
StdyFile* openstdy(char*, char*);
int closestdy(StdyFile*);
int putstydic(SJ4_CONTEXT2);
int putcldic(SJ4_CONTEXT2);
int makedict(char*, int, int, int);
int makestdy(char*, int, int, int);
void sj_closeall(SJ4_CONTEXT2);
int set_dictpass(DictFile*, char*);
int set_stdypass(SJ4_CONTEXT char*);
int set_dictcmnt(DictFile*, char*);
int set_stdycmnt(SJ4_CONTEXT char*);
int get_stdysize(SJ4_CONTEXT int*, int*, int*);
/* selclrec.c */
void selclrec(SJ4_CONTEXT2);
/* selsuuji.c */
extern u_short* selsjadrs[];
/* setconj.c */
int setconj(SJ4_CONTEXT TypeGram, JREC*, CREC*);
/* setjrec.c */
int setj_atrb(SJ4_CONTEXT u_char*);
int setj_ofs(SJ4_CONTEXT u_char*);
int setj_knj(SJ4_CONTEXT u_char*);
int setj_norm1(SJ4_CONTEXT u_char*);
int setj_norm2(SJ4_CONTEXT u_char*);
int setj_norm3(SJ4_CONTEXT u_char*); /* unused??? */
void setjrec(SJ4_CONTEXT u_char*, int);
void setnumrec(SJ4_CONTEXT u_char*, JREC*, TypeGram);
void setcrec(SJ4_CONTEXT u_char*);
/* setkouho.c */
void setkouho(SJ4_CONTEXT CLREC*, TypeDicOfs, int);
void ph_setkouho(SJ4_CONTEXT CLREC*, TypeDicOfs, STDYIN*);
int hiraknj_atrb(SJ4_CONTEXT u_char*, int*);
int hiraknj_ofs(SJ4_CONTEXT u_char*, int*);
int hiraknj_knj(SJ4_CONTEXT u_char*, int*);
int hiraknj_hask(SJ4_CONTEXT u_char*, int*);
int hiraknj_kask(SJ4_CONTEXT u_char*, int*);
int hiraknj_norm(SJ4_CONTEXT u_char*, int*);
int hiraknj_hira(SJ4_CONTEXT u_char*, int*);
/* setubi.c */
u_char* getstb(TypeGram);
void setubi(SJ4_CONTEXT JREC*, u_char*);
/* sj2code.c */
int sj2cd_chr(u_char*, u_char*);
int sj2cd_str(u_char*, u_char*, int);
/* skiphblk.c */
u_char* skiphblk(u_char*);
/* skipkstr.c */
u_char* skipkstr(u_char*);
/* srchdict.c */
int yomicmp(SJ4_CONTEXT u_char*, u_char*, u_char*);
u_char* srchdict(SJ4_CONTEXT u_char*);
/* srchhead.c */
int srchhead(SJ4_CONTEXT2);
/* srchidx.c */
TypeDicSeg srchidx(SJ4_CONTEXT TypeDicSeg, int);
/* srchnum.c*/
void srchnum(SJ4_CONTEXT2);
void setwdnum(SJ4_CONTEXT u_char*, int, u_short*);
int setucnum(SJ4_CONTEXT u_char*, int, u_char*);
/* sstrcmp.c */
int sstrcmp(u_char*, u_char*);
/* sstrlen.c */
int sstrlen(u_char*);
/* sstrncmp.c */
int sstrncmp(u_char*, u_char*, int);
/* stbtbl.c */
extern u_char* stbadr[];
/* stttbl.c */
extern u_char* settou_ptr[];
extern u_char scncttbl[2][24];
/* study.c */
int study(SJ4_CONTEXT STDYOUT*);
STDYIN* srchstdy(SJ4_CONTEXT TypeDicSeg, TypeDicOfs, TypeDicID);
/* suujitbl.c */
extern u_char suuji_tbl[];
extern u_char kurai1_tbl[];
extern u_char kurai2_tbl[];
extern u_char num1tbl[];
extern u_char num2tbl[];
extern u_char num3tbl[];
extern u_char num4tbl[];
extern u_char num5tbl[];
extern u_char num6tbl[];
/* terminat.c */
int terminate(SJ4_CONTEXT TypeCnct, u_char*);
/* termtbl.c */
extern u_char termtbl[];
/* wakachi.c */
void wakachi(SJ4_CONTEXT2);
#endif /* KANAKAN_H */

View file

@ -118,7 +118,7 @@
#define setnspr Jsetnspr #define setnspr Jsetnspr
#define regetrank Jregetrank #define regetrank Jregetrank
#ifdef SJ3_GLOBAL #ifdef SJ4_GLOBAL
#define work_base Jwork_base #define work_base Jwork_base
#define stdy_base Jstdy_base #define stdy_base Jstdy_base
#else #else

View file

@ -47,23 +47,23 @@ typedef unsigned short u_short;
typedef unsigned int u_int; typedef unsigned int u_int;
typedef void (*VFunc)( typedef void (*VFunc)(
#ifndef SJ3_GLOBAL #ifndef SJ4_GLOBAL
void*, void*,
#endif #endif
void*, void*, void*); void*, void*, void*);
typedef u_char* (*UCPFunc)( typedef u_char* (*UCPFunc)(
#ifndef SJ3_GLOBAL #ifndef SJ4_GLOBAL
void*, void*,
#endif #endif
u_char*, u_char*, int); u_char*, u_char*, int);
typedef int (*IFunc)( typedef int (*IFunc)(
#ifndef SJ3_GLOBAL #ifndef SJ4_GLOBAL
void*, void*,
#endif #endif
void*, int); void*, int);
typedef int (*IFuncDict)( typedef int (*IFuncDict)(
#ifndef SJ3_GLOBAL #ifndef SJ4_GLOBAL
void*, void*,
#endif #endif
void*); void*);

View file

@ -37,13 +37,13 @@
#ifndef __KCTYPE #ifndef __KCTYPE
#define __KCTYPE #define __KCTYPE
#define sjis2euc sj3_sjis2euc #define sjis2euc sj4_sjis2euc
#define jis2sjis sj3_jis2sjis #define jis2sjis sj4_jis2sjis
#define euctosjis sj3_euctosjis #define euctosjis sj4_euctosjis
#define sjis2jis sj3_sjis2jis #define sjis2jis sj4_sjis2jis
#define euc2sjis sj3_euc2sjis #define euc2sjis sj4_euc2sjis
#define jis2euc sj3_jis2euc #define jis2euc sj4_jis2euc
#define sjistoeuc sj3_sjistoeuc #define sjistoeuc sj4_sjistoeuc
#ifdef issjis1 #ifdef issjis1
#undef issjis1 #undef issjis1

View file

@ -14,8 +14,8 @@
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/ */
#ifndef SJ3RKCV_H #ifndef SJ4RKCV_H
#define SJ3RKCV_H #define SJ4RKCV_H
#include "rk.h" #include "rk.h"
@ -43,20 +43,20 @@ typedef struct ymibufrec {
wchar16_t* ymiend; wchar16_t* ymiend;
struct ymibufrec* ymibufp; struct ymibufrec* ymibufp;
} YmibufRec; } YmibufRec;
extern RkTabl* sj3_rcode[MAXCODE]; extern RkTabl* sj4_rcode[MAXCODE];
extern RkTablW16* sj3_rcode_w16[MAXCODE]; extern RkTablW16* sj4_rcode_w16[MAXCODE];
extern RkTablW16* rktblp; extern RkTablW16* rktblp;
extern wchar16_t rline[MAXLLEN]; extern wchar16_t rline[MAXLLEN];
extern wchar16_t lstr[MAXLLEN]; extern wchar16_t lstr[MAXLLEN];
void sj3_rkcode(int); void sj4_rkcode(int);
int sj3_rkinit2(char*, int); int sj4_rkinit2(char*, int);
int rcode_sjis_init(); int rcode_sjis_init();
int rcode_euc_init(); int rcode_euc_init();
int sj3_rkinit(char*); int sj4_rkinit(char*);
int sj3_rkinit_euc(char*); int sj4_rkinit_euc(char*);
int sj3_rkinit_mb(char*); int sj4_rkinit_mb(char*);
int sj3_rkinit_sub(char* rkfile, int (*)()); int sj4_rkinit_sub(char* rkfile, int (*)());
char* rkgetyomi(char*, wchar16_t*, int*); char* rkgetyomi(char*, wchar16_t*, int*);
char* getkey(char*, wchar16_t*, int*); char* getkey(char*, wchar16_t*, int*);
void cltable(); void cltable();
@ -65,33 +65,33 @@ RkTablW16* rkalloc();
int stradd(wchar16_t**, wchar16_t*, int); int stradd(wchar16_t**, wchar16_t*, int);
int kstradd(wchar16_t**, wchar16_t*, int); int kstradd(wchar16_t**, wchar16_t*, int);
RkTablW16* mktable(wchar16_t*, int); RkTablW16* mktable(wchar16_t*, int);
void sj3_rkebell(int); void sj4_rkebell(int);
void sj3_rkclear(); void sj4_rkclear();
void sj3_rkreset(); void sj4_rkreset();
void sj3_rkconvc(wchar16_t, u_int*); void sj4_rkconvc(wchar16_t, u_int*);
int sj3_rkconv2(wchar16_t*, u_int*, int); int sj4_rkconv2(wchar16_t*, u_int*, int);
int sj3_rkconv(u_char*, u_char*); int sj4_rkconv(u_char*, u_char*);
int sj3_rkconv_euc(u_char*, u_char*); int sj4_rkconv_euc(u_char*, u_char*);
int sj3_rkconv_mb(u_char*, u_char*); int sj4_rkconv_mb(u_char*, u_char*);
int sj3_rkconv_w16(wchar16_t*, wchar16_t*); int sj4_rkconv_w16(wchar16_t*, wchar16_t*);
int rkmatch(wchar16_t*, wchar16_t*, int); int rkmatch(wchar16_t*, wchar16_t*, int);
/* sj3_rkcv.h */ /* sj4_rkcv.h */
#ifdef ADDHK #ifdef ADDHK
void setl_hktozh(); void setl_hktozh();
#endif #endif
void mkkigou(); void mkkigou();
int sj_addten(u_short, u_short); int sj_addten(u_short, u_short);
int sj_han2zen(u_short); int sj_han2zen(u_short);
int sj3_hantozen_euc(u_char*, u_char*); int sj4_hantozen_euc(u_char*, u_char*);
int sj3_hantozen_mb(u_char*, u_char*); int sj4_hantozen_mb(u_char*, u_char*);
int sj3_hantozen_w16(wchar16_t*, wchar16_t*); int sj4_hantozen_w16(wchar16_t*, wchar16_t*);
int sj_hantozen(wchar16_t*, wchar16_t*, int); int sj_hantozen(wchar16_t*, wchar16_t*, int);
int sj_zen2han(u_short); int sj_zen2han(u_short);
int sj3_zentohan(u_char*, u_char*); int sj4_zentohan(u_char*, u_char*);
int sj3_zentohan_euc(u_char*, u_char*); int sj4_zentohan_euc(u_char*, u_char*);
int sj3_zentohan_mb(u_char*, u_char*); int sj4_zentohan_mb(u_char*, u_char*);
int sj3_zentohan_w16(wchar16_t*, wchar16_t*); int sj4_zentohan_w16(wchar16_t*, wchar16_t*);
int sj_zentohan(wchar16_t*, wchar16_t*, int); int sj_zentohan(wchar16_t*, wchar16_t*, int);
int sj_tokata(wchar16_t); int sj_tokata(wchar16_t);
int sj_tohira(wchar16_t); int sj_tohira(wchar16_t);
@ -99,26 +99,26 @@ int sj_htok(wchar16_t*, wchar16_t*);
int sj_ktoh(wchar16_t*, wchar16_t*); int sj_ktoh(wchar16_t*, wchar16_t*);
/* wc16_str.c */ /* wc16_str.c */
int sj3_iswcntrl16(wchar16_t); int sj4_iswcntrl16(wchar16_t);
int sj3_iswupper16(wchar16_t); int sj4_iswupper16(wchar16_t);
int sj3_iswdigit16(wchar16_t); int sj4_iswdigit16(wchar16_t);
int sj3_iswxdigit16(wchar16_t); int sj4_iswxdigit16(wchar16_t);
int sj3_wslen16(wchar16_t*); int sj4_wslen16(wchar16_t*);
int sj3_wscmp16(wchar16_t*, wchar16_t*); int sj4_wscmp16(wchar16_t*, wchar16_t*);
int sj3_wsncmp16(wchar16_t*, wchar16_t*, int); int sj4_wsncmp16(wchar16_t*, wchar16_t*, int);
wchar16_t* sj3_wscpy16(wchar16_t*, wchar16_t*); wchar16_t* sj4_wscpy16(wchar16_t*, wchar16_t*);
wchar16_t* sj3_wsncpy16(wchar16_t*, wchar16_t*, int); wchar16_t* sj4_wsncpy16(wchar16_t*, wchar16_t*, int);
wchar16_t* sj3_wscat16(wchar16_t*, wchar16_t*); wchar16_t* sj4_wscat16(wchar16_t*, wchar16_t*);
wchar16_t sj3_euc2wc16(unsigned int); wchar16_t sj4_euc2wc16(unsigned int);
wchar16_t sj3_sjis2wc16(unsigned int); wchar16_t sj4_sjis2wc16(unsigned int);
unsigned int sj3_wc2euc16(wchar16_t); unsigned int sj4_wc2euc16(wchar16_t);
unsigned int sj3_wc2sjis16(wchar16_t); unsigned int sj4_wc2sjis16(wchar16_t);
int sj3_wcs2eucs16(unsigned char*, wchar16_t*, int); int sj4_wcs2eucs16(unsigned char*, wchar16_t*, int);
int sj3_wcs2sjiss16(unsigned char*, wchar16_t*, int); int sj4_wcs2sjiss16(unsigned char*, wchar16_t*, int);
int sj3_eucs2wcs16(wchar16_t*, unsigned char*, int); int sj4_eucs2wcs16(wchar16_t*, unsigned char*, int);
int sj3_sjiss2wcs16(wchar16_t*, unsigned char*, int); int sj4_sjiss2wcs16(wchar16_t*, unsigned char*, int);
int sj3_mbstowcs16(wchar16_t*, unsigned char*, int); int sj4_mbstowcs16(wchar16_t*, unsigned char*, int);
int sj3_wcstombs16(unsigned char*, unsigned char*, int); int sj4_wcstombs16(unsigned char*, unsigned char*, int);
/* XXX */ /* XXX */
extern int current_locale; extern int current_locale;

View file

@ -61,51 +61,51 @@ typedef unsigned short wchar16_t;
#ifdef iswcntrl #ifdef iswcntrl
#undef iswcntrl #undef iswcntrl
#endif #endif
#define iswcntrl(wc) sj3_iswcntrl16(wc) #define iswcntrl(wc) sj4_iswcntrl16(wc)
#ifdef iswupper #ifdef iswupper
#undef iswupper #undef iswupper
#endif #endif
#define iswupper(wc) sj3_iswupper16(wc) #define iswupper(wc) sj4_iswupper16(wc)
#ifdef iswdigit #ifdef iswdigit
#undef iswdigit #undef iswdigit
#endif #endif
#define iswdigit(wc) sj3_iswdigit16(wc) #define iswdigit(wc) sj4_iswdigit16(wc)
#ifdef iswxdigit #ifdef iswxdigit
#undef iswxdigit #undef iswxdigit
#endif #endif
#define iswxdigit(wc) sj3_iswxdigit16(wc) #define iswxdigit(wc) sj4_iswxdigit16(wc)
#ifdef wslen #ifdef wslen
#undef wslen #undef wslen
#endif #endif
#define wslen(ws) sj3_wslen16(ws) #define wslen(ws) sj4_wslen16(ws)
#ifdef wscmp #ifdef wscmp
#undef wscmp #undef wscmp
#endif #endif
#define wscmp(ws1, ws2) sj3_wscmp16(ws1, ws2) #define wscmp(ws1, ws2) sj4_wscmp16(ws1, ws2)
#ifdef wsncmp #ifdef wsncmp
#undef wsncmp #undef wsncmp
#endif #endif
#define wsncmp(ws1, ws2, n) sj3_wsncmp16(ws1, ws2, n) #define wsncmp(ws1, ws2, n) sj4_wsncmp16(ws1, ws2, n)
#ifdef wscpy #ifdef wscpy
#undef wscpy #undef wscpy
#endif #endif
#define wscpy(ws1, ws2) sj3_wscpy16(ws1, ws2) #define wscpy(ws1, ws2) sj4_wscpy16(ws1, ws2)
#ifdef wsncpy #ifdef wsncpy
#undef wsncpy #undef wsncpy
#endif #endif
#define wsncpy(ws1, ws2, n) sj3_wsncpy16(ws1, ws2, n) #define wsncpy(ws1, ws2, n) sj4_wsncpy16(ws1, ws2, n)
#ifdef wscat #ifdef wscat
#undef wscat #undef wscat
#endif #endif
#define wscat(ws1, ws2) sj3_wscat16(ws1, ws2) #define wscat(ws1, ws2) sj4_wscat16(ws1, ws2)
#ifdef mbstowcs #ifdef mbstowcs
#undef mbstowcs #undef mbstowcs
#endif #endif
#define mbstowcs(mb, ws, n) sj3_mbstowcs16(mb, ws, n) #define mbstowcs(mb, ws, n) sj4_mbstowcs16(mb, ws, n)
#ifdef wcstombs #ifdef wcstombs
#undef wcstombs #undef wcstombs
#endif #endif
#define wcstombs(ws, mb, n) sj3_wcstombs16(ws, mb, n) #define wcstombs(ws, mb, n) sj4_wcstombs16(ws, mb, n)
#endif #endif
#define LC_CTYPE_SHIFTJIS 1 #define LC_CTYPE_SHIFTJIS 1

View file

@ -41,13 +41,13 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
static void sprt_seg(SJ3_CONTEXT TypeDicSeg, TypeDicOfs); static void sprt_seg(SJ4_CONTEXT TypeDicSeg, TypeDicOfs);
static void apnd_uidx(SJ3_CONTEXT TypeDicSeg, u_char*, int); static void apnd_uidx(SJ4_CONTEXT TypeDicSeg, u_char*, int);
static int cal_nextym(SJ3_CONTEXT u_char*); static int cal_nextym(SJ4_CONTEXT u_char*);
static int usr_freelen(SJ3_CONTEXT2); static int usr_freelen(SJ4_CONTEXT2);
static u_int checkdict(SJ3_CONTEXT u_char*, TypeGram); static u_int checkdict(SJ4_CONTEXT u_char*, TypeGram);
u_int adddic(SJ3_CONTEXT u_char* yomi, u_char* kanji, TypeGram hinsi) { u_int adddic(SJ4_CONTEXT u_char* yomi, u_char* kanji, TypeGram hinsi) {
u_int err; u_int err;
u_char yptr[MAXWDYOMILEN + 1]; u_char yptr[MAXWDYOMILEN + 1];
u_char kptr[MAXWDKANJILEN + 1]; u_char kptr[MAXWDKANJILEN + 1];
@ -73,20 +73,20 @@ u_int adddic(SJ3_CONTEXT u_char* yomi, u_char* kanji, TypeGram hinsi) {
STDYIN* stdy; STDYIN* stdy;
STDYOUT stdydat; STDYOUT stdydat;
if((err = addel_arg(SJ3_CONTEXT_PASS yomi, kanji, hinsi, yptr, sizeof(yptr)))) if((err = addel_arg(SJ4_CONTEXT_PASS yomi, kanji, hinsi, yptr, sizeof(yptr))))
return err; return err;
inputyomi = yomi; inputyomi = yomi;
cnvstart = ystart = yptr; cnvstart = ystart = yptr;
cnvlen = sstrlen(yptr); cnvlen = sstrlen(yptr);
if((err = checkdict(SJ3_CONTEXT_PASS kanji, hinsi))) if((err = checkdict(SJ4_CONTEXT_PASS kanji, hinsi)))
return err; return err;
if(!curdict->maxunit) if(!curdict->maxunit)
return AD_NOTUSERDICT; return AD_NOTUSERDICT;
klen = cvtknj(SJ3_CONTEXT_PASS yomi, kanji, kptr); klen = cvtknj(SJ4_CONTEXT_PASS yomi, kanji, kptr);
newsiz = DOUONBLKSIZENUMBER + cnvlen + (klen != 0 ? klen + 1 : 0) + 2; newsiz = DOUONBLKSIZENUMBER + cnvlen + (klen != 0 ? klen + 1 : 0) + 2;
@ -95,11 +95,11 @@ u_int adddic(SJ3_CONTEXT u_char* yomi, u_char* kanji, TypeGram hinsi) {
if(newsiz > curdict->seglen) if(newsiz > curdict->seglen)
return AD_OVFLWDOUBLK; return AD_OVFLWDOUBLK;
segnum = srchidx(SJ3_CONTEXT_PASS(TypeDicSeg) DICSEGBASE, cnvlen); segnum = srchidx(SJ4_CONTEXT_PASS(TypeDicSeg) DICSEGBASE, cnvlen);
for(;;) { for(;;) {
(*curdict->getdic)(SJ3_CONTEXT_PASS curdict, segnum); (*curdict->getdic)(SJ4_CONTEXT_PASS curdict, segnum);
i = srchkana(SJ3_CONTEXT_PASS & p1, &saml); i = srchkana(SJ4_CONTEXT_PASS & p1, &saml);
dstofs = douofs = p1 - dicbuf; dstofs = douofs = p1 - dicbuf;
hnsofs = knjofs = 0; hnsofs = knjofs = 0;
if(i) { if(i) {
@ -120,7 +120,7 @@ u_int adddic(SJ3_CONTEXT u_char* yomi, u_char* kanji, TypeGram hinsi) {
nlen = cnvlen - saml; nlen = cnvlen - saml;
newsiz = DOUONBLKSIZENUMBER + nlen; newsiz = DOUONBLKSIZENUMBER + nlen;
nxtask = cal_nextym(SJ3_CONTEXT_PASS p1); nxtask = cal_nextym(SJ4_CONTEXT_PASS p1);
} else { } else {
oldsiz = newsiz = getsize(p1); oldsiz = newsiz = getsize(p1);
nxtask = 0; nxtask = 0;
@ -129,7 +129,7 @@ u_int adddic(SJ3_CONTEXT u_char* yomi, u_char* kanji, TypeGram hinsi) {
newsiz += (klen != 0 ? klen + 1 : 0); newsiz += (klen != 0 ? klen + 1 : 0);
fresiz = usr_freelen(SJ3_CONTEXT_PASS2); fresiz = usr_freelen(SJ4_CONTEXT_PASS2);
if((unsigned int)(newsiz - oldsiz - nxtask) <= if((unsigned int)(newsiz - oldsiz - nxtask) <=
(unsigned int)fresiz) break; (unsigned int)fresiz) break;
@ -142,7 +142,7 @@ u_int adddic(SJ3_CONTEXT u_char* yomi, u_char* kanji, TypeGram hinsi) {
if(curdict->segunit >= curdict->maxunit) if(curdict->segunit >= curdict->maxunit)
return AD_OVFLWUSRDIC; return AD_OVFLWUSRDIC;
freidx = count_uidx(SJ3_CONTEXT_PASS2); freidx = count_uidx(SJ4_CONTEXT_PASS2);
if((unsigned int)(douofs + newsiz) <= curdict->seglen) { if((unsigned int)(douofs + newsiz) <= curdict->seglen) {
if(hnsofs) if(hnsofs)
@ -153,10 +153,10 @@ u_int adddic(SJ3_CONTEXT u_char* yomi, u_char* kanji, TypeGram hinsi) {
if((unsigned int)freidx < getplen(p1) + nlen + 1) if((unsigned int)freidx < getplen(p1) + nlen + 1)
return AD_OVFLWINDEX; return AD_OVFLWINDEX;
if((*curdict->putdic)(SJ3_CONTEXT_PASS curdict, curdict->segunit)) if((*curdict->putdic)(SJ4_CONTEXT_PASS curdict, curdict->segunit))
return AD_OVFLWUSRDIC; return AD_OVFLWUSRDIC;
sprt_seg(SJ3_CONTEXT_PASS segnum, pos); sprt_seg(SJ4_CONTEXT_PASS segnum, pos);
nxtask = 0; nxtask = 0;
break; break;
@ -166,16 +166,16 @@ u_int adddic(SJ3_CONTEXT u_char* yomi, u_char* kanji, TypeGram hinsi) {
if((unsigned int)freidx < cnvlen + 1) if((unsigned int)freidx < cnvlen + 1)
return AD_OVFLWINDEX; return AD_OVFLWINDEX;
if((*curdict->putdic)(SJ3_CONTEXT_PASS curdict, curdict->segunit)) if((*curdict->putdic)(SJ4_CONTEXT_PASS curdict, curdict->segunit))
return AD_OVFLWUSRDIC; return AD_OVFLWUSRDIC;
curdict->segunit++; curdict->segunit++;
(*curdict->getdic)(SJ3_CONTEXT_PASS curdict, curdict->segunit - 1); (*curdict->getdic)(SJ4_CONTEXT_PASS curdict, curdict->segunit - 1);
memset(dicbuf, DICSEGTERM, (int)curdict->seglen); memset(dicbuf, DICSEGTERM, (int)curdict->seglen);
dicbuf[0] = 0; dicbuf[0] = 0;
(*curdict->putdic)(SJ3_CONTEXT_PASS curdict, curdict->segunit - 1); (*curdict->putdic)(SJ4_CONTEXT_PASS curdict, curdict->segunit - 1);
(*curdict->rszdic)(SJ3_CONTEXT_PASS curdict, curdict->segunit); (*curdict->rszdic)(SJ4_CONTEXT_PASS curdict, curdict->segunit);
mkidxtbl(SJ3_CONTEXT_PASS curdict); mkidxtbl(SJ4_CONTEXT_PASS curdict);
segnum++; segnum++;
} else { } else {
@ -183,10 +183,10 @@ u_int adddic(SJ3_CONTEXT u_char* yomi, u_char* kanji, TypeGram hinsi) {
if((unsigned int)freidx < getplen(p1) + nlen + 1) if((unsigned int)freidx < getplen(p1) + nlen + 1)
return AD_OVFLWINDEX; return AD_OVFLWINDEX;
if((*curdict->putdic)(SJ3_CONTEXT_PASS curdict, curdict->segunit)) if((*curdict->putdic)(SJ4_CONTEXT_PASS curdict, curdict->segunit))
return AD_OVFLWUSRDIC; return AD_OVFLWUSRDIC;
sprt_seg(SJ3_CONTEXT_PASS segnum, douofs); sprt_seg(SJ4_CONTEXT_PASS segnum, douofs);
segnum++; segnum++;
} }
@ -220,7 +220,7 @@ u_int adddic(SJ3_CONTEXT u_char* yomi, u_char* kanji, TypeGram hinsi) {
if(!hnsofs) { if(!hnsofs) {
if(douofs == segtop() - dicbuf) { if(douofs == segtop() - dicbuf) {
chg_uidx(SJ3_CONTEXT_PASS segnum, yptr, cnvlen); chg_uidx(SJ4_CONTEXT_PASS segnum, yptr, cnvlen);
} }
*dstptr = 0; *dstptr = 0;
@ -258,7 +258,7 @@ u_int adddic(SJ3_CONTEXT u_char* yomi, u_char* kanji, TypeGram hinsi) {
if(!knjofs) if(!knjofs)
*dstptr++ = HINSIBLKTERM; *dstptr++ = HINSIBLKTERM;
(*curdict->putdic)(SJ3_CONTEXT_PASS curdict, segnum); (*curdict->putdic)(SJ4_CONTEXT_PASS curdict, segnum);
if(StudyExist()) { if(StudyExist()) {
size -= nxtask; size -= nxtask;
@ -275,9 +275,9 @@ u_int adddic(SJ3_CONTEXT u_char* yomi, u_char* kanji, TypeGram hinsi) {
err = sstrncmp(yptr, (u_char*)ClYomiPos(p1), err = sstrncmp(yptr, (u_char*)ClYomiPos(p1),
(int)ClYomiLen(p1)); (int)ClYomiLen(p1));
if(err == MATCH) { if(err == MATCH) {
delclsub(SJ3_CONTEXT_PASS p1); delclsub(SJ4_CONTEXT_PASS p1);
mkclidx(SJ3_CONTEXT_PASS2); mkclidx(SJ4_CONTEXT_PASS2);
putcldic(SJ3_CONTEXT_PASS2); putcldic(SJ4_CONTEXT_PASS2);
break; break;
} else if(err == OVER) } else if(err == OVER)
break; break;
@ -295,13 +295,13 @@ u_int adddic(SJ3_CONTEXT u_char* yomi, u_char* kanji, TypeGram hinsi) {
stdydat.sttlen = 0; stdydat.sttlen = 0;
stdydat.sttfg = 0; stdydat.sttfg = 0;
stdydat.ka_fg = 0; stdydat.ka_fg = 0;
(void)study(SJ3_CONTEXT_PASS & stdydat); (void)study(SJ4_CONTEXT_PASS & stdydat);
return AD_DONE; return AD_DONE;
} }
static int static int
checksub(SJ3_CONTEXT u_char* kanji, TypeGram grm) { checksub(SJ4_CONTEXT u_char* kanji, TypeGram grm) {
u_char* tagp; u_char* tagp;
u_char* ptr; u_char* ptr;
u_char* endp; u_char* endp;
@ -313,7 +313,7 @@ checksub(SJ3_CONTEXT u_char* kanji, TypeGram grm) {
dicsaml = 0; dicsaml = 0;
prevseg = (TypeDicSeg)-1; prevseg = (TypeDicSeg)-1;
for(;;) { for(;;) {
if(!(tagp = srchdict(SJ3_CONTEXT_PASS tagp))) if(!(tagp = srchdict(SJ4_CONTEXT_PASS tagp)))
return 0; return 0;
if(cnvlen == getnlen(tagp) + getplen(tagp)) if(cnvlen == getnlen(tagp) + getplen(tagp))
break; break;
@ -330,7 +330,7 @@ checksub(SJ3_CONTEXT u_char* kanji, TypeGram grm) {
flg = (grm == *ptr++); flg = (grm == *ptr++);
while(*ptr != HINSIBLKTERM) { while(*ptr != HINSIBLKTERM) {
if(flg) { if(flg) {
buf[getkanji(SJ3_CONTEXT_PASS inputyomi, cnvlen, ptr, buf)] = 0; buf[getkanji(SJ4_CONTEXT_PASS inputyomi, cnvlen, ptr, buf)] = 0;
if(cmpstr(kanji, buf)) if(cmpstr(kanji, buf))
return -1; return -1;
} }
@ -345,7 +345,7 @@ checksub(SJ3_CONTEXT u_char* kanji, TypeGram grm) {
} }
static u_int static u_int
checkdict(SJ3_CONTEXT u_char* kanji, TypeGram grm) { checkdict(SJ4_CONTEXT u_char* kanji, TypeGram grm) {
DICTL* dp; DICTL* dp;
int dounum = 0; int dounum = 0;
int tmp; int tmp;
@ -356,7 +356,7 @@ checkdict(SJ3_CONTEXT u_char* kanji, TypeGram grm) {
curdict = dp->dict; curdict = dp->dict;
if((tmp = checksub(SJ3_CONTEXT_PASS kanji, grm)) < 0) { if((tmp = checksub(SJ4_CONTEXT_PASS kanji, grm)) < 0) {
curdict = tmpdict; curdict = tmpdict;
return AD_AREXIST; return AD_AREXIST;
} }
@ -372,7 +372,7 @@ checkdict(SJ3_CONTEXT u_char* kanji, TypeGram grm) {
} }
static int static int
cal_nextym(SJ3_CONTEXT u_char* ptr) { cal_nextym(SJ4_CONTEXT u_char* ptr) {
int count = 0; int count = 0;
u_char* src; u_char* src;
int len; int len;
@ -394,7 +394,7 @@ cal_nextym(SJ3_CONTEXT u_char* ptr) {
} }
static int static int
usr_freelen(SJ3_CONTEXT2) { usr_freelen(SJ4_CONTEXT2) {
u_char* ptr; u_char* ptr;
ptr = segtop(); ptr = segtop();
@ -405,7 +405,7 @@ usr_freelen(SJ3_CONTEXT2) {
} }
static void static void
sprt_seg(SJ3_CONTEXT TypeDicSeg seg, TypeDicOfs ofs) { sprt_seg(SJ4_CONTEXT TypeDicSeg seg, TypeDicOfs ofs) {
TypeDicSeg s; TypeDicSeg s;
u_char* pos; u_char* pos;
u_char* p; u_char* p;
@ -418,13 +418,13 @@ sprt_seg(SJ3_CONTEXT TypeDicSeg seg, TypeDicOfs ofs) {
STDYIN* stdy; STDYIN* stdy;
for(s = curdict->segunit - 1; s >= seg; s--) { for(s = curdict->segunit - 1; s >= seg; s--) {
(*curdict->getdic)(SJ3_CONTEXT_PASS curdict, s); (*curdict->getdic)(SJ4_CONTEXT_PASS curdict, s);
(*curdict->putdic)(SJ3_CONTEXT_PASS curdict, s + 1); (*curdict->putdic)(SJ4_CONTEXT_PASS curdict, s + 1);
} }
curdict->segunit++; curdict->segunit++;
(*curdict->rszdic)(SJ3_CONTEXT_PASS curdict, curdict->segunit); (*curdict->rszdic)(SJ4_CONTEXT_PASS curdict, curdict->segunit);
(*curdict->getdic)(SJ3_CONTEXT_PASS curdict, seg + 1); (*curdict->getdic)(SJ4_CONTEXT_PASS curdict, seg + 1);
pos = dicbuf + ofs; pos = dicbuf + ofs;
@ -441,7 +441,7 @@ sprt_seg(SJ3_CONTEXT TypeDicSeg seg, TypeDicOfs ofs) {
nlen = getnlen(pos); nlen = getnlen(pos);
ylen = (i = getplen(pos)) + (j = nlen); ylen = (i = getplen(pos)) + (j = nlen);
apnd_uidx(SJ3_CONTEXT_PASS seg, yomi, ylen); apnd_uidx(SJ4_CONTEXT_PASS seg, yomi, ylen);
set_size(segtop(), getsize(pos) + i, 0, ylen); set_size(segtop(), getsize(pos) + i, 0, ylen);
@ -455,7 +455,7 @@ sprt_seg(SJ3_CONTEXT TypeDicSeg seg, TypeDicOfs ofs) {
p += i; p += i;
memset(p, DICSEGTERM, (dicbuf + curdict->seglen - p)); memset(p, DICSEGTERM, (dicbuf + curdict->seglen - p));
(*curdict->putdic)(SJ3_CONTEXT_PASS curdict, seg + 1); (*curdict->putdic)(SJ4_CONTEXT_PASS curdict, seg + 1);
if(StudyExist()) { if(StudyExist()) {
dicid = curdict->dicid; dicid = curdict->dicid;
@ -473,17 +473,17 @@ sprt_seg(SJ3_CONTEXT TypeDicSeg seg, TypeDicOfs ofs) {
} }
} }
(*curdict->getdic)(SJ3_CONTEXT_PASS curdict, seg); (*curdict->getdic)(SJ4_CONTEXT_PASS curdict, seg);
memset(dicbuf + ofs, DICSEGTERM, (int)(curdict->seglen - ofs)); memset(dicbuf + ofs, DICSEGTERM, (int)(curdict->seglen - ofs));
(*curdict->putdic)(SJ3_CONTEXT_PASS curdict, seg); (*curdict->putdic)(SJ4_CONTEXT_PASS curdict, seg);
} }
static void static void
apnd_uidx(SJ3_CONTEXT TypeDicSeg seg, u_char* yomi, int len) { apnd_uidx(SJ4_CONTEXT TypeDicSeg seg, u_char* yomi, int len) {
u_char* p; u_char* p;
u_char* q; u_char* q;
p = get_idxptr(SJ3_CONTEXT_PASS seg); p = get_idxptr(SJ4_CONTEXT_PASS seg);
while(*p++); while(*p++);
q = idxbuf + curdict->idxlen; q = idxbuf + curdict->idxlen;
@ -493,7 +493,7 @@ apnd_uidx(SJ3_CONTEXT TypeDicSeg seg, u_char* yomi, int len) {
*p++ = *yomi++; *p++ = *yomi++;
*p = 0; *p = 0;
(*curdict->putidx)(SJ3_CONTEXT_PASS curdict, 0); (*curdict->putidx)(SJ4_CONTEXT_PASS curdict, 0);
mkidxtbl(SJ3_CONTEXT_PASS curdict); mkidxtbl(SJ4_CONTEXT_PASS curdict);
} }

View file

@ -112,7 +112,7 @@ isgrm(TypeGram gram) {
return FALSE; return FALSE;
} }
u_int addel_arg(SJ3_CONTEXT u_char* yp, u_char* kp, TypeGram grm, u_char* nyp, int len) { u_int addel_arg(SJ4_CONTEXT u_char* yp, u_char* kp, TypeGram grm, u_char* nyp, int len) {
u_short err = 0; u_short err = 0;
if(!sj2cd_str(yp, nyp, len)) err |= AD_BADYOMI; if(!sj2cd_str(yp, nyp, len)) err |= AD_BADYOMI;
@ -174,7 +174,7 @@ last_strcmp(u_char* src, u_char* dst) {
return (dlen / 2); return (dlen / 2);
} }
int cvtknj(SJ3_CONTEXT u_char* yomi, u_char* knj, u_char* dst) { int cvtknj(SJ4_CONTEXT u_char* yomi, u_char* knj, u_char* dst) {
u_char kana[MAXWDYOMILEN * 2 + 1]; u_char kana[MAXWDYOMILEN * 2 + 1];
int len; int len;
u_char* keep; u_char* keep;
@ -229,7 +229,7 @@ int cvtknj(SJ3_CONTEXT u_char* yomi, u_char* knj, u_char* dst) {
return (dst - keep); return (dst - keep);
} }
int srchkana(SJ3_CONTEXT u_char** ptr, int* saml) { int srchkana(SJ4_CONTEXT u_char** ptr, int* saml) {
u_char* p; u_char* p;
int cmp; int cmp;
int cnt = 0; int cnt = 0;
@ -242,7 +242,7 @@ int srchkana(SJ3_CONTEXT u_char** ptr, int* saml) {
while(!segend(p)) { while(!segend(p)) {
if(flg == 0) { if(flg == 0) {
cmp = yomicmp(SJ3_CONTEXT_PASS cnvstart, p, &same); cmp = yomicmp(SJ4_CONTEXT_PASS cnvstart, p, &same);
if(cmp == OVER) break; if(cmp == OVER) break;
if(cmp == MATCH && *(cnvstart + same) == 0) { if(cmp == MATCH && *(cnvstart + same) == 0) {
@ -321,20 +321,20 @@ int srchkanji(u_char** dst, u_char* knj, int klen) {
} }
TypeIdxOfs TypeIdxOfs
count_uidx(SJ3_CONTEXT2) { count_uidx(SJ4_CONTEXT2) {
u_char* p; u_char* p;
p = get_idxptr(SJ3_CONTEXT_PASS curdict->segunit - 1); p = get_idxptr(SJ4_CONTEXT_PASS curdict->segunit - 1);
while(*p++); while(*p++);
return (curdict->idxlen - (p - idxbuf)); return (curdict->idxlen - (p - idxbuf));
} }
void chg_uidx(SJ3_CONTEXT TypeDicSeg seg, u_char* yomi, int len) { void chg_uidx(SJ4_CONTEXT TypeDicSeg seg, u_char* yomi, int len) {
u_char *p, *q; u_char *p, *q;
int olen; int olen;
p = get_idxptr(SJ3_CONTEXT_PASS seg); p = get_idxptr(SJ4_CONTEXT_PASS seg);
olen = sstrlen(p); olen = sstrlen(p);
@ -347,7 +347,7 @@ void chg_uidx(SJ3_CONTEXT TypeDicSeg seg, u_char* yomi, int len) {
} }
while(len--) *p++ = *yomi++; while(len--) *p++ = *yomi++;
(*curdict->putidx)(SJ3_CONTEXT_PASS curdict, 0); (*curdict->putidx)(SJ4_CONTEXT_PASS curdict, 0);
mkidxtbl(SJ3_CONTEXT_PASS curdict); mkidxtbl(SJ4_CONTEXT_PASS curdict);
} }

View file

@ -46,7 +46,7 @@
#define JREC_NUM 128 #define JREC_NUM 128
#define CLREC_NUM 128 #define CLREC_NUM 128
#ifdef SJ3_GLOBAL #ifdef SJ4_GLOBAL
static JREC* jrec = NULL; static JREC* jrec = NULL;
static CLREC* clrec = NULL; static CLREC* clrec = NULL;
#else #else
@ -54,7 +54,7 @@ static CLREC* clrec = NULL;
#define clrec ctx->clrec_free #define clrec ctx->clrec_free
#endif #endif
JREC* alloc_jrec(SJ3_CONTEXT2) { JREC* alloc_jrec(SJ4_CONTEXT2) {
JREC* p; JREC* p;
int i; int i;
@ -65,7 +65,7 @@ JREC* alloc_jrec(SJ3_CONTEXT2) {
p->jsort = p + 1; p->jsort = p + 1;
p->jsort = NULL; p->jsort = NULL;
#ifndef SJ3_GLOBAL #ifndef SJ4_GLOBAL
ctx->jrec_pool = jrec; ctx->jrec_pool = jrec;
#endif #endif
} }
@ -75,7 +75,7 @@ JREC* alloc_jrec(SJ3_CONTEXT2) {
return p; return p;
} }
void free_jrec(SJ3_CONTEXT JREC* p) { void free_jrec(SJ4_CONTEXT JREC* p) {
if(p != NULL) { if(p != NULL) {
p->jsort = jrec; p->jsort = jrec;
jrec = p; jrec = p;
@ -83,7 +83,7 @@ void free_jrec(SJ3_CONTEXT JREC* p) {
} }
CLREC* CLREC*
alloc_clrec(SJ3_CONTEXT2) { alloc_clrec(SJ4_CONTEXT2) {
CLREC* p; CLREC* p;
int i; int i;
@ -94,7 +94,7 @@ alloc_clrec(SJ3_CONTEXT2) {
p->clsort = p + 1; p->clsort = p + 1;
p->clsort = NULL; p->clsort = NULL;
#ifndef SJ3_GLOBAL #ifndef SJ4_GLOBAL
ctx->clrec_pool = clrec; ctx->clrec_pool = clrec;
#endif #endif
} }
@ -104,7 +104,7 @@ alloc_clrec(SJ3_CONTEXT2) {
return p; return p;
} }
void free_clrec(SJ3_CONTEXT CLREC* p) { void free_clrec(SJ4_CONTEXT CLREC* p) {
if(p != NULL) { if(p != NULL) {
p->clsort = clrec; p->clsort = clrec;
clrec = p; clrec = p;

View file

@ -37,18 +37,18 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
static CLREC *nextrecblk(SJ3_CONTEXT2), *prevrecblk(SJ3_CONTEXT2); static CLREC *nextrecblk(SJ4_CONTEXT2), *prevrecblk(SJ4_CONTEXT2);
static void initkbuf(SJ3_CONTEXT u_char*); static void initkbuf(SJ4_CONTEXT u_char*);
int cl2knj(SJ3_CONTEXT u_char* yomi, int len, u_char* kouho) { int cl2knj(SJ4_CONTEXT u_char* yomi, int len, u_char* kouho) {
u_char* ptr1; u_char* ptr1;
u_char* ptr2; u_char* ptr2;
int i; int i;
khcount = nkhcount = 0; khcount = nkhcount = 0;
initkbuf(SJ3_CONTEXT_PASS kouho); initkbuf(SJ4_CONTEXT_PASS kouho);
if(len > MAXCLINPUTLEN * 2) len = MAXCLINPUTLEN * 2; if(len > MAXCLINPUTLEN * 2) len = MAXCLINPUTLEN * 2;
@ -66,59 +66,59 @@ int cl2knj(SJ3_CONTEXT u_char* yomi, int len, u_char* kouho) {
if(!hyomi[0]) return 0; if(!hyomi[0]) return 0;
freework(SJ3_CONTEXT_PASS2); freework(SJ4_CONTEXT_PASS2);
inputyomi = orgyomi; inputyomi = orgyomi;
cnvstart = ystart = hyomi; cnvstart = ystart = hyomi;
cnvlen = sstrlen(hyomi); cnvlen = sstrlen(hyomi);
mkjiritu(SJ3_CONTEXT_PASS 0); mkjiritu(SJ4_CONTEXT_PASS 0);
mkbunsetu(SJ3_CONTEXT_PASS2); mkbunsetu(SJ4_CONTEXT_PASS2);
if(!maxclptr) wakachi(SJ3_CONTEXT_PASS2); if(!maxclptr) wakachi(SJ4_CONTEXT_PASS2);
jrt1st = maxjptr; jrt1st = maxjptr;
clt1st = maxclptr; clt1st = maxclptr;
mkkouho(SJ3_CONTEXT_PASS2); mkkouho(SJ4_CONTEXT_PASS2);
getrank(SJ3_CONTEXT_PASS2); getrank(SJ4_CONTEXT_PASS2);
selectid = 1; selectid = 1;
cvtclknj(SJ3_CONTEXT_PASS2); cvtclknj(SJ4_CONTEXT_PASS2);
return hzstrlen(inputyomi, (int)clt1st->cllen); return hzstrlen(inputyomi, (int)clt1st->cllen);
} }
int nextcl(SJ3_CONTEXT u_char* kouho, int mode) { int nextcl(SJ4_CONTEXT u_char* kouho, int mode) {
CLREC* clptr; CLREC* clptr;
initkbuf(SJ3_CONTEXT_PASS kouho); initkbuf(SJ4_CONTEXT_PASS kouho);
if(!khcount) return 0; if(!khcount) return 0;
if(!mode && (selectid < khcount)) if(!mode && (selectid < khcount))
selectid++; selectid++;
else if((mode < 2) && (clptr = nextrecblk(SJ3_CONTEXT_PASS2))) { else if((mode < 2) && (clptr = nextrecblk(SJ4_CONTEXT_PASS2))) {
selectid = 1; selectid = 1;
clt1st = clptr; clt1st = clptr;
mkkouho(SJ3_CONTEXT_PASS2); mkkouho(SJ4_CONTEXT_PASS2);
getrank(SJ3_CONTEXT_PASS2); getrank(SJ4_CONTEXT_PASS2);
} else { } else {
cvtclknj(SJ3_CONTEXT_PASS2); cvtclknj(SJ4_CONTEXT_PASS2);
return 0; return 0;
} }
cvtclknj(SJ3_CONTEXT_PASS2); cvtclknj(SJ4_CONTEXT_PASS2);
return hzstrlen(inputyomi, (int)clt1st->cllen); return hzstrlen(inputyomi, (int)clt1st->cllen);
} }
static CLREC* static CLREC*
nextrecblk(SJ3_CONTEXT2) { nextrecblk(SJ4_CONTEXT2) {
CLREC* clptr; CLREC* clptr;
int keeplen; int keeplen;
@ -132,33 +132,33 @@ nextrecblk(SJ3_CONTEXT2) {
return clptr; return clptr;
} }
int prevcl(SJ3_CONTEXT u_char* kouho, int mode) { int prevcl(SJ4_CONTEXT u_char* kouho, int mode) {
CLREC* clptr; CLREC* clptr;
initkbuf(SJ3_CONTEXT_PASS kouho); initkbuf(SJ4_CONTEXT_PASS kouho);
if(!khcount) return 0; if(!khcount) return 0;
if(!mode && (selectid > 1)) if(!mode && (selectid > 1))
selectid--; selectid--;
else if((mode < 2) && (clptr = prevrecblk(SJ3_CONTEXT_PASS2))) { else if((mode < 2) && (clptr = prevrecblk(SJ4_CONTEXT_PASS2))) {
clt1st = clptr; clt1st = clptr;
mkkouho(SJ3_CONTEXT_PASS2); mkkouho(SJ4_CONTEXT_PASS2);
getrank(SJ3_CONTEXT_PASS2); getrank(SJ4_CONTEXT_PASS2);
selectid = khcount; selectid = khcount;
} else { } else {
cvtclknj(SJ3_CONTEXT_PASS2); cvtclknj(SJ4_CONTEXT_PASS2);
return 0; return 0;
} }
cvtclknj(SJ3_CONTEXT_PASS2); cvtclknj(SJ4_CONTEXT_PASS2);
return hzstrlen(inputyomi, (int)clt1st->cllen); return hzstrlen(inputyomi, (int)clt1st->cllen);
} }
static CLREC* static CLREC*
prevrecblk(SJ3_CONTEXT2) { prevrecblk(SJ4_CONTEXT2) {
CLREC* clptr; CLREC* clptr;
CLREC* keepptr; CLREC* keepptr;
int keeplen; int keeplen;
@ -182,11 +182,11 @@ prevrecblk(SJ3_CONTEXT2) {
} }
static void static void
initkbuf(SJ3_CONTEXT u_char* kouho) { initkbuf(SJ4_CONTEXT u_char* kouho) {
kanjitmp = kouho; kanjitmp = kouho;
memset(kanjitmp, 0, sizeof(STDYOUT) + 1); memset(kanjitmp, 0, sizeof(STDYOUT) + 1);
} }
int selectnum(SJ3_CONTEXT2) { int selectnum(SJ4_CONTEXT2) {
return selectid; return selectid;
} }

View file

@ -37,10 +37,10 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
static u_char *delcldata(SJ3_CONTEXT u_char*), *srchclpos(SJ3_CONTEXT u_char*); static u_char *delcldata(SJ4_CONTEXT u_char*), *srchclpos(SJ4_CONTEXT u_char*);
static int delclold(SJ3_CONTEXT2); static int delclold(SJ4_CONTEXT2);
int clstudy(SJ3_CONTEXT u_char* yomi1, u_char* yomi2, STDYOUT* stdy) { int clstudy(SJ4_CONTEXT u_char* yomi1, u_char* yomi2, STDYOUT* stdy) {
u_char ytmp[CLSTDY_TMPLEN]; u_char ytmp[CLSTDY_TMPLEN];
u_char *dst, *ptr; u_char *dst, *ptr;
int ret; int ret;
@ -56,7 +56,7 @@ int clstudy(SJ3_CONTEXT u_char* yomi1, u_char* yomi2, STDYOUT* stdy) {
if(!sj2cd_str(yomi1, ytmp, CLSTDY_TMPLEN)) if(!sj2cd_str(yomi1, ytmp, CLSTDY_TMPLEN))
return CLSTUDYYOMIERR; return CLSTUDYYOMIERR;
(void)delcldata(SJ3_CONTEXT_PASS ytmp); (void)delcldata(SJ4_CONTEXT_PASS ytmp);
ret = CLSTUDYNORMEND; ret = CLSTUDYNORMEND;
} else if(!stdy) } else if(!stdy)
@ -77,15 +77,15 @@ int clstudy(SJ3_CONTEXT u_char* yomi1, u_char* yomi2, STDYOUT* stdy) {
if(alen + 1 >= CLSTUDYLEN) return CLSTUDYNOAREA; if(alen + 1 >= CLSTUDYLEN) return CLSTUDYNOAREA;
blen = CLSTUDYTAIL - delcldata(SJ3_CONTEXT_PASS ytmp) - 1; blen = CLSTUDYTAIL - delcldata(SJ4_CONTEXT_PASS ytmp) - 1;
while(blen < alen) { while(blen < alen) {
if(!(i = delclold(SJ3_CONTEXT_PASS2))) break; if(!(i = delclold(SJ4_CONTEXT_PASS2))) break;
blen += i; blen += i;
} }
if(blen >= alen) { if(blen >= alen) {
dst = srchclpos(SJ3_CONTEXT_PASS ytmp); dst = srchclpos(SJ4_CONTEXT_PASS ytmp);
ptr = CLSTUDYTAIL - alen; ptr = CLSTUDYTAIL - alen;
mvmemd(ptr, CLSTUDYTAIL, (ptr - dst)); mvmemd(ptr, CLSTUDYTAIL, (ptr - dst));
@ -99,14 +99,14 @@ int clstudy(SJ3_CONTEXT u_char* yomi1, u_char* yomi2, STDYOUT* stdy) {
} else } else
ret = CLSTUDYNOAREA; ret = CLSTUDYNOAREA;
} }
mkclidx(SJ3_CONTEXT_PASS2); mkclidx(SJ4_CONTEXT_PASS2);
putcldic(SJ3_CONTEXT_PASS2); putcldic(SJ4_CONTEXT_PASS2);
return ret; return ret;
} }
static u_char* static u_char*
delcldata(SJ3_CONTEXT u_char* ycode) { delcldata(SJ4_CONTEXT u_char* ycode) {
u_char* tagptr; u_char* tagptr;
u_char* ptr1; u_char* ptr1;
u_char* ptr2; u_char* ptr2;
@ -125,7 +125,7 @@ delcldata(SJ3_CONTEXT u_char* ycode) {
len1--; len1--;
} }
if(!*ptr1 || !len1) { if(!*ptr1 || !len1) {
delclsub(SJ3_CONTEXT_PASS tagptr); delclsub(SJ4_CONTEXT_PASS tagptr);
} else { } else {
tagptr = ClNextTag(tagptr); tagptr = ClNextTag(tagptr);
} }
@ -134,7 +134,7 @@ delcldata(SJ3_CONTEXT u_char* ycode) {
return tagptr; return tagptr;
} }
void delclsub(SJ3_CONTEXT u_char* target) { void delclsub(SJ4_CONTEXT u_char* target) {
u_char* src; u_char* src;
int num; int num;
int tmp; int tmp;
@ -164,7 +164,7 @@ void delclsub(SJ3_CONTEXT u_char* target) {
} }
static int static int
delclold(SJ3_CONTEXT2) { delclold(SJ4_CONTEXT2) {
u_char* tagptr; u_char* tagptr;
u_char* target; u_char* target;
int num; int num;
@ -187,14 +187,14 @@ delclold(SJ3_CONTEXT2) {
if(target) { if(target) {
num = ClBlkLen(tagptr); num = ClBlkLen(tagptr);
delclsub(SJ3_CONTEXT_PASS target); delclsub(SJ4_CONTEXT_PASS target);
} }
return num; return num;
} }
static u_char* static u_char*
srchclpos(SJ3_CONTEXT u_char* ycode) { srchclpos(SJ4_CONTEXT u_char* ycode) {
u_char* tagptr; u_char* tagptr;
u_char* target; u_char* target;
u_char* ptr1; u_char* ptr1;
@ -234,7 +234,7 @@ srchclpos(SJ3_CONTEXT u_char* ycode) {
return target ? target : tagptr; return target ? target : tagptr;
} }
void mkclidx(SJ3_CONTEXT2) { void mkclidx(SJ4_CONTEXT2) {
u_char* ptr; u_char* ptr;
int num; int num;
int st, ed; int st, ed;

View file

@ -37,7 +37,7 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
void cvtclknj(SJ3_CONTEXT2) { void cvtclknj(SJ4_CONTEXT2) {
KHREC* krec; KHREC* krec;
int i; int i;
@ -51,7 +51,7 @@ void cvtclknj(SJ3_CONTEXT2) {
krec++; krec++;
} }
setstyrec(SJ3_CONTEXT_PASS krec); setstyrec(SJ4_CONTEXT_PASS krec);
cvtkouho(SJ3_CONTEXT_PASS krec); cvtkouho(SJ4_CONTEXT_PASS krec);
} }

View file

@ -38,7 +38,7 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
void cvtdict(SJ3_CONTEXT KHREC* krec, CLREC* clrec, int flg) { void cvtdict(SJ4_CONTEXT KHREC* krec, CLREC* clrec, int flg) {
TypeDicOfs ofs; TypeDicOfs ofs;
u_char* yptr; u_char* yptr;
int jlen; int jlen;
@ -82,7 +82,7 @@ void cvtdict(SJ3_CONTEXT KHREC* krec, CLREC* clrec, int flg) {
if(flg) { if(flg) {
(*Cvtnum_func[krec->mode - 1])(SJ3_CONTEXT_PASS ystart + sttlen, yptr, jrec); (*Cvtnum_func[krec->mode - 1])(SJ4_CONTEXT_PASS ystart + sttlen, yptr, jrec);
yptr += (i = jrec->numlen) * 2; yptr += (i = jrec->numlen) * 2;
jlen -= i; jlen -= i;
@ -107,11 +107,11 @@ void cvtdict(SJ3_CONTEXT KHREC* krec, CLREC* clrec, int flg) {
} }
if(ofs) { if(ofs) {
if(seldict(SJ3_CONTEXT_PASS jrec->dicid)) { if(seldict(SJ4_CONTEXT_PASS jrec->dicid)) {
(*curdict->getdic)(SJ3_CONTEXT_PASS curdict, jrec->jseg); (*curdict->getdic)(SJ4_CONTEXT_PASS curdict, jrec->jseg);
get_askknj(SJ3_CONTEXT_PASS2); get_askknj(SJ4_CONTEXT_PASS2);
kanjitmp += kanjitmp +=
getkanji(SJ3_CONTEXT_PASS yptr, jlen, dicbuf + ofs, kanjitmp); getkanji(SJ4_CONTEXT_PASS yptr, jlen, dicbuf + ofs, kanjitmp);
yptr += jlen * 2; yptr += jlen * 2;
} else { } else {
while(jlen-- > 0) { while(jlen-- > 0) {
@ -137,7 +137,7 @@ void cvtdict(SJ3_CONTEXT KHREC* krec, CLREC* clrec, int flg) {
} }
} }
void cvtminasi(SJ3_CONTEXT int len) { void cvtminasi(SJ4_CONTEXT int len) {
u_char* ptr; u_char* ptr;
ptr = inputyomi; ptr = inputyomi;
@ -159,7 +159,7 @@ void cvtminasi(SJ3_CONTEXT int len) {
} }
} }
void cvtwakachi(SJ3_CONTEXT CLREC* clrec) { void cvtwakachi(SJ4_CONTEXT CLREC* clrec) {
int jlen; int jlen;
u_char* ym; u_char* ym;
int cnt; int cnt;

View file

@ -37,7 +37,7 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
void cvtphknj(SJ3_CONTEXT2) { void cvtphknj(SJ4_CONTEXT2) {
int i, j; int i, j;
CLREC* clrec; CLREC* clrec;
CLREC* clkp; CLREC* clkp;
@ -50,23 +50,23 @@ void cvtphknj(SJ3_CONTEXT2) {
clrec = clt1st; clrec = clt1st;
while(clrec) { while(clrec) {
if(ph_khtbl(SJ3_CONTEXT_PASS clrec)) clkp = clrec; if(ph_khtbl(SJ4_CONTEXT_PASS clrec)) clkp = clrec;
clrec = clrec->clsort; clrec = clrec->clsort;
} }
if(clkp && stdytop) { if(clkp && stdytop) {
if(stdytop->nmflg) if(stdytop->nmflg)
ph_setkouho(SJ3_CONTEXT_PASS clkp, (TypeDicOfs)0, (STDYIN*)0); ph_setkouho(SJ4_CONTEXT_PASS clkp, (TypeDicOfs)0, (STDYIN*)0);
} }
kouhotbl[0].rank = 1; kouhotbl[0].rank = 1;
kanjitmp = kanjibuf + 1; kanjitmp = kanjibuf + 1;
setstyrec(SJ3_CONTEXT_PASS kouhotbl); setstyrec(SJ4_CONTEXT_PASS kouhotbl);
cvtkouho(SJ3_CONTEXT_PASS kouhotbl); cvtkouho(SJ4_CONTEXT_PASS kouhotbl);
i = kanjitmp - kanjibuf; i = kanjitmp - kanjibuf;
if(i < kanjilen) { if(i < kanjilen) {
@ -87,18 +87,18 @@ void cvtphknj(SJ3_CONTEXT2) {
not_enough_memory: not_enough_memory:
free_clall(SJ3_CONTEXT_PASS clt1st); free_clall(SJ4_CONTEXT_PASS clt1st);
free_jall(SJ3_CONTEXT_PASS jrt1st); free_jall(SJ4_CONTEXT_PASS jrt1st);
} }
void cvtkouho(SJ3_CONTEXT KHREC* krec) { void cvtkouho(SJ4_CONTEXT KHREC* krec) {
CLREC* clrec; CLREC* clrec;
clrec = krec->clrec; clrec = krec->clrec;
switch(clrec->jnode->class) { switch(clrec->jnode->class) {
case C_DICT: case C_DICT:
cvtdict(SJ3_CONTEXT_PASS krec, clrec, FALSE); cvtdict(SJ4_CONTEXT_PASS krec, clrec, FALSE);
break; break;
case C_N_ARABIA: case C_N_ARABIA:
@ -111,23 +111,23 @@ void cvtkouho(SJ3_CONTEXT KHREC* krec) {
case C_N_KAZULONG: case C_N_KAZULONG:
case C_N_KAZULCMA: case C_N_KAZULCMA:
case C_N_SUUJILONG: case C_N_SUUJILONG:
cvtdict(SJ3_CONTEXT_PASS krec, clrec, TRUE); cvtdict(SJ4_CONTEXT_PASS krec, clrec, TRUE);
break; break;
case C_BUNSETU: case C_BUNSETU:
case C_MINASI: case C_MINASI:
cvtminasi(SJ3_CONTEXT_PASS(int) clrec->cllen); cvtminasi(SJ4_CONTEXT_PASS(int) clrec->cllen);
break; break;
case C_WAKACHI: case C_WAKACHI:
cvtwakachi(SJ3_CONTEXT_PASS clrec); cvtwakachi(SJ4_CONTEXT_PASS clrec);
break; break;
} }
*kanjitmp++ = 0; *kanjitmp++ = 0;
} }
void setstyrec(SJ3_CONTEXT KHREC* krec) { void setstyrec(SJ4_CONTEXT KHREC* krec) {
JREC* jrec; JREC* jrec;
KHREC* kptr; KHREC* kptr;
int ii; int ii;

View file

@ -38,12 +38,12 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
static int del_douon(SJ3_CONTEXT TypeDicSeg, u_char*, TypeDicOfs); static int del_douon(SJ4_CONTEXT TypeDicSeg, u_char*, TypeDicOfs);
static int del_segment(SJ3_CONTEXT TypeDicSeg); static int del_segment(SJ4_CONTEXT TypeDicSeg);
static void del_uidx(SJ3_CONTEXT TypeDicSeg); static void del_uidx(SJ4_CONTEXT TypeDicSeg);
static void del_stdy(SJ3_CONTEXT TypeDicSeg, TypeDicOfs, int); static void del_stdy(SJ4_CONTEXT TypeDicSeg, TypeDicOfs, int);
u_int deldic(SJ3_CONTEXT u_char* yomi, u_char* kanji, TypeGram hinsi) { u_int deldic(SJ4_CONTEXT u_char* yomi, u_char* kanji, TypeGram hinsi) {
u_char yptr[MAXWDYOMILEN + 1]; u_char yptr[MAXWDYOMILEN + 1];
u_char kptr[MAXWDKANJILEN + 1]; u_char kptr[MAXWDKANJILEN + 1];
u_short err; u_short err;
@ -58,20 +58,20 @@ u_int deldic(SJ3_CONTEXT u_char* yomi, u_char* kanji, TypeGram hinsi) {
u_char * stp, *edp; u_char * stp, *edp;
int size, len; int size, len;
if((err = addel_arg(SJ3_CONTEXT_PASS yomi, kanji, hinsi, yptr, sizeof(yptr)))) if((err = addel_arg(SJ4_CONTEXT_PASS yomi, kanji, hinsi, yptr, sizeof(yptr))))
return err; return err;
if(!curdict->maxunit) return AD_NOTUSERDICT; if(!curdict->maxunit) return AD_NOTUSERDICT;
knjlen = cvtknj(SJ3_CONTEXT_PASS yomi, kanji, kptr); knjlen = cvtknj(SJ4_CONTEXT_PASS yomi, kanji, kptr);
cnvstart = yptr; cnvstart = yptr;
cnvlen = sstrlen(yptr); cnvlen = sstrlen(yptr);
useg = srchidx(SJ3_CONTEXT_PASS(TypeDicSeg) DICSEGBASE, cnvlen); useg = srchidx(SJ4_CONTEXT_PASS(TypeDicSeg) DICSEGBASE, cnvlen);
(*curdict->getdic)(SJ3_CONTEXT_PASS curdict, useg); (*curdict->getdic)(SJ4_CONTEXT_PASS curdict, useg);
if(!(dblknum = srchkana(SJ3_CONTEXT_PASS & p1, &samlen))) return AD_NOMIDASI; if(!(dblknum = srchkana(SJ4_CONTEXT_PASS & p1, &samlen))) return AD_NOMIDASI;
if(!(hblknum = srchgram(p1, &p2, hinsi))) return AD_NOHINSI; if(!(hblknum = srchgram(p1, &p2, hinsi))) return AD_NOHINSI;
@ -85,9 +85,9 @@ u_int deldic(SJ3_CONTEXT u_char* yomi, u_char* kanji, TypeGram hinsi) {
if(kblknum == 1) { if(kblknum == 1) {
if(hblknum == 1) { if(hblknum == 1) {
if(dblknum == 1) { if(dblknum == 1) {
return del_segment(SJ3_CONTEXT_PASS useg); return del_segment(SJ4_CONTEXT_PASS useg);
} else { } else {
return del_douon(SJ3_CONTEXT_PASS useg, p1, ofs); return del_douon(SJ4_CONTEXT_PASS useg, p1, ofs);
} }
} else { } else {
stp = p2; stp = p2;
@ -108,15 +108,15 @@ u_int deldic(SJ3_CONTEXT u_char* yomi, u_char* kanji, TypeGram hinsi) {
set_size(p1, (int)(getsize(p1) - size), set_size(p1, (int)(getsize(p1) - size),
(int)getplen(p1), (int)getnlen(p1)); (int)getplen(p1), (int)getnlen(p1));
(*curdict->putdic)(SJ3_CONTEXT_PASS curdict, useg); (*curdict->putdic)(SJ4_CONTEXT_PASS curdict, useg);
del_stdy(SJ3_CONTEXT_PASS useg, ofs, size); del_stdy(SJ4_CONTEXT_PASS useg, ofs, size);
return AD_DONE; return AD_DONE;
} }
static int static int
del_douon(SJ3_CONTEXT TypeDicSeg seg, u_char* ptr, TypeDicOfs ofs) { del_douon(SJ4_CONTEXT TypeDicSeg seg, u_char* ptr, TypeDicOfs ofs) {
u_char *nxt, *p1, *p2; u_char *nxt, *p1, *p2;
int size; int size;
int nlen, plen, len; int nlen, plen, len;
@ -133,7 +133,7 @@ del_douon(SJ3_CONTEXT TypeDicSeg seg, u_char* ptr, TypeDicOfs ofs) {
plen = getplen(nxt); plen = getplen(nxt);
if(ptr == segtop()) { if(ptr == segtop()) {
if(nlen + plen > (unsigned int)count_uidx(SJ3_CONTEXT_PASS2) + sstrlen(get_idxptr(SJ3_CONTEXT_PASS seg))) if(nlen + plen > (unsigned int)count_uidx(SJ4_CONTEXT_PASS2) + sstrlen(get_idxptr(SJ4_CONTEXT_PASS seg)))
return AD_OVFLWINDEX; return AD_OVFLWINDEX;
} }
@ -150,19 +150,19 @@ del_douon(SJ3_CONTEXT TypeDicSeg seg, u_char* ptr, TypeDicOfs ofs) {
memset(dicbuf + curdict->seglen - size, DICSEGTERM, size); memset(dicbuf + curdict->seglen - size, DICSEGTERM, size);
if(ptr == segtop()) { if(ptr == segtop()) {
chg_uidx(SJ3_CONTEXT_PASS seg, ptr + DOUONBLKSIZENUMBER, nlen + len); chg_uidx(SJ4_CONTEXT_PASS seg, ptr + DOUONBLKSIZENUMBER, nlen + len);
} }
} }
(*curdict->putdic)(SJ3_CONTEXT_PASS curdict, seg); (*curdict->putdic)(SJ4_CONTEXT_PASS curdict, seg);
del_stdy(SJ3_CONTEXT_PASS seg, ofs, size); del_stdy(SJ4_CONTEXT_PASS seg, ofs, size);
return AD_DONE; return AD_DONE;
} }
static int static int
del_segment(SJ3_CONTEXT TypeDicSeg seg) { del_segment(SJ4_CONTEXT TypeDicSeg seg) {
int i; int i;
STDYIN* styp; STDYIN* styp;
TypeDicID dicid; TypeDicID dicid;
@ -171,19 +171,19 @@ del_segment(SJ3_CONTEXT TypeDicSeg seg) {
if(curdict->segunit > 1) { if(curdict->segunit > 1) {
for(sg = seg + 1; sg < curdict->segunit; sg++) { for(sg = seg + 1; sg < curdict->segunit; sg++) {
(*curdict->getdic)(SJ3_CONTEXT_PASS curdict, sg); (*curdict->getdic)(SJ4_CONTEXT_PASS curdict, sg);
(*curdict->putdic)(SJ3_CONTEXT_PASS curdict, sg - 1); (*curdict->putdic)(SJ4_CONTEXT_PASS curdict, sg - 1);
} }
curdict->segunit--; curdict->segunit--;
} else { } else {
memset(dicbuf, DICSEGTERM, (int)curdict->seglen); memset(dicbuf, DICSEGTERM, (int)curdict->seglen);
dicbuf[0] = 0; dicbuf[0] = 0;
(*curdict->putdic)(SJ3_CONTEXT_PASS curdict, DICSEGBASE); (*curdict->putdic)(SJ4_CONTEXT_PASS curdict, DICSEGBASE);
} }
(*curdict->rszdic)(SJ3_CONTEXT_PASS curdict, curdict->segunit); (*curdict->rszdic)(SJ4_CONTEXT_PASS curdict, curdict->segunit);
del_uidx(SJ3_CONTEXT_PASS seg); del_uidx(SJ4_CONTEXT_PASS seg);
if(StudyExist()) { if(StudyExist()) {
dicid = curdict->dicid; dicid = curdict->dicid;
@ -208,18 +208,18 @@ del_segment(SJ3_CONTEXT TypeDicSeg seg) {
for(i = 0, styp = STUDYDICT; i < STUDYCOUNT; i++, styp++) for(i = 0, styp = STUDYDICT; i < STUDYCOUNT; i++, styp++)
if(styp->styno > stdynum) styp->styno -= 1; if(styp->styno > stdynum) styp->styno -= 1;
putstydic(SJ3_CONTEXT_PASS2); putstydic(SJ4_CONTEXT_PASS2);
} }
return AD_DONE; return AD_DONE;
} }
static void static void
del_uidx(SJ3_CONTEXT TypeDicSeg seg) { del_uidx(SJ4_CONTEXT TypeDicSeg seg) {
u_char *p, *q; u_char *p, *q;
int len; int len;
p = get_idxptr(SJ3_CONTEXT_PASS seg); p = get_idxptr(SJ4_CONTEXT_PASS seg);
for(q = p; *q++;); for(q = p; *q++;);
mvmemi(q, p, idxbuf + curdict->idxlen - q); mvmemi(q, p, idxbuf + curdict->idxlen - q);
@ -227,13 +227,13 @@ del_uidx(SJ3_CONTEXT TypeDicSeg seg) {
len = q - p; len = q - p;
memset(idxbuf + curdict->idxlen - len, 0, len); memset(idxbuf + curdict->idxlen - len, 0, len);
(*curdict->putidx)(SJ3_CONTEXT_PASS curdict, 0); (*curdict->putidx)(SJ4_CONTEXT_PASS curdict, 0);
mkidxtbl(SJ3_CONTEXT_PASS curdict); mkidxtbl(SJ4_CONTEXT_PASS curdict);
} }
static void static void
del_stdy(SJ3_CONTEXT TypeDicSeg seg, TypeDicOfs ofs, int size) { del_stdy(SJ4_CONTEXT TypeDicSeg seg, TypeDicOfs ofs, int size) {
int i; int i;
TypeStyNum stdynum; TypeStyNum stdynum;
STDYIN* stdy; STDYIN* stdy;
@ -265,6 +265,6 @@ del_stdy(SJ3_CONTEXT TypeDicSeg seg, TypeDicOfs ofs, int size) {
for(i = 0, stdy = STUDYDICT; i < STUDYCOUNT; i++, stdy++) for(i = 0, stdy = STUDYDICT; i < STUDYCOUNT; i++, stdy++)
if(stdy->styno > stdynum) (stdy->styno)--; if(stdy->styno > stdynum) (stdy->styno)--;
putstydic(SJ3_CONTEXT_PASS2); putstydic(SJ4_CONTEXT_PASS2);
} }
} }

View file

@ -38,7 +38,7 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
void get_askknj(SJ3_CONTEXT2) { void get_askknj(SJ4_CONTEXT2) {
u_char* p; u_char* p;
u_char* q; u_char* q;
u_char* r; u_char* r;
@ -68,7 +68,7 @@ void get_askknj(SJ3_CONTEXT2) {
} }
} }
int seldict(SJ3_CONTEXT TypeDicID id) { int seldict(SJ4_CONTEXT TypeDicID id) {
DICTL* dp; DICTL* dp;
for(dp = dictlist; dp; dp = dp->next) { for(dp = dictlist; dp; dp = dp->next) {
@ -81,9 +81,9 @@ int seldict(SJ3_CONTEXT TypeDicID id) {
} }
u_char* u_char*
get_idxptr(SJ3_CONTEXT TypeDicSeg seg) { get_idxptr(SJ4_CONTEXT TypeDicSeg seg) {
(*curdict->getofs)(SJ3_CONTEXT_PASS curdict); (*curdict->getofs)(SJ4_CONTEXT_PASS curdict);
(*curdict->getidx)(SJ3_CONTEXT_PASS curdict); (*curdict->getidx)(SJ4_CONTEXT_PASS curdict);
return idxbuf + idxofs[seg]; return idxbuf + idxofs[seg];
} }

View file

@ -74,7 +74,7 @@ fzkstrcmp(u_char* yptr, u_char* fzkp, int* saml) {
return MATCH; return MATCH;
} }
void setclrec(SJ3_CONTEXT JREC* jrec, u_char* yptr, TypeCnct right) { void setclrec(SJ4_CONTEXT JREC* jrec, u_char* yptr, TypeCnct right) {
CLREC* new; CLREC* new;
TypeGram hinsi; TypeGram hinsi;
int len; int len;
@ -83,7 +83,7 @@ void setclrec(SJ3_CONTEXT JREC* jrec, u_char* yptr, TypeCnct right) {
if(len > MAXCLINPUTLEN) return; if(len > MAXCLINPUTLEN) return;
if(!(new = argclrec(SJ3_CONTEXT_PASS len))) return; if(!(new = argclrec(SJ4_CONTEXT_PASS len))) return;
new->jnode = jrec; new->jnode = jrec;
new->gobiln = gobilen; new->gobiln = gobilen;
@ -165,7 +165,7 @@ fzkcnct(TypeCnct right, TypeCnct left) {
} }
RECURS RECURS
void srchfzk(SJ3_CONTEXT JREC* jrec, u_char* yptr, TypeCnct right, int level) { void srchfzk(SJ4_CONTEXT JREC* jrec, u_char* yptr, TypeCnct right, int level) {
u_char* fzk; u_char* fzk;
int len = 0; int len = 0;
int cmp; int cmp;
@ -177,11 +177,11 @@ void srchfzk(SJ3_CONTEXT JREC* jrec, u_char* yptr, TypeCnct right, int level) {
if((level >= MAXFLVL) && !(Chrtbl[*yptr] & FZK_KGU)) return; if((level >= MAXFLVL) && !(Chrtbl[*yptr] & FZK_KGU)) return;
if(terminate(SJ3_CONTEXT_PASS right, yptr) && Chrtbl[*yptr] & FZK_KGU) { if(terminate(SJ4_CONTEXT_PASS right, yptr) && Chrtbl[*yptr] & FZK_KGU) {
if(!level) fzk_ka_flg = 0; if(!level) fzk_ka_flg = 0;
yptr++; yptr++;
while(Chrtbl[*yptr] & FZK_KGU) yptr++; while(Chrtbl[*yptr] & FZK_KGU) yptr++;
setclrec(SJ3_CONTEXT_PASS jrec, yptr, (TypeCnct)R_FZKKGU); setclrec(SJ4_CONTEXT_PASS jrec, yptr, (TypeCnct)R_FZKKGU);
return; return;
} }
@ -207,11 +207,11 @@ void srchfzk(SJ3_CONTEXT JREC* jrec, u_char* yptr, TypeCnct right, int level) {
next = yptr + len; next = yptr + len;
if(terminate(SJ3_CONTEXT_PASS rt = FzkRight(fzk), next)) { if(terminate(SJ4_CONTEXT_PASS rt = FzkRight(fzk), next)) {
setclrec(SJ3_CONTEXT_PASS jrec, next, rt); setclrec(SJ4_CONTEXT_PASS jrec, next, rt);
} }
srchfzk(SJ3_CONTEXT_PASS jrec, next, rt, level + 1); srchfzk(SJ4_CONTEXT_PASS jrec, next, rt, level + 1);
} }
if(len) return; if(len) return;
@ -246,10 +246,10 @@ void srchfzk(SJ3_CONTEXT JREC* jrec, u_char* yptr, TypeCnct right, int level) {
next = yptr + len; next = yptr + len;
if(terminate(SJ3_CONTEXT_PASS rt = FzkRight(fzk), next)) { if(terminate(SJ4_CONTEXT_PASS rt = FzkRight(fzk), next)) {
setclrec(SJ3_CONTEXT_PASS jrec, next, rt); setclrec(SJ4_CONTEXT_PASS jrec, next, rt);
} }
srchfzk(SJ3_CONTEXT_PASS jrec, next, rt, level + 1); srchfzk(SJ4_CONTEXT_PASS jrec, next, rt, level + 1);
} }
} }

View file

@ -38,7 +38,7 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
static u_char* code2kanji(SJ3_CONTEXT u_char* s, u_char* d, u_char* ym, int yl, int flg); static u_char* code2kanji(SJ4_CONTEXT u_char* s, u_char* d, u_char* ym, int yl, int flg);
u_char* u_char*
getkan_none(u_char* s, u_char* d, u_char* ym, int yl, int flg) { getkan_none(u_char* s, u_char* d, u_char* ym, int yl, int flg) {
@ -92,13 +92,13 @@ getkan_kata(u_char* s, u_char* d, u_char* ym, int yl, int flg) {
} }
u_char* u_char*
getkan_knj(SJ3_CONTEXT u_char* s, u_char* d, u_char* ym, int yl, int flg) { getkan_knj(SJ4_CONTEXT u_char* s, u_char* d, u_char* ym, int yl, int flg) {
return code2kanji(SJ3_CONTEXT_PASS askknj[*s & KNJASSYUKUMASK], d, ym, yl, flg); return code2kanji(SJ4_CONTEXT_PASS askknj[*s & KNJASSYUKUMASK], d, ym, yl, flg);
} }
u_char* u_char*
getkan_ofs(SJ3_CONTEXT u_char* s, u_char* d, u_char* ym, int yl, int flg) { getkan_ofs(SJ4_CONTEXT u_char* s, u_char* d, u_char* ym, int yl, int flg) {
return code2kanji(SJ3_CONTEXT_PASS dicbuf + ((*s & KANJICODEMASK) << 8) + *(s + 1), return code2kanji(SJ4_CONTEXT_PASS dicbuf + ((*s & KANJICODEMASK) << 8) + *(s + 1),
d, ym, yl, flg); d, ym, yl, flg);
} }
@ -131,7 +131,7 @@ getkan_ascii(u_char* s, u_char* d, u_char* ym, int yl, int flg) {
} }
static u_char* static u_char*
code2kanji(SJ3_CONTEXT u_char* s, u_char* d, u_char* ym, int yl, int flg) { code2kanji(SJ4_CONTEXT u_char* s, u_char* d, u_char* ym, int yl, int flg) {
int csize; int csize;
for(;;) { for(;;) {
@ -147,7 +147,7 @@ code2kanji(SJ3_CONTEXT u_char* s, u_char* d, u_char* ym, int yl, int flg) {
break; break;
case OFFSETASSYUKU: case OFFSETASSYUKU:
d = getkan_ofs(SJ3_CONTEXT_PASS s, d, ym, yl, flg); d = getkan_ofs(SJ4_CONTEXT_PASS s, d, ym, yl, flg);
break; break;
case AIATTRIBUTE: case AIATTRIBUTE:
@ -159,7 +159,7 @@ code2kanji(SJ3_CONTEXT u_char* s, u_char* d, u_char* ym, int yl, int flg) {
break; break;
case KANJIASSYUKU: case KANJIASSYUKU:
d = getkan_knj(SJ3_CONTEXT_PASS s, d, ym, yl, flg); d = getkan_knj(SJ4_CONTEXT_PASS s, d, ym, yl, flg);
break; break;
default: default:
@ -177,7 +177,7 @@ code2kanji(SJ3_CONTEXT u_char* s, u_char* d, u_char* ym, int yl, int flg) {
break; break;
case OFFSETASSYUKU: case OFFSETASSYUKU:
d = getkan_ofs(SJ3_CONTEXT_PASS s, d, ym, yl, FALSE); d = getkan_ofs(SJ4_CONTEXT_PASS s, d, ym, yl, FALSE);
break; break;
case AIATTRIBUTE: case AIATTRIBUTE:
@ -189,7 +189,7 @@ code2kanji(SJ3_CONTEXT u_char* s, u_char* d, u_char* ym, int yl, int flg) {
break; break;
case KANJIASSYUKU: case KANJIASSYUKU:
d = getkan_knj(SJ3_CONTEXT_PASS s, d, ym, yl, FALSE); d = getkan_knj(SJ4_CONTEXT_PASS s, d, ym, yl, FALSE);
break; break;
default: default:
@ -202,10 +202,10 @@ code2kanji(SJ3_CONTEXT u_char* s, u_char* d, u_char* ym, int yl, int flg) {
return d; return d;
} }
int getkanji(SJ3_CONTEXT u_char* ym, int yl, u_char* ptr, u_char* buf) { int getkanji(SJ4_CONTEXT u_char* ym, int yl, u_char* ptr, u_char* buf) {
u_char* q; u_char* q;
q = code2kanji(SJ3_CONTEXT_PASS ptr, buf, ym, yl, TRUE); q = code2kanji(SJ4_CONTEXT_PASS ptr, buf, ym, yl, TRUE);
return q - buf; return q - buf;
} }

View file

@ -37,36 +37,36 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
static void setstynum(SJ3_CONTEXT2), setnspr(SJ3_CONTEXT KHREC*, STDYIN*), regetrank(SJ3_CONTEXT2); static void setstynum(SJ4_CONTEXT2), setnspr(SJ4_CONTEXT KHREC*, STDYIN*), regetrank(SJ4_CONTEXT2);
void getrank(SJ3_CONTEXT2) { void getrank(SJ4_CONTEXT2) {
trank = nrank = 1; trank = nrank = 1;
setstynum(SJ3_CONTEXT_PASS2); setstynum(SJ4_CONTEXT_PASS2);
regetrank(SJ3_CONTEXT_PASS2); regetrank(SJ4_CONTEXT_PASS2);
} }
static void static void
setstynum(SJ3_CONTEXT2) { setstynum(SJ4_CONTEXT2) {
KHREC* kptr; KHREC* kptr;
STDYIN* sptr; STDYIN* sptr;
int count; int count;
for(kptr = kouhotbl, count = khcount; count--; kptr++) { for(kptr = kouhotbl, count = khcount; count--; kptr++) {
sptr = srchstdy(SJ3_CONTEXT_PASS kptr->clrec->jnode->jseg, kptr->offs, sptr = srchstdy(SJ4_CONTEXT_PASS kptr->clrec->jnode->jseg, kptr->offs,
kptr->clrec->jnode->dicid); kptr->clrec->jnode->dicid);
if(!sptr) continue; if(!sptr) continue;
setnspr(SJ3_CONTEXT_PASS kptr, sptr); setnspr(SJ4_CONTEXT_PASS kptr, sptr);
} }
} }
static void static void
setnspr(SJ3_CONTEXT KHREC* kptr, STDYIN* sptr) { setnspr(SJ4_CONTEXT KHREC* kptr, STDYIN* sptr) {
KHREC* ptr; KHREC* ptr;
int keepnm; int keepnm;
TypeStyNum styno; TypeStyNum styno;
@ -122,7 +122,7 @@ setnspr(SJ3_CONTEXT KHREC* kptr, STDYIN* sptr) {
} }
static void static void
regetrank(SJ3_CONTEXT2) { regetrank(SJ4_CONTEXT2) {
KHREC* kptr; KHREC* kptr;
int count; int count;
int tmp; int tmp;

View file

@ -46,7 +46,7 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
#ifdef SJ3_GLOBAL #ifdef SJ4_GLOBAL
Global* work_base; Global* work_base;
STDY* stdy_base; STDY* stdy_base;

View file

@ -37,13 +37,13 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
void seg_count(SJ3_CONTEXT DICT* dict) { void seg_count(SJ4_CONTEXT DICT* dict) {
u_char* p; u_char* p;
u_char* q; u_char* q;
TypeDicSeg segcnt = 0; TypeDicSeg segcnt = 0;
if(dict->getidx) { if(dict->getidx) {
(*dict->getidx)(SJ3_CONTEXT_PASS dict); (*dict->getidx)(SJ4_CONTEXT_PASS dict);
p = idxbuf; p = idxbuf;
q = p + dict->idxlen; q = p + dict->idxlen;
@ -56,7 +56,7 @@ void seg_count(SJ3_CONTEXT DICT* dict) {
dict->segunit = (segcnt == 0) ? 1 : segcnt; dict->segunit = (segcnt == 0) ? 1 : segcnt;
} }
void mkidxtbl(SJ3_CONTEXT DICT* dict) { void mkidxtbl(SJ4_CONTEXT DICT* dict) {
u_char* p; u_char* p;
TypeDicSeg seg; TypeDicSeg seg;
@ -64,8 +64,8 @@ void mkidxtbl(SJ3_CONTEXT DICT* dict) {
seg = 0; seg = 0;
(*dict->getidx)(SJ3_CONTEXT_PASS dict); (*dict->getidx)(SJ4_CONTEXT_PASS dict);
(*dict->getofs)(SJ3_CONTEXT_PASS dict); (*dict->getofs)(SJ4_CONTEXT_PASS dict);
idxofs[0] = 0; idxofs[0] = 0;
for(p = idxbuf; p < idxbuf + dict->idxlen && seg < dict->segunit;) { for(p = idxbuf; p < idxbuf + dict->idxlen && seg < dict->segunit;) {
@ -74,14 +74,14 @@ void mkidxtbl(SJ3_CONTEXT DICT* dict) {
} }
} }
void initwork(SJ3_CONTEXT2) { void initwork(SJ4_CONTEXT2) {
jrt1st = jrt2nd = maxjptr = (JREC*)0; jrt1st = jrt2nd = maxjptr = (JREC*)0;
clt1st = clt2nd = maxclptr = (CLREC*)0; clt1st = clt2nd = maxclptr = (CLREC*)0;
} }
#ifndef SJ3_GLOBAL #ifndef SJ4_GLOBAL
Sj3Context* alloccontext(const char* dic) { Sj4Context* alloccontext(const char* dic) {
Sj3Context* ctx = calloc(1, sizeof(*ctx)); Sj4Context* ctx = calloc(1, sizeof(*ctx));
DictFile* dict; DictFile* dict;
DICTL* node; DICTL* node;
@ -95,6 +95,11 @@ Sj3Context* alloccontext(const char* dic) {
dict = opendict(ctx, (char*)dic, ""); dict = opendict(ctx, (char*)dic, "");
if(dict == NULL){
free_context(ctx);
return NULL;
}
node->dict = &dict->dict; node->dict = &dict->dict;
node->next = NULL; node->next = NULL;
@ -103,14 +108,14 @@ Sj3Context* alloccontext(const char* dic) {
return ctx; return ctx;
} }
void free_context(Sj3Context* ctx) { void free_context(Sj4Context* ctx) {
DICTL* node; DICTL* node;
node = ctx->work->Jdictlist; node = ctx->work->Jdictlist;
while(node != NULL) { while(node != NULL) {
DICTL* next = node->next; DICTL* next = node->next;
closedict(ctx, (DictFile*)node->dict); if(node->dict != NULL) closedict(ctx, (DictFile*)node->dict);
free(node); free(node);
node = next; node = next;

View file

@ -37,7 +37,7 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
JREC* free_jlst(SJ3_CONTEXT JREC* p) { JREC* free_jlst(SJ4_CONTEXT JREC* p) {
JREC* jpk; JREC* jpk;
JREC* jp; JREC* jp;
JREC* jn; JREC* jn;
@ -57,7 +57,7 @@ JREC* free_jlst(SJ3_CONTEXT JREC* p) {
} }
else { else {
free_jrec(SJ3_CONTEXT_PASS p); free_jrec(SJ4_CONTEXT_PASS p);
} }
} }
@ -67,7 +67,7 @@ JREC* free_jlst(SJ3_CONTEXT JREC* p) {
} }
CLREC* CLREC*
free_clst(SJ3_CONTEXT CLREC* p, int l) { free_clst(SJ4_CONTEXT CLREC* p, int l) {
CLREC* cpk; CLREC* cpk;
CLREC* cp; CLREC* cp;
CLREC* cn; CLREC* cn;
@ -97,7 +97,7 @@ free_clst(SJ3_CONTEXT CLREC* p, int l) {
else { else {
(p->jnode->count)--; (p->jnode->count)--;
free_clrec(SJ3_CONTEXT_PASS p); free_clrec(SJ4_CONTEXT_PASS p);
} }
} }
@ -106,31 +106,31 @@ free_clst(SJ3_CONTEXT CLREC* p, int l) {
return cpk; return cpk;
} }
void free_clall(SJ3_CONTEXT CLREC* p) { void free_clall(SJ4_CONTEXT CLREC* p) {
CLREC* next; CLREC* next;
while(p) { while(p) {
(p->jnode->count)--; (p->jnode->count)--;
next = p->clsort; next = p->clsort;
free_clrec(SJ3_CONTEXT_PASS p); free_clrec(SJ4_CONTEXT_PASS p);
p = next; p = next;
} }
} }
void free_jall(SJ3_CONTEXT JREC* p) { void free_jall(SJ4_CONTEXT JREC* p) {
JREC* next; JREC* next;
while(p) { while(p) {
next = p->jsort; next = p->jsort;
free_jrec(SJ3_CONTEXT_PASS p); free_jrec(SJ4_CONTEXT_PASS p);
p = next; p = next;
} }
} }
void freework(SJ3_CONTEXT2) { void freework(SJ4_CONTEXT2) {
free_clall(SJ3_CONTEXT_PASS maxclptr); free_clall(SJ4_CONTEXT_PASS maxclptr);
clt1st = maxclptr = NULL; clt1st = maxclptr = NULL;
free_jall(SJ3_CONTEXT_PASS maxjptr); free_jall(SJ4_CONTEXT_PASS maxjptr);
jrt1st = maxjptr = NULL; jrt1st = maxjptr = NULL;
} }

View file

@ -39,28 +39,28 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
static int static int
set2nd(SJ3_CONTEXT CLREC* clrec) { set2nd(SJ4_CONTEXT CLREC* clrec) {
CLREC* rec2; CLREC* rec2;
mkjiritu(SJ3_CONTEXT_PASS DO_IKKATU | DO_CLSTUDY); mkjiritu(SJ4_CONTEXT_PASS DO_IKKATU | DO_CLSTUDY);
mkbunsetu(SJ3_CONTEXT_PASS2); mkbunsetu(SJ4_CONTEXT_PASS2);
if(!maxclptr) { if(!maxclptr) {
wakachi(SJ3_CONTEXT_PASS2); wakachi(SJ4_CONTEXT_PASS2);
return clrec->cllen; return clrec->cllen;
} }
for(rec2 = maxclptr; rec2; rec2 = rec2->clsort) { for(rec2 = maxclptr; rec2; rec2 = rec2->clsort) {
if(terminate(SJ3_CONTEXT_PASS rec2->right, cnvstart + rec2->cllen) != SHU) if(terminate(SJ4_CONTEXT_PASS rec2->right, cnvstart + rec2->cllen) != SHU)
break; break;
} }
return rec2 ? (clrec->cllen + rec2->cllen) : (clrec->cllen); return rec2 ? (clrec->cllen + rec2->cllen) : (clrec->cllen);
} }
void mk2claus(SJ3_CONTEXT2) { void mk2claus(SJ4_CONTEXT2) {
u_char* keepptr; u_char* keepptr;
int keeplen; int keeplen;
CLREC* clrec; CLREC* clrec;
@ -79,12 +79,12 @@ void mk2claus(SJ3_CONTEXT2) {
selcl = clt1st; selcl = clt1st;
if(selcl->right == R_FZKKGU) { if(selcl->right == R_FZKKGU) {
pritiny(SJ3_CONTEXT_PASS2); pritiny(SJ4_CONTEXT_PASS2);
return; return;
} }
if(cnvlen == selcl->cllen) { if(cnvlen == selcl->cllen) {
pritiny(SJ3_CONTEXT_PASS2); pritiny(SJ4_CONTEXT_PASS2);
return; return;
} }
@ -99,11 +99,11 @@ void mk2claus(SJ3_CONTEXT2) {
if(len != clrec->cllen) { if(len != clrec->cllen) {
if(clt2nd != maxclptr) { if(clt2nd != maxclptr) {
free_clall(SJ3_CONTEXT_PASS maxclptr); free_clall(SJ4_CONTEXT_PASS maxclptr);
free_jall(SJ3_CONTEXT_PASS maxjptr); free_jall(SJ4_CONTEXT_PASS maxjptr);
} }
save2ln = set2nd(SJ3_CONTEXT_PASS clrec); save2ln = set2nd(SJ4_CONTEXT_PASS clrec);
count++; count++;
len = clrec->cllen; len = clrec->cllen;
@ -117,7 +117,7 @@ void mk2claus(SJ3_CONTEXT2) {
if(selcl->cl2len > clrec->cl2len) continue; if(selcl->cl2len > clrec->cl2len) continue;
prty = priority(SJ3_CONTEXT_PASS clrec) - prty2; prty = priority(SJ4_CONTEXT_PASS clrec) - prty2;
prty2++; prty2++;
@ -138,16 +138,16 @@ void mk2claus(SJ3_CONTEXT2) {
if(clt2nd == maxclptr) continue; if(clt2nd == maxclptr) continue;
free_clall(SJ3_CONTEXT_PASS clt2nd); free_clall(SJ4_CONTEXT_PASS clt2nd);
free_jall(SJ3_CONTEXT_PASS jrt2nd); free_jall(SJ4_CONTEXT_PASS jrt2nd);
jrt2nd = maxjptr; jrt2nd = maxjptr;
clt2nd = maxclptr; clt2nd = maxclptr;
} }
if(clt2nd != maxclptr) { if(clt2nd != maxclptr) {
free_clall(SJ3_CONTEXT_PASS maxclptr); free_clall(SJ4_CONTEXT_PASS maxclptr);
maxclptr = NULL; maxclptr = NULL;
free_jall(SJ3_CONTEXT_PASS maxjptr); free_jall(SJ4_CONTEXT_PASS maxjptr);
maxjptr = NULL; maxjptr = NULL;
} }

View file

@ -38,7 +38,7 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
void mkbunsetu(SJ3_CONTEXT2) { void mkbunsetu(SJ4_CONTEXT2) {
JREC* jrec; JREC* jrec;
TypeGram hinsi; TypeGram hinsi;
u_char* cnj; u_char* cnj;
@ -65,15 +65,15 @@ void mkbunsetu(SJ3_CONTEXT2) {
gobilen = 0; gobilen = 0;
next = cnvstart + jrec->jlen; next = cnvstart + jrec->jlen;
if(terminate(SJ3_CONTEXT_PASS right, next)) { if(terminate(SJ4_CONTEXT_PASS right, next)) {
fzk_ka_flg = 0; fzk_ka_flg = 0;
setclrec(SJ3_CONTEXT_PASS jrec, next, right); setclrec(SJ4_CONTEXT_PASS jrec, next, right);
} }
srchfzk(SJ3_CONTEXT_PASS jrec, next, right, 0); srchfzk(SJ4_CONTEXT_PASS jrec, next, right, 0);
} }
else if((count = setconj(SJ3_CONTEXT_PASS hinsi, jrec, crec))) { else if((count = setconj(SJ4_CONTEXT_PASS hinsi, jrec, crec))) {
for(i = count; i-- > 0;) { for(i = count; i-- > 0;) {
@ -81,12 +81,12 @@ void mkbunsetu(SJ3_CONTEXT2) {
gobilen = crec[i].len; gobilen = crec[i].len;
next = cnvstart + jrec->jlen + gobilen; next = cnvstart + jrec->jlen + gobilen;
if(terminate(SJ3_CONTEXT_PASS right, next)) { if(terminate(SJ4_CONTEXT_PASS right, next)) {
fzk_ka_flg = 0; fzk_ka_flg = 0;
setclrec(SJ3_CONTEXT_PASS jrec, next, right); setclrec(SJ4_CONTEXT_PASS jrec, next, right);
} }
srchfzk(SJ3_CONTEXT_PASS jrec, next, right, 0); srchfzk(SJ4_CONTEXT_PASS jrec, next, right, 0);
} }
} }
@ -95,12 +95,12 @@ void mkbunsetu(SJ3_CONTEXT2) {
} }
CLREC* CLREC*
argclrec(SJ3_CONTEXT int len) { argclrec(SJ4_CONTEXT int len) {
CLREC* ptr; CLREC* ptr;
CLREC* rec; CLREC* rec;
CLREC* child; CLREC* child;
rec = alloc_clrec(SJ3_CONTEXT_PASS2); rec = alloc_clrec(SJ4_CONTEXT_PASS2);
if(!rec) { if(!rec) {
if(!maxclptr) if(!maxclptr)

View file

@ -38,9 +38,9 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
static void dic_mu(SJ3_CONTEXT int), dic_cl(SJ3_CONTEXT2); static void dic_mu(SJ4_CONTEXT int), dic_cl(SJ4_CONTEXT2);
void mkjiritu(SJ3_CONTEXT int mode) { void mkjiritu(SJ4_CONTEXT int mode) {
u_char chkind1; u_char chkind1;
u_char chkind2; u_char chkind2;
JREC* jrec; JREC* jrec;
@ -53,25 +53,25 @@ void mkjiritu(SJ3_CONTEXT int mode) {
chkind1 = Chrtbl[*cnvstart]; chkind1 = Chrtbl[*cnvstart];
if(chkind1 & DICTOP) { if(chkind1 & DICTOP) {
dic_mu(SJ3_CONTEXT_PASS mode); dic_mu(SJ4_CONTEXT_PASS mode);
} }
if(mode & DO_CLSTUDY) dic_cl(SJ3_CONTEXT_PASS2); if(mode & DO_CLSTUDY) dic_cl(SJ4_CONTEXT_PASS2);
srchnum(SJ3_CONTEXT_PASS2); srchnum(SJ4_CONTEXT_PASS2);
if(srchhead(SJ3_CONTEXT_PASS2) && cnvlen != headlen) { if(srchhead(SJ4_CONTEXT_PASS2) && cnvlen != headlen) {
cnvstart += headlen; cnvstart += headlen;
cnvlen -= headlen; cnvlen -= headlen;
chkind2 = Chrtbl[*cnvstart]; chkind2 = Chrtbl[*cnvstart];
if(chkind2 & DICTOP) { if(chkind2 & DICTOP) {
dic_mu(SJ3_CONTEXT_PASS mode); dic_mu(SJ4_CONTEXT_PASS mode);
} }
if(headcode == SETTOU_DAI) { if(headcode == SETTOU_DAI) {
srchnum(SJ3_CONTEXT_PASS2); srchnum(SJ4_CONTEXT_PASS2);
} }
cnvstart -= headlen; cnvstart -= headlen;
@ -80,12 +80,12 @@ void mkjiritu(SJ3_CONTEXT int mode) {
for(jrec = maxjptr; jrec; jrec = jrec->jsort) { for(jrec = maxjptr; jrec; jrec = jrec->jsort) {
if((stb = getstb(jrec->hinsi))) if((stb = getstb(jrec->hinsi)))
setubi(SJ3_CONTEXT_PASS jrec, stb); setubi(SJ4_CONTEXT_PASS jrec, stb);
} }
} }
static void static void
dic_mu(SJ3_CONTEXT int mode) { dic_mu(SJ4_CONTEXT int mode) {
u_char* tagp; u_char* tagp;
DICTL* dp; DICTL* dp;
@ -95,16 +95,16 @@ dic_mu(SJ3_CONTEXT int mode) {
dicsaml = 0; dicsaml = 0;
prevseg = -1; prevseg = -1;
while((tagp = srchdict(SJ3_CONTEXT_PASS tagp))) setjrec(SJ3_CONTEXT_PASS tagp, mode); while((tagp = srchdict(SJ4_CONTEXT_PASS tagp))) setjrec(SJ4_CONTEXT_PASS tagp, mode);
} }
} }
JREC* argjrec(SJ3_CONTEXT int len, JREC* rec) { JREC* argjrec(SJ4_CONTEXT int len, JREC* rec) {
JREC* ptr; JREC* ptr;
JREC* jrec; JREC* jrec;
JREC* child; JREC* child;
jrec = alloc_jrec(SJ3_CONTEXT_PASS2); jrec = alloc_jrec(SJ4_CONTEXT_PASS2);
if(!jrec) { if(!jrec) {
if(!maxjptr) return NULL; if(!maxjptr) return NULL;
@ -156,7 +156,7 @@ JREC* argjrec(SJ3_CONTEXT int len, JREC* rec) {
} }
static void static void
dic_cl(SJ3_CONTEXT2) { dic_cl(SJ4_CONTEXT2) {
u_char* p; u_char* p;
u_short pos; u_short pos;
int len; int len;
@ -172,7 +172,7 @@ dic_cl(SJ3_CONTEXT2) {
if(cmp == MATCH) { if(cmp == MATCH) {
if(!isdpnd(*(cnvstart + len))) { if(!isdpnd(*(cnvstart + len))) {
setcrec(SJ3_CONTEXT_PASS p); setcrec(SJ4_CONTEXT_PASS p);
} }
} }

View file

@ -41,12 +41,12 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
static void getkhtbl(SJ3_CONTEXT CLREC*), cl_kanji(SJ3_CONTEXT JREC*, CLREC*); static void getkhtbl(SJ4_CONTEXT CLREC*), cl_kanji(SJ4_CONTEXT JREC*, CLREC*);
static int diffknj(SJ3_CONTEXT JREC*, u_char*, int); static int diffknj(SJ4_CONTEXT JREC*, u_char*, int);
static void cl_numcmn(SJ3_CONTEXT JREC*, CLREC*); static void cl_numcmn(SJ4_CONTEXT JREC*, CLREC*);
static u_char* makekan(SJ3_CONTEXT u_char*, u_char*, int); static u_char* makekan(SJ4_CONTEXT u_char*, u_char*, int);
void mkkouho(SJ3_CONTEXT2) { void mkkouho(SJ4_CONTEXT2) {
CLREC* clrec; CLREC* clrec;
int keeplen; int keeplen;
@ -57,20 +57,20 @@ void mkkouho(SJ3_CONTEXT2) {
clrec = clt1st; clrec = clt1st;
do { do {
getkhtbl(SJ3_CONTEXT_PASS clrec); getkhtbl(SJ4_CONTEXT_PASS clrec);
clrec = clrec->clsort; clrec = clrec->clsort;
} while(clrec && (keeplen == clrec->cllen)); } while(clrec && (keeplen == clrec->cllen));
} }
static void static void
getkhtbl(SJ3_CONTEXT CLREC* clrec) { getkhtbl(SJ4_CONTEXT CLREC* clrec) {
JREC* jrec; JREC* jrec;
jrec = clrec->jnode; jrec = clrec->jnode;
switch(jrec->class) { switch(jrec->class) {
case C_DICT: case C_DICT:
cl_kanji(SJ3_CONTEXT_PASS jrec, clrec); cl_kanji(SJ4_CONTEXT_PASS jrec, clrec);
break; break;
case C_N_ARABIA: case C_N_ARABIA:
case C_N_ARACMA: case C_N_ARACMA:
@ -82,46 +82,46 @@ getkhtbl(SJ3_CONTEXT CLREC* clrec) {
case C_N_KAZULONG: case C_N_KAZULONG:
case C_N_KAZULCMA: case C_N_KAZULCMA:
case C_N_SUUJILONG: case C_N_SUUJILONG:
cl_numcmn(SJ3_CONTEXT_PASS jrec, clrec); cl_numcmn(SJ4_CONTEXT_PASS jrec, clrec);
break; break;
case C_BUNSETU: case C_BUNSETU:
break; break;
case C_MINASI: case C_MINASI:
case C_WAKACHI: case C_WAKACHI:
setkouho(SJ3_CONTEXT_PASS clrec, (TypeDicOfs)0, 0); setkouho(SJ4_CONTEXT_PASS clrec, (TypeDicOfs)0, 0);
break; break;
} }
} }
static void static void
cl_kanji(SJ3_CONTEXT JREC* jrec, CLREC* clrec) { cl_kanji(SJ4_CONTEXT JREC* jrec, CLREC* clrec) {
u_char* ptr; u_char* ptr;
int kcount = khcount; int kcount = khcount;
if(seldict(SJ3_CONTEXT_PASS jrec->dicid)) { if(seldict(SJ4_CONTEXT_PASS jrec->dicid)) {
(*curdict->getdic)(SJ3_CONTEXT_PASS curdict, jrec->jseg); (*curdict->getdic)(SJ4_CONTEXT_PASS curdict, jrec->jseg);
ptr = dicbuf + jrec->jofsst + 1; ptr = dicbuf + jrec->jofsst + 1;
get_askknj(SJ3_CONTEXT_PASS2); get_askknj(SJ4_CONTEXT_PASS2);
while(*ptr != HINSIBLKTERM) { while(*ptr != HINSIBLKTERM) {
if(diffknj(SJ3_CONTEXT_PASS jrec, ptr, kcount)) { if(diffknj(SJ4_CONTEXT_PASS jrec, ptr, kcount)) {
setkouho(SJ3_CONTEXT_PASS clrec, (TypeDicOfs)(ptr - dicbuf), 0); setkouho(SJ4_CONTEXT_PASS clrec, (TypeDicOfs)(ptr - dicbuf), 0);
} }
ptr = skipkstr(ptr); ptr = skipkstr(ptr);
} }
} else { } else {
setkouho(SJ3_CONTEXT_PASS clrec, (TypeDicOfs)1, 0); setkouho(SJ4_CONTEXT_PASS clrec, (TypeDicOfs)1, 0);
} }
} }
u_char* u_char*
makekan_none(SJ3_CONTEXT u_char* s, u_char* d, int flg) { makekan_none(SJ4_CONTEXT u_char* s, u_char* d, int flg) {
return d; return d;
} }
u_char* u_char*
makekan_1byte(SJ3_CONTEXT u_char* s, u_char* d, int flg) { makekan_1byte(SJ4_CONTEXT u_char* s, u_char* d, int flg) {
if((*s & KANJIMODEMASK) == ZENHIRAASSYUKU) if((*s & KANJIMODEMASK) == ZENHIRAASSYUKU)
*d++ = 0x10 | (*s & KNJASSYUKUMASK); *d++ = 0x10 | (*s & KNJASSYUKUMASK);
else else
@ -132,17 +132,17 @@ makekan_1byte(SJ3_CONTEXT u_char* s, u_char* d, int flg) {
} }
u_char* u_char*
makekan_knj(SJ3_CONTEXT u_char* s, u_char* d, int flg) { makekan_knj(SJ4_CONTEXT u_char* s, u_char* d, int flg) {
return makekan(SJ3_CONTEXT_PASS askknj[*s & KNJASSYUKUMASK], d, flg); return makekan(SJ4_CONTEXT_PASS askknj[*s & KNJASSYUKUMASK], d, flg);
} }
u_char* makekan_ofs(SJ3_CONTEXT u_char* s, u_char* d, int flg) { u_char* makekan_ofs(SJ4_CONTEXT u_char* s, u_char* d, int flg) {
return makekan(SJ3_CONTEXT_PASS dicbuf + ((*s & KANJICODEMASK) << 8) + *(s + 1), return makekan(SJ4_CONTEXT_PASS dicbuf + ((*s & KANJICODEMASK) << 8) + *(s + 1),
d, flg); d, flg);
} }
u_char* u_char*
makekan_norm(SJ3_CONTEXT u_char* s, u_char* d, int flg) { makekan_norm(SJ4_CONTEXT u_char* s, u_char* d, int flg) {
u_char c; u_char c;
if(*s != 0) { if(*s != 0) {
@ -159,7 +159,7 @@ makekan_norm(SJ3_CONTEXT u_char* s, u_char* d, int flg) {
} }
u_char* u_char*
makekan_ascii(SJ3_CONTEXT u_char* s, u_char* d, int flg) { makekan_ascii(SJ4_CONTEXT u_char* s, u_char* d, int flg) {
u_char c; u_char c;
c = s[1]; c = s[1];
@ -173,7 +173,7 @@ makekan_ascii(SJ3_CONTEXT u_char* s, u_char* d, int flg) {
} }
static u_char* static u_char*
makekan(SJ3_CONTEXT u_char* s, u_char* d, int flg) { makekan(SJ4_CONTEXT u_char* s, u_char* d, int flg) {
int csize; int csize;
for(;;) { for(;;) {
@ -181,61 +181,61 @@ makekan(SJ3_CONTEXT u_char* s, u_char* d, int flg) {
if(s[csize] == KANJISTREND) { if(s[csize] == KANJISTREND) {
switch(*s & KANJIMODEMASK) { switch(*s & KANJIMODEMASK) {
case ZENHIRAASSYUKU: case ZENHIRAASSYUKU:
d = makekan_1byte(SJ3_CONTEXT_PASS s, d, flg); d = makekan_1byte(SJ4_CONTEXT_PASS s, d, flg);
break; break;
case ZENKATAASSYUKU: case ZENKATAASSYUKU:
d = makekan_1byte(SJ3_CONTEXT_PASS s, d, flg); d = makekan_1byte(SJ4_CONTEXT_PASS s, d, flg);
break; break;
case OFFSETASSYUKU: case OFFSETASSYUKU:
d = makekan_ofs(SJ3_CONTEXT_PASS s, d, flg); d = makekan_ofs(SJ4_CONTEXT_PASS s, d, flg);
break; break;
case AIATTRIBUTE: case AIATTRIBUTE:
d = makekan_none(SJ3_CONTEXT_PASS s, d, flg); d = makekan_none(SJ4_CONTEXT_PASS s, d, flg);
break; break;
case LEADINGHANKAKU: case LEADINGHANKAKU:
d = makekan_ascii(SJ3_CONTEXT_PASS s, d, flg); d = makekan_ascii(SJ4_CONTEXT_PASS s, d, flg);
break; break;
case KANJIASSYUKU: case KANJIASSYUKU:
d = makekan_knj(SJ3_CONTEXT_PASS s, d, flg); d = makekan_knj(SJ4_CONTEXT_PASS s, d, flg);
break; break;
default: default:
d = makekan_norm(SJ3_CONTEXT_PASS s, d, flg); d = makekan_norm(SJ4_CONTEXT_PASS s, d, flg);
} }
break; break;
} else } else
switch(*s & KANJIMODEMASK) { switch(*s & KANJIMODEMASK) {
case ZENHIRAASSYUKU: case ZENHIRAASSYUKU:
d = makekan_1byte(SJ3_CONTEXT_PASS s, d, FALSE); d = makekan_1byte(SJ4_CONTEXT_PASS s, d, FALSE);
break; break;
case ZENKATAASSYUKU: case ZENKATAASSYUKU:
d = makekan_1byte(SJ3_CONTEXT_PASS s, d, FALSE); d = makekan_1byte(SJ4_CONTEXT_PASS s, d, FALSE);
break; break;
case OFFSETASSYUKU: case OFFSETASSYUKU:
d = makekan_ofs(SJ3_CONTEXT_PASS s, d, FALSE); d = makekan_ofs(SJ4_CONTEXT_PASS s, d, FALSE);
break; break;
case AIATTRIBUTE: case AIATTRIBUTE:
d = makekan_none(SJ3_CONTEXT_PASS s, d, FALSE); d = makekan_none(SJ4_CONTEXT_PASS s, d, FALSE);
break; break;
case LEADINGHANKAKU: case LEADINGHANKAKU:
d = makekan_ascii(SJ3_CONTEXT_PASS s, d, FALSE); d = makekan_ascii(SJ4_CONTEXT_PASS s, d, FALSE);
break; break;
case KANJIASSYUKU: case KANJIASSYUKU:
d = makekan_knj(SJ3_CONTEXT_PASS s, d, FALSE); d = makekan_knj(SJ4_CONTEXT_PASS s, d, FALSE);
break; break;
default: default:
d = makekan_norm(SJ3_CONTEXT_PASS s, d, FALSE); d = makekan_norm(SJ4_CONTEXT_PASS s, d, FALSE);
} }
s += codesize(*s); s += codesize(*s);
} }
@ -304,7 +304,7 @@ sameknj(u_char* p, u_char plen, u_char* q, u_char qlen) {
#undef QEND #undef QEND
static int static int
diffknj(SJ3_CONTEXT JREC* jrec, u_char* ptr, int num) { diffknj(SJ4_CONTEXT JREC* jrec, u_char* ptr, int num) {
KHREC* kptr; KHREC* kptr;
JREC* jptr; JREC* jptr;
int i; int i;
@ -313,7 +313,7 @@ diffknj(SJ3_CONTEXT JREC* jrec, u_char* ptr, int num) {
if(jrec->hinsi == TANKANJI) return TRUE; if(jrec->hinsi == TANKANJI) return TRUE;
makekan(SJ3_CONTEXT_PASS ptr, kbuf1, TRUE); makekan(SJ4_CONTEXT_PASS ptr, kbuf1, TRUE);
for(i = 0, kptr = kouhotbl; i < num; i++, kptr++) { for(i = 0, kptr = kouhotbl; i < num; i++, kptr++) {
if((jptr = kptr->clrec->jnode) == jrec) if((jptr = kptr->clrec->jnode) == jrec)
@ -331,7 +331,7 @@ diffknj(SJ3_CONTEXT JREC* jrec, u_char* ptr, int num) {
if(jptr->stbofs != jrec->stbofs) continue; if(jptr->stbofs != jrec->stbofs) continue;
makekan(SJ3_CONTEXT_PASS dicbuf + kptr->offs, kbuf2, TRUE); makekan(SJ4_CONTEXT_PASS dicbuf + kptr->offs, kbuf2, TRUE);
if(sameknj(kbuf1, jrec->jlen, kbuf2, jptr->jlen)) if(sameknj(kbuf1, jrec->jlen, kbuf2, jptr->jlen))
return FALSE; return FALSE;
@ -388,7 +388,7 @@ int sel_sjmode(JREC* jrec) {
} }
static void static void
cl_numcmn(SJ3_CONTEXT JREC* jrec, CLREC* clrec) { cl_numcmn(SJ4_CONTEXT JREC* jrec, CLREC* clrec) {
u_char* p; u_char* p;
int i; int i;
u_short j; u_short j;
@ -403,24 +403,24 @@ cl_numcmn(SJ3_CONTEXT JREC* jrec, CLREC* clrec) {
if(jrec->jofsst) { if(jrec->jofsst) {
i = sel_sjmode(jrec); i = sel_sjmode(jrec);
if(seldict(SJ3_CONTEXT_PASS jrec->dicid)) { if(seldict(SJ4_CONTEXT_PASS jrec->dicid)) {
(*curdict->getdic)(SJ3_CONTEXT_PASS curdict, jrec->jseg); (*curdict->getdic)(SJ4_CONTEXT_PASS curdict, jrec->jseg);
p = dicbuf + jrec->jofsst + 1; p = dicbuf + jrec->jofsst + 1;
while(*p != HINSIBLKTERM) { while(*p != HINSIBLKTERM) {
setkouho(SJ3_CONTEXT_PASS clrec, (TypeDicOfs)(p - dicbuf), i); setkouho(SJ4_CONTEXT_PASS clrec, (TypeDicOfs)(p - dicbuf), i);
p = skipkstr(p); p = skipkstr(p);
} }
} else { } else {
setkouho(SJ3_CONTEXT_PASS clrec, (TypeDicOfs)1, i); setkouho(SJ4_CONTEXT_PASS clrec, (TypeDicOfs)1, i);
} }
} else { } else {
tbl = Selsjadrs(jrec->class - C_N_ARABIA); tbl = Selsjadrs(jrec->class - C_N_ARABIA);
while((j = *tbl++) != SELNUMTERM) { while((j = *tbl++) != SELNUMTERM) {
if(!chrck_numtbl(jrec->flags, j)) continue; if(!chrck_numtbl(jrec->flags, j)) continue;
setkouho(SJ3_CONTEXT_PASS clrec, (TypeDicOfs)0, (int)SelNumFunc(j)); setkouho(SJ4_CONTEXT_PASS clrec, (TypeDicOfs)0, (int)SelNumFunc(j));
} }
} }
} }

View file

@ -40,7 +40,7 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
static int static int
word2char(SJ3_CONTEXT u_short wd, u_char* tbl, int keta, int flg) { word2char(SJ4_CONTEXT u_short wd, u_char* tbl, int keta, int flg) {
int mask; int mask;
int num; int num;
u_char* src; u_char* src;
@ -72,7 +72,7 @@ word2char(SJ3_CONTEXT u_short wd, u_char* tbl, int keta, int flg) {
} }
static void static void
words2num(SJ3_CONTEXT u_short* wd, u_char* tbl, int flgc) { words2num(SJ4_CONTEXT u_short* wd, u_char* tbl, int flgc) {
int i; int i;
int keta; int keta;
int flg; int flg;
@ -87,7 +87,7 @@ words2num(SJ3_CONTEXT u_short* wd, u_char* tbl, int flgc) {
} }
for(i = NUMWORDBUF; i-- > 0;) { for(i = NUMWORDBUF; i-- > 0;) {
flg = word2char(SJ3_CONTEXT_PASS * (wd + i), tbl, keta, flg); flg = word2char(SJ4_CONTEXT_PASS * (wd + i), tbl, keta, flg);
if(keta) keta -= 4; if(keta) keta -= 4;
} }
@ -97,72 +97,72 @@ words2num(SJ3_CONTEXT u_short* wd, u_char* tbl, int flgc) {
} }
} }
void num_type00(SJ3_CONTEXT u_char* s1, u_char* s2, JREC* jrec) { void num_type00(SJ4_CONTEXT u_char* s1, u_char* s2, JREC* jrec) {
u_short num[NUMWORDBUF]; u_short num[NUMWORDBUF];
setwdnum(SJ3_CONTEXT_PASS s1, (int)jrec->numlen, num); setwdnum(SJ4_CONTEXT_PASS s1, (int)jrec->numlen, num);
words2num(SJ3_CONTEXT_PASS num, Num1tbl, FALSE); words2num(SJ4_CONTEXT_PASS num, Num1tbl, FALSE);
} }
void num_type01(SJ3_CONTEXT u_char* s1, u_char* s2, JREC* jrec) { void num_type01(SJ4_CONTEXT u_char* s1, u_char* s2, JREC* jrec) {
u_short num[NUMWORDBUF]; u_short num[NUMWORDBUF];
setwdnum(SJ3_CONTEXT_PASS s1, (int)jrec->numlen, num); setwdnum(SJ4_CONTEXT_PASS s1, (int)jrec->numlen, num);
words2num(SJ3_CONTEXT_PASS num, Num1tbl, FALSE); words2num(SJ4_CONTEXT_PASS num, Num1tbl, FALSE);
} }
void num_type02(SJ3_CONTEXT u_char* s1, u_char* s2, JREC* jrec) { void num_type02(SJ4_CONTEXT u_char* s1, u_char* s2, JREC* jrec) {
u_short num[NUMWORDBUF]; u_short num[NUMWORDBUF];
setwdnum(SJ3_CONTEXT_PASS s1, (int)jrec->numlen, num); setwdnum(SJ4_CONTEXT_PASS s1, (int)jrec->numlen, num);
words2num(SJ3_CONTEXT_PASS num, Num1tbl, TRUE); words2num(SJ4_CONTEXT_PASS num, Num1tbl, TRUE);
} }
void num_type03(SJ3_CONTEXT u_char* s1, u_char* s2, JREC* jrec) { void num_type03(SJ4_CONTEXT u_char* s1, u_char* s2, JREC* jrec) {
u_short num[NUMWORDBUF]; u_short num[NUMWORDBUF];
setwdnum(SJ3_CONTEXT_PASS s1, (int)jrec->numlen, num); setwdnum(SJ4_CONTEXT_PASS s1, (int)jrec->numlen, num);
words2num(SJ3_CONTEXT_PASS num, Num2tbl, FALSE); words2num(SJ4_CONTEXT_PASS num, Num2tbl, FALSE);
} }
void num_type04(SJ3_CONTEXT u_char* s1, u_char* s2, JREC* jrec) { void num_type04(SJ4_CONTEXT u_char* s1, u_char* s2, JREC* jrec) {
u_short num[NUMWORDBUF]; u_short num[NUMWORDBUF];
setwdnum(SJ3_CONTEXT_PASS s1, (int)jrec->numlen, num); setwdnum(SJ4_CONTEXT_PASS s1, (int)jrec->numlen, num);
words2num(SJ3_CONTEXT_PASS num, Num2tbl, FALSE); words2num(SJ4_CONTEXT_PASS num, Num2tbl, FALSE);
} }
void num_type05(SJ3_CONTEXT u_char* s1, u_char* s2, JREC* jrec) { void num_type05(SJ4_CONTEXT u_char* s1, u_char* s2, JREC* jrec) {
u_short num[NUMWORDBUF]; u_short num[NUMWORDBUF];
setwdnum(SJ3_CONTEXT_PASS s1, (int)jrec->numlen, num); setwdnum(SJ4_CONTEXT_PASS s1, (int)jrec->numlen, num);
words2num(SJ3_CONTEXT_PASS num, Num2tbl, TRUE); words2num(SJ4_CONTEXT_PASS num, Num2tbl, TRUE);
} }
void num_type06(SJ3_CONTEXT u_char* s1, u_char* s2, JREC* jrec) { void num_type06(SJ4_CONTEXT u_char* s1, u_char* s2, JREC* jrec) {
u_short num[NUMWORDBUF]; u_short num[NUMWORDBUF];
setwdnum(SJ3_CONTEXT_PASS s1, (int)jrec->numlen, num); setwdnum(SJ4_CONTEXT_PASS s1, (int)jrec->numlen, num);
words2num(SJ3_CONTEXT_PASS num, Num3tbl, FALSE); words2num(SJ4_CONTEXT_PASS num, Num3tbl, FALSE);
} }
void num_type07(SJ3_CONTEXT u_char* s1, u_char* s2, JREC* jrec) { void num_type07(SJ4_CONTEXT u_char* s1, u_char* s2, JREC* jrec) {
u_short num[NUMWORDBUF]; u_short num[NUMWORDBUF];
setwdnum(SJ3_CONTEXT_PASS s1, (int)jrec->numlen, num); setwdnum(SJ4_CONTEXT_PASS s1, (int)jrec->numlen, num);
words2num(SJ3_CONTEXT_PASS num, Num3tbl, FALSE); words2num(SJ4_CONTEXT_PASS num, Num3tbl, FALSE);
} }
static void static void
kan_num(SJ3_CONTEXT u_short* wd, u_char* tbl1, u_char* tbl2) { kan_num(SJ4_CONTEXT u_short* wd, u_char* tbl1, u_char* tbl2) {
int ii; int ii;
u_short tmp; u_short tmp;
int mask; int mask;
@ -217,23 +217,23 @@ kan_num(SJ3_CONTEXT u_short* wd, u_char* tbl1, u_char* tbl2) {
} }
} }
void num_type08(SJ3_CONTEXT u_char* s1, u_char* s2, JREC* jrec) { void num_type08(SJ4_CONTEXT u_char* s1, u_char* s2, JREC* jrec) {
u_short num[NUMWORDBUF]; u_short num[NUMWORDBUF];
setwdnum(SJ3_CONTEXT_PASS s1, (int)jrec->numlen, num); setwdnum(SJ4_CONTEXT_PASS s1, (int)jrec->numlen, num);
kan_num(SJ3_CONTEXT_PASS num, Num2tbl, Num4tbl); kan_num(SJ4_CONTEXT_PASS num, Num2tbl, Num4tbl);
} }
void num_type09(SJ3_CONTEXT u_char* s1, u_char* s2, JREC* jrec) { void num_type09(SJ4_CONTEXT u_char* s1, u_char* s2, JREC* jrec) {
u_short num[NUMWORDBUF]; u_short num[NUMWORDBUF];
setwdnum(SJ3_CONTEXT_PASS s1, (int)jrec->numlen, num); setwdnum(SJ4_CONTEXT_PASS s1, (int)jrec->numlen, num);
kan_num(SJ3_CONTEXT_PASS num, Num3tbl, Num5tbl); kan_num(SJ4_CONTEXT_PASS num, Num3tbl, Num5tbl);
} }
void num_type10(SJ3_CONTEXT u_char* s1, u_char* s2, JREC* jrec) { void num_type10(SJ4_CONTEXT u_char* s1, u_char* s2, JREC* jrec) {
int i; int i;
for(i = jrec->numlen; i > 0; i--) { for(i = jrec->numlen; i > 0; i--) {
@ -245,7 +245,7 @@ void num_type10(SJ3_CONTEXT u_char* s1, u_char* s2, JREC* jrec) {
} }
} }
void num_type11(SJ3_CONTEXT u_char* s1, u_char* s2, JREC* jrec) { void num_type11(SJ4_CONTEXT u_char* s1, u_char* s2, JREC* jrec) {
int i; int i;
int j; int j;
@ -267,7 +267,7 @@ void num_type11(SJ3_CONTEXT u_char* s1, u_char* s2, JREC* jrec) {
} }
} }
void num_type12(SJ3_CONTEXT u_char* s1, u_char* s2, JREC* jrec) { void num_type12(SJ4_CONTEXT u_char* s1, u_char* s2, JREC* jrec) {
int i; int i;
int j; int j;
@ -281,7 +281,7 @@ void num_type12(SJ3_CONTEXT u_char* s1, u_char* s2, JREC* jrec) {
} }
static void static void
num_kurai(SJ3_CONTEXT u_char* p, int len, u_char* tbl) { num_kurai(SJ4_CONTEXT u_char* p, int len, u_char* tbl) {
int i; int i;
int j; int j;
u_char tmp; u_char tmp;
@ -302,20 +302,20 @@ num_kurai(SJ3_CONTEXT u_char* p, int len, u_char* tbl) {
} }
} }
void num_type13(SJ3_CONTEXT u_char* s1, u_char* s2, JREC* jrec) { void num_type13(SJ4_CONTEXT u_char* s1, u_char* s2, JREC* jrec) {
u_char num[NUMKETALENGTH]; u_char num[NUMKETALENGTH];
int len; int len;
len = setucnum(SJ3_CONTEXT_PASS s1, (int)jrec->numlen, num); len = setucnum(SJ4_CONTEXT_PASS s1, (int)jrec->numlen, num);
num_kurai(SJ3_CONTEXT_PASS num, len, Num1tbl); num_kurai(SJ4_CONTEXT_PASS num, len, Num1tbl);
} }
void num_type14(SJ3_CONTEXT u_char* s1, u_char* s2, JREC* jrec) { void num_type14(SJ4_CONTEXT u_char* s1, u_char* s2, JREC* jrec) {
u_char num[NUMKETALENGTH]; u_char num[NUMKETALENGTH];
int len; int len;
len = setucnum(SJ3_CONTEXT_PASS s1, (int)jrec->numlen, num); len = setucnum(SJ4_CONTEXT_PASS s1, (int)jrec->numlen, num);
num_kurai(SJ3_CONTEXT_PASS num, len, Num2tbl); num_kurai(SJ4_CONTEXT_PASS num, len, Num2tbl);
} }

View file

@ -38,26 +38,26 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
static int prev_kanji(SJ3_CONTEXT2), prev_hinsi(SJ3_CONTEXT2), prev_douon(SJ3_CONTEXT2); static int prev_kanji(SJ4_CONTEXT2), prev_hinsi(SJ4_CONTEXT2), prev_douon(SJ4_CONTEXT2);
static int next_kanji(SJ3_CONTEXT2), next_hinsi(SJ3_CONTEXT2), next_douon(SJ3_CONTEXT2); static int next_kanji(SJ4_CONTEXT2), next_hinsi(SJ4_CONTEXT2), next_douon(SJ4_CONTEXT2);
static void set_kanji(SJ3_CONTEXT2), set_buf(SJ3_CONTEXT u_char*), add_yomi(SJ3_CONTEXT2); static void set_kanji(SJ4_CONTEXT2), set_buf(SJ4_CONTEXT u_char*), add_yomi(SJ4_CONTEXT2);
static void set_idxyomi(SJ3_CONTEXT2); static void set_idxyomi(SJ4_CONTEXT2);
static void cd2sjh_chr(u_char ch, u_char* dst); static void cd2sjh_chr(u_char ch, u_char* dst);
int getusr(SJ3_CONTEXT u_char* buf) { int getusr(SJ4_CONTEXT u_char* buf) {
int nlen; int nlen;
peepyomi[0] = peepknj[0] = peepgrm = 0; peepyomi[0] = peepknj[0] = peepgrm = 0;
(*curdict->getdic)(SJ3_CONTEXT_PASS curdict, peepidx = DICSEGBASE); (*curdict->getdic)(SJ4_CONTEXT_PASS curdict, peepidx = DICSEGBASE);
get_askknj(SJ3_CONTEXT_PASS2); get_askknj(SJ4_CONTEXT_PASS2);
peepdptr = segtop(); peepdptr = segtop();
if(segend(peepdptr)) return 0; if(segend(peepdptr)) return 0;
add_yomi(SJ3_CONTEXT_PASS2); add_yomi(SJ4_CONTEXT_PASS2);
nlen = getnlen(peepdptr); nlen = getnlen(peepdptr);
peephptr = peepdptr + DOUONBLKSIZENUMBER + nlen; peephptr = peepdptr + DOUONBLKSIZENUMBER + nlen;
@ -66,21 +66,21 @@ int getusr(SJ3_CONTEXT u_char* buf) {
peepkptr = peephptr + 1; peepkptr = peephptr + 1;
set_kanji(SJ3_CONTEXT_PASS2); set_kanji(SJ4_CONTEXT_PASS2);
set_buf(SJ3_CONTEXT_PASS buf); set_buf(SJ4_CONTEXT_PASS buf);
return -1; return -1;
} }
int nextusr(SJ3_CONTEXT u_char* buf) { int nextusr(SJ4_CONTEXT u_char* buf) {
(*curdict->getdic)(SJ3_CONTEXT_PASS curdict, peepidx); (*curdict->getdic)(SJ4_CONTEXT_PASS curdict, peepidx);
get_askknj(SJ3_CONTEXT_PASS2); get_askknj(SJ4_CONTEXT_PASS2);
if(next_kanji(SJ3_CONTEXT_PASS2)) { if(next_kanji(SJ4_CONTEXT_PASS2)) {
set_kanji(SJ3_CONTEXT_PASS2); set_kanji(SJ4_CONTEXT_PASS2);
set_buf(SJ3_CONTEXT_PASS buf); set_buf(SJ4_CONTEXT_PASS buf);
return -1; return -1;
} }
@ -88,14 +88,14 @@ int nextusr(SJ3_CONTEXT u_char* buf) {
return 0; return 0;
} }
int prevusr(SJ3_CONTEXT u_char* buf) { int prevusr(SJ4_CONTEXT u_char* buf) {
(*curdict->getdic)(SJ3_CONTEXT_PASS curdict, peepidx); (*curdict->getdic)(SJ4_CONTEXT_PASS curdict, peepidx);
get_askknj(SJ3_CONTEXT_PASS2); get_askknj(SJ4_CONTEXT_PASS2);
if(prev_kanji(SJ3_CONTEXT_PASS2)) { if(prev_kanji(SJ4_CONTEXT_PASS2)) {
set_kanji(SJ3_CONTEXT_PASS2); set_kanji(SJ4_CONTEXT_PASS2);
set_buf(SJ3_CONTEXT_PASS buf); set_buf(SJ4_CONTEXT_PASS buf);
return -1; return -1;
} }
@ -104,16 +104,16 @@ int prevusr(SJ3_CONTEXT u_char* buf) {
} }
static void static void
set_kanji(SJ3_CONTEXT2) { set_kanji(SJ4_CONTEXT2) {
int len; int len;
len = getkanji(SJ3_CONTEXT_PASS peepyomi, getnlen(peepdptr) + getplen(peepdptr), len = getkanji(SJ4_CONTEXT_PASS peepyomi, getnlen(peepdptr) + getplen(peepdptr),
peepkptr, peepknj); peepkptr, peepknj);
*(peepknj + len) = 0; *(peepknj + len) = 0;
} }
static void static void
set_buf(SJ3_CONTEXT u_char* buf) { set_buf(SJ4_CONTEXT u_char* buf) {
u_char* p; u_char* p;
int i, csize; int i, csize;
@ -131,12 +131,12 @@ set_buf(SJ3_CONTEXT u_char* buf) {
} }
static int static int
prev_kanji(SJ3_CONTEXT2) { prev_kanji(SJ4_CONTEXT2) {
u_char* p1; u_char* p1;
u_char* p2; u_char* p2;
p1 = peephptr + 1; p1 = peephptr + 1;
if(peepkptr <= p1) return prev_hinsi(SJ3_CONTEXT_PASS2); if(peepkptr <= p1) return prev_hinsi(SJ4_CONTEXT_PASS2);
p2 = peepkptr; p2 = peepkptr;
while(p1 < p2) { while(p1 < p2) {
@ -148,7 +148,7 @@ prev_kanji(SJ3_CONTEXT2) {
} }
static int static int
prev_hinsi(SJ3_CONTEXT2) { prev_hinsi(SJ4_CONTEXT2) {
u_char* p1; u_char* p1;
u_char* p2; u_char* p2;
int nlen; int nlen;
@ -156,7 +156,7 @@ prev_hinsi(SJ3_CONTEXT2) {
nlen = getnlen(peepdptr); nlen = getnlen(peepdptr);
p1 = peepdptr + DOUONBLKSIZENUMBER + nlen; p1 = peepdptr + DOUONBLKSIZENUMBER + nlen;
if(peephptr <= p1) return prev_douon(SJ3_CONTEXT_PASS2); if(peephptr <= p1) return prev_douon(SJ4_CONTEXT_PASS2);
p2 = peephptr; p2 = peephptr;
while(p1 < p2) { while(p1 < p2) {
@ -177,7 +177,7 @@ prev_hinsi(SJ3_CONTEXT2) {
} }
static int static int
prev_douon(SJ3_CONTEXT2) { prev_douon(SJ4_CONTEXT2) {
u_char* p1; u_char* p1;
u_char* p2; u_char* p2;
int nlen; int nlen;
@ -185,28 +185,28 @@ prev_douon(SJ3_CONTEXT2) {
if(peepdptr <= segtop()) { if(peepdptr <= segtop()) {
if(peepidx <= DICSEGBASE) return 0; if(peepidx <= DICSEGBASE) return 0;
(*curdict->getdic)(SJ3_CONTEXT_PASS curdict, --peepidx); (*curdict->getdic)(SJ4_CONTEXT_PASS curdict, --peepidx);
get_askknj(SJ3_CONTEXT_PASS2); get_askknj(SJ4_CONTEXT_PASS2);
set_idxyomi(SJ3_CONTEXT_PASS2); set_idxyomi(SJ4_CONTEXT_PASS2);
p1 = segtop(); p1 = segtop();
do { do {
peepdptr = p1; peepdptr = p1;
add_yomi(SJ3_CONTEXT_PASS2); add_yomi(SJ4_CONTEXT_PASS2);
p1 = getntag(p1); p1 = getntag(p1);
} while(!segend(p1)); } while(!segend(p1));
} else { } else {
set_idxyomi(SJ3_CONTEXT_PASS2); set_idxyomi(SJ4_CONTEXT_PASS2);
p1 = segtop(); p1 = segtop();
p2 = peepdptr; p2 = peepdptr;
do { do {
peepdptr = p1; peepdptr = p1;
add_yomi(SJ3_CONTEXT_PASS2); add_yomi(SJ4_CONTEXT_PASS2);
p1 = getntag(p1); p1 = getntag(p1);
} while(p1 < p2); } while(p1 < p2);
@ -234,12 +234,12 @@ prev_douon(SJ3_CONTEXT2) {
} }
static int static int
next_kanji(SJ3_CONTEXT2) { next_kanji(SJ4_CONTEXT2) {
u_char* p1; u_char* p1;
p1 = skipkstr(peepkptr); p1 = skipkstr(peepkptr);
if(*p1 == HINSIBLKTERM) return next_hinsi(SJ3_CONTEXT_PASS2); if(*p1 == HINSIBLKTERM) return next_hinsi(SJ4_CONTEXT_PASS2);
peepkptr = p1; peepkptr = p1;
@ -247,12 +247,12 @@ next_kanji(SJ3_CONTEXT2) {
} }
static int static int
next_hinsi(SJ3_CONTEXT2) { next_hinsi(SJ4_CONTEXT2) {
u_char* p1; u_char* p1;
p1 = skiphblk(peephptr); p1 = skiphblk(peephptr);
if(p1 >= getntag(peepdptr)) return next_douon(SJ3_CONTEXT_PASS2); if(p1 >= getntag(peepdptr)) return next_douon(SJ4_CONTEXT_PASS2);
peephptr = p1; peephptr = p1;
@ -264,7 +264,7 @@ next_hinsi(SJ3_CONTEXT2) {
} }
static int static int
next_douon(SJ3_CONTEXT2) { next_douon(SJ4_CONTEXT2) {
u_char* p1; u_char* p1;
int nlen; int nlen;
@ -272,18 +272,18 @@ next_douon(SJ3_CONTEXT2) {
if(segend(p1)) { if(segend(p1)) {
if(peepidx + 1 < curdict->segunit) { if(peepidx + 1 < curdict->segunit) {
(*curdict->getdic)(SJ3_CONTEXT_PASS curdict, ++peepidx); (*curdict->getdic)(SJ4_CONTEXT_PASS curdict, ++peepidx);
get_askknj(SJ3_CONTEXT_PASS2); get_askknj(SJ4_CONTEXT_PASS2);
peepdptr = segtop(); peepdptr = segtop();
set_idxyomi(SJ3_CONTEXT_PASS2); set_idxyomi(SJ4_CONTEXT_PASS2);
} else } else
return 0; return 0;
} else { } else {
peepdptr = p1; peepdptr = p1;
} }
add_yomi(SJ3_CONTEXT_PASS2); add_yomi(SJ4_CONTEXT_PASS2);
nlen = getnlen(peepdptr); nlen = getnlen(peepdptr);
peephptr = peepdptr + DOUONBLKSIZENUMBER + nlen; peephptr = peepdptr + DOUONBLKSIZENUMBER + nlen;
@ -296,10 +296,10 @@ next_douon(SJ3_CONTEXT2) {
} }
static void static void
set_idxyomi(SJ3_CONTEXT2) { set_idxyomi(SJ4_CONTEXT2) {
u_char *p1, *p2; u_char *p1, *p2;
if((p2 = get_idxptr(SJ3_CONTEXT_PASS peepidx))) { if((p2 = get_idxptr(SJ4_CONTEXT_PASS peepidx))) {
p1 = peepyomi; p1 = peepyomi;
while(*p2) { while(*p2) {
cd2sjh_chr(*p2++, p1); cd2sjh_chr(*p2++, p1);
@ -310,7 +310,7 @@ set_idxyomi(SJ3_CONTEXT2) {
} }
static void static void
add_yomi(SJ3_CONTEXT2) { add_yomi(SJ4_CONTEXT2) {
int nlen; int nlen;
u_char *p1, *p2; u_char *p1, *p2;

View file

@ -38,7 +38,7 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
int ph2knj(SJ3_CONTEXT u_char* zyomi, u_char* kanji, int knjlen) { int ph2knj(SJ4_CONTEXT u_char* zyomi, u_char* kanji, int knjlen) {
u_char* ptr; u_char* ptr;
u_char* dst; u_char* dst;
int i; int i;
@ -52,7 +52,7 @@ int ph2knj(SJ3_CONTEXT u_char* zyomi, u_char* kanji, int knjlen) {
} }
*dst = 0; *dst = 0;
freework(SJ3_CONTEXT_PASS2); freework(SJ4_CONTEXT_PASS2);
prevclgrm = 0; prevclgrm = 0;
prevclrow = 0; prevclrow = 0;
@ -68,38 +68,38 @@ int ph2knj(SJ3_CONTEXT u_char* zyomi, u_char* kanji, int knjlen) {
while(cnvlen && kanjilen) { while(cnvlen && kanjilen) {
if(!clt1st) { if(!clt1st) {
mkjiritu(SJ3_CONTEXT_PASS DO_CLSTUDY | DO_IKKATU); mkjiritu(SJ4_CONTEXT_PASS DO_CLSTUDY | DO_IKKATU);
mkbunsetu(SJ3_CONTEXT_PASS2); mkbunsetu(SJ4_CONTEXT_PASS2);
if(!maxclptr) wakachi(SJ3_CONTEXT_PASS2); if(!maxclptr) wakachi(SJ4_CONTEXT_PASS2);
jrt1st = maxjptr; jrt1st = maxjptr;
clt1st = maxclptr; clt1st = maxclptr;
} }
mk2claus(SJ3_CONTEXT_PASS2); mk2claus(SJ4_CONTEXT_PASS2);
selclrec(SJ3_CONTEXT_PASS2); selclrec(SJ4_CONTEXT_PASS2);
prevclgrm = selcl->jnode->hinsi; prevclgrm = selcl->jnode->hinsi;
prevclrow = selcl->right; prevclrow = selcl->right;
clt1st = free_clst(SJ3_CONTEXT_PASS clt1st, (int)selcl->cllen); clt1st = free_clst(SJ4_CONTEXT_PASS clt1st, (int)selcl->cllen);
jrt1st = free_jlst(SJ3_CONTEXT_PASS jrt1st); jrt1st = free_jlst(SJ4_CONTEXT_PASS jrt1st);
cnvstart += selcl->cllen; cnvstart += selcl->cllen;
cnvlen -= selcl->cllen; cnvlen -= selcl->cllen;
cvtphknj(SJ3_CONTEXT_PASS2); cvtphknj(SJ4_CONTEXT_PASS2);
clt1st = clt2nd; clt1st = clt2nd;
jrt1st = jrt2nd; jrt1st = jrt2nd;
} }
if(!kanjilen) { if(!kanjilen) {
free_clall(SJ3_CONTEXT_PASS clt1st); free_clall(SJ4_CONTEXT_PASS clt1st);
free_jall(SJ3_CONTEXT_PASS jrt1st); free_jall(SJ4_CONTEXT_PASS jrt1st);
} }
*kanjipos = 0; *kanjipos = 0;

View file

@ -38,54 +38,54 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
static void static void
ph_setsty(SJ3_CONTEXT CLREC* clrec) { ph_setsty(SJ4_CONTEXT CLREC* clrec) {
JREC* jrec; JREC* jrec;
TypeDicOfs offset; TypeDicOfs offset;
u_char* ptr; u_char* ptr;
STDYIN* sptr; STDYIN* sptr;
if(!seldict(SJ3_CONTEXT_PASS(jrec = clrec->jnode)->dicid)) { if(!seldict(SJ4_CONTEXT_PASS(jrec = clrec->jnode)->dicid)) {
if(!khcount) if(!khcount)
ph_setkouho(SJ3_CONTEXT_PASS clrec, (TypeDicOfs)1, (STDYIN*)NULL); ph_setkouho(SJ4_CONTEXT_PASS clrec, (TypeDicOfs)1, (STDYIN*)NULL);
return; return;
} }
(*curdict->getdic)(SJ3_CONTEXT_PASS curdict, jrec->jseg); (*curdict->getdic)(SJ4_CONTEXT_PASS curdict, jrec->jseg);
ptr = dicbuf + jrec->jofsst + 1; ptr = dicbuf + jrec->jofsst + 1;
for(; *ptr != HINSIBLKTERM; ptr = skipkstr(ptr)) { for(; *ptr != HINSIBLKTERM; ptr = skipkstr(ptr)) {
offset = ptr - dicbuf; offset = ptr - dicbuf;
sptr = srchstdy(SJ3_CONTEXT_PASS jrec->jseg, offset, jrec->dicid); sptr = srchstdy(SJ4_CONTEXT_PASS jrec->jseg, offset, jrec->dicid);
if(!khcount) { if(!khcount) {
ph_setkouho(SJ3_CONTEXT_PASS clrec, offset, sptr); ph_setkouho(SJ4_CONTEXT_PASS clrec, offset, sptr);
continue; continue;
} }
if(!sptr) continue; if(!sptr) continue;
if(sptr->styno < kouhotbl[0].styno) { if(sptr->styno < kouhotbl[0].styno) {
ph_setkouho(SJ3_CONTEXT_PASS clrec, offset, sptr); ph_setkouho(SJ4_CONTEXT_PASS clrec, offset, sptr);
} }
else if(sptr->styno == kouhotbl->styno) { else if(sptr->styno == kouhotbl->styno) {
if(!(kouhotbl[0].ka_fg && if(!(kouhotbl[0].ka_fg &&
sptr->ka_kj == kouhotbl[0].ka_kj)) { sptr->ka_kj == kouhotbl[0].ka_kj)) {
ph_setkouho(SJ3_CONTEXT_PASS clrec, offset, sptr); ph_setkouho(SJ4_CONTEXT_PASS clrec, offset, sptr);
} }
} }
} }
} }
int ph_khtbl(SJ3_CONTEXT CLREC* clrec) { int ph_khtbl(SJ4_CONTEXT CLREC* clrec) {
JREC* jrec; JREC* jrec;
int flg = FALSE; int flg = FALSE;
switch((jrec = clrec->jnode)->class) { switch((jrec = clrec->jnode)->class) {
case C_DICT: case C_DICT:
ph_setsty(SJ3_CONTEXT_PASS clrec); ph_setsty(SJ4_CONTEXT_PASS clrec);
break; break;
case C_N_ARABIA: case C_N_ARABIA:
@ -99,14 +99,14 @@ int ph_khtbl(SJ3_CONTEXT CLREC* clrec) {
case C_N_KAZULCMA: case C_N_KAZULCMA:
case C_N_SUUJILONG: case C_N_SUUJILONG:
if(jrec->jofsst) { if(jrec->jofsst) {
ph_setsty(SJ3_CONTEXT_PASS clrec); ph_setsty(SJ4_CONTEXT_PASS clrec);
break; break;
} else } else
flg = TRUE; flg = TRUE;
case C_BUNSETU: case C_BUNSETU:
case C_MINASI: case C_MINASI:
case C_WAKACHI: case C_WAKACHI:
if(!khcount) ph_setkouho(SJ3_CONTEXT_PASS clrec, (TypeDicOfs)0, (STDYIN*)0); if(!khcount) ph_setkouho(SJ4_CONTEXT_PASS clrec, (TypeDicOfs)0, (STDYIN*)0);
break; break;
} }

View file

@ -94,7 +94,7 @@ sttcnt(TypeGram hinsi1, TypeGram hinsi2) {
return 4; return 4;
} }
int priority(SJ3_CONTEXT CLREC* clrec) { int priority(SJ4_CONTEXT CLREC* clrec) {
int prty; int prty;
CLREC* cl2rec; CLREC* cl2rec;
int keeplen; int keeplen;
@ -234,7 +234,7 @@ finish:
return (prty + prev); return (prty + prev);
} }
void pritiny(SJ3_CONTEXT2) { void pritiny(SJ4_CONTEXT2) {
CLREC* clrec; CLREC* clrec;
int keeplen; int keeplen;
int i, prty = 0; int i, prty = 0;

View file

@ -35,7 +35,7 @@
#include "sj_kcnv.h" #include "sj_kcnv.h"
#include "Dict.h" #include "Dict.h"
#include "sj3err.h" #include "sj4err.h"
#include "sj_kanakan.h" #include "sj_kanakan.h"
@ -88,50 +88,50 @@ Put4byte(u_char* p, long n) {
static int static int
fgetfile(FILE* fp, long pos, long len, u_char* p) { fgetfile(FILE* fp, long pos, long len, u_char* p) {
if(fseek(fp, pos, 0) == ERROR) { if(fseek(fp, pos, 0) == ERROR) {
serv_errno = SJ3_FileSeekError; serv_errno = SJ4_FileSeekError;
return ERROR; return ERROR;
} }
if(fread(p, len, 1, fp) != 1) { if(fread(p, len, 1, fp) != 1) {
serv_errno = SJ3_FileReadError; serv_errno = SJ4_FileReadError;
return ERROR; return ERROR;
} }
return SJ3_NormalEnd; return SJ4_NormalEnd;
} }
static int static int
fputfile(FILE* fp, long pos, int len, u_char* p) { fputfile(FILE* fp, long pos, int len, u_char* p) {
if(fseek(fp, pos, 0) == ERROR) { if(fseek(fp, pos, 0) == ERROR) {
serv_errno = SJ3_FileSeekError; serv_errno = SJ4_FileSeekError;
return ERROR; return ERROR;
} }
if(fwrite(p, len, 1, fp) != 1) { if(fwrite(p, len, 1, fp) != 1) {
serv_errno = SJ3_FileWriteError; serv_errno = SJ4_FileWriteError;
return ERROR; return ERROR;
} }
return SJ3_NormalEnd; return SJ4_NormalEnd;
} }
static int static int
getfile(int fd, int pos, int len, u_char* p) { getfile(int fd, int pos, int len, u_char* p) {
if(lseek(fd, pos, L_SET) == ERROR) { if(lseek(fd, pos, L_SET) == ERROR) {
serv_errno = SJ3_FileSeekError; serv_errno = SJ4_FileSeekError;
return ERROR; return ERROR;
} }
if(read(fd, p, len) != len) { if(read(fd, p, len) != len) {
serv_errno = SJ3_FileReadError; serv_errno = SJ4_FileReadError;
return ERROR; return ERROR;
} }
return SJ3_NormalEnd; return SJ4_NormalEnd;
} }
static int static int
putfile(int fd, int pos, int len, u_char* p) { putfile(int fd, int pos, int len, u_char* p) {
if(lseek(fd, pos, L_SET) == ERROR) { if(lseek(fd, pos, L_SET) == ERROR) {
serv_errno = SJ3_FileSeekError; serv_errno = SJ4_FileSeekError;
return ERROR; return ERROR;
} }
if(write(fd, p, len) != len) { if(write(fd, p, len) != len) {
serv_errno = SJ3_FileWriteError; serv_errno = SJ4_FileWriteError;
return ERROR; return ERROR;
} }
return SJ3_NormalEnd; return SJ4_NormalEnd;
} }
static int static int
@ -160,29 +160,29 @@ search_same_dict(ino_t ino) {
} }
static int static int
getofs(SJ3_CONTEXT DictFile* dp) { getofs(SJ4_CONTEXT DictFile* dp) {
idxofs = dp->ofsptr; idxofs = dp->ofsptr;
return 0; return 0;
} }
static int static int
getidx(SJ3_CONTEXT DictFile* dp) { getidx(SJ4_CONTEXT DictFile* dp) {
idxbuf = dp->buffer + dp->idxstrt; idxbuf = dp->buffer + dp->idxstrt;
return 0; return 0;
} }
/* XXX: not IFunc */ /* XXX: not IFunc */
static int static int
getdic(SJ3_CONTEXT DictFile* dp, TypeDicSeg seg) { getdic(SJ4_CONTEXT DictFile* dp, TypeDicSeg seg) {
if(seg >= dp->dict.segunit) return -1; if(seg >= dp->dict.segunit) return -1;
dicbuf = dp->buffer + dp->segstrt + dp->dict.seglen * seg; dicbuf = dp->buffer + dp->segstrt + dp->dict.seglen * seg;
return 0; return 0;
} }
static int static int
putidx(SJ3_CONTEXT DictFile* dp) { putidx(SJ4_CONTEXT DictFile* dp) {
return putfile(dp->fd, dp->idxstrt, dp->dict.idxlen, idxbuf); return putfile(dp->fd, dp->idxstrt, dp->dict.idxlen, idxbuf);
} }
/* XXX: not IFunc */ /* XXX: not IFunc */
static int static int
putdic(SJ3_CONTEXT DictFile* dp, TypeDicSeg seg) { putdic(SJ4_CONTEXT DictFile* dp, TypeDicSeg seg) {
u_char* p; u_char* p;
long i, j; long i, j;
@ -210,7 +210,7 @@ putdic(SJ3_CONTEXT DictFile* dp, TypeDicSeg seg) {
} }
/* XXX: not IFunc */ /* XXX: not IFunc */
static int static int
rszdic(SJ3_CONTEXT DictFile* dp, TypeDicSeg seg) { rszdic(SJ4_CONTEXT DictFile* dp, TypeDicSeg seg) {
long i; long i;
u_char* p; u_char* p;
@ -235,7 +235,7 @@ rszdic(SJ3_CONTEXT DictFile* dp, TypeDicSeg seg) {
} }
DictFile* DictFile*
opendict(SJ3_CONTEXT char* name, char* passwd) { opendict(SJ4_CONTEXT char* name, char* passwd) {
FILE* fp; FILE* fp;
struct stat sbuf; struct stat sbuf;
DictFile* dfp; DictFile* dfp;
@ -245,9 +245,9 @@ opendict(SJ3_CONTEXT char* name, char* passwd) {
if(stat(name, &sbuf) == ERROR) { if(stat(name, &sbuf) == ERROR) {
if(errno == ENOENT) if(errno == ENOENT)
serv_errno = SJ3_FileNotExist; serv_errno = SJ4_FileNotExist;
else else
serv_errno = SJ3_CannotAccessFile; serv_errno = SJ4_CannotAccessFile;
return NULL; return NULL;
} }
@ -258,7 +258,7 @@ opendict(SJ3_CONTEXT char* name, char* passwd) {
if((fp = fopen(name, "r+b")) == NULL) { if((fp = fopen(name, "r+b")) == NULL) {
if((fp = fopen(name, "rb")) == NULL) { if((fp = fopen(name, "rb")) == NULL) {
serv_errno = SJ3_CannotOpenFile; serv_errno = SJ4_CannotOpenFile;
return NULL; return NULL;
} }
i = FALSE; i = FALSE;
@ -268,21 +268,21 @@ opendict(SJ3_CONTEXT char* name, char* passwd) {
if(fgetfile(fp, 0L, sizeof(tmp), tmp) == ERROR) goto error1; if(fgetfile(fp, 0L, sizeof(tmp), tmp) == ERROR) goto error1;
if(!check_dictfile(tmp)) { if(!check_dictfile(tmp)) {
serv_errno = SJ3_IllegalDictFile; serv_errno = SJ4_IllegalDictFile;
goto error1; goto error1;
} }
if(!check_passwd(tmp, passwd)) { if(!check_passwd(tmp, passwd)) {
serv_errno = SJ3_IncorrectPasswd; serv_errno = SJ4_IncorrectPasswd;
goto error1; goto error1;
} }
if((dp = (u_char*)malloc((long)sbuf.st_size)) == NULL) { if((dp = (u_char*)malloc((long)sbuf.st_size)) == NULL) {
serv_errno = SJ3_NotEnoughMemory; serv_errno = SJ4_NotEnoughMemory;
goto error1; goto error1;
} }
if((dfp = (DictFile*)malloc(sizeof(*dfp))) == NULL) { if((dfp = (DictFile*)malloc(sizeof(*dfp))) == NULL) {
serv_errno = SJ3_NotEnoughMemory; serv_errno = SJ4_NotEnoughMemory;
goto error2; goto error2;
} }
memset(dfp, '\0', sizeof(*dfp)); memset(dfp, '\0', sizeof(*dfp));
@ -312,10 +312,10 @@ opendict(SJ3_CONTEXT char* name, char* passwd) {
if(i < dfp->dict.maxunit) i = dfp->dict.maxunit; if(i < dfp->dict.maxunit) i = dfp->dict.maxunit;
i *= sizeof(TypeIdxOfs); i *= sizeof(TypeIdxOfs);
if((dfp->ofsptr = (TypeIdxOfs*)malloc(i)) == NULL) { if((dfp->ofsptr = (TypeIdxOfs*)malloc(i)) == NULL) {
serv_errno = SJ3_NotEnoughMemory; serv_errno = SJ4_NotEnoughMemory;
goto error3; goto error3;
} }
mkidxtbl(SJ3_CONTEXT_PASS & (dfp->dict)); mkidxtbl(SJ4_CONTEXT_PASS & (dfp->dict));
dfp->link = dictlink; dfp->link = dictlink;
dictlink = dfp; dictlink = dfp;
@ -332,7 +332,7 @@ error1:
return NULL; return NULL;
} }
int closedict(SJ3_CONTEXT DictFile* dfp) { int closedict(SJ4_CONTEXT DictFile* dfp) {
DictFile* df; DictFile* df;
if(--dfp->refcnt > 0) return 0; if(--dfp->refcnt > 0) return 0;
@ -356,24 +356,24 @@ int closedict(SJ3_CONTEXT DictFile* dfp) {
return 0; return 0;
} }
#ifdef SJ3_LOCK #ifdef SJ4_LOCK
static fd_set zero_fd_set; /* XXX */ static fd_set zero_fd_set; /* XXX */
#endif #endif
void lock_dict(DictFile* p, int fd) { void lock_dict(DictFile* p, int fd) {
#ifdef SJ3_LOCK #ifdef SJ4_LOCK
FD_SET(fd, &(p->lock)); FD_SET(fd, &(p->lock));
#endif #endif
} }
void unlock_dict(DictFile* p, int fd) { void unlock_dict(DictFile* p, int fd) {
#ifdef SJ3_LOCK #ifdef SJ4_LOCK
FD_CLR(fd, &(p->lock)); FD_CLR(fd, &(p->lock));
#endif #endif
} }
int is_dict_locked(DictFile* p) { int is_dict_locked(DictFile* p) {
#ifdef SJ3_LOCK #ifdef SJ4_LOCK
return memcmp(&(p->lock), &zero_fd_set, sizeof(zero_fd_set)); return memcmp(&(p->lock), &zero_fd_set, sizeof(zero_fd_set));
#else #else
return 0; return 0;
@ -411,9 +411,9 @@ openstdy(char* name, char* passwd) {
if(stat(name, &sbuf) == ERROR) { if(stat(name, &sbuf) == ERROR) {
if(errno == ENOENT) if(errno == ENOENT)
serv_errno = SJ3_FileNotExist; serv_errno = SJ4_FileNotExist;
else else
serv_errno = SJ3_CannotAccessFile; serv_errno = SJ4_CannotAccessFile;
return NULL; return NULL;
} }
@ -423,12 +423,12 @@ openstdy(char* name, char* passwd) {
} }
if((hd = (u_char*)malloc(HEADERLENGTH + COMMENTLENGTH)) == NULL) { if((hd = (u_char*)malloc(HEADERLENGTH + COMMENTLENGTH)) == NULL) {
serv_errno = SJ3_NotEnoughMemory; serv_errno = SJ4_NotEnoughMemory;
return NULL; return NULL;
} }
if((fp = fopen(name, "r+b")) == NULL) { if((fp = fopen(name, "r+b")) == NULL) {
serv_errno = SJ3_CannotOpenFile; serv_errno = SJ4_CannotOpenFile;
goto error0; goto error0;
} }
@ -436,12 +436,12 @@ openstdy(char* name, char* passwd) {
goto error1; goto error1;
if(!check_stdyfile(hd)) { if(!check_stdyfile(hd)) {
serv_errno = SJ3_IllegalStdyFile; serv_errno = SJ4_IllegalStdyFile;
goto error1; goto error1;
} }
if(!check_passwd(hd, passwd)) { if(!check_passwd(hd, passwd)) {
serv_errno = SJ3_IncorrectPasswd; serv_errno = SJ4_IncorrectPasswd;
goto error1; goto error1;
} }
@ -457,20 +457,20 @@ openstdy(char* name, char* passwd) {
len = sizeof(STDYIN) * stdymax; len = sizeof(STDYIN) * stdymax;
if((sfp = (StdyFile*)malloc(sizeof(*sfp))) == NULL) { if((sfp = (StdyFile*)malloc(sizeof(*sfp))) == NULL) {
serv_errno = SJ3_NotEnoughMemory; serv_errno = SJ4_NotEnoughMemory;
goto error1; goto error1;
} }
memset(sfp, '\0', sizeof(*sfp)); memset(sfp, '\0', sizeof(*sfp));
if((sp = (STDYIN*)malloc(len)) == NULL) { if((sp = (STDYIN*)malloc(len)) == NULL) {
serv_errno = SJ3_NotEnoughMemory; serv_errno = SJ4_NotEnoughMemory;
goto error2; goto error2;
} }
if((cip = (u_short*)malloc(clidxlen)) == NULL) { if((cip = (u_short*)malloc(clidxlen)) == NULL) {
serv_errno = SJ3_NotEnoughMemory; serv_errno = SJ4_NotEnoughMemory;
goto error3; goto error3;
} }
if((clp = (u_char*)malloc(clstdylen)) == NULL) { if((clp = (u_char*)malloc(clstdylen)) == NULL) {
serv_errno = SJ3_NotEnoughMemory; serv_errno = SJ4_NotEnoughMemory;
goto error4; goto error4;
} }
@ -538,7 +538,7 @@ int closestdy(StdyFile* sfp) {
return 0; return 0;
} }
int putstydic(SJ3_CONTEXT2) { int putstydic(SJ4_CONTEXT2) {
int fd; int fd;
u_char* hd; u_char* hd;
StdyFile* sf; StdyFile* sf;
@ -558,7 +558,7 @@ int putstydic(SJ3_CONTEXT2) {
return putfile(fd, get4byte(hd + STDYNORMPOS), len, (u_char*)sf->stdy.stdydic); return putfile(fd, get4byte(hd + STDYNORMPOS), len, (u_char*)sf->stdy.stdydic);
} }
int putcldic(SJ3_CONTEXT2) { int putcldic(SJ4_CONTEXT2) {
int fd; int fd;
u_char* hd; u_char* hd;
StdyFile* sf; StdyFile* sf;
@ -582,12 +582,12 @@ int makedict(char* path, int idxlen, int seglen, int segnum) {
int i; int i;
if(idxlen < MINIDXLEN || seglen < MINSEGLEN || segnum < MINSEGNUM) { if(idxlen < MINIDXLEN || seglen < MINSEGLEN || segnum < MINSEGNUM) {
serv_errno = SJ3_IllegalParameter; serv_errno = SJ4_IllegalParameter;
return ret; return ret;
} }
if(!(fp = fopen(path, "wb"))) { if(!(fp = fopen(path, "wb"))) {
serv_errno = SJ3_CannotCreateFile; serv_errno = SJ4_CannotCreateFile;
return ret; return ret;
} }
memset(tmp, '\0', sizeof(tmp)); memset(tmp, '\0', sizeof(tmp));
@ -596,12 +596,12 @@ int makedict(char* path, int idxlen, int seglen, int segnum) {
put4byte(tmp + DICTIDXPOS, pos); put4byte(tmp + DICTIDXPOS, pos);
put4byte(tmp + DICTIDXLEN, idxlen); put4byte(tmp + DICTIDXLEN, idxlen);
if(fseek(fp, pos, 0) == ERROR) { if(fseek(fp, pos, 0) == ERROR) {
serv_errno = SJ3_FileSeekError; serv_errno = SJ4_FileSeekError;
goto error; goto error;
} }
for(i = 0; i < idxlen; i++) for(i = 0; i < idxlen; i++)
if(putc(0, fp)) { if(putc(0, fp)) {
serv_errno = SJ3_FileWriteError; serv_errno = SJ4_FileWriteError;
goto error; goto error;
} }
pos += idxlen; pos += idxlen;
@ -611,24 +611,24 @@ int makedict(char* path, int idxlen, int seglen, int segnum) {
put4byte(tmp + DICTSEGNUM, 1); put4byte(tmp + DICTSEGNUM, 1);
put4byte(tmp + DICTSEGMAX, segnum); put4byte(tmp + DICTSEGMAX, segnum);
if(fseek(fp, pos, 0) == ERROR) { if(fseek(fp, pos, 0) == ERROR) {
serv_errno = SJ3_FileSeekError; serv_errno = SJ4_FileSeekError;
goto error; goto error;
} }
if(putc(0, fp)) { if(putc(0, fp)) {
serv_errno = SJ3_FileWriteError; serv_errno = SJ4_FileWriteError;
goto error; goto error;
} }
for(i = 1; i < seglen; i++) for(i = 1; i < seglen; i++)
if(putc(0xff, fp) != 0xff) { if(putc(0xff, fp) != 0xff) {
serv_errno = SJ3_FileWriteError; serv_errno = SJ4_FileWriteError;
goto error; goto error;
} }
if(fputfile(fp, 0L, sizeof(tmp), tmp) == SJ3_NormalEnd) if(fputfile(fp, 0L, sizeof(tmp), tmp) == SJ4_NormalEnd)
ret = SJ3_NormalEnd; ret = SJ4_NormalEnd;
error: error:
fclose(fp); fclose(fp);
if(ret != SJ3_NormalEnd) unlink(path); if(ret != SJ4_NormalEnd) unlink(path);
return ret; return ret;
} }
@ -644,16 +644,16 @@ int makestdy(char* path, int stynum, int clstep, int cllen) {
if(cllen == 0) cllen = MINCLLEN; if(cllen == 0) cllen = MINCLLEN;
if(stynum < MINSTYNUM || clstep < MINCLSTEP || cllen < MINCLLEN) { if(stynum < MINSTYNUM || clstep < MINCLSTEP || cllen < MINCLLEN) {
serv_errno = SJ3_IllegalParameter; serv_errno = SJ4_IllegalParameter;
return ret; return ret;
} }
if(stynum > MAXSTYNUM || clstep > MAXCLSTEP || cllen > MAXCLLEN) { if(stynum > MAXSTYNUM || clstep > MAXCLSTEP || cllen > MAXCLLEN) {
serv_errno = SJ3_IllegalParameter; serv_errno = SJ4_IllegalParameter;
return ret; return ret;
} }
if(!(fp = fopen(path, "wb"))) { if(!(fp = fopen(path, "wb"))) {
serv_errno = SJ3_CannotCreateFile; serv_errno = SJ4_CannotCreateFile;
return ret; return ret;
} }
memset(tmp, '\0', sizeof(tmp)); memset(tmp, '\0', sizeof(tmp));
@ -664,12 +664,12 @@ int makestdy(char* path, int stynum, int clstep, int cllen) {
put4byte(tmp + STDYCLIDXLEN, j); put4byte(tmp + STDYCLIDXLEN, j);
put4byte(tmp + STDYCLIDXSTEP, clstep); put4byte(tmp + STDYCLIDXSTEP, clstep);
if(fseek(fp, pos, 0) == ERROR) { if(fseek(fp, pos, 0) == ERROR) {
serv_errno = SJ3_FileSeekError; serv_errno = SJ4_FileSeekError;
goto error; goto error;
} }
for(i = 0; i < j; i++) for(i = 0; i < j; i++)
if(putc(0, fp)) { if(putc(0, fp)) {
serv_errno = SJ3_FileWriteError; serv_errno = SJ4_FileWriteError;
goto error; goto error;
} }
pos += j; pos += j;
@ -677,12 +677,12 @@ int makestdy(char* path, int stynum, int clstep, int cllen) {
put4byte(tmp + STDYCLSEGPOS, pos); put4byte(tmp + STDYCLSEGPOS, pos);
put4byte(tmp + STDYCLSEGLEN, cllen); put4byte(tmp + STDYCLSEGLEN, cllen);
if(fseek(fp, pos, 0) == ERROR) { if(fseek(fp, pos, 0) == ERROR) {
serv_errno = SJ3_FileSeekError; serv_errno = SJ4_FileSeekError;
goto error; goto error;
} }
for(i = 0; i < cllen; i++) for(i = 0; i < cllen; i++)
if(putc(0, fp)) { if(putc(0, fp)) {
serv_errno = SJ3_FileWriteError; serv_errno = SJ4_FileWriteError;
goto error; goto error;
} }
pos += cllen; pos += cllen;
@ -693,27 +693,27 @@ int makestdy(char* path, int stynum, int clstep, int cllen) {
put4byte(tmp + STDYNORMNUM, stynum); put4byte(tmp + STDYNORMNUM, stynum);
put4byte(tmp + STDYNORMCNT, 0); put4byte(tmp + STDYNORMCNT, 0);
if(fseek(fp, pos, 0) == ERROR) { if(fseek(fp, pos, 0) == ERROR) {
serv_errno = SJ3_FileSeekError; serv_errno = SJ4_FileSeekError;
goto error; goto error;
} }
for(i = 0; i < j; i++) { for(i = 0; i < j; i++) {
if(putc(0, fp)) { if(putc(0, fp)) {
serv_errno = SJ3_FileWriteError; serv_errno = SJ4_FileWriteError;
goto error; goto error;
} }
} }
pos += j; pos += j;
if(fputfile(fp, 0L, sizeof(tmp), tmp) == SJ3_NormalEnd) if(fputfile(fp, 0L, sizeof(tmp), tmp) == SJ4_NormalEnd)
ret = SJ3_NormalEnd; ret = SJ4_NormalEnd;
error: error:
fclose(fp); fclose(fp);
if(ret != SJ3_NormalEnd) unlink(path); if(ret != SJ4_NormalEnd) unlink(path);
return ret; return ret;
} }
void sj_closeall(SJ3_CONTEXT2) { void sj_closeall(SJ4_CONTEXT2) {
while(dictlink) closedict(SJ3_CONTEXT_PASS dictlink); while(dictlink) closedict(SJ4_CONTEXT_PASS dictlink);
while(stdylink) closestdy(stdylink); while(stdylink) closestdy(stdylink);
} }
@ -722,7 +722,7 @@ int set_dictpass(DictFile* dp, char* pass) {
return putfile(dp->fd, 0, HEADERLENGTH + COMMENTLENGTH, dp->buffer); return putfile(dp->fd, 0, HEADERLENGTH + COMMENTLENGTH, dp->buffer);
} }
int set_stdypass(SJ3_CONTEXT char* pass) { int set_stdypass(SJ4_CONTEXT char* pass) {
StdyFile* sp; StdyFile* sp;
sp = (StdyFile*)stdy_base; sp = (StdyFile*)stdy_base;
@ -740,7 +740,7 @@ int set_dictcmnt(DictFile* dp, char* cmnt) {
return putfile(dp->fd, 0, HEADERLENGTH + COMMENTLENGTH, dp->buffer); return putfile(dp->fd, 0, HEADERLENGTH + COMMENTLENGTH, dp->buffer);
} }
int set_stdycmnt(SJ3_CONTEXT char* cmnt) { int set_stdycmnt(SJ4_CONTEXT char* cmnt) {
StdyFile* sp; StdyFile* sp;
sp = (StdyFile*)stdy_base; sp = (StdyFile*)stdy_base;
@ -748,7 +748,7 @@ int set_stdycmnt(SJ3_CONTEXT char* cmnt) {
return putfile(sp->fd, 0, HEADERLENGTH + COMMENTLENGTH, sp->header); return putfile(sp->fd, 0, HEADERLENGTH + COMMENTLENGTH, sp->header);
} }
int get_stdysize(SJ3_CONTEXT int* stynum, int* clstep, int* cllen) { int get_stdysize(SJ4_CONTEXT int* stynum, int* clstep, int* cllen) {
*stynum = STUDYMAX; *stynum = STUDYMAX;
*clstep = CLSTUDYSTEP; *clstep = CLSTUDYSTEP;
*cllen = CLSTUDYLEN; *cllen = CLSTUDYLEN;

View file

@ -36,7 +36,7 @@
#include "sj_kcnv.h" #include "sj_kcnv.h"
#include "sj_kanakan.h" #include "sj_kanakan.h"
void selclrec(SJ3_CONTEXT2) { void selclrec(SJ4_CONTEXT2) {
int len; int len;
CLREC* rec; CLREC* rec;
@ -77,18 +77,18 @@ void selclrec(SJ3_CONTEXT2) {
int klen; int klen;
u_char ch; u_char ch;
free_clall(SJ3_CONTEXT_PASS clt1st); free_clall(SJ4_CONTEXT_PASS clt1st);
free_jall(SJ3_CONTEXT_PASS jrt1st); free_jall(SJ4_CONTEXT_PASS jrt1st);
klen = cnvlen; klen = cnvlen;
cnvlen = len; cnvlen = len;
ch = *(cnvstart + len); ch = *(cnvstart + len);
*(cnvstart + len) = 0; *(cnvstart + len) = 0;
mkjiritu(SJ3_CONTEXT_PASS DO_IKKATU); mkjiritu(SJ4_CONTEXT_PASS DO_IKKATU);
mkbunsetu(SJ3_CONTEXT_PASS2); mkbunsetu(SJ4_CONTEXT_PASS2);
if(!maxclptr) wakachi(SJ3_CONTEXT_PASS2); if(!maxclptr) wakachi(SJ4_CONTEXT_PASS2);
jrt1st = maxjptr; jrt1st = maxjptr;
selcl = clt1st = maxclptr; selcl = clt1st = maxclptr;
@ -97,8 +97,8 @@ void selclrec(SJ3_CONTEXT2) {
*(cnvstart + len) = ch; *(cnvstart + len) = ch;
} }
free_clall(SJ3_CONTEXT_PASS clt2nd); free_clall(SJ4_CONTEXT_PASS clt2nd);
clt2nd = NULL; clt2nd = NULL;
free_jall(SJ3_CONTEXT_PASS jrt2nd); free_jall(SJ4_CONTEXT_PASS jrt2nd);
jrt2nd = NULL; jrt2nd = NULL;
} }

View file

@ -107,7 +107,7 @@ cnvrow(JREC* rec, TypeCnct row) {
return row; return row;
} }
int setconj(SJ3_CONTEXT TypeGram hinsi, JREC* jrec, CREC* crec) { int setconj(SJ4_CONTEXT TypeGram hinsi, JREC* jrec, CREC* crec) {
u_char* yptr; u_char* yptr;
int cmp; int cmp;
TypeCnct right; TypeCnct right;

View file

@ -39,11 +39,11 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
int setj_atrb(SJ3_CONTEXT u_char* p) { int setj_atrb(SJ4_CONTEXT u_char* p) {
return 2; return 2;
} }
int setj_ofs(SJ3_CONTEXT u_char* p) { int setj_ofs(SJ4_CONTEXT u_char* p) {
int contf = TRUE; int contf = TRUE;
p = dicbuf + ((*p & KANJICODEMASK) << 8) + *(p + 1); p = dicbuf + ((*p & KANJICODEMASK) << 8) + *(p + 1);
@ -52,27 +52,27 @@ int setj_ofs(SJ3_CONTEXT u_char* p) {
if(p[codesize(*p)] == KANJISTREND) contf = FALSE; if(p[codesize(*p)] == KANJISTREND) contf = FALSE;
switch(*p & KANJIMODEMASK) { switch(*p & KANJIMODEMASK) {
case ZENHIRAASSYUKU: case ZENHIRAASSYUKU:
p += setj_norm1(SJ3_CONTEXT_PASS p); p += setj_norm1(SJ4_CONTEXT_PASS p);
break; break;
case ZENKATAASSYUKU: case ZENKATAASSYUKU:
p += setj_norm1(SJ3_CONTEXT_PASS p); p += setj_norm1(SJ4_CONTEXT_PASS p);
break; break;
case OFFSETASSYUKU: case OFFSETASSYUKU:
p += setj_ofs(SJ3_CONTEXT_PASS p); p += setj_ofs(SJ4_CONTEXT_PASS p);
break; break;
case AIATTRIBUTE: case AIATTRIBUTE:
p += setj_atrb(SJ3_CONTEXT_PASS p); p += setj_atrb(SJ4_CONTEXT_PASS p);
break; break;
case LEADINGHANKAKU: case LEADINGHANKAKU:
p += setj_norm2(SJ3_CONTEXT_PASS p); p += setj_norm2(SJ4_CONTEXT_PASS p);
break; break;
case KANJIASSYUKU: case KANJIASSYUKU:
p += setj_knj(SJ3_CONTEXT_PASS p); p += setj_knj(SJ4_CONTEXT_PASS p);
break; break;
case KANJISTREND: case KANJISTREND:
@ -80,14 +80,14 @@ int setj_ofs(SJ3_CONTEXT u_char* p) {
break; break;
default: default:
p += setj_norm2(SJ3_CONTEXT_PASS p); p += setj_norm2(SJ4_CONTEXT_PASS p);
} }
} while(contf); } while(contf);
return 2; return 2;
} }
int setj_knj(SJ3_CONTEXT u_char* p) { int setj_knj(SJ4_CONTEXT u_char* p) {
int contf = TRUE; int contf = TRUE;
p = askknj[*p & KNJASSYUKUMASK]; p = askknj[*p & KNJASSYUKUMASK];
@ -96,27 +96,27 @@ int setj_knj(SJ3_CONTEXT u_char* p) {
if(p[codesize(*p)] == KANJISTREND) contf = FALSE; if(p[codesize(*p)] == KANJISTREND) contf = FALSE;
switch(*p & KANJIMODEMASK) { switch(*p & KANJIMODEMASK) {
case ZENHIRAASSYUKU: case ZENHIRAASSYUKU:
p += setj_norm1(SJ3_CONTEXT_PASS p); p += setj_norm1(SJ4_CONTEXT_PASS p);
break; break;
case ZENKATAASSYUKU: case ZENKATAASSYUKU:
p += setj_norm1(SJ3_CONTEXT_PASS p); p += setj_norm1(SJ4_CONTEXT_PASS p);
break; break;
case OFFSETASSYUKU: case OFFSETASSYUKU:
p += setj_ofs(SJ3_CONTEXT_PASS p); p += setj_ofs(SJ4_CONTEXT_PASS p);
break; break;
case AIATTRIBUTE: case AIATTRIBUTE:
p += setj_atrb(SJ3_CONTEXT_PASS p); p += setj_atrb(SJ4_CONTEXT_PASS p);
break; break;
case LEADINGHANKAKU: case LEADINGHANKAKU:
p += setj_norm2(SJ3_CONTEXT_PASS p); p += setj_norm2(SJ4_CONTEXT_PASS p);
break; break;
case KANJIASSYUKU: case KANJIASSYUKU:
p += setj_knj(SJ3_CONTEXT_PASS p); p += setj_knj(SJ4_CONTEXT_PASS p);
break; break;
case KANJISTREND: case KANJISTREND:
@ -124,27 +124,27 @@ int setj_knj(SJ3_CONTEXT u_char* p) {
break; break;
default: default:
p += setj_norm2(SJ3_CONTEXT_PASS p); p += setj_norm2(SJ4_CONTEXT_PASS p);
} }
} while(contf); } while(contf);
return 1; return 1;
} }
int setj_norm1(SJ3_CONTEXT u_char* p) { int setj_norm1(SJ4_CONTEXT u_char* p) {
return 1; return 1;
} }
int setj_norm2(SJ3_CONTEXT u_char* p) { int setj_norm2(SJ4_CONTEXT u_char* p) {
return 2; return 2;
} }
int setj_norm3(SJ3_CONTEXT u_char* p) { int setj_norm3(SJ4_CONTEXT u_char* p) {
return 3; return 3;
} }
static u_char static u_char
chkhead(SJ3_CONTEXT TypeGram gram) { chkhead(SJ4_CONTEXT TypeGram gram) {
if(!headcode) return TRUE; if(!headcode) return TRUE;
if(headcode == SETTOU_DAI) { if(headcode == SETTOU_DAI) {
@ -162,7 +162,7 @@ chkhead(SJ3_CONTEXT TypeGram gram) {
return FALSE; return FALSE;
} }
void setjrec(SJ3_CONTEXT u_char* tagp, int mode) { void setjrec(SJ4_CONTEXT u_char* tagp, int mode) {
TypeGram gram; TypeGram gram;
u_char* ptr; u_char* ptr;
u_char* endp; u_char* endp;
@ -187,27 +187,27 @@ void setjrec(SJ3_CONTEXT u_char* tagp, int mode) {
for(tmp = ptr + 1; *tmp != HINSIBLKTERM;) { for(tmp = ptr + 1; *tmp != HINSIBLKTERM;) {
switch(*tmp & KANJIMODEMASK) { switch(*tmp & KANJIMODEMASK) {
case ZENHIRAASSYUKU: case ZENHIRAASSYUKU:
tmp += setj_norm1(SJ3_CONTEXT_PASS tmp); tmp += setj_norm1(SJ4_CONTEXT_PASS tmp);
break; break;
case ZENKATAASSYUKU: case ZENKATAASSYUKU:
tmp += setj_norm1(SJ3_CONTEXT_PASS tmp); tmp += setj_norm1(SJ4_CONTEXT_PASS tmp);
break; break;
case OFFSETASSYUKU: case OFFSETASSYUKU:
tmp += setj_ofs(SJ3_CONTEXT_PASS tmp); tmp += setj_ofs(SJ4_CONTEXT_PASS tmp);
break; break;
case AIATTRIBUTE: case AIATTRIBUTE:
tmp += setj_atrb(SJ3_CONTEXT_PASS tmp); tmp += setj_atrb(SJ4_CONTEXT_PASS tmp);
break; break;
case LEADINGHANKAKU: case LEADINGHANKAKU:
tmp += setj_norm2(SJ3_CONTEXT_PASS tmp); tmp += setj_norm2(SJ4_CONTEXT_PASS tmp);
break; break;
case KANJIASSYUKU: case KANJIASSYUKU:
tmp += setj_knj(SJ3_CONTEXT_PASS tmp); tmp += setj_knj(SJ4_CONTEXT_PASS tmp);
break; break;
case KANJISTREND: case KANJISTREND:
@ -215,15 +215,15 @@ void setjrec(SJ3_CONTEXT u_char* tagp, int mode) {
break; break;
default: default:
tmp += setj_norm2(SJ3_CONTEXT_PASS tmp); tmp += setj_norm2(SJ4_CONTEXT_PASS tmp);
} }
} }
if((gram = *ptr) == IKKATU && !(mode & DO_IKKATU)) continue; if((gram = *ptr) == IKKATU && !(mode & DO_IKKATU)) continue;
if(!chkhead(SJ3_CONTEXT_PASS gram)) continue; if(!chkhead(SJ4_CONTEXT_PASS gram)) continue;
if(!(rec = argjrec(SJ3_CONTEXT_PASS len, (JREC*)NULL))) continue; if(!(rec = argjrec(SJ4_CONTEXT_PASS len, (JREC*)NULL))) continue;
rec->jseg = prevseg; rec->jseg = prevseg;
rec->jofsst = ptr - dicbuf; rec->jofsst = ptr - dicbuf;
@ -235,7 +235,7 @@ void setjrec(SJ3_CONTEXT u_char* tagp, int mode) {
} }
} }
void setnumrec(SJ3_CONTEXT u_char* tagp, JREC* rec, TypeGram gram) { void setnumrec(SJ4_CONTEXT u_char* tagp, JREC* rec, TypeGram gram) {
u_char* ptr; u_char* ptr;
u_char* endp; u_char* endp;
u_char* tmp; u_char* tmp;
@ -255,27 +255,27 @@ void setnumrec(SJ3_CONTEXT u_char* tagp, JREC* rec, TypeGram gram) {
for(tmp = ptr + 1; *tmp != HINSIBLKTERM;) { for(tmp = ptr + 1; *tmp != HINSIBLKTERM;) {
switch(*tmp & KANJIMODEMASK) { switch(*tmp & KANJIMODEMASK) {
case ZENHIRAASSYUKU: case ZENHIRAASSYUKU:
tmp += setj_norm1(SJ3_CONTEXT_PASS tmp); tmp += setj_norm1(SJ4_CONTEXT_PASS tmp);
break; break;
case ZENKATAASSYUKU: case ZENKATAASSYUKU:
tmp += setj_norm1(SJ3_CONTEXT_PASS tmp); tmp += setj_norm1(SJ4_CONTEXT_PASS tmp);
break; break;
case OFFSETASSYUKU: case OFFSETASSYUKU:
tmp += setj_ofs(SJ3_CONTEXT_PASS tmp); tmp += setj_ofs(SJ4_CONTEXT_PASS tmp);
break; break;
case AIATTRIBUTE: case AIATTRIBUTE:
tmp += setj_atrb(SJ3_CONTEXT_PASS tmp); tmp += setj_atrb(SJ4_CONTEXT_PASS tmp);
break; break;
case LEADINGHANKAKU: case LEADINGHANKAKU:
tmp += setj_norm2(SJ3_CONTEXT_PASS tmp); tmp += setj_norm2(SJ4_CONTEXT_PASS tmp);
break; break;
case KANJIASSYUKU: case KANJIASSYUKU:
tmp += setj_knj(SJ3_CONTEXT_PASS tmp); tmp += setj_knj(SJ4_CONTEXT_PASS tmp);
break; break;
case KANJISTREND: case KANJISTREND:
@ -283,13 +283,13 @@ void setnumrec(SJ3_CONTEXT u_char* tagp, JREC* rec, TypeGram gram) {
break; break;
default: default:
tmp += setj_norm2(SJ3_CONTEXT_PASS tmp); tmp += setj_norm2(SJ4_CONTEXT_PASS tmp);
} }
} }
if(gram != *ptr) continue; if(gram != *ptr) continue;
if(!(jrec = argjrec(SJ3_CONTEXT_PASS(int)(rec->jlen + len), rec))) continue; if(!(jrec = argjrec(SJ4_CONTEXT_PASS(int)(rec->jlen + len), rec))) continue;
jrec->jseg = prevseg; jrec->jseg = prevseg;
jrec->jofsst = ptr - dicbuf; jrec->jofsst = ptr - dicbuf;
@ -298,10 +298,10 @@ void setnumrec(SJ3_CONTEXT u_char* tagp, JREC* rec, TypeGram gram) {
} }
} }
void setcrec(SJ3_CONTEXT u_char* tagp) { void setcrec(SJ4_CONTEXT u_char* tagp) {
JREC* rec; JREC* rec;
if(!(rec = argjrec(SJ3_CONTEXT_PASS(int) ClYomiLen(tagp), (JREC*)NULL))) return; if(!(rec = argjrec(SJ4_CONTEXT_PASS(int) ClYomiLen(tagp), (JREC*)NULL))) return;
rec->jofsst = tagp - CLSTUDYDICT; rec->jofsst = tagp - CLSTUDYDICT;
rec->class = C_BUNSETU; rec->class = C_BUNSETU;

View file

@ -39,9 +39,9 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
static int hiraknj(SJ3_CONTEXT u_char*); static int hiraknj(SJ4_CONTEXT u_char*);
void setkouho(SJ3_CONTEXT CLREC* clrec, TypeDicOfs offs, int mode) { void setkouho(SJ4_CONTEXT CLREC* clrec, TypeDicOfs offs, int mode) {
JREC* jrec; JREC* jrec;
KHREC* kptr; KHREC* kptr;
u_char* fptr; u_char* fptr;
@ -85,7 +85,7 @@ void setkouho(SJ3_CONTEXT CLREC* clrec, TypeDicOfs offs, int mode) {
kptr->sttfg = 1; kptr->sttfg = 1;
kptr->sttkj = 0; kptr->sttkj = 0;
i = hiraknj(SJ3_CONTEXT_PASS dicbuf + offs); i = hiraknj(SJ4_CONTEXT_PASS dicbuf + offs);
if(offs > 1 && (i == 2 || i == 3)) return; if(offs > 1 && (i == 2 || i == 3)) return;
if(khcount >= MAXKOUHONUMBER) return; if(khcount >= MAXKOUHONUMBER) return;
@ -118,7 +118,7 @@ void setkouho(SJ3_CONTEXT CLREC* clrec, TypeDicOfs offs, int mode) {
} }
} }
void ph_setkouho(SJ3_CONTEXT CLREC* clrec, TypeDicOfs offs, STDYIN* sptr) { void ph_setkouho(SJ4_CONTEXT CLREC* clrec, TypeDicOfs offs, STDYIN* sptr) {
JREC* jrec; JREC* jrec;
u_char* p; u_char* p;
@ -154,7 +154,7 @@ void ph_setkouho(SJ3_CONTEXT CLREC* clrec, TypeDicOfs offs, STDYIN* sptr) {
} }
static int static int
hiraknj(SJ3_CONTEXT u_char* p) { hiraknj(SJ4_CONTEXT u_char* p) {
char flg = TRUE; char flg = TRUE;
int i; int i;
int result; int result;
@ -163,31 +163,31 @@ hiraknj(SJ3_CONTEXT u_char* p) {
if(p[codesize(*p)] == KANJISTREND) flg = FALSE; if(p[codesize(*p)] == KANJISTREND) flg = FALSE;
switch(*p & KANJIMODEMASK) { switch(*p & KANJIMODEMASK) {
case ZENHIRAASSYUKU: case ZENHIRAASSYUKU:
result = hiraknj_hask(SJ3_CONTEXT_PASS p, &i); result = hiraknj_hask(SJ4_CONTEXT_PASS p, &i);
break; break;
case ZENKATAASSYUKU: case ZENKATAASSYUKU:
result = hiraknj_kask(SJ3_CONTEXT_PASS p, &i); result = hiraknj_kask(SJ4_CONTEXT_PASS p, &i);
break; break;
case OFFSETASSYUKU: case OFFSETASSYUKU:
result = hiraknj_ofs(SJ3_CONTEXT_PASS p, &i); result = hiraknj_ofs(SJ4_CONTEXT_PASS p, &i);
break; break;
case AIATTRIBUTE: case AIATTRIBUTE:
result = hiraknj_atrb(SJ3_CONTEXT_PASS p, &i); result = hiraknj_atrb(SJ4_CONTEXT_PASS p, &i);
break; break;
case LEADINGHANKAKU: case LEADINGHANKAKU:
result = hiraknj_norm(SJ3_CONTEXT_PASS p, &i); result = hiraknj_norm(SJ4_CONTEXT_PASS p, &i);
break; break;
case KANJIASSYUKU: case KANJIASSYUKU:
result = hiraknj_knj(SJ3_CONTEXT_PASS p, &i); result = hiraknj_knj(SJ4_CONTEXT_PASS p, &i);
break; break;
default: default:
result = hiraknj_hira(SJ3_CONTEXT_PASS p, &i); result = hiraknj_hira(SJ4_CONTEXT_PASS p, &i);
} }
if(result) return result; if(result) return result;
@ -198,37 +198,37 @@ hiraknj(SJ3_CONTEXT u_char* p) {
return 0; return 0;
} }
int hiraknj_atrb(SJ3_CONTEXT u_char* p, int* len) { int hiraknj_atrb(SJ4_CONTEXT u_char* p, int* len) {
*len = 2; *len = 2;
return 0; return 0;
} }
int hiraknj_ofs(SJ3_CONTEXT u_char* p, int* len) { int hiraknj_ofs(SJ4_CONTEXT u_char* p, int* len) {
*len = 2; *len = 2;
return hiraknj(SJ3_CONTEXT_PASS dicbuf + ((*p & KANJICODEMASK) << 8) + *(p + 1)); return hiraknj(SJ4_CONTEXT_PASS dicbuf + ((*p & KANJICODEMASK) << 8) + *(p + 1));
} }
int hiraknj_knj(SJ3_CONTEXT u_char* p, int* len) { int hiraknj_knj(SJ4_CONTEXT u_char* p, int* len) {
*len = 1; *len = 1;
return hiraknj(SJ3_CONTEXT_PASS askknj[*p & KNJASSYUKUMASK]); return hiraknj(SJ4_CONTEXT_PASS askknj[*p & KNJASSYUKUMASK]);
} }
int hiraknj_hask(SJ3_CONTEXT u_char* p, int* len) { int hiraknj_hask(SJ4_CONTEXT u_char* p, int* len) {
*len = 1; *len = 1;
return 2; return 2;
} }
int hiraknj_kask(SJ3_CONTEXT u_char* p, int* len) { int hiraknj_kask(SJ4_CONTEXT u_char* p, int* len) {
*len = 1; *len = 1;
return 3; return 3;
} }
int hiraknj_norm(SJ3_CONTEXT u_char* p, int* len) { int hiraknj_norm(SJ4_CONTEXT u_char* p, int* len) {
*len = codesize(*p); *len = codesize(*p);
return 1; return 1;
} }
int hiraknj_hira(SJ3_CONTEXT u_char* p, int* len) { int hiraknj_hira(SJ4_CONTEXT u_char* p, int* len) {
u_char ch; u_char ch;
*len = codesize(*p); *len = codesize(*p);

View file

@ -45,7 +45,7 @@ getstb(TypeGram hinsi) {
return Stbadr(hinsi); return Stbadr(hinsi);
} }
void setubi(SJ3_CONTEXT JREC* rec, u_char* stbtbl) { void setubi(SJ4_CONTEXT JREC* rec, u_char* stbtbl) {
u_char* stb; u_char* stb;
u_char* yptr; u_char* yptr;
u_char* sptr; u_char* sptr;
@ -68,7 +68,7 @@ void setubi(SJ3_CONTEXT JREC* rec, u_char* stbtbl) {
if((cmp != MATCH) || isdpnd(*(yptr + slen))) continue; if((cmp != MATCH) || isdpnd(*(yptr + slen))) continue;
if(!(new = argjrec(SJ3_CONTEXT_PASS(int)(rec->jlen + slen), rec))) continue; if(!(new = argjrec(SJ4_CONTEXT_PASS(int)(rec->jlen + slen), rec))) continue;
new->stbofs = (u_char)(stb - stbtbl); new->stbofs = (u_char)(stb - stbtbl);
new->flags |= StbBakeru(stb) ? JFLAG_KA : 0; new->flags |= StbBakeru(stb) ? JFLAG_KA : 0;

View file

@ -37,7 +37,7 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
int yomicmp(SJ3_CONTEXT u_char* ptr1, u_char* ptr2, u_char* saml) { int yomicmp(SJ4_CONTEXT u_char* ptr1, u_char* ptr2, u_char* saml) {
int i, j; int i, j;
int same; int same;
@ -47,7 +47,7 @@ int yomicmp(SJ3_CONTEXT u_char* ptr1, u_char* ptr2, u_char* saml) {
j = getnlen(ptr2); j = getnlen(ptr2);
if(j == 0) { if(j == 0) {
ptr2 = get_idxptr(SJ3_CONTEXT_PASS prevseg); ptr2 = get_idxptr(SJ4_CONTEXT_PASS prevseg);
for(i = same; i; i--) for(i = same; i; i--)
if(*ptr1++ != *ptr2++) return OVER; if(*ptr1++ != *ptr2++) return OVER;
@ -79,7 +79,7 @@ int yomicmp(SJ3_CONTEXT u_char* ptr1, u_char* ptr2, u_char* saml) {
} }
u_char* u_char*
srchdict(SJ3_CONTEXT u_char* tagp) { srchdict(SJ4_CONTEXT u_char* tagp) {
TypeDicSeg segno; TypeDicSeg segno;
int cmp; int cmp;
int maxlen; int maxlen;
@ -88,9 +88,9 @@ srchdict(SJ3_CONTEXT u_char* tagp) {
while((int)dicinl <= maxlen) { while((int)dicinl <= maxlen) {
segno = srchidx(SJ3_CONTEXT_PASS prevseg, (int)dicinl); segno = srchidx(SJ4_CONTEXT_PASS prevseg, (int)dicinl);
(*curdict->getdic)(SJ3_CONTEXT_PASS curdict, segno); (*curdict->getdic)(SJ4_CONTEXT_PASS curdict, segno);
if(prevseg != segno) { if(prevseg != segno) {
@ -109,20 +109,20 @@ srchdict(SJ3_CONTEXT u_char* tagp) {
if(segno >= curdict->segunit) return NULL; if(segno >= curdict->segunit) return NULL;
(*curdict->getdic)(SJ3_CONTEXT_PASS curdict, segno); (*curdict->getdic)(SJ4_CONTEXT_PASS curdict, segno);
tagp = dicbuf; tagp = dicbuf;
} }
} }
if(tagp == dicbuf) { if(tagp == dicbuf) {
get_askknj(SJ3_CONTEXT_PASS2); get_askknj(SJ4_CONTEXT_PASS2);
tagp += *tagp + 1; tagp += *tagp + 1;
} }
while(!segend(tagp)) { while(!segend(tagp)) {
cmp = yomicmp(SJ3_CONTEXT_PASS cnvstart, tagp, &dicsaml); cmp = yomicmp(SJ4_CONTEXT_PASS cnvstart, tagp, &dicsaml);
if((int)dicsaml > maxlen) return NULL; if((int)dicsaml > maxlen) return NULL;

View file

@ -38,7 +38,7 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
int srchhead(SJ3_CONTEXT2) { int srchhead(SJ4_CONTEXT2) {
if(*cnvstart == _O) { if(*cnvstart == _O) {
headcode = SETTOU_O; headcode = SETTOU_O;
headlen = 1; headlen = 1;

View file

@ -38,7 +38,7 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
TypeDicSeg TypeDicSeg
srchidx(SJ3_CONTEXT TypeDicSeg low, int len) { srchidx(SJ4_CONTEXT TypeDicSeg low, int len) {
TypeDicSeg high; TypeDicSeg high;
TypeDicSeg mid; TypeDicSeg mid;
int cmp; int cmp;
@ -52,7 +52,7 @@ srchidx(SJ3_CONTEXT TypeDicSeg low, int len) {
mid = (low + high) >> 1; mid = (low + high) >> 1;
target = get_idxptr(SJ3_CONTEXT_PASS mid); target = get_idxptr(SJ4_CONTEXT_PASS mid);
cmp = istrcmp(cnvstart, target, len, sstrlen(target)); cmp = istrcmp(cnvstart, target, len, sstrlen(target));

View file

@ -41,10 +41,10 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
static void srch_kurai1(SJ3_CONTEXT u_char*, u_char*), srch_kurai2(SJ3_CONTEXT u_char*, u_char*); static void srch_kurai1(SJ4_CONTEXT u_char*, u_char*), srch_kurai2(SJ4_CONTEXT u_char*, u_char*);
static void static void
srch_josuu_sub(SJ3_CONTEXT JREC* jrec, TypeGram gram) { srch_josuu_sub(SJ4_CONTEXT JREC* jrec, TypeGram gram) {
u_char* tagp; u_char* tagp;
DICTL* dp; DICTL* dp;
@ -53,12 +53,12 @@ srch_josuu_sub(SJ3_CONTEXT JREC* jrec, TypeGram gram) {
dicinl = 1; dicinl = 1;
dicsaml = 0; dicsaml = 0;
prevseg = -1; prevseg = -1;
while((tagp = srchdict(SJ3_CONTEXT_PASS tagp))) setnumrec(SJ3_CONTEXT_PASS tagp, jrec, gram); while((tagp = srchdict(SJ4_CONTEXT_PASS tagp))) setnumrec(SJ4_CONTEXT_PASS tagp, jrec, gram);
} }
} }
static void static void
srch_josuu(SJ3_CONTEXT JREC* jrec) { srch_josuu(SJ4_CONTEXT JREC* jrec) {
u_char* kp; u_char* kp;
int klen; int klen;
int len; int len;
@ -71,16 +71,16 @@ srch_josuu(SJ3_CONTEXT JREC* jrec) {
cnvstart += (len = jrec->numlen); cnvstart += (len = jrec->numlen);
cnvlen -= len; cnvlen -= len;
srch_josuu_sub(SJ3_CONTEXT_PASS jrec, JOSUUSI); srch_josuu_sub(SJ4_CONTEXT_PASS jrec, JOSUUSI);
if(!headcode) srch_josuu_sub(SJ3_CONTEXT_PASS jrec, JOSUUSI2); if(!headcode) srch_josuu_sub(SJ4_CONTEXT_PASS jrec, JOSUUSI2);
cnvstart = kp; cnvstart = kp;
cnvlen = klen; cnvlen = klen;
} }
static void static void
setnrec_sub(SJ3_CONTEXT u_char* p, u_short flag, int stb) { setnrec_sub(SJ4_CONTEXT u_char* p, u_short flag, int stb) {
JREC* rec; JREC* rec;
int len1; int len1;
int len2; int len2;
@ -101,7 +101,7 @@ setnrec_sub(SJ3_CONTEXT u_char* p, u_short flag, int stb) {
return; return;
} }
if((rec = argjrec(SJ3_CONTEXT_PASS len1, (JREC*)NULL))) { if((rec = argjrec(SJ4_CONTEXT_PASS len1, (JREC*)NULL))) {
rec->class = suuji_class; rec->class = suuji_class;
rec->hinsi = SUUSI; rec->hinsi = SUUSI;
rec->sttofs = headcode; rec->sttofs = headcode;
@ -109,16 +109,16 @@ setnrec_sub(SJ3_CONTEXT u_char* p, u_short flag, int stb) {
rec->flags = flag; rec->flags = flag;
rec->numlen = (u_char)len2; rec->numlen = (u_char)len2;
if(!stb) srch_josuu(SJ3_CONTEXT_PASS rec); if(!stb) srch_josuu(SJ4_CONTEXT_PASS rec);
} }
} }
static void static void
setnrec(SJ3_CONTEXT u_char* p, u_short flag) { setnrec(SJ4_CONTEXT u_char* p, u_short flag) {
setnrec_sub(SJ3_CONTEXT_PASS p, flag, 0); setnrec_sub(SJ4_CONTEXT_PASS p, flag, 0);
if(!headcode && (*p == Y_S_KIGOU2)) { if(!headcode && (*p == Y_S_KIGOU2)) {
setnrec_sub(SJ3_CONTEXT_PASS p + 1, flag, -1); setnrec_sub(SJ4_CONTEXT_PASS p + 1, flag, -1);
} }
} }
@ -174,7 +174,7 @@ string_cmp(u_char* s, int l, u_char* d) {
} }
static int static int
check_num(SJ3_CONTEXT u_char* ptr) { check_num(SJ4_CONTEXT u_char* ptr) {
int i; int i;
int j; int j;
int k; int k;
@ -256,13 +256,13 @@ check_num(SJ3_CONTEXT u_char* ptr) {
if(cnt > 1) flag |= JFLAG_NSN; if(cnt > 1) flag |= JFLAG_NSN;
setnrec(SJ3_CONTEXT_PASS ptr, flag); setnrec(SJ4_CONTEXT_PASS ptr, flag);
return TRUE; return TRUE;
} }
static void static void
srch_number1(SJ3_CONTEXT u_char* ptr) { srch_number1(SJ4_CONTEXT u_char* ptr) {
u_char ch; u_char ch;
u_char mode; u_char mode;
u_char* p; u_char* p;
@ -291,19 +291,19 @@ srch_number1(SJ3_CONTEXT u_char* ptr) {
case C_N_ARABIA: case C_N_ARABIA:
if(!(mode & SJTBLNARABIAF)) break; if(!(mode & SJTBLNARABIAF)) break;
check_num(SJ3_CONTEXT_PASS tptr); check_num(SJ4_CONTEXT_PASS tptr);
srch_number1(SJ3_CONTEXT_PASS tptr); srch_number1(SJ4_CONTEXT_PASS tptr);
srch_kurai2(SJ3_CONTEXT_PASS tptr, (u_char*)NULL); srch_kurai2(SJ4_CONTEXT_PASS tptr, (u_char*)NULL);
break; break;
case C_N_SUUJI: case C_N_SUUJI:
if(mode & (SJTBLNARABIAF | SJTBLNYOMIF)) break; if(mode & (SJTBLNARABIAF | SJTBLNYOMIF)) break;
check_num(SJ3_CONTEXT_PASS tptr); check_num(SJ4_CONTEXT_PASS tptr);
srch_number1(SJ3_CONTEXT_PASS tptr); srch_number1(SJ4_CONTEXT_PASS tptr);
srch_kurai1(SJ3_CONTEXT_PASS tptr, (u_char*)NULL); srch_kurai1(SJ4_CONTEXT_PASS tptr, (u_char*)NULL);
srch_kurai2(SJ3_CONTEXT_PASS tptr, (u_char*)NULL); srch_kurai2(SJ4_CONTEXT_PASS tptr, (u_char*)NULL);
break; break;
@ -315,9 +315,9 @@ srch_number1(SJ3_CONTEXT u_char* ptr) {
suuji_class = C_N_NANSUU; suuji_class = C_N_NANSUU;
} }
check_num(SJ3_CONTEXT_PASS tptr); check_num(SJ4_CONTEXT_PASS tptr);
srch_kurai1(SJ3_CONTEXT_PASS tptr, SjTblCnctP(p)); srch_kurai1(SJ4_CONTEXT_PASS tptr, SjTblCnctP(p));
srch_kurai2(SJ3_CONTEXT_PASS tptr, SjTblCnctP(p)); srch_kurai2(SJ4_CONTEXT_PASS tptr, SjTblCnctP(p));
if(mode & SJTBLNNANSUUF) suuji_class = cls; if(mode & SJTBLNNANSUUF) suuji_class = cls;
break; break;
@ -325,9 +325,9 @@ srch_number1(SJ3_CONTEXT u_char* ptr) {
default: default:
if(mode & SJTBLNARABIAF) { if(mode & SJTBLNARABIAF) {
suuji_class = C_N_ARABIA; suuji_class = C_N_ARABIA;
check_num(SJ3_CONTEXT_PASS tptr); check_num(SJ4_CONTEXT_PASS tptr);
srch_number1(SJ3_CONTEXT_PASS tptr); srch_number1(SJ4_CONTEXT_PASS tptr);
srch_kurai2(SJ3_CONTEXT_PASS tptr, (u_char*)NULL); srch_kurai2(SJ4_CONTEXT_PASS tptr, (u_char*)NULL);
suuji_class = C_N_KAZU; suuji_class = C_N_KAZU;
} else if(mode & SJTBLNYOMIF) { } else if(mode & SJTBLNYOMIF) {
@ -335,21 +335,21 @@ srch_number1(SJ3_CONTEXT u_char* ptr) {
suuji_class = C_N_NANSUU; suuji_class = C_N_NANSUU;
else else
suuji_class = C_N_KAZU; suuji_class = C_N_KAZU;
check_num(SJ3_CONTEXT_PASS tptr); check_num(SJ4_CONTEXT_PASS tptr);
} else if(mode & SJTBLNNARABIF) { } else if(mode & SJTBLNNARABIF) {
suuji_class = C_N_SUUJI; suuji_class = C_N_SUUJI;
check_num(SJ3_CONTEXT_PASS tptr); check_num(SJ4_CONTEXT_PASS tptr);
srch_number1(SJ3_CONTEXT_PASS tptr); srch_number1(SJ4_CONTEXT_PASS tptr);
break; break;
} else { } else {
suuji_class = C_N_SUUJI; suuji_class = C_N_SUUJI;
srch_number1(SJ3_CONTEXT_PASS tptr); srch_number1(SJ4_CONTEXT_PASS tptr);
suuji_class = C_N_KAZU; suuji_class = C_N_KAZU;
check_num(SJ3_CONTEXT_PASS tptr); check_num(SJ4_CONTEXT_PASS tptr);
} }
srch_kurai1(SJ3_CONTEXT_PASS tptr, SjTblCnctP(p)); srch_kurai1(SJ4_CONTEXT_PASS tptr, SjTblCnctP(p));
srch_kurai2(SJ3_CONTEXT_PASS tptr, SjTblCnctP(p)); srch_kurai2(SJ4_CONTEXT_PASS tptr, SjTblCnctP(p));
break; break;
} }
@ -358,7 +358,7 @@ srch_number1(SJ3_CONTEXT u_char* ptr) {
} }
static void static void
srch_kurai1(SJ3_CONTEXT u_char* ptr, u_char* cnct) { srch_kurai1(SJ4_CONTEXT u_char* ptr, u_char* cnct) {
u_char ch; u_char ch;
u_char* p; u_char* p;
int l; int l;
@ -386,7 +386,7 @@ srch_kurai1(SJ3_CONTEXT u_char* ptr, u_char* cnct) {
cls = suuji_class; cls = suuji_class;
suuji_class = (suuji_class == C_N_ARABIA) ? C_N_ARAKURA : C_N_KANKURA; suuji_class = (suuji_class == C_N_ARABIA) ? C_N_ARAKURA : C_N_KANKURA;
suuji_ubuf[suuji_keta - 1] |= (keta << 4); suuji_ubuf[suuji_keta - 1] |= (keta << 4);
check_num(SJ3_CONTEXT_PASS tptr); check_num(SJ4_CONTEXT_PASS tptr);
suuji_class = cls; suuji_class = cls;
suuji_ubuf[suuji_keta - 1] &= 0xcf; suuji_ubuf[suuji_keta - 1] &= 0xcf;
continue; continue;
@ -401,11 +401,11 @@ srch_kurai1(SJ3_CONTEXT u_char* ptr, u_char* cnct) {
suuji_ubuf[suuji_keta++] = (_NUM1 | (keta << 4)); suuji_ubuf[suuji_keta++] = (_NUM1 | (keta << 4));
} }
check_num(SJ3_CONTEXT_PASS tptr); check_num(SJ4_CONTEXT_PASS tptr);
srch_number1(SJ3_CONTEXT_PASS tptr); srch_number1(SJ4_CONTEXT_PASS tptr);
srch_kurai1(SJ3_CONTEXT_PASS tptr, (u_char*)NULL); srch_kurai1(SJ4_CONTEXT_PASS tptr, (u_char*)NULL);
srch_kurai2(SJ3_CONTEXT_PASS tptr, Kr1TblCnctP(p)); srch_kurai2(SJ4_CONTEXT_PASS tptr, Kr1TblCnctP(p));
if(cnct) if(cnct)
suuji_ubuf[suuji_keta - 1] &= 0xcf; suuji_ubuf[suuji_keta - 1] &= 0xcf;
@ -415,7 +415,7 @@ srch_kurai1(SJ3_CONTEXT u_char* ptr, u_char* cnct) {
} }
static void static void
srch_kurai2(SJ3_CONTEXT u_char* ptr, u_char* cnct) { srch_kurai2(SJ4_CONTEXT u_char* ptr, u_char* cnct) {
u_char ch; u_char ch;
u_char* p; u_char* p;
int l; int l;
@ -445,7 +445,7 @@ srch_kurai2(SJ3_CONTEXT u_char* ptr, u_char* cnct) {
suuji_ubuf[suuji_keta - 1] |= (keta << 6); suuji_ubuf[suuji_keta - 1] |= (keta << 6);
cls = suuji_class; cls = suuji_class;
suuji_class = (suuji_class == C_N_ARABIA) ? C_N_ARAKURA : C_N_KANKURA; suuji_class = (suuji_class == C_N_ARABIA) ? C_N_ARAKURA : C_N_KANKURA;
check_num(SJ3_CONTEXT_PASS tptr); check_num(SJ4_CONTEXT_PASS tptr);
suuji_class = cls; suuji_class = cls;
suuji_ubuf[suuji_keta - 1] &= 0x3f; suuji_ubuf[suuji_keta - 1] &= 0x3f;
continue; continue;
@ -459,10 +459,10 @@ srch_kurai2(SJ3_CONTEXT u_char* ptr, u_char* cnct) {
suuji_ubuf[suuji_keta++] = (_NUM1 | (keta << 6)); suuji_ubuf[suuji_keta++] = (_NUM1 | (keta << 6));
} }
check_num(SJ3_CONTEXT_PASS tptr); check_num(SJ4_CONTEXT_PASS tptr);
srch_number1(SJ3_CONTEXT_PASS tptr); srch_number1(SJ4_CONTEXT_PASS tptr);
srch_kurai1(SJ3_CONTEXT_PASS tptr, (u_char*)NULL); srch_kurai1(SJ4_CONTEXT_PASS tptr, (u_char*)NULL);
if(cnct) if(cnct)
suuji_ubuf[suuji_keta - 1] &= 0x3f; suuji_ubuf[suuji_keta - 1] &= 0x3f;
@ -472,7 +472,7 @@ srch_kurai2(SJ3_CONTEXT u_char* ptr, u_char* cnct) {
} }
static void static void
srch_number2(SJ3_CONTEXT u_char* p) { srch_number2(SJ4_CONTEXT u_char* p) {
u_char ch; u_char ch;
int i; int i;
@ -507,68 +507,68 @@ srch_number2(SJ3_CONTEXT u_char* p) {
suuji_keta++; suuji_keta++;
if(!suuji_comma && suuji_keta > NUMKETALENGTH) { if(!suuji_comma && suuji_keta > NUMKETALENGTH) {
setnrec(SJ3_CONTEXT_PASS p, 0); setnrec(SJ4_CONTEXT_PASS p, 0);
} else if(suuji_comma == 3) { } else if(suuji_comma == 3) {
if(suuji_keta <= NUMKETALENGTH) { if(suuji_keta <= NUMKETALENGTH) {
suuji_class = C_N_ARACMA; suuji_class = C_N_ARACMA;
check_num(SJ3_CONTEXT_PASS p); check_num(SJ4_CONTEXT_PASS p);
} else { } else {
suuji_class = C_N_KAZULCMA; suuji_class = C_N_KAZULCMA;
setnrec(SJ3_CONTEXT_PASS p, 0); setnrec(SJ4_CONTEXT_PASS p, 0);
} }
} }
} }
} }
static void static void
srchnum_sub(SJ3_CONTEXT u_char* p) { srchnum_sub(SJ4_CONTEXT u_char* p) {
suuji_yptr = p; suuji_yptr = p;
suuji_comma = suuji_keta = 0; suuji_comma = suuji_keta = 0;
suuji_class = 0; suuji_class = 0;
srch_number1(SJ3_CONTEXT_PASS p); srch_number1(SJ4_CONTEXT_PASS p);
suuji_keta = 0; suuji_keta = 0;
suuji_class = C_N_KAZU; suuji_class = C_N_KAZU;
srch_kurai1(SJ3_CONTEXT_PASS p, (u_char*)NULL); srch_kurai1(SJ4_CONTEXT_PASS p, (u_char*)NULL);
if(suuji_exit) return; if(suuji_exit) return;
srch_number2(SJ3_CONTEXT_PASS p); srch_number2(SJ4_CONTEXT_PASS p);
} }
void srchnum(SJ3_CONTEXT2) { void srchnum(SJ4_CONTEXT2) {
suuji_len = suuji_exit = 0; suuji_len = suuji_exit = 0;
srchnum_sub(SJ3_CONTEXT_PASS cnvstart); srchnum_sub(SJ4_CONTEXT_PASS cnvstart);
if(!headcode && (*cnvstart == Y_S_KIGOU1)) { if(!headcode && (*cnvstart == Y_S_KIGOU1)) {
headcode = SETTOU_KIGOU; headcode = SETTOU_KIGOU;
headlen = 1; headlen = 1;
srchnum_sub(SJ3_CONTEXT_PASS cnvstart + 1); srchnum_sub(SJ4_CONTEXT_PASS cnvstart + 1);
headcode = headlen = 0; headcode = headlen = 0;
} }
} }
void setwdnum(SJ3_CONTEXT u_char* p, int len, u_short* wd) { void setwdnum(SJ4_CONTEXT u_char* p, int len, u_short* wd) {
suuji_len = (u_char)len; suuji_len = (u_char)len;
suuji_wkeep = wd; suuji_wkeep = wd;
suuji_ukeep = NULL; suuji_ukeep = NULL;
headcode = headlen = 0; headcode = headlen = 0;
suuji_exit = 0; suuji_exit = 0;
srchnum_sub(SJ3_CONTEXT_PASS p); srchnum_sub(SJ4_CONTEXT_PASS p);
} }
int setucnum(SJ3_CONTEXT u_char* p, int len, u_char* ud) { int setucnum(SJ4_CONTEXT u_char* p, int len, u_char* ud) {
suuji_len = (u_char)len; suuji_len = (u_char)len;
suuji_wkeep = NULL; suuji_wkeep = NULL;
suuji_ukeep = ud; suuji_ukeep = ud;
headcode = headlen = 0; headcode = headlen = 0;
suuji_exit = 0; suuji_exit = 0;
srchnum_sub(SJ3_CONTEXT_PASS p); srchnum_sub(SJ4_CONTEXT_PASS p);
return (int)suuji_exit; return (int)suuji_exit;
} }

View file

@ -37,7 +37,7 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
int study(SJ3_CONTEXT STDYOUT* stdy) { int study(SJ4_CONTEXT STDYOUT* stdy) {
STDYOUT outp; STDYOUT outp;
STDYIN* p1; STDYIN* p1;
STDYIN* p2; STDYIN* p2;
@ -54,7 +54,7 @@ int study(SJ3_CONTEXT STDYOUT* stdy) {
if(outp.stdy1.offset == 0) return STUDYNOTSTUDY; if(outp.stdy1.offset == 0) return STUDYNOTSTUDY;
p1 = srchstdy(SJ3_CONTEXT_PASS outp.stdy1.seg, outp.stdy1.offset, outp.stdy1.dicid); p1 = srchstdy(SJ4_CONTEXT_PASS outp.stdy1.seg, outp.stdy1.offset, outp.stdy1.dicid);
if(p1) { if(p1) {
nm = p1->styno; nm = p1->styno;
@ -69,7 +69,7 @@ int study(SJ3_CONTEXT STDYOUT* stdy) {
p1->nmflg = outp.stdy1.nmflg; p1->nmflg = outp.stdy1.nmflg;
putstydic(SJ3_CONTEXT_PASS2); putstydic(SJ4_CONTEXT_PASS2);
return STUDYNORMEND; return STUDYNORMEND;
} }
@ -127,13 +127,13 @@ int study(SJ3_CONTEXT STDYOUT* stdy) {
p1->nmflg = outp.stdy1.nmflg; p1->nmflg = outp.stdy1.nmflg;
STUDYCOUNT += 1; STUDYCOUNT += 1;
putstydic(SJ3_CONTEXT_PASS2); putstydic(SJ4_CONTEXT_PASS2);
return ret; return ret;
} }
STDYIN* STDYIN*
srchstdy(SJ3_CONTEXT TypeDicSeg seg, TypeDicOfs ofs, TypeDicID dicid) { srchstdy(SJ4_CONTEXT TypeDicSeg seg, TypeDicOfs ofs, TypeDicID dicid) {
int high; int high;
int mid; int mid;
int low; int low;

View file

@ -38,7 +38,7 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
int terminate(SJ3_CONTEXT TypeCnct right, u_char* yomi) { int terminate(SJ4_CONTEXT TypeCnct right, u_char* yomi) {
u_char ch; u_char ch;
if((yomi > cnvstart) && (Chrtbl[*(yomi - 1)] & NUMBER)) if((yomi > cnvstart) && (Chrtbl[*(yomi - 1)] & NUMBER))

View file

@ -39,7 +39,7 @@
#include "sj_kanakan.h" #include "sj_kanakan.h"
void wakachi(SJ3_CONTEXT2) { void wakachi(SJ4_CONTEXT2) {
JREC* jrec; JREC* jrec;
CLREC* clrec; CLREC* clrec;
@ -50,7 +50,7 @@ void wakachi(SJ3_CONTEXT2) {
int i; int i;
int maxlen; int maxlen;
free_jall(SJ3_CONTEXT_PASS maxjptr); free_jall(SJ4_CONTEXT_PASS maxjptr);
maxjptr = NULL; maxjptr = NULL;
maxlen = (cnvlen > MAXCLINPUTLEN) ? MAXCLINPUTLEN : cnvlen; maxlen = (cnvlen > MAXCLINPUTLEN) ? MAXCLINPUTLEN : cnvlen;
@ -66,24 +66,24 @@ void wakachi(SJ3_CONTEXT2) {
i = maxlen; i = maxlen;
} }
if(!(jrec = argjrec(SJ3_CONTEXT_PASS i, (JREC*)NULL))) return; if(!(jrec = argjrec(SJ4_CONTEXT_PASS i, (JREC*)NULL))) return;
jrec->class = C_WAKACHI; jrec->class = C_WAKACHI;
jrec->hinsi = D_MEISI_1; jrec->hinsi = D_MEISI_1;
if(Chrtbl[*(next - 1)] & TAI_KGU) if(Chrtbl[*(next - 1)] & TAI_KGU)
srchfzk(SJ3_CONTEXT_PASS jrec, next, R_DAIMEISI, 0); srchfzk(SJ4_CONTEXT_PASS jrec, next, R_DAIMEISI, 0);
} }
else { else {
if(!(jrec = argjrec(SJ3_CONTEXT_PASS 0, (JREC*)NULL))) return; if(!(jrec = argjrec(SJ4_CONTEXT_PASS 0, (JREC*)NULL))) return;
jrec->class = C_WAKACHI; jrec->class = C_WAKACHI;
jrec->hinsi = MEISI_6; jrec->hinsi = MEISI_6;
while((int)jrec->jlen < maxlen) { while((int)jrec->jlen < maxlen) {
count = setconj(SJ3_CONTEXT_PASS(TypeGram) MEISI_6, jrec, crec); count = setconj(SJ4_CONTEXT_PASS(TypeGram) MEISI_6, jrec, crec);
for(i = count; i-- > 0;) { for(i = count; i-- > 0;) {
@ -92,17 +92,17 @@ void wakachi(SJ3_CONTEXT2) {
next = cnvstart + jrec->jlen + gobilen; next = cnvstart + jrec->jlen + gobilen;
if(gobilen) { if(gobilen) {
if(terminate(SJ3_CONTEXT_PASS right, next)) { if(terminate(SJ4_CONTEXT_PASS right, next)) {
fzk_ka_flg = 0; fzk_ka_flg = 0;
setclrec(SJ3_CONTEXT_PASS jrec, next, right); setclrec(SJ4_CONTEXT_PASS jrec, next, right);
} }
} else if((Chrtbl[*next] & NUMBER) && (jrec->jlen)) { } else if((Chrtbl[*next] & NUMBER) && (jrec->jlen)) {
fzk_ka_flg = 0; fzk_ka_flg = 0;
setclrec(SJ3_CONTEXT_PASS jrec, next, right); setclrec(SJ4_CONTEXT_PASS jrec, next, right);
return; return;
} }
srchfzk(SJ3_CONTEXT_PASS jrec, next, right, 0); srchfzk(SJ4_CONTEXT_PASS jrec, next, right, 0);
} }
if(maxclptr) break; if(maxclptr) break;
@ -115,7 +115,7 @@ void wakachi(SJ3_CONTEXT2) {
return; return;
if(jrec->jlen) { if(jrec->jlen) {
if((clrec = argclrec(SJ3_CONTEXT_PASS(int) jrec->jlen))) { if((clrec = argclrec(SJ4_CONTEXT_PASS(int) jrec->jlen))) {
clrec->jnode = jrec; clrec->jnode = jrec;
clrec->right = R_MEISI; clrec->right = R_MEISI;
clrec->kubun = K_TAIGEN; clrec->kubun = K_TAIGEN;

View file

@ -34,7 +34,7 @@
*/ */
#ifndef lint #ifndef lint
static char rcsid[] = "$Header: /export/work/contrib/sj3/sj3rkcv/RCS/rk_conv.c,v 1.14 1994/06/03 07:42:16 notanaka Exp $"; static char rcsid[] = "$Header: /export/work/contrib/sj4/sj4rkcv/RCS/rk_conv.c,v 1.14 1994/06/03 07:42:16 notanaka Exp $";
#endif #endif
#include "wchar16.h" #include "wchar16.h"
@ -53,16 +53,16 @@ static char rcsid[] = "$Header: /export/work/contrib/sj3/sj3rkcv/RCS/rk_conv.c,v
#include "kctype.h" #include "kctype.h"
#include "rk.h" #include "rk.h"
#include "sj3rkcv.h" #include "sj4rkcv.h"
#if defined(__sony_news) && defined(SVR4) #if defined(__sony_news) && defined(SVR4)
#define wscmp sj3_wscmp16 #define wscmp sj4_wscmp16
#define wsncmp sj3_wsncmp16 #define wsncmp sj4_wsncmp16
#define wsncpy sj3_wsncpy16 #define wsncpy sj4_wsncpy16
#define wscpy sj3_wscpy16 #define wscpy sj4_wscpy16
#define wslen sj3_wslen16 #define wslen sj4_wslen16
#define mbstowcs sj3_mbstowcs16 #define mbstowcs sj4_mbstowcs16
#define wcstombs sj3_wcstombs16 #define wcstombs sj4_wcstombs16
#endif #endif
#define ENDMARK(c) (c == SPACE || c == TAB) #define ENDMARK(c) (c == SPACE || c == TAB)
@ -71,12 +71,12 @@ static char rcsid[] = "$Header: /export/work/contrib/sj3/sj3rkcv/RCS/rk_conv.c,v
#define WTOUPPER(c) ((wchar16_t)(islower(((c) & 0xff)) ? toupper(((c) & 0xff)) : ((c) & 0xff))) #define WTOUPPER(c) ((wchar16_t)(islower(((c) & 0xff)) ? toupper(((c) & 0xff)) : ((c) & 0xff)))
#define SJ3_NO -1 #define SJ4_NO -1
#define SJ3_SJIS 0 #define SJ4_SJIS 0
#define SJ3_EUC 1 #define SJ4_EUC 1
RkTabl* sj3_rcode[MAXCODE]; RkTabl* sj4_rcode[MAXCODE];
RkTablW16* sj3_rcode_w16[MAXCODE]; RkTablW16* sj4_rcode_w16[MAXCODE];
RkTablW16* rktblp; RkTablW16* rktblp;
wchar16_t rline[MAXLLEN]; wchar16_t rline[MAXLLEN];
wchar16_t lstr[MAXLLEN]; wchar16_t lstr[MAXLLEN];
@ -87,7 +87,7 @@ static int rk_erase;
static int rk_errin = 0; static int rk_errin = 0;
static int rk_cflag; static int rk_cflag;
static int rk_klen; static int rk_klen;
static int file_code = SJ3_NO; static int file_code = SJ4_NO;
static RkbufRec rkpbuf, *rkpp = NULL; static RkbufRec rkpbuf, *rkpp = NULL;
static RkTablW16* rkhp; static RkTablW16* rkhp;
@ -96,14 +96,14 @@ static wchar16_t* shp;
static YmibufRec ymipbuf, *ymipp; static YmibufRec ymipbuf, *ymipp;
static u_short* yhp; static u_short* yhp;
void sj3_rkcode(int code) { void sj4_rkcode(int code) {
if(code) if(code)
file_code = SJ3_NO; file_code = SJ4_NO;
} }
int sj3_rkinit2(char* rkfile, int erase) { int sj4_rkinit2(char* rkfile, int erase) {
rk_erase = erase; rk_erase = erase;
return (sj3_rkinit_mb(rkfile)); return (sj4_rkinit_mb(rkfile));
} }
int rcode_sjis_init() { int rcode_sjis_init() {
@ -117,8 +117,8 @@ int rcode_sjis_init() {
tablsize = sizeof(RkTabl); tablsize = sizeof(RkTabl);
for(i = 0; i < MAXCODE; i++) { for(i = 0; i < MAXCODE; i++) {
if(sj3_rcode_w16[i]) { if(sj4_rcode_w16[i]) {
tabl_w16 = sj3_rcode_w16[i]; tabl_w16 = sj4_rcode_w16[i];
while(tabl_w16) { while(tabl_w16) {
tablnum++; tablnum++;
if(tabl_w16->r_key) if(tabl_w16->r_key)
@ -155,9 +155,9 @@ int rcode_sjis_init() {
rkeylen *= 2; rkeylen *= 2;
rstrlen *= 2; rstrlen *= 2;
for(i = 0; i < MAXCODE; i++) { for(i = 0; i < MAXCODE; i++) {
if(sj3_rcode_w16[i]) { if(sj4_rcode_w16[i]) {
tabl_w16 = sj3_rcode_w16[i]; tabl_w16 = sj4_rcode_w16[i];
tabl_next = sj3_rcode[i] = tabl; tabl_next = sj4_rcode[i] = tabl;
while(tabl_w16) { while(tabl_w16) {
tabl += 1; tabl += 1;
if(tabl_w16->r_key) { if(tabl_w16->r_key) {
@ -275,8 +275,8 @@ int rcode_euc_init() {
tablsize = sizeof(RkTabl); tablsize = sizeof(RkTabl);
for(i = 0; i < MAXCODE; i++) { for(i = 0; i < MAXCODE; i++) {
if(sj3_rcode_w16[i]) { if(sj4_rcode_w16[i]) {
tabl_w16 = sj3_rcode_w16[i]; tabl_w16 = sj4_rcode_w16[i];
while(tabl_w16) { while(tabl_w16) {
tablnum++; tablnum++;
if(tabl_w16->r_key) if(tabl_w16->r_key)
@ -313,9 +313,9 @@ int rcode_euc_init() {
rkeylen *= 2; rkeylen *= 2;
rstrlen *= 2; rstrlen *= 2;
for(i = 0; i < MAXCODE; i++) { for(i = 0; i < MAXCODE; i++) {
if(sj3_rcode_w16[i]) { if(sj4_rcode_w16[i]) {
tabl_w16 = sj3_rcode_w16[i]; tabl_w16 = sj4_rcode_w16[i];
tabl_next = sj3_rcode[i] = tabl; tabl_next = sj4_rcode[i] = tabl;
while(tabl_w16) { while(tabl_w16) {
tabl += 1; tabl += 1;
if(tabl_w16->r_key) { if(tabl_w16->r_key) {
@ -422,22 +422,22 @@ int rcode_euc_init() {
return 1; return 1;
} }
int sj3_rkinit(char* rkfile) { int sj4_rkinit(char* rkfile) {
return sj3_rkinit_sub(rkfile, rcode_sjis_init); return sj4_rkinit_sub(rkfile, rcode_sjis_init);
} }
int sj3_rkinit_euc(char* rkfile) { int sj4_rkinit_euc(char* rkfile) {
return sj3_rkinit_sub(rkfile, rcode_euc_init); return sj4_rkinit_sub(rkfile, rcode_euc_init);
} }
int sj3_rkinit_mb(char* rkfile) { int sj4_rkinit_mb(char* rkfile) {
if(current_locale == LC_CTYPE_EUC) if(current_locale == LC_CTYPE_EUC)
return sj3_rkinit_sub(rkfile, rcode_euc_init); return sj4_rkinit_sub(rkfile, rcode_euc_init);
else else
return sj3_rkinit_sub(rkfile, rcode_sjis_init); return sj4_rkinit_sub(rkfile, rcode_sjis_init);
} }
int sj3_rkinit_sub(char* rkfile, int (*mbfunc)()) { int sj4_rkinit_sub(char* rkfile, int (*mbfunc)()) {
char* p; char* p;
int len, klen, rlen, retv; int len, klen, rlen, retv;
FILE* fp; FILE* fp;
@ -496,7 +496,7 @@ int sj3_rkinit_sub(char* rkfile, int (*mbfunc)()) {
fclose(fp); fclose(fp);
if(!(*mbfunc)()) if(!(*mbfunc)())
retv = FAIL; retv = FAIL;
sj3_rkclear(); sj4_rkclear();
return (retv); return (retv);
} }
@ -566,13 +566,13 @@ char* rkgetyomi(char* istr, wchar16_t* ostr, int* len) {
if(SKLINE(*p)) if(SKLINE(*p))
break; break;
cc = c = *p++; cc = c = *p++;
if(file_code == SJ3_SJIS) { if(file_code == SJ4_SJIS) {
if(issjis1(c) && issjis2(*p)) { if(issjis1(c) && issjis2(*p)) {
cc = (c << 8) + (*p & MASK); cc = (c << 8) + (*p & MASK);
p++; p++;
cc = sjis2euc(cc); cc = sjis2euc(cc);
} }
} else if(file_code == SJ3_EUC) { } else if(file_code == SJ4_EUC) {
if(iseuc(c) && iseuc(*p)) { if(iseuc(c) && iseuc(*p)) {
cc = (c << 8) + (*p & MASK); cc = (c << 8) + (*p & MASK);
p++; p++;
@ -584,12 +584,12 @@ char* rkgetyomi(char* istr, wchar16_t* ostr, int* len) {
} }
} else { } else {
if(issjis1(c) && issjis2(*p)) { if(issjis1(c) && issjis2(*p)) {
file_code = SJ3_SJIS; file_code = SJ4_SJIS;
p--; p--;
continue; continue;
} }
if((iseuc(c) && iseuc(*p)) || (iseuckana(c) && iskana2(*p)) || (IsEUCHojo(c) && iseuc(*p) && iseuc(p[1]))) { if((iseuc(c) && iseuc(*p)) || (iseuckana(c) && iskana2(*p)) || (IsEUCHojo(c) && iseuc(*p) && iseuc(p[1]))) {
file_code = SJ3_EUC; file_code = SJ4_EUC;
p--; p--;
continue; continue;
} }
@ -612,8 +612,8 @@ void cltable() {
if(rkpp != NULL) { if(rkpp != NULL) {
for(i = 0; i < MAXCODE; i++) { for(i = 0; i < MAXCODE; i++) {
sj3_rcode_w16[i] = NULL; sj4_rcode_w16[i] = NULL;
sj3_rcode[i] = NULL; sj4_rcode[i] = NULL;
} }
rkpp = &rkpbuf; rkpp = &rkpbuf;
rkhp = rkpp->rkbuf; rkhp = rkpp->rkbuf;
@ -746,7 +746,7 @@ mktable(wchar16_t* key, int len) {
nrktp = NULL; nrktp = NULL;
orktp = NULL; orktp = NULL;
code = *key++ & MASK; code = *key++ & MASK;
rktp = sj3_rcode_w16[code]; rktp = sj4_rcode_w16[code];
while(rktp != NULL) { while(rktp != NULL) {
if(rktp->r_key == NULL) { if(rktp->r_key == NULL) {
if(*key == NSTR) if(*key == NSTR)
@ -765,13 +765,13 @@ mktable(wchar16_t* key, int len) {
} }
if((rktp = rkalloc()) == NULL) if((rktp = rkalloc()) == NULL)
return (NULL); return (NULL);
if(sj3_rcode_w16[code] == NULL) if(sj4_rcode_w16[code] == NULL)
sj3_rcode_w16[code] = rktp; sj4_rcode_w16[code] = rktp;
else { else {
if(nrktp != NULL) { if(nrktp != NULL) {
rktp->next = nrktp; rktp->next = nrktp;
if(orktp == NULL) if(orktp == NULL)
sj3_rcode_w16[code] = rktp; sj4_rcode_w16[code] = rktp;
else else
orktp->next = rktp; orktp->next = rktp;
} else } else
@ -780,23 +780,23 @@ mktable(wchar16_t* key, int len) {
return (rktp); return (rktp);
} }
void sj3_rkebell(int err) { void sj4_rkebell(int err) {
rk_errin = err; rk_errin = err;
} }
void sj3_rkclear() { void sj4_rkclear() {
rline[0] = NSTR; rline[0] = NSTR;
lstr[0] = NSTR; lstr[0] = NSTR;
rktblp = NULL; rktblp = NULL;
rk_klen = 0; rk_klen = 0;
sj3_rkreset(); sj4_rkreset();
} }
void sj3_rkreset() { void sj4_rkreset() {
rk_cflag = -1; rk_cflag = -1;
} }
void sj3_rkconvc(wchar16_t c, u_int* rkstr) { void sj4_rkconvc(wchar16_t c, u_int* rkstr) {
int i; int i;
wchar16_t *p, *q; wchar16_t *p, *q;
int len; int len;
@ -835,7 +835,7 @@ void sj3_rkconvc(wchar16_t c, u_int* rkstr) {
rline[len] = c; rline[len] = c;
rline[len + 1] = NSTR; rline[len + 1] = NSTR;
wscpy(wstr, rline); wscpy(wstr, rline);
if((i = sj3_rkconv2(wstr, kstr, len)) == CONTINUE) { if((i = sj4_rkconv2(wstr, kstr, len)) == CONTINUE) {
if(rk_cflag >= 0) if(rk_cflag >= 0)
rk_cflag++; rk_cflag++;
*rkstr++ = ERRCODE + c; *rkstr++ = ERRCODE + c;
@ -864,7 +864,7 @@ void sj3_rkconvc(wchar16_t c, u_int* rkstr) {
*rkstr = RKEND; *rkstr = RKEND;
} }
int sj3_rkconv2(wchar16_t* wstr, u_int* kstr, int wlen) { int sj4_rkconv2(wchar16_t* wstr, u_int* kstr, int wlen) {
int i; int i;
wchar16_t *p, *q, *s; wchar16_t *p, *q, *s;
int rlen, len; int rlen, len;
@ -874,7 +874,7 @@ int sj3_rkconv2(wchar16_t* wstr, u_int* kstr, int wlen) {
len = 0; len = 0;
if((rktp = rktblp) == NULL) if((rktp = rktblp) == NULL)
rktp = sj3_rcode_w16[WTOUPPER(*wstr)]; rktp = sj4_rcode_w16[WTOUPPER(*wstr)];
if(*wstr > (wchar16_t)0xff) rktp = NULL; if(*wstr > (wchar16_t)0xff) rktp = NULL;
while(1) { while(1) {
while(rktp != NULL) { while(rktp != NULL) {
@ -914,7 +914,7 @@ int sj3_rkconv2(wchar16_t* wstr, u_int* kstr, int wlen) {
} }
*q = NSTR; *q = NSTR;
wscpy(wstr, svstr); wscpy(wstr, svstr);
rktp = sj3_rcode_w16[WTOUPPER(*wstr)]; rktp = sj4_rcode_w16[WTOUPPER(*wstr)];
wlen = wslen(wstr); wlen = wslen(wstr);
wlen--; wlen--;
continue; continue;
@ -943,7 +943,7 @@ int sj3_rkconv2(wchar16_t* wstr, u_int* kstr, int wlen) {
p++; p++;
} }
*p = NSTR; *p = NSTR;
rktp = sj3_rcode_w16[WTOUPPER(*wstr)]; rktp = sj4_rcode_w16[WTOUPPER(*wstr)];
if(*wstr > (wchar16_t)0xff) rktp = NULL; if(*wstr > (wchar16_t)0xff) rktp = NULL;
wlen--; wlen--;
continue; continue;
@ -955,7 +955,7 @@ int sj3_rkconv2(wchar16_t* wstr, u_int* kstr, int wlen) {
return (len); return (len);
} }
int sj3_rkconv(u_char* romaji, u_char* kana) { int sj4_rkconv(u_char* romaji, u_char* kana) {
wchar16_t* wstr; wchar16_t* wstr;
int len, mflag = 0, ret; int len, mflag = 0, ret;
@ -971,7 +971,7 @@ int sj3_rkconv(u_char* romaji, u_char* kana) {
if(mflag) free(wstr); if(mflag) free(wstr);
return -1; return -1;
} }
ret = sj3_rkconv_w16(wstr, outtmp); ret = sj4_rkconv_w16(wstr, outtmp);
if(ret == 0 || ret == -1) { if(ret == 0 || ret == -1) {
if(mflag) free(wstr); if(mflag) free(wstr);
return ret; return ret;
@ -998,7 +998,7 @@ int sj3_rkconv(u_char* romaji, u_char* kana) {
} }
} }
int sj3_rkconv_euc(u_char* romaji, u_char* kana) { int sj4_rkconv_euc(u_char* romaji, u_char* kana) {
wchar16_t* wstr; wchar16_t* wstr;
int len, mflag = 0, ret; int len, mflag = 0, ret;
@ -1014,7 +1014,7 @@ int sj3_rkconv_euc(u_char* romaji, u_char* kana) {
if(mflag) free(wstr); if(mflag) free(wstr);
return -1; return -1;
} }
ret = sj3_rkconv_w16(wstr, outtmp); ret = sj4_rkconv_w16(wstr, outtmp);
if(ret == 0 || ret == -1) { if(ret == 0 || ret == -1) {
if(mflag) free(wstr); if(mflag) free(wstr);
return ret; return ret;
@ -1041,14 +1041,14 @@ int sj3_rkconv_euc(u_char* romaji, u_char* kana) {
} }
} }
int sj3_rkconv_mb(u_char* romaji, u_char* kana) { int sj4_rkconv_mb(u_char* romaji, u_char* kana) {
if(current_locale == LC_CTYPE_EUC) if(current_locale == LC_CTYPE_EUC)
return sj3_rkconv_euc(romaji, kana); return sj4_rkconv_euc(romaji, kana);
else else
return sj3_rkconv(romaji, kana); return sj4_rkconv(romaji, kana);
} }
int sj3_rkconv_w16(wchar16_t* wstr, wchar16_t* kstr) { int sj4_rkconv_w16(wchar16_t* wstr, wchar16_t* kstr) {
int i; int i;
wchar16_t *p, *q, *s; wchar16_t *p, *q, *s;
@ -1059,7 +1059,7 @@ int sj3_rkconv_w16(wchar16_t* wstr, wchar16_t* kstr) {
u_short* kp; u_short* kp;
len = wslen(wstr); len = wslen(wstr);
rktp = sj3_rcode_w16[WTOUPPER(*wstr)]; rktp = sj4_rcode_w16[WTOUPPER(*wstr)];
if(*wstr > (wchar16_t)0xff) rktp = NULL; if(*wstr > (wchar16_t)0xff) rktp = NULL;
while(rktp != NULL) { while(rktp != NULL) {
rlen = rkmatch((wstr + 1), rktp->r_key, len - 1); rlen = rkmatch((wstr + 1), rktp->r_key, len - 1);

View file

@ -28,7 +28,7 @@
*/ */
/* /*
* $SonyRCSfile: sj3_rkcv.c,v $ * $SonyRCSfile: sj4_rkcv.c,v $
* $SonyRevision: 1.3 $ * $SonyRevision: 1.3 $
* $SonyDate: 1995/02/10 06:02:25 $ * $SonyDate: 1995/02/10 06:02:25 $
*/ */
@ -41,16 +41,16 @@
#include "rk.h" #include "rk.h"
#include "kctype.h" #include "kctype.h"
#include "sj3rkcv.h" #include "sj4rkcv.h"
#if defined(__sony_news) && (SVR4) #if defined(__sony_news) && (SVR4)
#define wscmp sj3_wscmp16 #define wscmp sj4_wscmp16
#define wsncmp sj3_wsncmp16 #define wsncmp sj4_wsncmp16
#define wsncpy sj3_wsncpy16 #define wsncpy sj4_wsncpy16
#define wscpy sj3_wscpy16 #define wscpy sj4_wscpy16
#define wslen sj3_wslen16 #define wslen sj4_wslen16
#define mbstowcs sj3_mbstowcs16 #define mbstowcs sj4_mbstowcs16
#define wcstombs sj3_wcstombs16 #define wcstombs sj4_wcstombs16
#endif #endif
extern int current_locale; extern int current_locale;
@ -274,7 +274,7 @@ int sj_han2zen(u_short c) {
return (cc); return (cc);
} }
int sj3_hantozen(u_char* out, u_char* in) { int sj4_hantozen(u_char* out, u_char* in) {
wchar16_t *winstr, *woutstr; wchar16_t *winstr, *woutstr;
u_char* mstr; u_char* mstr;
int inlen, outlen, imflag = 0, omflag = 0, mmflag = 0, ret; int inlen, outlen, imflag = 0, omflag = 0, mmflag = 0, ret;
@ -321,7 +321,7 @@ int sj3_hantozen(u_char* out, u_char* in) {
} else { } else {
woutstr = (wchar16_t*)outtmp; woutstr = (wchar16_t*)outtmp;
} }
ret = sj3_hantozen_w16(woutstr, winstr); ret = sj4_hantozen_w16(woutstr, winstr);
if(mmflag) { if(mmflag) {
free(mstr); free(mstr);
mmflag = 0; mmflag = 0;
@ -365,7 +365,7 @@ int sj3_hantozen(u_char* out, u_char* in) {
} }
} }
int sj3_hantozen_euc(u_char* out, u_char* in) { int sj4_hantozen_euc(u_char* out, u_char* in) {
wchar16_t *winstr, *woutstr; wchar16_t *winstr, *woutstr;
u_char* mstr; u_char* mstr;
int inlen, outlen, imflag = 0, omflag = 0, mmflag = 0, ret; int inlen, outlen, imflag = 0, omflag = 0, mmflag = 0, ret;
@ -412,7 +412,7 @@ int sj3_hantozen_euc(u_char* out, u_char* in) {
} else { } else {
woutstr = (wchar16_t*)outtmp; woutstr = (wchar16_t*)outtmp;
} }
ret = sj3_hantozen_w16(woutstr, winstr); ret = sj4_hantozen_w16(woutstr, winstr);
if(mmflag) { if(mmflag) {
free(mstr); free(mstr);
mmflag = 0; mmflag = 0;
@ -456,14 +456,14 @@ int sj3_hantozen_euc(u_char* out, u_char* in) {
} }
} }
int sj3_hantozen_mb(u_char* s1, u_char* s2) { int sj4_hantozen_mb(u_char* s1, u_char* s2) {
if(current_locale == LC_CTYPE_EUC) if(current_locale == LC_CTYPE_EUC)
return sj3_hantozen_euc(s1, s2); return sj4_hantozen_euc(s1, s2);
else else
return sj3_hantozen(s1, s2); return sj4_hantozen(s1, s2);
} }
int sj3_hantozen_w16(wchar16_t* s1, wchar16_t* s2) { int sj4_hantozen_w16(wchar16_t* s1, wchar16_t* s2) {
return sj_hantozen(s1, s2, wslen(s2)); return sj_hantozen(s1, s2, wslen(s2));
} }
@ -531,7 +531,7 @@ int sj_zen2han(u_short c) {
return (cc); return (cc);
} }
int sj3_zentohan(u_char* out, u_char* in) { int sj4_zentohan(u_char* out, u_char* in) {
wchar16_t *winstr, *woutstr; wchar16_t *winstr, *woutstr;
u_char* mstr; u_char* mstr;
int inlen, outlen, imflag = 0, omflag = 0, mmflag = 0, ret; int inlen, outlen, imflag = 0, omflag = 0, mmflag = 0, ret;
@ -581,7 +581,7 @@ int sj3_zentohan(u_char* out, u_char* in) {
} else { } else {
woutstr = (wchar16_t*)outtmp; woutstr = (wchar16_t*)outtmp;
} }
ret = sj3_zentohan_w16(woutstr, winstr); ret = sj4_zentohan_w16(woutstr, winstr);
if(ret == 0 || ret == -1) { if(ret == 0 || ret == -1) {
if(imflag) free(winstr); if(imflag) free(winstr);
if(omflag) free(woutstr); if(omflag) free(woutstr);
@ -619,7 +619,7 @@ int sj3_zentohan(u_char* out, u_char* in) {
return ret; return ret;
} }
int sj3_zentohan_euc(u_char* out, u_char* in) { int sj4_zentohan_euc(u_char* out, u_char* in) {
wchar16_t *winstr, *woutstr; wchar16_t *winstr, *woutstr;
u_char* mstr; u_char* mstr;
int inlen, outlen, imflag = 0, omflag = 0, mmflag = 0, ret; int inlen, outlen, imflag = 0, omflag = 0, mmflag = 0, ret;
@ -670,7 +670,7 @@ int sj3_zentohan_euc(u_char* out, u_char* in) {
} else { } else {
woutstr = (wchar16_t*)outtmp; woutstr = (wchar16_t*)outtmp;
} }
ret = sj3_zentohan_w16(woutstr, winstr); ret = sj4_zentohan_w16(woutstr, winstr);
if(ret == 0 || ret == -1) { if(ret == 0 || ret == -1) {
if(mmflag) free(mstr); if(mmflag) free(mstr);
if(imflag) free(winstr); if(imflag) free(winstr);
@ -708,14 +708,14 @@ int sj3_zentohan_euc(u_char* out, u_char* in) {
return ret; return ret;
} }
int sj3_zentohan_mb(u_char* s1, u_char* s2) { int sj4_zentohan_mb(u_char* s1, u_char* s2) {
if(current_locale == LC_CTYPE_EUC) if(current_locale == LC_CTYPE_EUC)
return sj3_zentohan_euc(s1, s2); return sj4_zentohan_euc(s1, s2);
else else
return sj3_zentohan(s1, s2); return sj4_zentohan(s1, s2);
} }
int sj3_zentohan_w16(wchar16_t* s1, wchar16_t* s2) { int sj4_zentohan_w16(wchar16_t* s1, wchar16_t* s2) {
return sj_zentohan(s1, s2, wslen(s2)); return sj_zentohan(s1, s2, wslen(s2));
} }

Some files were not shown because too many files have changed in this diff Show more