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)
project(sj3)
project(sj4)
file(GLOB_RECURSE SJ3CORE_SRCS lib/sj3core/**.c)
add_library(sj3core STATIC ${SJ3CORE_SRCS})
target_include_directories(sj3core PUBLIC include/sj3common include/sj3core)
target_include_directories(sj3core PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
file(GLOB_RECURSE SJ4CORE_SRCS lib/sj4core/**.c)
add_library(sj4core STATIC ${SJ4CORE_SRCS})
target_include_directories(sj4core PUBLIC include/sj4common include/sj4core)
target_include_directories(sj4core PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
#file(GLOB_RECURSE SJ3RKCV_SRCS lib/sj3rkcv/**.c)
#add_library(sj3rkcv STATIC ${SJ3RKCV_SRCS})
#target_include_directories(sj3rkcv PUBLIC include/sj3common include/sj3rkcv)
#target_include_directories(sj3rkcv PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
#file(GLOB_RECURSE SJ4RKCV_SRCS lib/sj4rkcv/**.c)
#add_library(sj4rkcv STATIC ${SJ4RKCV_SRCS})
#target_include_directories(sj4rkcv PUBLIC include/sj4common include/sj4rkcv)
#target_include_directories(sj4rkcv PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
file(GLOB_RECURSE SJ3MKDIC_SRCS src/sj3mkdic/**.c)
add_executable(sj3mkdic ${SJ3MKDIC_SRCS})
target_include_directories(sj3mkdic PRIVATE include/sj3common include/sj3core)
file(GLOB_RECURSE SJ4MKDIC_SRCS src/sj4mkdic/**.c)
add_executable(sj4mkdic ${SJ4MKDIC_SRCS})
target_include_directories(sj4mkdic PRIVATE include/sj4common include/sj4core)
file(GLOB_RECURSE SJ3TEST_SRCS src/sj3test/**.c)
add_executable(sj3test ${SJ3TEST_SRCS})
target_link_libraries(sj3test PRIVATE sj3core)
file(GLOB_RECURSE SJ4TEST_SRCS src/sj4test/**.c)
add_executable(sj4test ${SJ4TEST_SRCS})
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 ERROROUTFILE "/dev/null"
#define ADDRESSFAMILY "unspec"
#define PORTNAME "sj3"
#define PORTNAME "sj4"
#define LOCALHOST "localhost"
#define CHROOTFLAG 1
#define MAINDICTIONARY "sj3main.dic"
#define MAINDICTIONARY "sj4main.dic"
#define USERDICTIONARY "private.dic"
#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
*/
#define PORTNUMBER "3086"

View file

@ -28,72 +28,72 @@
*/
/*
* $SonyRCSfile: sj3cmd.h,v $
* $SonyRCSfile: sj4cmd.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:00:57 $
*/
#define SJ3SERV_VERSION_NO 2
#define SJ4SERV_VERSION_NO 2
#define SJ3_CONNECT 1
#define SJ3_DISCONNECT 2
#define SJ4_CONNECT 1
#define SJ4_DISCONNECT 2
#define SJ3_OPENDICT 11
#define SJ3_CLOSEDICT 12
#define SJ4_OPENDICT 11
#define SJ4_CLOSEDICT 12
#define SJ3_OPENSTDY 21
#define SJ3_CLOSESTDY 22
#define SJ3_STDYSIZE 23
#define SJ4_OPENSTDY 21
#define SJ4_CLOSESTDY 22
#define SJ4_STDYSIZE 23
#define SJ3_LOCK 31
#define SJ3_UNLOCK 32
#define SJ4_LOCK 31
#define SJ4_UNLOCK 32
#define SJ3_PH2KNJ 41
#define SJ4_PH2KNJ 41
#define SJ3_CL2KNJ 51
#define SJ3_NEXTCL 52
#define SJ3_PREVCL 53
#define SJ3_CL2KNJ_ALL 54
#define SJ3_CL2KNJ_CNT 55
#define SJ4_CL2KNJ 51
#define SJ4_NEXTCL 52
#define SJ4_PREVCL 53
#define SJ4_CL2KNJ_ALL 54
#define SJ4_CL2KNJ_CNT 55
#define SJ3_STUDY 61
#define SJ3_CLSTUDY 62
#define SJ4_STUDY 61
#define SJ4_CLSTUDY 62
#define SJ3_ADDDICT 71
#define SJ3_DELDICT 72
#define SJ4_ADDDICT 71
#define SJ4_DELDICT 72
#define SJ3_MAKEDICT 81
#define SJ3_MAKESTDY 82
#define SJ3_MAKEDIR 83
#define SJ3_ACCESS 84
#define SJ4_MAKEDICT 81
#define SJ4_MAKESTDY 82
#define SJ4_MAKEDIR 83
#define SJ4_ACCESS 84
#define SJ3_GETDICT 91
#define SJ3_NEXTDICT 92
#define SJ3_PREVDICT 93
#define SJ4_GETDICT 91
#define SJ4_NEXTDICT 92
#define SJ4_PREVDICT 93
#define SJ3_WHO 100
#define SJ3_QUIT 101
#define SJ3_KILL 102
#define SJ3_VERSION 103
#define SJ3_DICTPASS 104
#define SJ3_DICTCMNT 105
#define SJ3_STDYPASS 106
#define SJ3_STDYCMNT 107
#define SJ4_WHO 100
#define SJ4_QUIT 101
#define SJ4_KILL 102
#define SJ4_VERSION 103
#define SJ4_DICTPASS 104
#define SJ4_DICTCMNT 105
#define SJ4_STDYPASS 106
#define SJ4_STDYCMNT 107
#define SJ3_SETCVER 110
#define SJ3_PH2KNJ_EUC 111
#define SJ4_SETCVER 110
#define SJ4_PH2KNJ_EUC 111
#define SJ3_CL2KNJ_EUC 112
#define SJ3_NEXTCL_EUC 113
#define SJ3_PREVCL_EUC 114
#define SJ3_CL2KNJ_ALL_EUC 115
#define SJ3_CL2KNJ_CNT_EUC 116
#define SJ4_CL2KNJ_EUC 112
#define SJ4_NEXTCL_EUC 113
#define SJ4_PREVCL_EUC 114
#define SJ4_CL2KNJ_ALL_EUC 115
#define SJ4_CL2KNJ_CNT_EUC 116
#define SJ3_CLSTUDY_EUC 117
#define SJ4_CLSTUDY_EUC 117
#define SJ3_ADDDICT_EUC 118
#define SJ3_DELDICT_EUC 119
#define SJ4_ADDDICT_EUC 118
#define SJ4_DELDICT_EUC 119
#define SJ3_GETDICT_EUC 120
#define SJ3_NEXTDICT_EUC 121
#define SJ3_PREVDICT_EUC 122
#define SJ4_GETDICT_EUC 120
#define SJ4_NEXTDICT_EUC 121
#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
/* string.c */
int sj3_str_sjistoeuc(unsigned char*, int, unsigned char*, unsigned char*, int*);
int sj3_str_euctosjis(unsigned char*, int, unsigned char*, unsigned char*, int*);
int sj3_sjistoeuclen(unsigned char*, int);
int sj4_str_sjistoeuc(unsigned char*, int, unsigned char*, unsigned char*, int*);
int sj4_str_euctosjis(unsigned char*, int, unsigned char*, unsigned char*, int*);
int sj4_sjistoeuclen(unsigned char*, int);
int sj3_sjistoeuc(unsigned char* s, int, unsigned char*, int);
int sj3_euctosjis(unsigned char* s, int, unsigned char*, int);
int sj4_sjistoeuc(unsigned char* s, int, unsigned char*, int);
int sj4_euctosjis(unsigned char* s, int, unsigned char*, int);
void sj_euc2sjis(unsigned char*);
void sj_jis2sjis(unsigned char*);
void sj_sjis2euc(unsigned char*);
void sj_sjis2jis(unsigned char*);
unsigned short sj3_jis2sjis(unsigned short);
unsigned short sj3_jis2euc(unsigned short);
unsigned short sj3_sjis2jis(unsigned short);
unsigned short sj3_euc2sjis(unsigned short);
unsigned short sj3_sjis2euc(unsigned short);
unsigned short sj4_jis2sjis(unsigned short);
unsigned short sj4_jis2euc(unsigned short);
unsigned short sj4_sjis2jis(unsigned short);
unsigned short sj4_euc2sjis(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 {
DICT dict;
int refcnt;
#ifdef SJ3_LOCK
#ifdef SJ4_LOCK
fd_set lock;
#endif
FILE* fp;
@ -154,7 +154,7 @@ typedef struct workarea {
Global global;
} WorkArea;
typedef struct sj3context {
typedef struct sj4context {
Global* work;
STDY* stdy;
@ -162,6 +162,6 @@ typedef struct sj3context {
JREC* jrec_pool;
CLREC* clrec_free;
CLREC* clrec_pool;
} Sj3Context;
} Sj4Context;
#endif

View file

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

View file

@ -36,7 +36,7 @@
#ifndef SJ_GLOBAL_H
#define SJ_GLOBAL_H
#ifdef SJ3_GLOBAL
#ifdef SJ4_GLOBAL
extern Global* work_base;
extern STDY* stdy_base;
#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 regetrank Jregetrank
#ifdef SJ3_GLOBAL
#ifdef SJ4_GLOBAL
#define work_base Jwork_base
#define stdy_base Jstdy_base
#else

View file

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

View file

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

View file

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

View file

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

View file

@ -41,13 +41,13 @@
#include "sj_kanakan.h"
static void sprt_seg(SJ3_CONTEXT TypeDicSeg, TypeDicOfs);
static void apnd_uidx(SJ3_CONTEXT TypeDicSeg, u_char*, int);
static int cal_nextym(SJ3_CONTEXT u_char*);
static int usr_freelen(SJ3_CONTEXT2);
static u_int checkdict(SJ3_CONTEXT u_char*, TypeGram);
static void sprt_seg(SJ4_CONTEXT TypeDicSeg, TypeDicOfs);
static void apnd_uidx(SJ4_CONTEXT TypeDicSeg, u_char*, int);
static int cal_nextym(SJ4_CONTEXT u_char*);
static int usr_freelen(SJ4_CONTEXT2);
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_char yptr[MAXWDYOMILEN + 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;
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;
inputyomi = yomi;
cnvstart = ystart = yptr;
cnvlen = sstrlen(yptr);
if((err = checkdict(SJ3_CONTEXT_PASS kanji, hinsi)))
if((err = checkdict(SJ4_CONTEXT_PASS kanji, hinsi)))
return err;
if(!curdict->maxunit)
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;
@ -95,11 +95,11 @@ u_int adddic(SJ3_CONTEXT u_char* yomi, u_char* kanji, TypeGram hinsi) {
if(newsiz > curdict->seglen)
return AD_OVFLWDOUBLK;
segnum = srchidx(SJ3_CONTEXT_PASS(TypeDicSeg) DICSEGBASE, cnvlen);
segnum = srchidx(SJ4_CONTEXT_PASS(TypeDicSeg) DICSEGBASE, cnvlen);
for(;;) {
(*curdict->getdic)(SJ3_CONTEXT_PASS curdict, segnum);
i = srchkana(SJ3_CONTEXT_PASS & p1, &saml);
(*curdict->getdic)(SJ4_CONTEXT_PASS curdict, segnum);
i = srchkana(SJ4_CONTEXT_PASS & p1, &saml);
dstofs = douofs = p1 - dicbuf;
hnsofs = knjofs = 0;
if(i) {
@ -120,7 +120,7 @@ u_int adddic(SJ3_CONTEXT u_char* yomi, u_char* kanji, TypeGram hinsi) {
nlen = cnvlen - saml;
newsiz = DOUONBLKSIZENUMBER + nlen;
nxtask = cal_nextym(SJ3_CONTEXT_PASS p1);
nxtask = cal_nextym(SJ4_CONTEXT_PASS p1);
} else {
oldsiz = newsiz = getsize(p1);
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);
fresiz = usr_freelen(SJ3_CONTEXT_PASS2);
fresiz = usr_freelen(SJ4_CONTEXT_PASS2);
if((unsigned int)(newsiz - oldsiz - nxtask) <=
(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)
return AD_OVFLWUSRDIC;
freidx = count_uidx(SJ3_CONTEXT_PASS2);
freidx = count_uidx(SJ4_CONTEXT_PASS2);
if((unsigned int)(douofs + newsiz) <= curdict->seglen) {
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)
return AD_OVFLWINDEX;
if((*curdict->putdic)(SJ3_CONTEXT_PASS curdict, curdict->segunit))
if((*curdict->putdic)(SJ4_CONTEXT_PASS curdict, curdict->segunit))
return AD_OVFLWUSRDIC;
sprt_seg(SJ3_CONTEXT_PASS segnum, pos);
sprt_seg(SJ4_CONTEXT_PASS segnum, pos);
nxtask = 0;
break;
@ -166,16 +166,16 @@ u_int adddic(SJ3_CONTEXT u_char* yomi, u_char* kanji, TypeGram hinsi) {
if((unsigned int)freidx < cnvlen + 1)
return AD_OVFLWINDEX;
if((*curdict->putdic)(SJ3_CONTEXT_PASS curdict, curdict->segunit))
if((*curdict->putdic)(SJ4_CONTEXT_PASS curdict, curdict->segunit))
return AD_OVFLWUSRDIC;
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);
dicbuf[0] = 0;
(*curdict->putdic)(SJ3_CONTEXT_PASS curdict, curdict->segunit - 1);
(*curdict->rszdic)(SJ3_CONTEXT_PASS curdict, curdict->segunit);
mkidxtbl(SJ3_CONTEXT_PASS curdict);
(*curdict->putdic)(SJ4_CONTEXT_PASS curdict, curdict->segunit - 1);
(*curdict->rszdic)(SJ4_CONTEXT_PASS curdict, curdict->segunit);
mkidxtbl(SJ4_CONTEXT_PASS curdict);
segnum++;
} 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)
return AD_OVFLWINDEX;
if((*curdict->putdic)(SJ3_CONTEXT_PASS curdict, curdict->segunit))
if((*curdict->putdic)(SJ4_CONTEXT_PASS curdict, curdict->segunit))
return AD_OVFLWUSRDIC;
sprt_seg(SJ3_CONTEXT_PASS segnum, douofs);
sprt_seg(SJ4_CONTEXT_PASS segnum, douofs);
segnum++;
}
@ -220,7 +220,7 @@ u_int adddic(SJ3_CONTEXT u_char* yomi, u_char* kanji, TypeGram hinsi) {
if(!hnsofs) {
if(douofs == segtop() - dicbuf) {
chg_uidx(SJ3_CONTEXT_PASS segnum, yptr, cnvlen);
chg_uidx(SJ4_CONTEXT_PASS segnum, yptr, cnvlen);
}
*dstptr = 0;
@ -258,7 +258,7 @@ u_int adddic(SJ3_CONTEXT u_char* yomi, u_char* kanji, TypeGram hinsi) {
if(!knjofs)
*dstptr++ = HINSIBLKTERM;
(*curdict->putdic)(SJ3_CONTEXT_PASS curdict, segnum);
(*curdict->putdic)(SJ4_CONTEXT_PASS curdict, segnum);
if(StudyExist()) {
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),
(int)ClYomiLen(p1));
if(err == MATCH) {
delclsub(SJ3_CONTEXT_PASS p1);
mkclidx(SJ3_CONTEXT_PASS2);
putcldic(SJ3_CONTEXT_PASS2);
delclsub(SJ4_CONTEXT_PASS p1);
mkclidx(SJ4_CONTEXT_PASS2);
putcldic(SJ4_CONTEXT_PASS2);
break;
} else if(err == OVER)
break;
@ -295,13 +295,13 @@ u_int adddic(SJ3_CONTEXT u_char* yomi, u_char* kanji, TypeGram hinsi) {
stdydat.sttlen = 0;
stdydat.sttfg = 0;
stdydat.ka_fg = 0;
(void)study(SJ3_CONTEXT_PASS & stdydat);
(void)study(SJ4_CONTEXT_PASS & stdydat);
return AD_DONE;
}
static int
checksub(SJ3_CONTEXT u_char* kanji, TypeGram grm) {
checksub(SJ4_CONTEXT u_char* kanji, TypeGram grm) {
u_char* tagp;
u_char* ptr;
u_char* endp;
@ -313,7 +313,7 @@ checksub(SJ3_CONTEXT u_char* kanji, TypeGram grm) {
dicsaml = 0;
prevseg = (TypeDicSeg)-1;
for(;;) {
if(!(tagp = srchdict(SJ3_CONTEXT_PASS tagp)))
if(!(tagp = srchdict(SJ4_CONTEXT_PASS tagp)))
return 0;
if(cnvlen == getnlen(tagp) + getplen(tagp))
break;
@ -330,7 +330,7 @@ checksub(SJ3_CONTEXT u_char* kanji, TypeGram grm) {
flg = (grm == *ptr++);
while(*ptr != HINSIBLKTERM) {
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))
return -1;
}
@ -345,7 +345,7 @@ checksub(SJ3_CONTEXT u_char* kanji, TypeGram grm) {
}
static u_int
checkdict(SJ3_CONTEXT u_char* kanji, TypeGram grm) {
checkdict(SJ4_CONTEXT u_char* kanji, TypeGram grm) {
DICTL* dp;
int dounum = 0;
int tmp;
@ -356,7 +356,7 @@ checkdict(SJ3_CONTEXT u_char* kanji, TypeGram grm) {
curdict = dp->dict;
if((tmp = checksub(SJ3_CONTEXT_PASS kanji, grm)) < 0) {
if((tmp = checksub(SJ4_CONTEXT_PASS kanji, grm)) < 0) {
curdict = tmpdict;
return AD_AREXIST;
}
@ -372,7 +372,7 @@ checkdict(SJ3_CONTEXT u_char* kanji, TypeGram grm) {
}
static int
cal_nextym(SJ3_CONTEXT u_char* ptr) {
cal_nextym(SJ4_CONTEXT u_char* ptr) {
int count = 0;
u_char* src;
int len;
@ -394,7 +394,7 @@ cal_nextym(SJ3_CONTEXT u_char* ptr) {
}
static int
usr_freelen(SJ3_CONTEXT2) {
usr_freelen(SJ4_CONTEXT2) {
u_char* ptr;
ptr = segtop();
@ -405,7 +405,7 @@ usr_freelen(SJ3_CONTEXT2) {
}
static void
sprt_seg(SJ3_CONTEXT TypeDicSeg seg, TypeDicOfs ofs) {
sprt_seg(SJ4_CONTEXT TypeDicSeg seg, TypeDicOfs ofs) {
TypeDicSeg s;
u_char* pos;
u_char* p;
@ -418,13 +418,13 @@ sprt_seg(SJ3_CONTEXT TypeDicSeg seg, TypeDicOfs ofs) {
STDYIN* stdy;
for(s = curdict->segunit - 1; s >= seg; s--) {
(*curdict->getdic)(SJ3_CONTEXT_PASS curdict, s);
(*curdict->putdic)(SJ3_CONTEXT_PASS curdict, s + 1);
(*curdict->getdic)(SJ4_CONTEXT_PASS curdict, s);
(*curdict->putdic)(SJ4_CONTEXT_PASS curdict, s + 1);
}
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;
@ -441,7 +441,7 @@ sprt_seg(SJ3_CONTEXT TypeDicSeg seg, TypeDicOfs ofs) {
nlen = getnlen(pos);
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);
@ -455,7 +455,7 @@ sprt_seg(SJ3_CONTEXT TypeDicSeg seg, TypeDicOfs ofs) {
p += i;
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()) {
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));
(*curdict->putdic)(SJ3_CONTEXT_PASS curdict, seg);
(*curdict->putdic)(SJ4_CONTEXT_PASS curdict, seg);
}
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* q;
p = get_idxptr(SJ3_CONTEXT_PASS seg);
p = get_idxptr(SJ4_CONTEXT_PASS seg);
while(*p++);
q = idxbuf + curdict->idxlen;
@ -493,7 +493,7 @@ apnd_uidx(SJ3_CONTEXT TypeDicSeg seg, u_char* yomi, int len) {
*p++ = *yomi++;
*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;
}
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;
if(!sj2cd_str(yp, nyp, len)) err |= AD_BADYOMI;
@ -174,7 +174,7 @@ last_strcmp(u_char* src, u_char* dst) {
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];
int len;
u_char* keep;
@ -229,7 +229,7 @@ int cvtknj(SJ3_CONTEXT u_char* yomi, u_char* knj, u_char* dst) {
return (dst - keep);
}
int srchkana(SJ3_CONTEXT u_char** ptr, int* saml) {
int srchkana(SJ4_CONTEXT u_char** ptr, int* saml) {
u_char* p;
int cmp;
int cnt = 0;
@ -242,7 +242,7 @@ int srchkana(SJ3_CONTEXT u_char** ptr, int* saml) {
while(!segend(p)) {
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 == MATCH && *(cnvstart + same) == 0) {
@ -321,20 +321,20 @@ int srchkanji(u_char** dst, u_char* knj, int klen) {
}
TypeIdxOfs
count_uidx(SJ3_CONTEXT2) {
count_uidx(SJ4_CONTEXT2) {
u_char* p;
p = get_idxptr(SJ3_CONTEXT_PASS curdict->segunit - 1);
p = get_idxptr(SJ4_CONTEXT_PASS curdict->segunit - 1);
while(*p++);
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;
int olen;
p = get_idxptr(SJ3_CONTEXT_PASS seg);
p = get_idxptr(SJ4_CONTEXT_PASS seg);
olen = sstrlen(p);
@ -347,7 +347,7 @@ void chg_uidx(SJ3_CONTEXT TypeDicSeg seg, u_char* yomi, int len) {
}
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 CLREC_NUM 128
#ifdef SJ3_GLOBAL
#ifdef SJ4_GLOBAL
static JREC* jrec = NULL;
static CLREC* clrec = NULL;
#else
@ -54,7 +54,7 @@ static CLREC* clrec = NULL;
#define clrec ctx->clrec_free
#endif
JREC* alloc_jrec(SJ3_CONTEXT2) {
JREC* alloc_jrec(SJ4_CONTEXT2) {
JREC* p;
int i;
@ -65,7 +65,7 @@ JREC* alloc_jrec(SJ3_CONTEXT2) {
p->jsort = p + 1;
p->jsort = NULL;
#ifndef SJ3_GLOBAL
#ifndef SJ4_GLOBAL
ctx->jrec_pool = jrec;
#endif
}
@ -75,7 +75,7 @@ JREC* alloc_jrec(SJ3_CONTEXT2) {
return p;
}
void free_jrec(SJ3_CONTEXT JREC* p) {
void free_jrec(SJ4_CONTEXT JREC* p) {
if(p != NULL) {
p->jsort = jrec;
jrec = p;
@ -83,7 +83,7 @@ void free_jrec(SJ3_CONTEXT JREC* p) {
}
CLREC*
alloc_clrec(SJ3_CONTEXT2) {
alloc_clrec(SJ4_CONTEXT2) {
CLREC* p;
int i;
@ -94,7 +94,7 @@ alloc_clrec(SJ3_CONTEXT2) {
p->clsort = p + 1;
p->clsort = NULL;
#ifndef SJ3_GLOBAL
#ifndef SJ4_GLOBAL
ctx->clrec_pool = clrec;
#endif
}
@ -104,7 +104,7 @@ alloc_clrec(SJ3_CONTEXT2) {
return p;
}
void free_clrec(SJ3_CONTEXT CLREC* p) {
void free_clrec(SJ4_CONTEXT CLREC* p) {
if(p != NULL) {
p->clsort = clrec;
clrec = p;

View file

@ -37,18 +37,18 @@
#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* ptr2;
int i;
khcount = nkhcount = 0;
initkbuf(SJ3_CONTEXT_PASS kouho);
initkbuf(SJ4_CONTEXT_PASS kouho);
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;
freework(SJ3_CONTEXT_PASS2);
freework(SJ4_CONTEXT_PASS2);
inputyomi = orgyomi;
cnvstart = ystart = 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;
clt1st = maxclptr;
mkkouho(SJ3_CONTEXT_PASS2);
mkkouho(SJ4_CONTEXT_PASS2);
getrank(SJ3_CONTEXT_PASS2);
getrank(SJ4_CONTEXT_PASS2);
selectid = 1;
cvtclknj(SJ3_CONTEXT_PASS2);
cvtclknj(SJ4_CONTEXT_PASS2);
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;
initkbuf(SJ3_CONTEXT_PASS kouho);
initkbuf(SJ4_CONTEXT_PASS kouho);
if(!khcount) return 0;
if(!mode && (selectid < khcount))
selectid++;
else if((mode < 2) && (clptr = nextrecblk(SJ3_CONTEXT_PASS2))) {
else if((mode < 2) && (clptr = nextrecblk(SJ4_CONTEXT_PASS2))) {
selectid = 1;
clt1st = clptr;
mkkouho(SJ3_CONTEXT_PASS2);
getrank(SJ3_CONTEXT_PASS2);
mkkouho(SJ4_CONTEXT_PASS2);
getrank(SJ4_CONTEXT_PASS2);
} else {
cvtclknj(SJ3_CONTEXT_PASS2);
cvtclknj(SJ4_CONTEXT_PASS2);
return 0;
}
cvtclknj(SJ3_CONTEXT_PASS2);
cvtclknj(SJ4_CONTEXT_PASS2);
return hzstrlen(inputyomi, (int)clt1st->cllen);
}
static CLREC*
nextrecblk(SJ3_CONTEXT2) {
nextrecblk(SJ4_CONTEXT2) {
CLREC* clptr;
int keeplen;
@ -132,33 +132,33 @@ nextrecblk(SJ3_CONTEXT2) {
return clptr;
}
int prevcl(SJ3_CONTEXT u_char* kouho, int mode) {
int prevcl(SJ4_CONTEXT u_char* kouho, int mode) {
CLREC* clptr;
initkbuf(SJ3_CONTEXT_PASS kouho);
initkbuf(SJ4_CONTEXT_PASS kouho);
if(!khcount) return 0;
if(!mode && (selectid > 1))
selectid--;
else if((mode < 2) && (clptr = prevrecblk(SJ3_CONTEXT_PASS2))) {
else if((mode < 2) && (clptr = prevrecblk(SJ4_CONTEXT_PASS2))) {
clt1st = clptr;
mkkouho(SJ3_CONTEXT_PASS2);
getrank(SJ3_CONTEXT_PASS2);
mkkouho(SJ4_CONTEXT_PASS2);
getrank(SJ4_CONTEXT_PASS2);
selectid = khcount;
} else {
cvtclknj(SJ3_CONTEXT_PASS2);
cvtclknj(SJ4_CONTEXT_PASS2);
return 0;
}
cvtclknj(SJ3_CONTEXT_PASS2);
cvtclknj(SJ4_CONTEXT_PASS2);
return hzstrlen(inputyomi, (int)clt1st->cllen);
}
static CLREC*
prevrecblk(SJ3_CONTEXT2) {
prevrecblk(SJ4_CONTEXT2) {
CLREC* clptr;
CLREC* keepptr;
int keeplen;
@ -182,11 +182,11 @@ prevrecblk(SJ3_CONTEXT2) {
}
static void
initkbuf(SJ3_CONTEXT u_char* kouho) {
initkbuf(SJ4_CONTEXT u_char* kouho) {
kanjitmp = kouho;
memset(kanjitmp, 0, sizeof(STDYOUT) + 1);
}
int selectnum(SJ3_CONTEXT2) {
int selectnum(SJ4_CONTEXT2) {
return selectid;
}

View file

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

View file

@ -37,7 +37,7 @@
#include "sj_kanakan.h"
void cvtclknj(SJ3_CONTEXT2) {
void cvtclknj(SJ4_CONTEXT2) {
KHREC* krec;
int i;
@ -51,7 +51,7 @@ void cvtclknj(SJ3_CONTEXT2) {
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"
void cvtdict(SJ3_CONTEXT KHREC* krec, CLREC* clrec, int flg) {
void cvtdict(SJ4_CONTEXT KHREC* krec, CLREC* clrec, int flg) {
TypeDicOfs ofs;
u_char* yptr;
int jlen;
@ -82,7 +82,7 @@ void cvtdict(SJ3_CONTEXT KHREC* krec, CLREC* clrec, int 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;
jlen -= i;
@ -107,11 +107,11 @@ void cvtdict(SJ3_CONTEXT KHREC* krec, CLREC* clrec, int flg) {
}
if(ofs) {
if(seldict(SJ3_CONTEXT_PASS jrec->dicid)) {
(*curdict->getdic)(SJ3_CONTEXT_PASS curdict, jrec->jseg);
get_askknj(SJ3_CONTEXT_PASS2);
if(seldict(SJ4_CONTEXT_PASS jrec->dicid)) {
(*curdict->getdic)(SJ4_CONTEXT_PASS curdict, jrec->jseg);
get_askknj(SJ4_CONTEXT_PASS2);
kanjitmp +=
getkanji(SJ3_CONTEXT_PASS yptr, jlen, dicbuf + ofs, kanjitmp);
getkanji(SJ4_CONTEXT_PASS yptr, jlen, dicbuf + ofs, kanjitmp);
yptr += jlen * 2;
} else {
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;
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;
u_char* ym;
int cnt;

View file

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

View file

@ -38,12 +38,12 @@
#include "sj_kanakan.h"
static int del_douon(SJ3_CONTEXT TypeDicSeg, u_char*, TypeDicOfs);
static int del_segment(SJ3_CONTEXT TypeDicSeg);
static void del_uidx(SJ3_CONTEXT TypeDicSeg);
static void del_stdy(SJ3_CONTEXT TypeDicSeg, TypeDicOfs, int);
static int del_douon(SJ4_CONTEXT TypeDicSeg, u_char*, TypeDicOfs);
static int del_segment(SJ4_CONTEXT TypeDicSeg);
static void del_uidx(SJ4_CONTEXT TypeDicSeg);
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 kptr[MAXWDKANJILEN + 1];
u_short err;
@ -58,20 +58,20 @@ u_int deldic(SJ3_CONTEXT u_char* yomi, u_char* kanji, TypeGram hinsi) {
u_char * stp, *edp;
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;
if(!curdict->maxunit) return AD_NOTUSERDICT;
knjlen = cvtknj(SJ3_CONTEXT_PASS yomi, kanji, kptr);
knjlen = cvtknj(SJ4_CONTEXT_PASS yomi, kanji, kptr);
cnvstart = yptr;
cnvlen = sstrlen(yptr);
useg = srchidx(SJ3_CONTEXT_PASS(TypeDicSeg) DICSEGBASE, cnvlen);
(*curdict->getdic)(SJ3_CONTEXT_PASS curdict, useg);
useg = srchidx(SJ4_CONTEXT_PASS(TypeDicSeg) DICSEGBASE, cnvlen);
(*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;
@ -85,9 +85,9 @@ u_int deldic(SJ3_CONTEXT u_char* yomi, u_char* kanji, TypeGram hinsi) {
if(kblknum == 1) {
if(hblknum == 1) {
if(dblknum == 1) {
return del_segment(SJ3_CONTEXT_PASS useg);
return del_segment(SJ4_CONTEXT_PASS useg);
} else {
return del_douon(SJ3_CONTEXT_PASS useg, p1, ofs);
return del_douon(SJ4_CONTEXT_PASS useg, p1, ofs);
}
} else {
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),
(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;
}
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;
int size;
int nlen, plen, len;
@ -133,7 +133,7 @@ del_douon(SJ3_CONTEXT TypeDicSeg seg, u_char* ptr, TypeDicOfs ofs) {
plen = getplen(nxt);
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;
}
@ -150,19 +150,19 @@ del_douon(SJ3_CONTEXT TypeDicSeg seg, u_char* ptr, TypeDicOfs ofs) {
memset(dicbuf + curdict->seglen - size, DICSEGTERM, size);
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;
}
static int
del_segment(SJ3_CONTEXT TypeDicSeg seg) {
del_segment(SJ4_CONTEXT TypeDicSeg seg) {
int i;
STDYIN* styp;
TypeDicID dicid;
@ -171,19 +171,19 @@ del_segment(SJ3_CONTEXT TypeDicSeg seg) {
if(curdict->segunit > 1) {
for(sg = seg + 1; sg < curdict->segunit; sg++) {
(*curdict->getdic)(SJ3_CONTEXT_PASS curdict, sg);
(*curdict->putdic)(SJ3_CONTEXT_PASS curdict, sg - 1);
(*curdict->getdic)(SJ4_CONTEXT_PASS curdict, sg);
(*curdict->putdic)(SJ4_CONTEXT_PASS curdict, sg - 1);
}
curdict->segunit--;
} else {
memset(dicbuf, DICSEGTERM, (int)curdict->seglen);
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()) {
dicid = curdict->dicid;
@ -208,18 +208,18 @@ del_segment(SJ3_CONTEXT TypeDicSeg seg) {
for(i = 0, styp = STUDYDICT; i < STUDYCOUNT; i++, styp++)
if(styp->styno > stdynum) styp->styno -= 1;
putstydic(SJ3_CONTEXT_PASS2);
putstydic(SJ4_CONTEXT_PASS2);
}
return AD_DONE;
}
static void
del_uidx(SJ3_CONTEXT TypeDicSeg seg) {
del_uidx(SJ4_CONTEXT TypeDicSeg seg) {
u_char *p, *q;
int len;
p = get_idxptr(SJ3_CONTEXT_PASS seg);
p = get_idxptr(SJ4_CONTEXT_PASS seg);
for(q = p; *q++;);
mvmemi(q, p, idxbuf + curdict->idxlen - q);
@ -227,13 +227,13 @@ del_uidx(SJ3_CONTEXT TypeDicSeg seg) {
len = q - p;
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
del_stdy(SJ3_CONTEXT TypeDicSeg seg, TypeDicOfs ofs, int size) {
del_stdy(SJ4_CONTEXT TypeDicSeg seg, TypeDicOfs ofs, int size) {
int i;
TypeStyNum stdynum;
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++)
if(stdy->styno > stdynum) (stdy->styno)--;
putstydic(SJ3_CONTEXT_PASS2);
putstydic(SJ4_CONTEXT_PASS2);
}
}

View file

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

View file

@ -74,7 +74,7 @@ fzkstrcmp(u_char* yptr, u_char* fzkp, int* saml) {
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;
TypeGram hinsi;
int len;
@ -83,7 +83,7 @@ void setclrec(SJ3_CONTEXT JREC* jrec, u_char* yptr, TypeCnct right) {
if(len > MAXCLINPUTLEN) return;
if(!(new = argclrec(SJ3_CONTEXT_PASS len))) return;
if(!(new = argclrec(SJ4_CONTEXT_PASS len))) return;
new->jnode = jrec;
new->gobiln = gobilen;
@ -165,7 +165,7 @@ fzkcnct(TypeCnct right, TypeCnct left) {
}
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;
int len = 0;
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(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;
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;
}
@ -207,11 +207,11 @@ void srchfzk(SJ3_CONTEXT JREC* jrec, u_char* yptr, TypeCnct right, int level) {
next = yptr + len;
if(terminate(SJ3_CONTEXT_PASS rt = FzkRight(fzk), next)) {
setclrec(SJ3_CONTEXT_PASS jrec, next, rt);
if(terminate(SJ4_CONTEXT_PASS rt = FzkRight(fzk), next)) {
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;
@ -246,10 +246,10 @@ void srchfzk(SJ3_CONTEXT JREC* jrec, u_char* yptr, TypeCnct right, int level) {
next = yptr + len;
if(terminate(SJ3_CONTEXT_PASS rt = FzkRight(fzk), next)) {
setclrec(SJ3_CONTEXT_PASS jrec, next, rt);
if(terminate(SJ4_CONTEXT_PASS rt = FzkRight(fzk), next)) {
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"
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*
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*
getkan_knj(SJ3_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);
getkan_knj(SJ4_CONTEXT u_char* s, u_char* d, u_char* ym, int yl, int flg) {
return code2kanji(SJ4_CONTEXT_PASS askknj[*s & KNJASSYUKUMASK], d, ym, yl, flg);
}
u_char*
getkan_ofs(SJ3_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),
getkan_ofs(SJ4_CONTEXT u_char* s, u_char* d, u_char* ym, int yl, int flg) {
return code2kanji(SJ4_CONTEXT_PASS dicbuf + ((*s & KANJICODEMASK) << 8) + *(s + 1),
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*
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;
for(;;) {
@ -147,7 +147,7 @@ code2kanji(SJ3_CONTEXT u_char* s, u_char* d, u_char* ym, int yl, int flg) {
break;
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;
case AIATTRIBUTE:
@ -159,7 +159,7 @@ code2kanji(SJ3_CONTEXT u_char* s, u_char* d, u_char* ym, int yl, int flg) {
break;
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;
default:
@ -177,7 +177,7 @@ code2kanji(SJ3_CONTEXT u_char* s, u_char* d, u_char* ym, int yl, int flg) {
break;
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;
case AIATTRIBUTE:
@ -189,7 +189,7 @@ code2kanji(SJ3_CONTEXT u_char* s, u_char* d, u_char* ym, int yl, int flg) {
break;
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;
default:
@ -202,10 +202,10 @@ code2kanji(SJ3_CONTEXT u_char* s, u_char* d, u_char* ym, int yl, int flg) {
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;
q = code2kanji(SJ3_CONTEXT_PASS ptr, buf, ym, yl, TRUE);
q = code2kanji(SJ4_CONTEXT_PASS ptr, buf, ym, yl, TRUE);
return q - buf;
}

View file

@ -37,36 +37,36 @@
#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;
setstynum(SJ3_CONTEXT_PASS2);
setstynum(SJ4_CONTEXT_PASS2);
regetrank(SJ3_CONTEXT_PASS2);
regetrank(SJ4_CONTEXT_PASS2);
}
static void
setstynum(SJ3_CONTEXT2) {
setstynum(SJ4_CONTEXT2) {
KHREC* kptr;
STDYIN* sptr;
int count;
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);
if(!sptr) continue;
setnspr(SJ3_CONTEXT_PASS kptr, sptr);
setnspr(SJ4_CONTEXT_PASS kptr, sptr);
}
}
static void
setnspr(SJ3_CONTEXT KHREC* kptr, STDYIN* sptr) {
setnspr(SJ4_CONTEXT KHREC* kptr, STDYIN* sptr) {
KHREC* ptr;
int keepnm;
TypeStyNum styno;
@ -122,7 +122,7 @@ setnspr(SJ3_CONTEXT KHREC* kptr, STDYIN* sptr) {
}
static void
regetrank(SJ3_CONTEXT2) {
regetrank(SJ4_CONTEXT2) {
KHREC* kptr;
int count;
int tmp;

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -41,12 +41,12 @@
#include "sj_kanakan.h"
static void getkhtbl(SJ3_CONTEXT CLREC*), cl_kanji(SJ3_CONTEXT JREC*, CLREC*);
static int diffknj(SJ3_CONTEXT JREC*, u_char*, int);
static void cl_numcmn(SJ3_CONTEXT JREC*, CLREC*);
static u_char* makekan(SJ3_CONTEXT u_char*, u_char*, int);
static void getkhtbl(SJ4_CONTEXT CLREC*), cl_kanji(SJ4_CONTEXT JREC*, CLREC*);
static int diffknj(SJ4_CONTEXT JREC*, u_char*, int);
static void cl_numcmn(SJ4_CONTEXT JREC*, CLREC*);
static u_char* makekan(SJ4_CONTEXT u_char*, u_char*, int);
void mkkouho(SJ3_CONTEXT2) {
void mkkouho(SJ4_CONTEXT2) {
CLREC* clrec;
int keeplen;
@ -57,20 +57,20 @@ void mkkouho(SJ3_CONTEXT2) {
clrec = clt1st;
do {
getkhtbl(SJ3_CONTEXT_PASS clrec);
getkhtbl(SJ4_CONTEXT_PASS clrec);
clrec = clrec->clsort;
} while(clrec && (keeplen == clrec->cllen));
}
static void
getkhtbl(SJ3_CONTEXT CLREC* clrec) {
getkhtbl(SJ4_CONTEXT CLREC* clrec) {
JREC* jrec;
jrec = clrec->jnode;
switch(jrec->class) {
case C_DICT:
cl_kanji(SJ3_CONTEXT_PASS jrec, clrec);
cl_kanji(SJ4_CONTEXT_PASS jrec, clrec);
break;
case C_N_ARABIA:
case C_N_ARACMA:
@ -82,46 +82,46 @@ getkhtbl(SJ3_CONTEXT CLREC* clrec) {
case C_N_KAZULONG:
case C_N_KAZULCMA:
case C_N_SUUJILONG:
cl_numcmn(SJ3_CONTEXT_PASS jrec, clrec);
cl_numcmn(SJ4_CONTEXT_PASS jrec, clrec);
break;
case C_BUNSETU:
break;
case C_MINASI:
case C_WAKACHI:
setkouho(SJ3_CONTEXT_PASS clrec, (TypeDicOfs)0, 0);
setkouho(SJ4_CONTEXT_PASS clrec, (TypeDicOfs)0, 0);
break;
}
}
static void
cl_kanji(SJ3_CONTEXT JREC* jrec, CLREC* clrec) {
cl_kanji(SJ4_CONTEXT JREC* jrec, CLREC* clrec) {
u_char* ptr;
int kcount = khcount;
if(seldict(SJ3_CONTEXT_PASS jrec->dicid)) {
(*curdict->getdic)(SJ3_CONTEXT_PASS curdict, jrec->jseg);
if(seldict(SJ4_CONTEXT_PASS jrec->dicid)) {
(*curdict->getdic)(SJ4_CONTEXT_PASS curdict, jrec->jseg);
ptr = dicbuf + jrec->jofsst + 1;
get_askknj(SJ3_CONTEXT_PASS2);
get_askknj(SJ4_CONTEXT_PASS2);
while(*ptr != HINSIBLKTERM) {
if(diffknj(SJ3_CONTEXT_PASS jrec, ptr, kcount)) {
setkouho(SJ3_CONTEXT_PASS clrec, (TypeDicOfs)(ptr - dicbuf), 0);
if(diffknj(SJ4_CONTEXT_PASS jrec, ptr, kcount)) {
setkouho(SJ4_CONTEXT_PASS clrec, (TypeDicOfs)(ptr - dicbuf), 0);
}
ptr = skipkstr(ptr);
}
} else {
setkouho(SJ3_CONTEXT_PASS clrec, (TypeDicOfs)1, 0);
setkouho(SJ4_CONTEXT_PASS clrec, (TypeDicOfs)1, 0);
}
}
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;
}
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)
*d++ = 0x10 | (*s & KNJASSYUKUMASK);
else
@ -132,17 +132,17 @@ makekan_1byte(SJ3_CONTEXT u_char* s, u_char* d, int flg) {
}
u_char*
makekan_knj(SJ3_CONTEXT u_char* s, u_char* d, int flg) {
return makekan(SJ3_CONTEXT_PASS askknj[*s & KNJASSYUKUMASK], d, flg);
makekan_knj(SJ4_CONTEXT u_char* s, u_char* d, int 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) {
return makekan(SJ3_CONTEXT_PASS dicbuf + ((*s & KANJICODEMASK) << 8) + *(s + 1),
u_char* makekan_ofs(SJ4_CONTEXT u_char* s, u_char* d, int flg) {
return makekan(SJ4_CONTEXT_PASS dicbuf + ((*s & KANJICODEMASK) << 8) + *(s + 1),
d, flg);
}
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;
if(*s != 0) {
@ -159,7 +159,7 @@ makekan_norm(SJ3_CONTEXT u_char* s, u_char* d, int flg) {
}
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;
c = s[1];
@ -173,7 +173,7 @@ makekan_ascii(SJ3_CONTEXT u_char* s, u_char* d, int flg) {
}
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;
for(;;) {
@ -181,61 +181,61 @@ makekan(SJ3_CONTEXT u_char* s, u_char* d, int flg) {
if(s[csize] == KANJISTREND) {
switch(*s & KANJIMODEMASK) {
case ZENHIRAASSYUKU:
d = makekan_1byte(SJ3_CONTEXT_PASS s, d, flg);
d = makekan_1byte(SJ4_CONTEXT_PASS s, d, flg);
break;
case ZENKATAASSYUKU:
d = makekan_1byte(SJ3_CONTEXT_PASS s, d, flg);
d = makekan_1byte(SJ4_CONTEXT_PASS s, d, flg);
break;
case OFFSETASSYUKU:
d = makekan_ofs(SJ3_CONTEXT_PASS s, d, flg);
d = makekan_ofs(SJ4_CONTEXT_PASS s, d, flg);
break;
case AIATTRIBUTE:
d = makekan_none(SJ3_CONTEXT_PASS s, d, flg);
d = makekan_none(SJ4_CONTEXT_PASS s, d, flg);
break;
case LEADINGHANKAKU:
d = makekan_ascii(SJ3_CONTEXT_PASS s, d, flg);
d = makekan_ascii(SJ4_CONTEXT_PASS s, d, flg);
break;
case KANJIASSYUKU:
d = makekan_knj(SJ3_CONTEXT_PASS s, d, flg);
d = makekan_knj(SJ4_CONTEXT_PASS s, d, flg);
break;
default:
d = makekan_norm(SJ3_CONTEXT_PASS s, d, flg);
d = makekan_norm(SJ4_CONTEXT_PASS s, d, flg);
}
break;
} else
switch(*s & KANJIMODEMASK) {
case ZENHIRAASSYUKU:
d = makekan_1byte(SJ3_CONTEXT_PASS s, d, FALSE);
d = makekan_1byte(SJ4_CONTEXT_PASS s, d, FALSE);
break;
case ZENKATAASSYUKU:
d = makekan_1byte(SJ3_CONTEXT_PASS s, d, FALSE);
d = makekan_1byte(SJ4_CONTEXT_PASS s, d, FALSE);
break;
case OFFSETASSYUKU:
d = makekan_ofs(SJ3_CONTEXT_PASS s, d, FALSE);
d = makekan_ofs(SJ4_CONTEXT_PASS s, d, FALSE);
break;
case AIATTRIBUTE:
d = makekan_none(SJ3_CONTEXT_PASS s, d, FALSE);
d = makekan_none(SJ4_CONTEXT_PASS s, d, FALSE);
break;
case LEADINGHANKAKU:
d = makekan_ascii(SJ3_CONTEXT_PASS s, d, FALSE);
d = makekan_ascii(SJ4_CONTEXT_PASS s, d, FALSE);
break;
case KANJIASSYUKU:
d = makekan_knj(SJ3_CONTEXT_PASS s, d, FALSE);
d = makekan_knj(SJ4_CONTEXT_PASS s, d, FALSE);
break;
default:
d = makekan_norm(SJ3_CONTEXT_PASS s, d, FALSE);
d = makekan_norm(SJ4_CONTEXT_PASS s, d, FALSE);
}
s += codesize(*s);
}
@ -304,7 +304,7 @@ sameknj(u_char* p, u_char plen, u_char* q, u_char qlen) {
#undef QEND
static int
diffknj(SJ3_CONTEXT JREC* jrec, u_char* ptr, int num) {
diffknj(SJ4_CONTEXT JREC* jrec, u_char* ptr, int num) {
KHREC* kptr;
JREC* jptr;
int i;
@ -313,7 +313,7 @@ diffknj(SJ3_CONTEXT JREC* jrec, u_char* ptr, int num) {
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++) {
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;
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))
return FALSE;
@ -388,7 +388,7 @@ int sel_sjmode(JREC* jrec) {
}
static void
cl_numcmn(SJ3_CONTEXT JREC* jrec, CLREC* clrec) {
cl_numcmn(SJ4_CONTEXT JREC* jrec, CLREC* clrec) {
u_char* p;
int i;
u_short j;
@ -403,24 +403,24 @@ cl_numcmn(SJ3_CONTEXT JREC* jrec, CLREC* clrec) {
if(jrec->jofsst) {
i = sel_sjmode(jrec);
if(seldict(SJ3_CONTEXT_PASS jrec->dicid)) {
(*curdict->getdic)(SJ3_CONTEXT_PASS curdict, jrec->jseg);
if(seldict(SJ4_CONTEXT_PASS jrec->dicid)) {
(*curdict->getdic)(SJ4_CONTEXT_PASS curdict, jrec->jseg);
p = dicbuf + jrec->jofsst + 1;
while(*p != HINSIBLKTERM) {
setkouho(SJ3_CONTEXT_PASS clrec, (TypeDicOfs)(p - dicbuf), i);
setkouho(SJ4_CONTEXT_PASS clrec, (TypeDicOfs)(p - dicbuf), i);
p = skipkstr(p);
}
} else {
setkouho(SJ3_CONTEXT_PASS clrec, (TypeDicOfs)1, i);
setkouho(SJ4_CONTEXT_PASS clrec, (TypeDicOfs)1, i);
}
} else {
tbl = Selsjadrs(jrec->class - C_N_ARABIA);
while((j = *tbl++) != SELNUMTERM) {
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"
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 num;
u_char* src;
@ -72,7 +72,7 @@ word2char(SJ3_CONTEXT u_short wd, u_char* tbl, int keta, int flg) {
}
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 keta;
int flg;
@ -87,7 +87,7 @@ words2num(SJ3_CONTEXT u_short* wd, u_char* tbl, int flgc) {
}
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;
}
@ -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];
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];
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];
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];
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];
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];
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];
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];
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
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;
u_short tmp;
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];
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];
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;
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 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 j;
@ -281,7 +281,7 @@ void num_type12(SJ3_CONTEXT u_char* s1, u_char* s2, JREC* jrec) {
}
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 j;
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];
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];
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"
static int prev_kanji(SJ3_CONTEXT2), prev_hinsi(SJ3_CONTEXT2), prev_douon(SJ3_CONTEXT2);
static int next_kanji(SJ3_CONTEXT2), next_hinsi(SJ3_CONTEXT2), next_douon(SJ3_CONTEXT2);
static void set_kanji(SJ3_CONTEXT2), set_buf(SJ3_CONTEXT u_char*), add_yomi(SJ3_CONTEXT2);
static void set_idxyomi(SJ3_CONTEXT2);
static int prev_kanji(SJ4_CONTEXT2), prev_hinsi(SJ4_CONTEXT2), prev_douon(SJ4_CONTEXT2);
static int next_kanji(SJ4_CONTEXT2), next_hinsi(SJ4_CONTEXT2), next_douon(SJ4_CONTEXT2);
static void set_kanji(SJ4_CONTEXT2), set_buf(SJ4_CONTEXT u_char*), add_yomi(SJ4_CONTEXT2);
static void set_idxyomi(SJ4_CONTEXT2);
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;
peepyomi[0] = peepknj[0] = peepgrm = 0;
(*curdict->getdic)(SJ3_CONTEXT_PASS curdict, peepidx = DICSEGBASE);
get_askknj(SJ3_CONTEXT_PASS2);
(*curdict->getdic)(SJ4_CONTEXT_PASS curdict, peepidx = DICSEGBASE);
get_askknj(SJ4_CONTEXT_PASS2);
peepdptr = segtop();
if(segend(peepdptr)) return 0;
add_yomi(SJ3_CONTEXT_PASS2);
add_yomi(SJ4_CONTEXT_PASS2);
nlen = getnlen(peepdptr);
peephptr = peepdptr + DOUONBLKSIZENUMBER + nlen;
@ -66,21 +66,21 @@ int getusr(SJ3_CONTEXT u_char* buf) {
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;
}
int nextusr(SJ3_CONTEXT u_char* buf) {
(*curdict->getdic)(SJ3_CONTEXT_PASS curdict, peepidx);
get_askknj(SJ3_CONTEXT_PASS2);
int nextusr(SJ4_CONTEXT u_char* buf) {
(*curdict->getdic)(SJ4_CONTEXT_PASS curdict, peepidx);
get_askknj(SJ4_CONTEXT_PASS2);
if(next_kanji(SJ3_CONTEXT_PASS2)) {
set_kanji(SJ3_CONTEXT_PASS2);
if(next_kanji(SJ4_CONTEXT_PASS2)) {
set_kanji(SJ4_CONTEXT_PASS2);
set_buf(SJ3_CONTEXT_PASS buf);
set_buf(SJ4_CONTEXT_PASS buf);
return -1;
}
@ -88,14 +88,14 @@ int nextusr(SJ3_CONTEXT u_char* buf) {
return 0;
}
int prevusr(SJ3_CONTEXT u_char* buf) {
(*curdict->getdic)(SJ3_CONTEXT_PASS curdict, peepidx);
get_askknj(SJ3_CONTEXT_PASS2);
int prevusr(SJ4_CONTEXT u_char* buf) {
(*curdict->getdic)(SJ4_CONTEXT_PASS curdict, peepidx);
get_askknj(SJ4_CONTEXT_PASS2);
if(prev_kanji(SJ3_CONTEXT_PASS2)) {
set_kanji(SJ3_CONTEXT_PASS2);
if(prev_kanji(SJ4_CONTEXT_PASS2)) {
set_kanji(SJ4_CONTEXT_PASS2);
set_buf(SJ3_CONTEXT_PASS buf);
set_buf(SJ4_CONTEXT_PASS buf);
return -1;
}
@ -104,16 +104,16 @@ int prevusr(SJ3_CONTEXT u_char* buf) {
}
static void
set_kanji(SJ3_CONTEXT2) {
set_kanji(SJ4_CONTEXT2) {
int len;
len = getkanji(SJ3_CONTEXT_PASS peepyomi, getnlen(peepdptr) + getplen(peepdptr),
len = getkanji(SJ4_CONTEXT_PASS peepyomi, getnlen(peepdptr) + getplen(peepdptr),
peepkptr, peepknj);
*(peepknj + len) = 0;
}
static void
set_buf(SJ3_CONTEXT u_char* buf) {
set_buf(SJ4_CONTEXT u_char* buf) {
u_char* p;
int i, csize;
@ -131,12 +131,12 @@ set_buf(SJ3_CONTEXT u_char* buf) {
}
static int
prev_kanji(SJ3_CONTEXT2) {
prev_kanji(SJ4_CONTEXT2) {
u_char* p1;
u_char* p2;
p1 = peephptr + 1;
if(peepkptr <= p1) return prev_hinsi(SJ3_CONTEXT_PASS2);
if(peepkptr <= p1) return prev_hinsi(SJ4_CONTEXT_PASS2);
p2 = peepkptr;
while(p1 < p2) {
@ -148,7 +148,7 @@ prev_kanji(SJ3_CONTEXT2) {
}
static int
prev_hinsi(SJ3_CONTEXT2) {
prev_hinsi(SJ4_CONTEXT2) {
u_char* p1;
u_char* p2;
int nlen;
@ -156,7 +156,7 @@ prev_hinsi(SJ3_CONTEXT2) {
nlen = getnlen(peepdptr);
p1 = peepdptr + DOUONBLKSIZENUMBER + nlen;
if(peephptr <= p1) return prev_douon(SJ3_CONTEXT_PASS2);
if(peephptr <= p1) return prev_douon(SJ4_CONTEXT_PASS2);
p2 = peephptr;
while(p1 < p2) {
@ -177,7 +177,7 @@ prev_hinsi(SJ3_CONTEXT2) {
}
static int
prev_douon(SJ3_CONTEXT2) {
prev_douon(SJ4_CONTEXT2) {
u_char* p1;
u_char* p2;
int nlen;
@ -185,28 +185,28 @@ prev_douon(SJ3_CONTEXT2) {
if(peepdptr <= segtop()) {
if(peepidx <= DICSEGBASE) return 0;
(*curdict->getdic)(SJ3_CONTEXT_PASS curdict, --peepidx);
get_askknj(SJ3_CONTEXT_PASS2);
(*curdict->getdic)(SJ4_CONTEXT_PASS curdict, --peepidx);
get_askknj(SJ4_CONTEXT_PASS2);
set_idxyomi(SJ3_CONTEXT_PASS2);
set_idxyomi(SJ4_CONTEXT_PASS2);
p1 = segtop();
do {
peepdptr = p1;
add_yomi(SJ3_CONTEXT_PASS2);
add_yomi(SJ4_CONTEXT_PASS2);
p1 = getntag(p1);
} while(!segend(p1));
} else {
set_idxyomi(SJ3_CONTEXT_PASS2);
set_idxyomi(SJ4_CONTEXT_PASS2);
p1 = segtop();
p2 = peepdptr;
do {
peepdptr = p1;
add_yomi(SJ3_CONTEXT_PASS2);
add_yomi(SJ4_CONTEXT_PASS2);
p1 = getntag(p1);
} while(p1 < p2);
@ -234,12 +234,12 @@ prev_douon(SJ3_CONTEXT2) {
}
static int
next_kanji(SJ3_CONTEXT2) {
next_kanji(SJ4_CONTEXT2) {
u_char* p1;
p1 = skipkstr(peepkptr);
if(*p1 == HINSIBLKTERM) return next_hinsi(SJ3_CONTEXT_PASS2);
if(*p1 == HINSIBLKTERM) return next_hinsi(SJ4_CONTEXT_PASS2);
peepkptr = p1;
@ -247,12 +247,12 @@ next_kanji(SJ3_CONTEXT2) {
}
static int
next_hinsi(SJ3_CONTEXT2) {
next_hinsi(SJ4_CONTEXT2) {
u_char* p1;
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;
@ -264,7 +264,7 @@ next_hinsi(SJ3_CONTEXT2) {
}
static int
next_douon(SJ3_CONTEXT2) {
next_douon(SJ4_CONTEXT2) {
u_char* p1;
int nlen;
@ -272,18 +272,18 @@ next_douon(SJ3_CONTEXT2) {
if(segend(p1)) {
if(peepidx + 1 < curdict->segunit) {
(*curdict->getdic)(SJ3_CONTEXT_PASS curdict, ++peepidx);
get_askknj(SJ3_CONTEXT_PASS2);
(*curdict->getdic)(SJ4_CONTEXT_PASS curdict, ++peepidx);
get_askknj(SJ4_CONTEXT_PASS2);
peepdptr = segtop();
set_idxyomi(SJ3_CONTEXT_PASS2);
set_idxyomi(SJ4_CONTEXT_PASS2);
} else
return 0;
} else {
peepdptr = p1;
}
add_yomi(SJ3_CONTEXT_PASS2);
add_yomi(SJ4_CONTEXT_PASS2);
nlen = getnlen(peepdptr);
peephptr = peepdptr + DOUONBLKSIZENUMBER + nlen;
@ -296,10 +296,10 @@ next_douon(SJ3_CONTEXT2) {
}
static void
set_idxyomi(SJ3_CONTEXT2) {
set_idxyomi(SJ4_CONTEXT2) {
u_char *p1, *p2;
if((p2 = get_idxptr(SJ3_CONTEXT_PASS peepidx))) {
if((p2 = get_idxptr(SJ4_CONTEXT_PASS peepidx))) {
p1 = peepyomi;
while(*p2) {
cd2sjh_chr(*p2++, p1);
@ -310,7 +310,7 @@ set_idxyomi(SJ3_CONTEXT2) {
}
static void
add_yomi(SJ3_CONTEXT2) {
add_yomi(SJ4_CONTEXT2) {
int nlen;
u_char *p1, *p2;

View file

@ -38,7 +38,7 @@
#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* dst;
int i;
@ -52,7 +52,7 @@ int ph2knj(SJ3_CONTEXT u_char* zyomi, u_char* kanji, int knjlen) {
}
*dst = 0;
freework(SJ3_CONTEXT_PASS2);
freework(SJ4_CONTEXT_PASS2);
prevclgrm = 0;
prevclrow = 0;
@ -68,38 +68,38 @@ int ph2knj(SJ3_CONTEXT u_char* zyomi, u_char* kanji, int knjlen) {
while(cnvlen && kanjilen) {
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;
clt1st = maxclptr;
}
mk2claus(SJ3_CONTEXT_PASS2);
mk2claus(SJ4_CONTEXT_PASS2);
selclrec(SJ3_CONTEXT_PASS2);
selclrec(SJ4_CONTEXT_PASS2);
prevclgrm = selcl->jnode->hinsi;
prevclrow = selcl->right;
clt1st = free_clst(SJ3_CONTEXT_PASS clt1st, (int)selcl->cllen);
jrt1st = free_jlst(SJ3_CONTEXT_PASS jrt1st);
clt1st = free_clst(SJ4_CONTEXT_PASS clt1st, (int)selcl->cllen);
jrt1st = free_jlst(SJ4_CONTEXT_PASS jrt1st);
cnvstart += selcl->cllen;
cnvlen -= selcl->cllen;
cvtphknj(SJ3_CONTEXT_PASS2);
cvtphknj(SJ4_CONTEXT_PASS2);
clt1st = clt2nd;
jrt1st = jrt2nd;
}
if(!kanjilen) {
free_clall(SJ3_CONTEXT_PASS clt1st);
free_jall(SJ3_CONTEXT_PASS jrt1st);
free_clall(SJ4_CONTEXT_PASS clt1st);
free_jall(SJ4_CONTEXT_PASS jrt1st);
}
*kanjipos = 0;

View file

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

View file

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

View file

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

View file

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

View file

@ -107,7 +107,7 @@ cnvrow(JREC* rec, TypeCnct 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;
int cmp;
TypeCnct right;

View file

@ -39,11 +39,11 @@
#include "sj_kanakan.h"
int setj_atrb(SJ3_CONTEXT u_char* p) {
int setj_atrb(SJ4_CONTEXT u_char* p) {
return 2;
}
int setj_ofs(SJ3_CONTEXT u_char* p) {
int setj_ofs(SJ4_CONTEXT u_char* p) {
int contf = TRUE;
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;
switch(*p & KANJIMODEMASK) {
case ZENHIRAASSYUKU:
p += setj_norm1(SJ3_CONTEXT_PASS p);
p += setj_norm1(SJ4_CONTEXT_PASS p);
break;
case ZENKATAASSYUKU:
p += setj_norm1(SJ3_CONTEXT_PASS p);
p += setj_norm1(SJ4_CONTEXT_PASS p);
break;
case OFFSETASSYUKU:
p += setj_ofs(SJ3_CONTEXT_PASS p);
p += setj_ofs(SJ4_CONTEXT_PASS p);
break;
case AIATTRIBUTE:
p += setj_atrb(SJ3_CONTEXT_PASS p);
p += setj_atrb(SJ4_CONTEXT_PASS p);
break;
case LEADINGHANKAKU:
p += setj_norm2(SJ3_CONTEXT_PASS p);
p += setj_norm2(SJ4_CONTEXT_PASS p);
break;
case KANJIASSYUKU:
p += setj_knj(SJ3_CONTEXT_PASS p);
p += setj_knj(SJ4_CONTEXT_PASS p);
break;
case KANJISTREND:
@ -80,14 +80,14 @@ int setj_ofs(SJ3_CONTEXT u_char* p) {
break;
default:
p += setj_norm2(SJ3_CONTEXT_PASS p);
p += setj_norm2(SJ4_CONTEXT_PASS p);
}
} while(contf);
return 2;
}
int setj_knj(SJ3_CONTEXT u_char* p) {
int setj_knj(SJ4_CONTEXT u_char* p) {
int contf = TRUE;
p = askknj[*p & KNJASSYUKUMASK];
@ -96,27 +96,27 @@ int setj_knj(SJ3_CONTEXT u_char* p) {
if(p[codesize(*p)] == KANJISTREND) contf = FALSE;
switch(*p & KANJIMODEMASK) {
case ZENHIRAASSYUKU:
p += setj_norm1(SJ3_CONTEXT_PASS p);
p += setj_norm1(SJ4_CONTEXT_PASS p);
break;
case ZENKATAASSYUKU:
p += setj_norm1(SJ3_CONTEXT_PASS p);
p += setj_norm1(SJ4_CONTEXT_PASS p);
break;
case OFFSETASSYUKU:
p += setj_ofs(SJ3_CONTEXT_PASS p);
p += setj_ofs(SJ4_CONTEXT_PASS p);
break;
case AIATTRIBUTE:
p += setj_atrb(SJ3_CONTEXT_PASS p);
p += setj_atrb(SJ4_CONTEXT_PASS p);
break;
case LEADINGHANKAKU:
p += setj_norm2(SJ3_CONTEXT_PASS p);
p += setj_norm2(SJ4_CONTEXT_PASS p);
break;
case KANJIASSYUKU:
p += setj_knj(SJ3_CONTEXT_PASS p);
p += setj_knj(SJ4_CONTEXT_PASS p);
break;
case KANJISTREND:
@ -124,27 +124,27 @@ int setj_knj(SJ3_CONTEXT u_char* p) {
break;
default:
p += setj_norm2(SJ3_CONTEXT_PASS p);
p += setj_norm2(SJ4_CONTEXT_PASS p);
}
} while(contf);
return 1;
}
int setj_norm1(SJ3_CONTEXT u_char* p) {
int setj_norm1(SJ4_CONTEXT u_char* p) {
return 1;
}
int setj_norm2(SJ3_CONTEXT u_char* p) {
int setj_norm2(SJ4_CONTEXT u_char* p) {
return 2;
}
int setj_norm3(SJ3_CONTEXT u_char* p) {
int setj_norm3(SJ4_CONTEXT u_char* p) {
return 3;
}
static u_char
chkhead(SJ3_CONTEXT TypeGram gram) {
chkhead(SJ4_CONTEXT TypeGram gram) {
if(!headcode) return TRUE;
if(headcode == SETTOU_DAI) {
@ -162,7 +162,7 @@ chkhead(SJ3_CONTEXT TypeGram gram) {
return FALSE;
}
void setjrec(SJ3_CONTEXT u_char* tagp, int mode) {
void setjrec(SJ4_CONTEXT u_char* tagp, int mode) {
TypeGram gram;
u_char* ptr;
u_char* endp;
@ -187,27 +187,27 @@ void setjrec(SJ3_CONTEXT u_char* tagp, int mode) {
for(tmp = ptr + 1; *tmp != HINSIBLKTERM;) {
switch(*tmp & KANJIMODEMASK) {
case ZENHIRAASSYUKU:
tmp += setj_norm1(SJ3_CONTEXT_PASS tmp);
tmp += setj_norm1(SJ4_CONTEXT_PASS tmp);
break;
case ZENKATAASSYUKU:
tmp += setj_norm1(SJ3_CONTEXT_PASS tmp);
tmp += setj_norm1(SJ4_CONTEXT_PASS tmp);
break;
case OFFSETASSYUKU:
tmp += setj_ofs(SJ3_CONTEXT_PASS tmp);
tmp += setj_ofs(SJ4_CONTEXT_PASS tmp);
break;
case AIATTRIBUTE:
tmp += setj_atrb(SJ3_CONTEXT_PASS tmp);
tmp += setj_atrb(SJ4_CONTEXT_PASS tmp);
break;
case LEADINGHANKAKU:
tmp += setj_norm2(SJ3_CONTEXT_PASS tmp);
tmp += setj_norm2(SJ4_CONTEXT_PASS tmp);
break;
case KANJIASSYUKU:
tmp += setj_knj(SJ3_CONTEXT_PASS tmp);
tmp += setj_knj(SJ4_CONTEXT_PASS tmp);
break;
case KANJISTREND:
@ -215,15 +215,15 @@ void setjrec(SJ3_CONTEXT u_char* tagp, int mode) {
break;
default:
tmp += setj_norm2(SJ3_CONTEXT_PASS tmp);
tmp += setj_norm2(SJ4_CONTEXT_PASS tmp);
}
}
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->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* endp;
u_char* tmp;
@ -255,27 +255,27 @@ void setnumrec(SJ3_CONTEXT u_char* tagp, JREC* rec, TypeGram gram) {
for(tmp = ptr + 1; *tmp != HINSIBLKTERM;) {
switch(*tmp & KANJIMODEMASK) {
case ZENHIRAASSYUKU:
tmp += setj_norm1(SJ3_CONTEXT_PASS tmp);
tmp += setj_norm1(SJ4_CONTEXT_PASS tmp);
break;
case ZENKATAASSYUKU:
tmp += setj_norm1(SJ3_CONTEXT_PASS tmp);
tmp += setj_norm1(SJ4_CONTEXT_PASS tmp);
break;
case OFFSETASSYUKU:
tmp += setj_ofs(SJ3_CONTEXT_PASS tmp);
tmp += setj_ofs(SJ4_CONTEXT_PASS tmp);
break;
case AIATTRIBUTE:
tmp += setj_atrb(SJ3_CONTEXT_PASS tmp);
tmp += setj_atrb(SJ4_CONTEXT_PASS tmp);
break;
case LEADINGHANKAKU:
tmp += setj_norm2(SJ3_CONTEXT_PASS tmp);
tmp += setj_norm2(SJ4_CONTEXT_PASS tmp);
break;
case KANJIASSYUKU:
tmp += setj_knj(SJ3_CONTEXT_PASS tmp);
tmp += setj_knj(SJ4_CONTEXT_PASS tmp);
break;
case KANJISTREND:
@ -283,13 +283,13 @@ void setnumrec(SJ3_CONTEXT u_char* tagp, JREC* rec, TypeGram gram) {
break;
default:
tmp += setj_norm2(SJ3_CONTEXT_PASS tmp);
tmp += setj_norm2(SJ4_CONTEXT_PASS tmp);
}
}
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->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;
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->class = C_BUNSETU;

View file

@ -39,9 +39,9 @@
#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;
KHREC* kptr;
u_char* fptr;
@ -85,7 +85,7 @@ void setkouho(SJ3_CONTEXT CLREC* clrec, TypeDicOfs offs, int mode) {
kptr->sttfg = 1;
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(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;
u_char* p;
@ -154,7 +154,7 @@ void ph_setkouho(SJ3_CONTEXT CLREC* clrec, TypeDicOfs offs, STDYIN* sptr) {
}
static int
hiraknj(SJ3_CONTEXT u_char* p) {
hiraknj(SJ4_CONTEXT u_char* p) {
char flg = TRUE;
int i;
int result;
@ -163,31 +163,31 @@ hiraknj(SJ3_CONTEXT u_char* p) {
if(p[codesize(*p)] == KANJISTREND) flg = FALSE;
switch(*p & KANJIMODEMASK) {
case ZENHIRAASSYUKU:
result = hiraknj_hask(SJ3_CONTEXT_PASS p, &i);
result = hiraknj_hask(SJ4_CONTEXT_PASS p, &i);
break;
case ZENKATAASSYUKU:
result = hiraknj_kask(SJ3_CONTEXT_PASS p, &i);
result = hiraknj_kask(SJ4_CONTEXT_PASS p, &i);
break;
case OFFSETASSYUKU:
result = hiraknj_ofs(SJ3_CONTEXT_PASS p, &i);
result = hiraknj_ofs(SJ4_CONTEXT_PASS p, &i);
break;
case AIATTRIBUTE:
result = hiraknj_atrb(SJ3_CONTEXT_PASS p, &i);
result = hiraknj_atrb(SJ4_CONTEXT_PASS p, &i);
break;
case LEADINGHANKAKU:
result = hiraknj_norm(SJ3_CONTEXT_PASS p, &i);
result = hiraknj_norm(SJ4_CONTEXT_PASS p, &i);
break;
case KANJIASSYUKU:
result = hiraknj_knj(SJ3_CONTEXT_PASS p, &i);
result = hiraknj_knj(SJ4_CONTEXT_PASS p, &i);
break;
default:
result = hiraknj_hira(SJ3_CONTEXT_PASS p, &i);
result = hiraknj_hira(SJ4_CONTEXT_PASS p, &i);
}
if(result) return result;
@ -198,37 +198,37 @@ hiraknj(SJ3_CONTEXT u_char* p) {
return 0;
}
int hiraknj_atrb(SJ3_CONTEXT u_char* p, int* len) {
int hiraknj_atrb(SJ4_CONTEXT u_char* p, int* len) {
*len = 2;
return 0;
}
int hiraknj_ofs(SJ3_CONTEXT u_char* p, int* len) {
int hiraknj_ofs(SJ4_CONTEXT u_char* p, int* len) {
*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;
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;
return 2;
}
int hiraknj_kask(SJ3_CONTEXT u_char* p, int* len) {
int hiraknj_kask(SJ4_CONTEXT u_char* p, int* len) {
*len = 1;
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);
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;
*len = codesize(*p);

View file

@ -45,7 +45,7 @@ getstb(TypeGram 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* yptr;
u_char* sptr;
@ -68,7 +68,7 @@ void setubi(SJ3_CONTEXT JREC* rec, u_char* stbtbl) {
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->flags |= StbBakeru(stb) ? JFLAG_KA : 0;

View file

@ -37,7 +37,7 @@
#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 same;
@ -47,7 +47,7 @@ int yomicmp(SJ3_CONTEXT u_char* ptr1, u_char* ptr2, u_char* saml) {
j = getnlen(ptr2);
if(j == 0) {
ptr2 = get_idxptr(SJ3_CONTEXT_PASS prevseg);
ptr2 = get_idxptr(SJ4_CONTEXT_PASS prevseg);
for(i = same; i; i--)
if(*ptr1++ != *ptr2++) return OVER;
@ -79,7 +79,7 @@ int yomicmp(SJ3_CONTEXT u_char* ptr1, u_char* ptr2, u_char* saml) {
}
u_char*
srchdict(SJ3_CONTEXT u_char* tagp) {
srchdict(SJ4_CONTEXT u_char* tagp) {
TypeDicSeg segno;
int cmp;
int maxlen;
@ -88,9 +88,9 @@ srchdict(SJ3_CONTEXT u_char* tagp) {
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) {
@ -109,20 +109,20 @@ srchdict(SJ3_CONTEXT u_char* tagp) {
if(segno >= curdict->segunit) return NULL;
(*curdict->getdic)(SJ3_CONTEXT_PASS curdict, segno);
(*curdict->getdic)(SJ4_CONTEXT_PASS curdict, segno);
tagp = dicbuf;
}
}
if(tagp == dicbuf) {
get_askknj(SJ3_CONTEXT_PASS2);
get_askknj(SJ4_CONTEXT_PASS2);
tagp += *tagp + 1;
}
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;

View file

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

View file

@ -38,7 +38,7 @@
#include "sj_kanakan.h"
TypeDicSeg
srchidx(SJ3_CONTEXT TypeDicSeg low, int len) {
srchidx(SJ4_CONTEXT TypeDicSeg low, int len) {
TypeDicSeg high;
TypeDicSeg mid;
int cmp;
@ -52,7 +52,7 @@ srchidx(SJ3_CONTEXT TypeDicSeg low, int len) {
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));

View file

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

View file

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

View file

@ -38,7 +38,7 @@
#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;
if((yomi > cnvstart) && (Chrtbl[*(yomi - 1)] & NUMBER))

View file

@ -39,7 +39,7 @@
#include "sj_kanakan.h"
void wakachi(SJ3_CONTEXT2) {
void wakachi(SJ4_CONTEXT2) {
JREC* jrec;
CLREC* clrec;
@ -50,7 +50,7 @@ void wakachi(SJ3_CONTEXT2) {
int i;
int maxlen;
free_jall(SJ3_CONTEXT_PASS maxjptr);
free_jall(SJ4_CONTEXT_PASS maxjptr);
maxjptr = NULL;
maxlen = (cnvlen > MAXCLINPUTLEN) ? MAXCLINPUTLEN : cnvlen;
@ -66,24 +66,24 @@ void wakachi(SJ3_CONTEXT2) {
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->hinsi = D_MEISI_1;
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 {
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->hinsi = MEISI_6;
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;) {
@ -92,17 +92,17 @@ void wakachi(SJ3_CONTEXT2) {
next = cnvstart + jrec->jlen + gobilen;
if(gobilen) {
if(terminate(SJ3_CONTEXT_PASS right, next)) {
if(terminate(SJ4_CONTEXT_PASS right, next)) {
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)) {
fzk_ka_flg = 0;
setclrec(SJ3_CONTEXT_PASS jrec, next, right);
setclrec(SJ4_CONTEXT_PASS jrec, next, right);
return;
}
srchfzk(SJ3_CONTEXT_PASS jrec, next, right, 0);
srchfzk(SJ4_CONTEXT_PASS jrec, next, right, 0);
}
if(maxclptr) break;
@ -115,7 +115,7 @@ void wakachi(SJ3_CONTEXT2) {
return;
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->right = R_MEISI;
clrec->kubun = K_TAIGEN;

View file

@ -34,7 +34,7 @@
*/
#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
#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 "rk.h"
#include "sj3rkcv.h"
#include "sj4rkcv.h"
#if defined(__sony_news) && defined(SVR4)
#define wscmp sj3_wscmp16
#define wsncmp sj3_wsncmp16
#define wsncpy sj3_wsncpy16
#define wscpy sj3_wscpy16
#define wslen sj3_wslen16
#define mbstowcs sj3_mbstowcs16
#define wcstombs sj3_wcstombs16
#define wscmp sj4_wscmp16
#define wsncmp sj4_wsncmp16
#define wsncpy sj4_wsncpy16
#define wscpy sj4_wscpy16
#define wslen sj4_wslen16
#define mbstowcs sj4_mbstowcs16
#define wcstombs sj4_wcstombs16
#endif
#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 SJ3_NO -1
#define SJ3_SJIS 0
#define SJ3_EUC 1
#define SJ4_NO -1
#define SJ4_SJIS 0
#define SJ4_EUC 1
RkTabl* sj3_rcode[MAXCODE];
RkTablW16* sj3_rcode_w16[MAXCODE];
RkTabl* sj4_rcode[MAXCODE];
RkTablW16* sj4_rcode_w16[MAXCODE];
RkTablW16* rktblp;
wchar16_t rline[MAXLLEN];
wchar16_t lstr[MAXLLEN];
@ -87,7 +87,7 @@ static int rk_erase;
static int rk_errin = 0;
static int rk_cflag;
static int rk_klen;
static int file_code = SJ3_NO;
static int file_code = SJ4_NO;
static RkbufRec rkpbuf, *rkpp = NULL;
static RkTablW16* rkhp;
@ -96,14 +96,14 @@ static wchar16_t* shp;
static YmibufRec ymipbuf, *ymipp;
static u_short* yhp;
void sj3_rkcode(int code) {
void sj4_rkcode(int 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;
return (sj3_rkinit_mb(rkfile));
return (sj4_rkinit_mb(rkfile));
}
int rcode_sjis_init() {
@ -117,8 +117,8 @@ int rcode_sjis_init() {
tablsize = sizeof(RkTabl);
for(i = 0; i < MAXCODE; i++) {
if(sj3_rcode_w16[i]) {
tabl_w16 = sj3_rcode_w16[i];
if(sj4_rcode_w16[i]) {
tabl_w16 = sj4_rcode_w16[i];
while(tabl_w16) {
tablnum++;
if(tabl_w16->r_key)
@ -155,9 +155,9 @@ int rcode_sjis_init() {
rkeylen *= 2;
rstrlen *= 2;
for(i = 0; i < MAXCODE; i++) {
if(sj3_rcode_w16[i]) {
tabl_w16 = sj3_rcode_w16[i];
tabl_next = sj3_rcode[i] = tabl;
if(sj4_rcode_w16[i]) {
tabl_w16 = sj4_rcode_w16[i];
tabl_next = sj4_rcode[i] = tabl;
while(tabl_w16) {
tabl += 1;
if(tabl_w16->r_key) {
@ -275,8 +275,8 @@ int rcode_euc_init() {
tablsize = sizeof(RkTabl);
for(i = 0; i < MAXCODE; i++) {
if(sj3_rcode_w16[i]) {
tabl_w16 = sj3_rcode_w16[i];
if(sj4_rcode_w16[i]) {
tabl_w16 = sj4_rcode_w16[i];
while(tabl_w16) {
tablnum++;
if(tabl_w16->r_key)
@ -313,9 +313,9 @@ int rcode_euc_init() {
rkeylen *= 2;
rstrlen *= 2;
for(i = 0; i < MAXCODE; i++) {
if(sj3_rcode_w16[i]) {
tabl_w16 = sj3_rcode_w16[i];
tabl_next = sj3_rcode[i] = tabl;
if(sj4_rcode_w16[i]) {
tabl_w16 = sj4_rcode_w16[i];
tabl_next = sj4_rcode[i] = tabl;
while(tabl_w16) {
tabl += 1;
if(tabl_w16->r_key) {
@ -422,22 +422,22 @@ int rcode_euc_init() {
return 1;
}
int sj3_rkinit(char* rkfile) {
return sj3_rkinit_sub(rkfile, rcode_sjis_init);
int sj4_rkinit(char* rkfile) {
return sj4_rkinit_sub(rkfile, rcode_sjis_init);
}
int sj3_rkinit_euc(char* rkfile) {
return sj3_rkinit_sub(rkfile, rcode_euc_init);
int sj4_rkinit_euc(char* rkfile) {
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)
return sj3_rkinit_sub(rkfile, rcode_euc_init);
return sj4_rkinit_sub(rkfile, rcode_euc_init);
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;
int len, klen, rlen, retv;
FILE* fp;
@ -496,7 +496,7 @@ int sj3_rkinit_sub(char* rkfile, int (*mbfunc)()) {
fclose(fp);
if(!(*mbfunc)())
retv = FAIL;
sj3_rkclear();
sj4_rkclear();
return (retv);
}
@ -566,13 +566,13 @@ char* rkgetyomi(char* istr, wchar16_t* ostr, int* len) {
if(SKLINE(*p))
break;
cc = c = *p++;
if(file_code == SJ3_SJIS) {
if(file_code == SJ4_SJIS) {
if(issjis1(c) && issjis2(*p)) {
cc = (c << 8) + (*p & MASK);
p++;
cc = sjis2euc(cc);
}
} else if(file_code == SJ3_EUC) {
} else if(file_code == SJ4_EUC) {
if(iseuc(c) && iseuc(*p)) {
cc = (c << 8) + (*p & MASK);
p++;
@ -584,12 +584,12 @@ char* rkgetyomi(char* istr, wchar16_t* ostr, int* len) {
}
} else {
if(issjis1(c) && issjis2(*p)) {
file_code = SJ3_SJIS;
file_code = SJ4_SJIS;
p--;
continue;
}
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--;
continue;
}
@ -612,8 +612,8 @@ void cltable() {
if(rkpp != NULL) {
for(i = 0; i < MAXCODE; i++) {
sj3_rcode_w16[i] = NULL;
sj3_rcode[i] = NULL;
sj4_rcode_w16[i] = NULL;
sj4_rcode[i] = NULL;
}
rkpp = &rkpbuf;
rkhp = rkpp->rkbuf;
@ -746,7 +746,7 @@ mktable(wchar16_t* key, int len) {
nrktp = NULL;
orktp = NULL;
code = *key++ & MASK;
rktp = sj3_rcode_w16[code];
rktp = sj4_rcode_w16[code];
while(rktp != NULL) {
if(rktp->r_key == NULL) {
if(*key == NSTR)
@ -765,13 +765,13 @@ mktable(wchar16_t* key, int len) {
}
if((rktp = rkalloc()) == NULL)
return (NULL);
if(sj3_rcode_w16[code] == NULL)
sj3_rcode_w16[code] = rktp;
if(sj4_rcode_w16[code] == NULL)
sj4_rcode_w16[code] = rktp;
else {
if(nrktp != NULL) {
rktp->next = nrktp;
if(orktp == NULL)
sj3_rcode_w16[code] = rktp;
sj4_rcode_w16[code] = rktp;
else
orktp->next = rktp;
} else
@ -780,23 +780,23 @@ mktable(wchar16_t* key, int len) {
return (rktp);
}
void sj3_rkebell(int err) {
void sj4_rkebell(int err) {
rk_errin = err;
}
void sj3_rkclear() {
void sj4_rkclear() {
rline[0] = NSTR;
lstr[0] = NSTR;
rktblp = NULL;
rk_klen = 0;
sj3_rkreset();
sj4_rkreset();
}
void sj3_rkreset() {
void sj4_rkreset() {
rk_cflag = -1;
}
void sj3_rkconvc(wchar16_t c, u_int* rkstr) {
void sj4_rkconvc(wchar16_t c, u_int* rkstr) {
int i;
wchar16_t *p, *q;
int len;
@ -835,7 +835,7 @@ void sj3_rkconvc(wchar16_t c, u_int* rkstr) {
rline[len] = c;
rline[len + 1] = NSTR;
wscpy(wstr, rline);
if((i = sj3_rkconv2(wstr, kstr, len)) == CONTINUE) {
if((i = sj4_rkconv2(wstr, kstr, len)) == CONTINUE) {
if(rk_cflag >= 0)
rk_cflag++;
*rkstr++ = ERRCODE + c;
@ -864,7 +864,7 @@ void sj3_rkconvc(wchar16_t c, u_int* rkstr) {
*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;
wchar16_t *p, *q, *s;
int rlen, len;
@ -874,7 +874,7 @@ int sj3_rkconv2(wchar16_t* wstr, u_int* kstr, int wlen) {
len = 0;
if((rktp = rktblp) == NULL)
rktp = sj3_rcode_w16[WTOUPPER(*wstr)];
rktp = sj4_rcode_w16[WTOUPPER(*wstr)];
if(*wstr > (wchar16_t)0xff) rktp = NULL;
while(1) {
while(rktp != NULL) {
@ -914,7 +914,7 @@ int sj3_rkconv2(wchar16_t* wstr, u_int* kstr, int wlen) {
}
*q = NSTR;
wscpy(wstr, svstr);
rktp = sj3_rcode_w16[WTOUPPER(*wstr)];
rktp = sj4_rcode_w16[WTOUPPER(*wstr)];
wlen = wslen(wstr);
wlen--;
continue;
@ -943,7 +943,7 @@ int sj3_rkconv2(wchar16_t* wstr, u_int* kstr, int wlen) {
p++;
}
*p = NSTR;
rktp = sj3_rcode_w16[WTOUPPER(*wstr)];
rktp = sj4_rcode_w16[WTOUPPER(*wstr)];
if(*wstr > (wchar16_t)0xff) rktp = NULL;
wlen--;
continue;
@ -955,7 +955,7 @@ int sj3_rkconv2(wchar16_t* wstr, u_int* kstr, int wlen) {
return (len);
}
int sj3_rkconv(u_char* romaji, u_char* kana) {
int sj4_rkconv(u_char* romaji, u_char* kana) {
wchar16_t* wstr;
int len, mflag = 0, ret;
@ -971,7 +971,7 @@ int sj3_rkconv(u_char* romaji, u_char* kana) {
if(mflag) free(wstr);
return -1;
}
ret = sj3_rkconv_w16(wstr, outtmp);
ret = sj4_rkconv_w16(wstr, outtmp);
if(ret == 0 || ret == -1) {
if(mflag) free(wstr);
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;
int len, mflag = 0, ret;
@ -1014,7 +1014,7 @@ int sj3_rkconv_euc(u_char* romaji, u_char* kana) {
if(mflag) free(wstr);
return -1;
}
ret = sj3_rkconv_w16(wstr, outtmp);
ret = sj4_rkconv_w16(wstr, outtmp);
if(ret == 0 || ret == -1) {
if(mflag) free(wstr);
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)
return sj3_rkconv_euc(romaji, kana);
return sj4_rkconv_euc(romaji, kana);
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;
wchar16_t *p, *q, *s;
@ -1059,7 +1059,7 @@ int sj3_rkconv_w16(wchar16_t* wstr, wchar16_t* kstr) {
u_short* kp;
len = wslen(wstr);
rktp = sj3_rcode_w16[WTOUPPER(*wstr)];
rktp = sj4_rcode_w16[WTOUPPER(*wstr)];
if(*wstr > (wchar16_t)0xff) rktp = NULL;
while(rktp != NULL) {
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 $
* $SonyDate: 1995/02/10 06:02:25 $
*/
@ -41,16 +41,16 @@
#include "rk.h"
#include "kctype.h"
#include "sj3rkcv.h"
#include "sj4rkcv.h"
#if defined(__sony_news) && (SVR4)
#define wscmp sj3_wscmp16
#define wsncmp sj3_wsncmp16
#define wsncpy sj3_wsncpy16
#define wscpy sj3_wscpy16
#define wslen sj3_wslen16
#define mbstowcs sj3_mbstowcs16
#define wcstombs sj3_wcstombs16
#define wscmp sj4_wscmp16
#define wsncmp sj4_wsncmp16
#define wsncpy sj4_wsncpy16
#define wscpy sj4_wscpy16
#define wslen sj4_wslen16
#define mbstowcs sj4_mbstowcs16
#define wcstombs sj4_wcstombs16
#endif
extern int current_locale;
@ -274,7 +274,7 @@ int sj_han2zen(u_short c) {
return (cc);
}
int sj3_hantozen(u_char* out, u_char* in) {
int sj4_hantozen(u_char* out, u_char* in) {
wchar16_t *winstr, *woutstr;
u_char* mstr;
int inlen, outlen, imflag = 0, omflag = 0, mmflag = 0, ret;
@ -321,7 +321,7 @@ int sj3_hantozen(u_char* out, u_char* in) {
} else {
woutstr = (wchar16_t*)outtmp;
}
ret = sj3_hantozen_w16(woutstr, winstr);
ret = sj4_hantozen_w16(woutstr, winstr);
if(mmflag) {
free(mstr);
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;
u_char* mstr;
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 {
woutstr = (wchar16_t*)outtmp;
}
ret = sj3_hantozen_w16(woutstr, winstr);
ret = sj4_hantozen_w16(woutstr, winstr);
if(mmflag) {
free(mstr);
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)
return sj3_hantozen_euc(s1, s2);
return sj4_hantozen_euc(s1, s2);
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));
}
@ -531,7 +531,7 @@ int sj_zen2han(u_short c) {
return (cc);
}
int sj3_zentohan(u_char* out, u_char* in) {
int sj4_zentohan(u_char* out, u_char* in) {
wchar16_t *winstr, *woutstr;
u_char* mstr;
int inlen, outlen, imflag = 0, omflag = 0, mmflag = 0, ret;
@ -581,7 +581,7 @@ int sj3_zentohan(u_char* out, u_char* in) {
} else {
woutstr = (wchar16_t*)outtmp;
}
ret = sj3_zentohan_w16(woutstr, winstr);
ret = sj4_zentohan_w16(woutstr, winstr);
if(ret == 0 || ret == -1) {
if(imflag) free(winstr);
if(omflag) free(woutstr);
@ -619,7 +619,7 @@ int sj3_zentohan(u_char* out, u_char* in) {
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;
u_char* mstr;
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 {
woutstr = (wchar16_t*)outtmp;
}
ret = sj3_zentohan_w16(woutstr, winstr);
ret = sj4_zentohan_w16(woutstr, winstr);
if(ret == 0 || ret == -1) {
if(mmflag) free(mstr);
if(imflag) free(winstr);
@ -708,14 +708,14 @@ int sj3_zentohan_euc(u_char* out, u_char* in) {
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)
return sj3_zentohan_euc(s1, s2);
return sj4_zentohan_euc(s1, s2);
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));
}

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