Rename to Sj4
This commit is contained in:
parent
0184e70f04
commit
0a2839610b
121 changed files with 1471 additions and 1461 deletions
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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 */
|
||||
|
|
@ -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"
|
||||
|
|
@ -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
103
include/sj4common/sj4err.h
Normal 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
|
||||
|
|
@ -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 */
|
||||
|
|
@ -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
|
||||
|
|
@ -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 */
|
||||
|
|
@ -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
|
||||
357
include/sj4core/sj_kanakan.h
Normal file
357
include/sj4core/sj_kanakan.h
Normal 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 */
|
||||
|
|
@ -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
|
||||
|
|
@ -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*);
|
||||
|
|
@ -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
|
||||
|
|
@ -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;
|
||||
|
|
@ -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
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
@ -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];
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
|
@ -46,7 +46,7 @@
|
|||
|
||||
#include "sj_kanakan.h"
|
||||
|
||||
#ifdef SJ3_GLOBAL
|
||||
#ifdef SJ4_GLOBAL
|
||||
Global* work_base;
|
||||
|
||||
STDY* stdy_base;
|
||||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
@ -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)
|
||||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
||||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
|
|
@ -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);
|
||||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
|
||||
|
|
@ -38,7 +38,7 @@
|
|||
|
||||
#include "sj_kanakan.h"
|
||||
|
||||
int srchhead(SJ3_CONTEXT2) {
|
||||
int srchhead(SJ4_CONTEXT2) {
|
||||
if(*cnvstart == _O) {
|
||||
headcode = SETTOU_O;
|
||||
headlen = 1;
|
||||
|
|
@ -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));
|
||||
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
|
@ -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))
|
||||
|
|
@ -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;
|
||||
|
|
@ -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);
|
||||
|
|
@ -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
Loading…
Add table
Add a link
Reference in a new issue