sj3/const.h

257 lines
7.5 KiB
C

/*-
* SPDX-License-Identifier: MIT-open-group
*
* 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.
*/
#ifndef SJ3_CONST_H_
#define SJ3_CONST_H_
#include "Paths.h"
#include "sj_euc.h"
#define HostNameLen 128
#define UserNameLen 128
#define ProgNameLen 128
#define PathNameLen 1024
#define PassWordLen 16
#define YomiBufSize 1024
#define KanjiBufSize 2048
#define MinIdxLen 512
#define MinSegLen 512
#define MinSegNum 1
#define MinStyNum 512
#define MaxStyNum 0x7fff
#define MinClStep 1
#define MaxClStep 256
#define MinClLen 512
#define MaxClLen 0x7fff
#define DebugOutFile ErrorOutFile
#define DebugLevel 0
#define ForkFlag 1
#define MaxClientNum 512
#define LogOutFile ErrorOutFile
#define PortName "sj3"
#define PortNumber 3086
#define DirectryMode 0755
#define DictFileMode 0644
#define MODE_MASK 0777
#define DefIdxLen 2048
#define DefSegLen 2048
#define DefSegNum 256
#define DefStyNum 2048
#define DefClStep 1
#define DefClLen 2048
#define NotLocked -1
#define ERROR -1
#ifndef FALSE
#define TRUE -1
#define FALSE (!TRUE)
#endif
#define MATCH 0
#define OVER 1
#define PARTLY 2
#define CONT 3
#define UNDER 4
#define AD_Done 0x0000
#define AD_NotUserDict 0x0001
#define AD_BadYomi 0x0002
#define AD_BadKanji 0x0004
#define AD_BadHinshi 0x0008
#define AD_ArExist 0x0010
#define AD_OvflwDouBlk 0x0020
#define AD_OvflwDouNum 0x0040
#define AD_OvflwUsrDic 0x0080
#define AD_OvflwIndex 0x0100
#define AD_NoMidasi 0x0010
#define AD_NoHinshi 0x0020
#define AD_NoKanji 0x0040
#define C_WAKACHI 0x00
#define C_MINASI 0x01
#define C_BUNSETSU 0x02
#define C_DICT 0x03
#define C_N_ARABIA 0x04
#define C_N_ARACMA 0x05
#define C_N_KAZU 0x06
#define C_N_SUUJI 0x07
#define C_N_NANSUU 0x08
#define C_N_KANKURA 0x09
#define C_N_ARAKURA 0x0a
#define C_N_KAZULONG 0x0b
#define C_N_KAZULCMA 0x0c
#define C_N_SUUJILONG 0x0d
#define JFLAG_N10 (1 << 15)
#define JFLAG_N_1 (1 << 14)
#define JFLAG_NS1 (1 << 13)
#define JFLAG_N01 (1 << 12)
#define JFLAG_N23 (1 << 11)
#define JFLAG_NK2 (1 << 10)
#define JFLAG_NK4 (1 << 9)
#define JFLAG_NN0 (1 << 8)
#define JFLAG_NSN (1 << 7)
#define JFLAG_KA (1 << 0)
#define DO_CLSTUDY 0x01
#define DO_IKKATU 0x02
#define K_DOUSHI 1
#define K_YOUGEN 2
#define K_TAIGEN 3
#define K_FUKUSHI 4
#define K_RENTAISHI 5
#define K_SONOTA 6
#define EUC_a1 (unsigned char)0xa1
#define EUC_a2 (unsigned char)0xa2
#define EUC_a3 (unsigned char)0xa3
#define EUC_a4 (unsigned char)0xa4
#define EUC_a5 (unsigned char)0xa5
#define EUC_START (unsigned char)0xa1
#define EUC_END (unsigned char)0xfe
#define EUC_END_KIGOU (unsigned char)0xae
#define EUC_0 (unsigned char)0xb0
#define EUC_END_0 (unsigned char)0xb9
#define EUC_A (unsigned char)0xc1
#define EUC_END_A (unsigned char)0xda
#define EUC_a (unsigned char)0xe1
#define EUC_END_a (unsigned char)0xfa
#define EUC_END_HIRA (unsigned char)0xf3
#define EUC_VU (unsigned char)0xf4
#define EUC_XKA (unsigned char)0xf5
#define EUC_XKE (unsigned char)0xf6
#define isknj1(c) (((c) == SS2) || (((c) & 0x80) && ((c) != SS3)))
#define SHU 0x01
#define T_KANOU 0x80
#define T_SHUUJO 0x40
#define DICTOP 0x01
#define FZKTOP 0x02
#define DEPEND 0x04
#define NUMBER 0x08
#define FZK_KGU 0x10
#define TAI_KGU 0x20
#define BEFORNUM 0x40
#define MIDNUM 0x80
#define NOTNRM 0xFE
#define CNJEND 0xff
#define TYOUONFLG 0x80
#define MAXFREC 32
#define MAXFLVL 10
#define FZKEND 0xff
#define SETTOU_O 1
#define SETTOU_GO 2
#define SETTOU_DAI 3
#define SETTOU_KIGOU 4
#define NumKetaLength 16
#define NumWordBuf ((NumKetaLength + 3) / 4)
#define MainSegmentLength 2048
#define MainIndexLength 2048
#define MainIndexNumber 512
#define MaxYomiLength 32
#define MaxKanjiLength 32
#define MaxHinshiNumber 16
#define MaxAtrNumber 16
#define MaxJosiNumber 16
#define MaxKnjAskNumber 16
#define MaxYomiAskNumber 16
#define DouonBlkSizeNumber 3
#define DouonBlkTerm 0xff
#define HinshiBlkTerm 0xff
#define NormalKanjiMask 0x7f
#define SS3Kanji 0x0080
#define ZenHiraAsshuku 0x80
#define OffsetAsshuku 0x90
#define ZenKataAsshuku 0xa0
#define AiAttribute 0xb0
#define KanjiAsshuku 0xc0
#define LeadingHankaku 0xd0
#define KanjiStrEnd 0x00
#define IsAsshuku 0x80
#define AssukuUse2byte 0x90
#define KnjAsshukuMask 0x0f
#define KanjiCodeMask 0x0f
#define KanjiModeMask 0xf0
#define AtrMsKanjiOfs 0xc0c0
#define MaxHindoNumber 2000
#define MaxOffsetNumber 1000
#define IllegalFormat "\245\325\245\251\241\274\245\336\245\303\245\310\244\254\260\333\276\357\244\307\244\271"
#define TooLongYomi "\306\311\244\337\312\270\273\372\316\363\244\254\304\271\244\271\244\256\244\336\244\271"
#define TooLongKanji "\264\301\273\372\312\270\273\372\316\363\244\254\304\271\244\271\244\256\244\336\244\271"
#define TooLongHinshi "\311\312\273\354\312\270\273\372\316\363\244\254\304\271\244\271\244\256\244\336\244\271"
#define TooLongGroup "\245\260\245\353\241\274\245\327\314\276\244\254\260\333\276\357\244\307\244\271"
#define TooLongJosi "\275\365\273\354\312\270\273\372\316\363\244\254\260\333\276\357\244\307\244\271"
#define BadHinshi "\305\320\317\277\244\265\244\354\244\306\244\244\244\312\244\244\311\312\273\354\244\307\244\271"
#define BadGroup "\305\320\317\277\244\265\244\354\244\306\244\244\244\312\244\244\245\260\245\353\241\274\245\327\244\307\244\271"
#define BadJosi "\305\320\317\277\244\265\244\354\244\306\244\244\244\312\244\244\275\365\273\354\244\307\244\271"
#define NoYomiString "\306\311\244\337\312\270\273\372\316\363\244\254\274\350\306\300\244\307\244\255\244\336\244\273\244\363"
#define NoKanjiString "\264\301\273\372\312\270\273\372\316\363\244\254\274\350\306\300\244\307\244\255\244\336\244\273\244\363"
#define TooManyAtr "\302\260\300\255\244\316\277\364\244\254\302\277\244\271\244\256\244\336\244\271"
#define TooManyHinshi "\311\312\273\354\244\316\277\364\244\254\302\277\244\271\244\256\244\336\244\271"
#define TooManyJosi "\275\365\273\354\244\316\277\364\244\254\302\277\244\271\244\256\244\336\244\271"
#define NoDataInMain "\245\341\245\244\245\363\274\255\275\361\244\313\302\270\272\337\244\267\244\336\244\273\244\363"
#define TooManyTarget "\311\312\273\354\244\362\243\261\244\304\273\330\304\352\244\267\244\306\244\257\244\300\244\265\244\244"
#define HinshiTankan cnvhinshi("\303\261\264\301")
#define DIVLIST 1
#define ASSHUKUREC 2
#define STRING 3
#define HINDOREC 4
#define OFFSETREC 5
#define KANJIREC 6
#define HINSHIREC 7
#define DOUONREC 8
#endif /* SJ3_CONST_H_ */