Compare commits
6 commits
main
...
codex/hepb
| Author | SHA1 | Date | |
|---|---|---|---|
| 787febbd07 | |||
| 7935e5e7ea | |||
| d0be6165c0 | |||
| b6df536fe9 | |||
| 2248f9e3aa | |||
| 27224cdd4c |
177 changed files with 30354 additions and 34662 deletions
24
.clang-format
Normal file
24
.clang-format
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
---
|
||||||
|
UseTab: Always
|
||||||
|
TabWidth: 8
|
||||||
|
AlignConsecutiveAssignments:
|
||||||
|
Enabled: true
|
||||||
|
AlignConsecutiveDeclarations:
|
||||||
|
Enabled: true
|
||||||
|
AccessModifierOffset: -4
|
||||||
|
NamespaceIndentation: All
|
||||||
|
IndentWidth: 8
|
||||||
|
PointerAlignment: Left
|
||||||
|
ColumnLimit: 0
|
||||||
|
AllowShortIfStatementsOnASingleLine: Always
|
||||||
|
AllowShortBlocksOnASingleLine: Never
|
||||||
|
AllowShortFunctionsOnASingleLine: Empty
|
||||||
|
AllowShortLoopsOnASingleLine: true
|
||||||
|
BreakBeforeBraces: Custom
|
||||||
|
BraceWrapping:
|
||||||
|
AfterCaseLabel: true
|
||||||
|
SpaceBeforeParens: Never
|
||||||
|
AlignEscapedNewlines: DontAlign
|
||||||
|
SortIncludes: false
|
||||||
|
AllowShortEnumsOnASingleLine: false
|
||||||
|
#IndentPPDirectives: AfterHash
|
||||||
45
CMakeLists.txt
Normal file
45
CMakeLists.txt
Normal file
|
|
@ -0,0 +1,45 @@
|
||||||
|
cmake_minimum_required(VERSION 3.16)
|
||||||
|
|
||||||
|
project(sj3 VERSION 2.0.99 LANGUAGES C)
|
||||||
|
|
||||||
|
include(CheckCSourceCompiles)
|
||||||
|
|
||||||
|
if(NOT DEFINED CMAKE_C_STANDARD)
|
||||||
|
set(CMAKE_C_STANDARD 90)
|
||||||
|
endif()
|
||||||
|
set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||||
|
set(CMAKE_C_EXTENSIONS OFF)
|
||||||
|
|
||||||
|
set(SJ3CONFDIR "/etc/sj3" CACHE PATH "SJ3 configuration directory")
|
||||||
|
set(SJ3DICTDIR "${CMAKE_INSTALL_PREFIX}/share/sj3/dict" CACHE PATH
|
||||||
|
"SJ3 dictionary directory")
|
||||||
|
|
||||||
|
check_c_source_compiles("
|
||||||
|
#if !defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L)
|
||||||
|
# error C99 required
|
||||||
|
#endif
|
||||||
|
#include <stdint.h>
|
||||||
|
int main(void) {
|
||||||
|
uint8_t u8 = 0;
|
||||||
|
uint16_t u16 = 0;
|
||||||
|
uint32_t u32 = 0;
|
||||||
|
uint64_t u64 = 0;
|
||||||
|
return (int)(u8 + u16 + u32 + u64);
|
||||||
|
}
|
||||||
|
" HAVE_C99_STDINT)
|
||||||
|
|
||||||
|
configure_file(config.h.cmake config.h @ONLY)
|
||||||
|
configure_file(Paths.h.in Paths.h @ONLY)
|
||||||
|
|
||||||
|
add_library(sj3types INTERFACE)
|
||||||
|
target_include_directories(sj3types INTERFACE
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}
|
||||||
|
)
|
||||||
|
|
||||||
|
add_library(sj3_core_types OBJECT
|
||||||
|
wc16_str.c
|
||||||
|
string.c
|
||||||
|
string2.c
|
||||||
|
)
|
||||||
|
target_link_libraries(sj3_core_types PRIVATE sj3types)
|
||||||
|
|
@ -1,138 +0,0 @@
|
||||||
<!--
|
|
||||||
-- SPDX-License-Identifier: CC-BY-4.0
|
|
||||||
-- Copyright 2014 Coraline Ada Ehmke
|
|
||||||
-->
|
|
||||||
|
|
||||||
# Contributor Covenant Code of Conduct
|
|
||||||
|
|
||||||
## Our Pledge
|
|
||||||
|
|
||||||
We as members, contributors, and leaders pledge to make participation in our
|
|
||||||
community a harassment-free experience for everyone, regardless of age, body
|
|
||||||
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
|
||||||
identity and expression, level of experience, education, socio-economic status,
|
|
||||||
nationality, personal appearance, race, caste, color, religion, or sexual
|
|
||||||
identity and orientation.
|
|
||||||
|
|
||||||
We pledge to act and interact in ways that contribute to an open, welcoming,
|
|
||||||
diverse, inclusive, and healthy community.
|
|
||||||
|
|
||||||
## Our Standards
|
|
||||||
|
|
||||||
Examples of behavior that contributes to a positive environment for our
|
|
||||||
community include:
|
|
||||||
|
|
||||||
* Demonstrating empathy and kindness toward other people
|
|
||||||
* Being respectful of differing opinions, viewpoints, and experiences
|
|
||||||
* Giving and gracefully accepting constructive feedback
|
|
||||||
* Accepting responsibility and apologizing to those affected by our mistakes,
|
|
||||||
and learning from the experience
|
|
||||||
* Focusing on what is best not just for us as individuals, but for the overall
|
|
||||||
community
|
|
||||||
|
|
||||||
Examples of unacceptable behavior include:
|
|
||||||
|
|
||||||
* The use of sexualized language or imagery, and sexual attention or advances of
|
|
||||||
any kind
|
|
||||||
* Trolling, insulting or derogatory comments, and personal or political attacks
|
|
||||||
* Public or private harassment
|
|
||||||
* Publishing others' private information, such as a physical or email address,
|
|
||||||
without their explicit permission
|
|
||||||
* Other conduct which could reasonably be considered inappropriate in a
|
|
||||||
professional setting
|
|
||||||
|
|
||||||
## Enforcement Responsibilities
|
|
||||||
|
|
||||||
Community leaders are responsible for clarifying and enforcing our standards of
|
|
||||||
acceptable behavior and will take appropriate and fair corrective action in
|
|
||||||
response to any behavior that they deem inappropriate, threatening, offensive,
|
|
||||||
or harmful.
|
|
||||||
|
|
||||||
Community leaders have the right and responsibility to remove, edit, or reject
|
|
||||||
comments, commits, code, wiki edits, issues, and other contributions that are
|
|
||||||
not aligned to this Code of Conduct, and will communicate reasons for moderation
|
|
||||||
decisions when appropriate.
|
|
||||||
|
|
||||||
## Scope
|
|
||||||
|
|
||||||
This Code of Conduct applies within all community spaces, and also applies when
|
|
||||||
an individual is officially representing the community in public spaces.
|
|
||||||
Examples of representing our community include using an official email address,
|
|
||||||
posting via an official social media account, or acting as an appointed
|
|
||||||
representative at an online or offline event.
|
|
||||||
|
|
||||||
## Enforcement
|
|
||||||
|
|
||||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
|
||||||
reported to the community leaders responsible for enforcement at
|
|
||||||
<mogino@acm.org>.
|
|
||||||
All complaints will be reviewed and investigated promptly and fairly.
|
|
||||||
|
|
||||||
All community leaders are obligated to respect the privacy and security of the
|
|
||||||
reporter of any incident.
|
|
||||||
|
|
||||||
## Enforcement Guidelines
|
|
||||||
|
|
||||||
Community leaders will follow these Community Impact Guidelines in determining
|
|
||||||
the consequences for any action they deem in violation of this Code of Conduct:
|
|
||||||
|
|
||||||
### 1. Correction
|
|
||||||
|
|
||||||
**Community Impact**: Use of inappropriate language or other behavior deemed
|
|
||||||
unprofessional or unwelcome in the community.
|
|
||||||
|
|
||||||
**Consequence**: A private, written warning from community leaders, providing
|
|
||||||
clarity around the nature of the violation and an explanation of why the
|
|
||||||
behavior was inappropriate. A public apology may be requested.
|
|
||||||
|
|
||||||
### 2. Warning
|
|
||||||
|
|
||||||
**Community Impact**: A violation through a single incident or series of
|
|
||||||
actions.
|
|
||||||
|
|
||||||
**Consequence**: A warning with consequences for continued behavior. No
|
|
||||||
interaction with the people involved, including unsolicited interaction with
|
|
||||||
those enforcing the Code of Conduct, for a specified period of time. This
|
|
||||||
includes avoiding interactions in community spaces as well as external channels
|
|
||||||
like social media. Violating these terms may lead to a temporary or permanent
|
|
||||||
ban.
|
|
||||||
|
|
||||||
### 3. Temporary Ban
|
|
||||||
|
|
||||||
**Community Impact**: A serious violation of community standards, including
|
|
||||||
sustained inappropriate behavior.
|
|
||||||
|
|
||||||
**Consequence**: A temporary ban from any sort of interaction or public
|
|
||||||
communication with the community for a specified period of time. No public or
|
|
||||||
private interaction with the people involved, including unsolicited interaction
|
|
||||||
with those enforcing the Code of Conduct, is allowed during this period.
|
|
||||||
Violating these terms may lead to a permanent ban.
|
|
||||||
|
|
||||||
### 4. Permanent Ban
|
|
||||||
|
|
||||||
**Community Impact**: Demonstrating a pattern of violation of community
|
|
||||||
standards, including sustained inappropriate behavior, harassment of an
|
|
||||||
individual, or aggression toward or disparagement of classes of individuals.
|
|
||||||
|
|
||||||
**Consequence**: A permanent ban from any sort of public interaction within the
|
|
||||||
community.
|
|
||||||
|
|
||||||
## Attribution
|
|
||||||
|
|
||||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
|
||||||
version 2.1, available at
|
|
||||||
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
|
|
||||||
|
|
||||||
Community Impact Guidelines were inspired by
|
|
||||||
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].
|
|
||||||
|
|
||||||
For answers to common questions about this code of conduct, see the FAQ at
|
|
||||||
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
|
|
||||||
[https://www.contributor-covenant.org/translations][translations].
|
|
||||||
|
|
||||||
[homepage]: https://www.contributor-covenant.org
|
|
||||||
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
|
|
||||||
[Mozilla CoC]: https://github.com/mozilla/diversity
|
|
||||||
[FAQ]: https://www.contributor-covenant.org/faq
|
|
||||||
[translations]: https://www.contributor-covenant.org/translations
|
|
||||||
|
|
||||||
4
Dict.h
4
Dict.h
|
|
@ -67,8 +67,8 @@
|
||||||
#define CommentPos 128
|
#define CommentPos 128
|
||||||
#define CommentLength 128
|
#define CommentLength 128
|
||||||
|
|
||||||
#define Byte2Long(c3,c2,c1,c0) (((c3) << (8*3)) | ((c2) << (8*2)) | \
|
#define Byte2Long(c3, c2, c1, c0) (((c3) << (8 * 3)) | ((c2) << (8 * 2)) | \
|
||||||
((c1) << (8*1)) | ((c0) << (8*0)))
|
((c1) << (8 * 1)) | ((c0) << (8 * 0)))
|
||||||
#define StdyVersion Byte2Long('S', 2, 0, 0)
|
#define StdyVersion Byte2Long('S', 2, 0, 0)
|
||||||
#define DictVersion Byte2Long('D', 2, 0, 0)
|
#define DictVersion Byte2Long('D', 2, 0, 0)
|
||||||
|
|
||||||
|
|
|
||||||
8
Makefile
8
Makefile
|
|
@ -44,10 +44,10 @@ KANAKAN_OBJS = adddic.o addelcmn.o alloc.o charsize.o chrtbl.o cl2knj.o \
|
||||||
clstudy.o cmpstr.o conjunc.o connect.o cvtclknj.o cvtdict.o \
|
clstudy.o cmpstr.o conjunc.o connect.o cvtclknj.o cvtdict.o \
|
||||||
cvtkanji.o deldic.o depend.o dict.o functbl.o fuzoku.o \
|
cvtkanji.o deldic.o depend.o dict.o functbl.o fuzoku.o \
|
||||||
fzkyomi.o getkanji.o getrank.o global2.o hzstrlen.o init.o \
|
fzkyomi.o getkanji.o getrank.o global2.o hzstrlen.o init.o \
|
||||||
istrcmp.o memory2.o mk2claus.o mkbunset.o mkjiritu.o mkkouho.o \
|
istrcmp.o memory2.o mk2claus.o mkbunsetsu.o mkjiritsu.o mkkouho.o \
|
||||||
mknumber.o mvmemd.o mvmemi.o peepdic.o ph2knj.o ph_khtbl.o \
|
mknumber.o mvmemd.o mvmemi.o peepdic.o ph2knj.o ph_khtbl.o \
|
||||||
priority.o prtytbl.o s2ctbl.o selclrec.o selsuuji.o setconj.o \
|
priority.o prtytbl.o s2ctbl.o selclrec.o selsuuji.o setconj.o \
|
||||||
setjrec.o setkouho.o setubi.o sj2code.o skiphblk.o skipkstr.o \
|
setjrec.o setkouho.o setsubi.o sj2code.o skiphblk.o skipkstr.o \
|
||||||
srchdict.o srchhead.o srchidx.o srchnum.o stbtbl.o stttbl.o \
|
srchdict.o srchhead.o srchidx.o srchnum.o stbtbl.o stttbl.o \
|
||||||
study.o suujitbl.o terminat.o termtbl.o wakachi.o
|
study.o suujitbl.o terminat.o termtbl.o wakachi.o
|
||||||
SJ3RKCV_OBJS = rk_conv.o sj3_rkcv.o wc16_str.o
|
SJ3RKCV_OBJS = rk_conv.o sj3_rkcv.o wc16_str.o
|
||||||
|
|
@ -58,9 +58,9 @@ SJ3_OBJS = code.o common.o conv.o display.o douon.o edit.o etc.o \
|
||||||
eucmessage.o funckey.o henkan.o kigou.o libif.o nmttyslot.o \
|
eucmessage.o funckey.o henkan.o kigou.o libif.o nmttyslot.o \
|
||||||
romaji.o screen.o sj3.o sj3ver.o sjgetchar.o sjrc2.o \
|
romaji.o screen.o sj3.o sj3ver.o sjgetchar.o sjrc2.o \
|
||||||
stat_conv.o term.o toroku.o version2.o
|
stat_conv.o term.o toroku.o version2.o
|
||||||
SJ3DIC_OBJS = codecnv.o dictdisp.o dictmake.o hinsi.o sj3dic.o sj3err.o \
|
SJ3DIC_OBJS = codecnv.o dictdisp.o dictmake.o hinshi.o sj3dic.o sj3err.o \
|
||||||
sjrc.o
|
sjrc.o
|
||||||
SJ3MKDIC_OBJS = char.o cnvhinsi.o file.o global.o hindo.o knjcvt.o makedict.o \
|
SJ3MKDIC_OBJS = char.o cnvhinshi.o file.o global.o hindo.o knjcvt.o makedict.o \
|
||||||
makelist.o makeseg.o memory.o offset.o readline.o string2.o
|
makelist.o makeseg.o memory.o offset.o readline.o string2.o
|
||||||
SJ3STAT_OBJS = sj3stat.o
|
SJ3STAT_OBJS = sj3stat.o
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ adddic.o: adddic.c sj_euc.h sj_sysvdef.h sj_kcnv.h sj_typedef.h \
|
||||||
addelcmn.o: addelcmn.c sj_euc.h sj_sysvdef.h sj_kcnv.h sj_typedef.h \
|
addelcmn.o: addelcmn.c sj_euc.h sj_sysvdef.h sj_kcnv.h sj_typedef.h \
|
||||||
sj_rename.h sj_var.h sj_dict.h sj_study.h sj_table.h sj_func.h \
|
sj_rename.h sj_var.h sj_dict.h sj_study.h sj_table.h sj_func.h \
|
||||||
sj_struct.h Struct.h const.h Paths.h sj_global.h \
|
sj_struct.h Struct.h const.h Paths.h sj_global.h \
|
||||||
sj_hinsi.h sj_yomi.h kanakan.h
|
sj_hinshi.h sj_yomi.h kanakan.h
|
||||||
alloc.o: alloc.c sj_rename.h sj_typedef.h const.h Paths.h sj_euc.h \
|
alloc.o: alloc.c sj_rename.h sj_typedef.h const.h Paths.h sj_euc.h \
|
||||||
sj_sysvdef.h sj_var.h sj_struct.h kanakan.h Struct.h sj_dict.h
|
sj_sysvdef.h sj_var.h sj_struct.h kanakan.h Struct.h sj_dict.h
|
||||||
char.o: char.c sj_euc.h sj_sysvdef.h const.h Paths.h
|
char.o: char.c sj_euc.h sj_sysvdef.h const.h Paths.h
|
||||||
|
|
@ -20,7 +20,7 @@ clstudy.o: clstudy.c sj_kcnv.h sj_typedef.h sj_rename.h sj_var.h \
|
||||||
Paths.h sj_euc.h sj_sysvdef.h sj_global.h kanakan.h
|
Paths.h sj_euc.h sj_sysvdef.h sj_global.h kanakan.h
|
||||||
cmpstr.o: cmpstr.c sj_rename.h const.h Paths.h sj_euc.h sj_sysvdef.h \
|
cmpstr.o: cmpstr.c sj_rename.h const.h Paths.h sj_euc.h sj_sysvdef.h \
|
||||||
sj_typedef.h
|
sj_typedef.h
|
||||||
cnvhinsi.o: cnvhinsi.c dicttool.h sj_struct2.h const.h Paths.h sj_euc.h \
|
cnvhinshi.o: cnvhinshi.c dicttool.h sj_struct2.h const.h Paths.h sj_euc.h \
|
||||||
sj_sysvdef.h GramTable
|
sj_sysvdef.h GramTable
|
||||||
code.o: code.c sj_sysvdef.h wchar16.h key.h kctype.h sj2.h rk.h
|
code.o: code.c sj_sysvdef.h wchar16.h key.h kctype.h sj2.h rk.h
|
||||||
codecnv.o: codecnv.c sjctype.h sj_sysvdef.h sjtool.h
|
codecnv.o: codecnv.c sjctype.h sj_sysvdef.h sjtool.h
|
||||||
|
|
@ -79,7 +79,7 @@ functbl.o: functbl.c sj_rename.h sj_func.h sj_typedef.h sj_struct.h \
|
||||||
kanakan.h
|
kanakan.h
|
||||||
fuzoku.o: fuzoku.c sj_kcnv.h sj_typedef.h sj_rename.h sj_var.h sj_dict.h \
|
fuzoku.o: fuzoku.c sj_kcnv.h sj_typedef.h sj_rename.h sj_var.h sj_dict.h \
|
||||||
sj_study.h sj_table.h sj_func.h sj_struct.h Struct.h const.h Paths.h \
|
sj_study.h sj_table.h sj_func.h sj_struct.h Struct.h const.h Paths.h \
|
||||||
sj_euc.h sj_sysvdef.h sj_global.h sj_hinsi.h sj_right.h \
|
sj_euc.h sj_sysvdef.h sj_global.h sj_hinshi.h sj_right.h \
|
||||||
sj_yomi.h
|
sj_yomi.h
|
||||||
fzkyomi.o: fzkyomi.c const.h Paths.h sj_euc.h sj_sysvdef.h sj_rename.h \
|
fzkyomi.o: fzkyomi.c const.h Paths.h sj_euc.h sj_sysvdef.h sj_rename.h \
|
||||||
sj_typedef.h sj_yomi.h sj_right.h sj_left.h
|
sj_typedef.h sj_yomi.h sj_right.h sj_left.h
|
||||||
|
|
@ -96,7 +96,7 @@ henkan.o: henkan.c common.h conversion.h sj2.h wchar16.h key.h \
|
||||||
sj_sysvdef.h sj3libsj3.h sj3lib.h henkan.h kctype.h
|
sj_sysvdef.h sj3libsj3.h sj3lib.h henkan.h kctype.h
|
||||||
hindo.o: hindo.c sj_struct.h sj_typedef.h dicttool.h sj_struct2.h const.h \
|
hindo.o: hindo.c sj_struct.h sj_typedef.h dicttool.h sj_struct2.h const.h \
|
||||||
Paths.h sj_euc.h sj_sysvdef.h
|
Paths.h sj_euc.h sj_sysvdef.h
|
||||||
hinsi.o: hinsi.c sj_hinsi.h
|
hinshi.o: hinshi.c sj_hinshi.h
|
||||||
hzstrlen.o: hzstrlen.c sj_euc.h sj_sysvdef.h sj_rename.h sj_typedef.h \
|
hzstrlen.o: hzstrlen.c sj_euc.h sj_sysvdef.h sj_rename.h sj_typedef.h \
|
||||||
const.h Paths.h sj_dict.h kanakan.h sj_struct.h Struct.h sj_var.h
|
const.h Paths.h sj_dict.h kanakan.h sj_struct.h Struct.h sj_var.h
|
||||||
init.o: init.c sj_kcnv.h sj_typedef.h sj_rename.h sj_var.h sj_dict.h \
|
init.o: init.c sj_kcnv.h sj_typedef.h sj_rename.h sj_var.h sj_dict.h \
|
||||||
|
|
@ -128,17 +128,17 @@ memory2.o: memory2.c sj_kcnv.h sj_typedef.h sj_rename.h sj_var.h \
|
||||||
mk2claus.o: mk2claus.c sj_kcnv.h sj_typedef.h sj_rename.h sj_var.h \
|
mk2claus.o: mk2claus.c sj_kcnv.h sj_typedef.h sj_rename.h sj_var.h \
|
||||||
sj_dict.h sj_study.h sj_table.h sj_func.h sj_struct.h Struct.h const.h \
|
sj_dict.h sj_study.h sj_table.h sj_func.h sj_struct.h Struct.h const.h \
|
||||||
Paths.h sj_euc.h sj_sysvdef.h sj_global.h sj_right.h
|
Paths.h sj_euc.h sj_sysvdef.h sj_global.h sj_right.h
|
||||||
mkbunset.o: mkbunset.c sj_kcnv.h sj_typedef.h sj_rename.h sj_var.h \
|
mkbunsetsu.o: mkbunsetsu.c sj_kcnv.h sj_typedef.h sj_rename.h sj_var.h \
|
||||||
sj_dict.h sj_study.h sj_table.h sj_func.h sj_struct.h Struct.h const.h \
|
sj_dict.h sj_study.h sj_table.h sj_func.h sj_struct.h Struct.h const.h \
|
||||||
Paths.h sj_euc.h sj_sysvdef.h sj_global.h sj_hinsi.h \
|
Paths.h sj_euc.h sj_sysvdef.h sj_global.h sj_hinshi.h \
|
||||||
kanakan.h
|
kanakan.h
|
||||||
mkjiritu.o: mkjiritu.c sj_kcnv.h sj_typedef.h sj_rename.h sj_var.h \
|
mkjiritsu.o: mkjiritsu.c sj_kcnv.h sj_typedef.h sj_rename.h sj_var.h \
|
||||||
sj_dict.h sj_study.h sj_table.h sj_func.h sj_struct.h Struct.h const.h \
|
sj_dict.h sj_study.h sj_table.h sj_func.h sj_struct.h Struct.h const.h \
|
||||||
Paths.h sj_euc.h sj_sysvdef.h sj_global.h kanakan.h
|
Paths.h sj_euc.h sj_sysvdef.h sj_global.h kanakan.h
|
||||||
mkkouho.o: mkkouho.c sj_euc.h sj_sysvdef.h sj_kcnv.h sj_typedef.h \
|
mkkouho.o: mkkouho.c sj_euc.h sj_sysvdef.h sj_kcnv.h sj_typedef.h \
|
||||||
sj_rename.h sj_var.h sj_dict.h sj_study.h sj_table.h sj_func.h \
|
sj_rename.h sj_var.h sj_dict.h sj_study.h sj_table.h sj_func.h \
|
||||||
sj_struct.h Struct.h const.h Paths.h sj_global.h \
|
sj_struct.h Struct.h const.h Paths.h sj_global.h \
|
||||||
sj_hinsi.h sj_suuji.h kanakan.h
|
sj_hinshi.h sj_suuji.h kanakan.h
|
||||||
mknumber.o: mknumber.c sj_kcnv.h sj_typedef.h sj_rename.h sj_var.h \
|
mknumber.o: mknumber.c sj_kcnv.h sj_typedef.h sj_rename.h sj_var.h \
|
||||||
sj_dict.h sj_study.h sj_table.h sj_func.h sj_struct.h Struct.h const.h \
|
sj_dict.h sj_study.h sj_table.h sj_func.h sj_struct.h Struct.h const.h \
|
||||||
Paths.h sj_euc.h sj_sysvdef.h sj_global.h sj_yomi.h \
|
Paths.h sj_euc.h sj_sysvdef.h sj_global.h sj_yomi.h \
|
||||||
|
|
@ -160,7 +160,7 @@ ph_khtbl.o: ph_khtbl.c sj_kcnv.h sj_typedef.h sj_rename.h sj_var.h \
|
||||||
Paths.h sj_euc.h sj_sysvdef.h sj_global.h kanakan.h
|
Paths.h sj_euc.h sj_sysvdef.h sj_global.h kanakan.h
|
||||||
priority.o: priority.c sj_kcnv.h sj_typedef.h sj_rename.h sj_var.h \
|
priority.o: priority.c sj_kcnv.h sj_typedef.h sj_rename.h sj_var.h \
|
||||||
sj_dict.h sj_study.h sj_table.h sj_func.h sj_struct.h Struct.h const.h \
|
sj_dict.h sj_study.h sj_table.h sj_func.h sj_struct.h Struct.h const.h \
|
||||||
Paths.h sj_euc.h sj_sysvdef.h sj_global.h sj_hinsi.h \
|
Paths.h sj_euc.h sj_sysvdef.h sj_global.h sj_hinshi.h \
|
||||||
sj_right.h sj_prty.h
|
sj_right.h sj_prty.h
|
||||||
prtytbl.o: prtytbl.c sj_rename.h sj_typedef.h
|
prtytbl.o: prtytbl.c sj_rename.h sj_typedef.h
|
||||||
readline.o: readline.c sj_euc.h sj_sysvdef.h const.h Paths.h sj_macro.h \
|
readline.o: readline.c sj_euc.h sj_sysvdef.h const.h Paths.h sj_macro.h \
|
||||||
|
|
@ -179,18 +179,18 @@ selsuuji.o: selsuuji.c sj_rename.h sj_typedef.h const.h Paths.h sj_euc.h \
|
||||||
setconj.o: setconj.c sj_kcnv.h sj_typedef.h sj_rename.h sj_var.h \
|
setconj.o: setconj.c sj_kcnv.h sj_typedef.h sj_rename.h sj_var.h \
|
||||||
sj_dict.h sj_study.h sj_table.h sj_func.h sj_struct.h Struct.h const.h \
|
sj_dict.h sj_study.h sj_table.h sj_func.h sj_struct.h Struct.h const.h \
|
||||||
Paths.h sj_euc.h sj_sysvdef.h sj_global.h sj_right.h \
|
Paths.h sj_euc.h sj_sysvdef.h sj_global.h sj_right.h \
|
||||||
sj_hinsi.h sj_yomi.h kanakan.h
|
sj_hinshi.h sj_yomi.h kanakan.h
|
||||||
setjrec.o: setjrec.c sj_euc.h sj_sysvdef.h sj_kcnv.h sj_typedef.h \
|
setjrec.o: setjrec.c sj_euc.h sj_sysvdef.h sj_kcnv.h sj_typedef.h \
|
||||||
sj_rename.h sj_var.h sj_dict.h sj_study.h sj_table.h sj_func.h \
|
sj_rename.h sj_var.h sj_dict.h sj_study.h sj_table.h sj_func.h \
|
||||||
sj_struct.h Struct.h const.h Paths.h sj_global.h \
|
sj_struct.h Struct.h const.h Paths.h sj_global.h \
|
||||||
sj_hinsi.h kanakan.h
|
sj_hinshi.h kanakan.h
|
||||||
setkouho.o: setkouho.c sj_euc.h sj_sysvdef.h sj_kcnv.h sj_typedef.h \
|
setkouho.o: setkouho.c sj_euc.h sj_sysvdef.h sj_kcnv.h sj_typedef.h \
|
||||||
sj_rename.h sj_var.h sj_dict.h sj_study.h sj_table.h sj_func.h \
|
sj_rename.h sj_var.h sj_dict.h sj_study.h sj_table.h sj_func.h \
|
||||||
sj_struct.h Struct.h const.h Paths.h sj_global.h \
|
sj_struct.h Struct.h const.h Paths.h sj_global.h \
|
||||||
sj_hinsi.h kanakan.h
|
sj_hinshi.h kanakan.h
|
||||||
setubi.o: setubi.c sj_kcnv.h sj_typedef.h sj_rename.h sj_var.h sj_dict.h \
|
setsubi.o: setsubi.c sj_kcnv.h sj_typedef.h sj_rename.h sj_var.h sj_dict.h \
|
||||||
sj_study.h sj_table.h sj_func.h sj_struct.h Struct.h const.h Paths.h \
|
sj_study.h sj_table.h sj_func.h sj_struct.h Struct.h const.h Paths.h \
|
||||||
sj_euc.h sj_sysvdef.h sj_global.h sj_hinsi.h kanakan.h
|
sj_euc.h sj_sysvdef.h sj_global.h sj_hinshi.h kanakan.h
|
||||||
setup.o: setup.c sj_sysvdef.h sj_typedef.h sj_var.h sj_dict.h sj_struct.h \
|
setup.o: setup.c sj_sysvdef.h sj_typedef.h sj_var.h sj_dict.h sj_struct.h \
|
||||||
sj_rename.h const.h Paths.h sj_euc.h Struct.h sj_global.h kanakan.h \
|
sj_rename.h const.h Paths.h sj_euc.h Struct.h sj_global.h kanakan.h \
|
||||||
server.h
|
server.h
|
||||||
|
|
@ -204,7 +204,7 @@ sj3_rkcv.o: sj3_rkcv.c wchar16.h key.h sj2.h sj_sysvdef.h kana.h rk.h \
|
||||||
sj3dic.o: sj3dic.c sj_sysvdef.h sjtool.h sj3lib.h sj3dic.h
|
sj3dic.o: sj3dic.c sj_sysvdef.h sjtool.h sj3lib.h sj3dic.h
|
||||||
sj3err.o: sj3err.c sj3err.h
|
sj3err.o: sj3err.c sj3err.h
|
||||||
sj3lib.o: sj3lib.c config.h const.h Paths.h sj_euc.h sj_sysvdef.h \
|
sj3lib.o: sj3lib.c config.h const.h Paths.h sj_euc.h sj_sysvdef.h \
|
||||||
sj3err.h sj_hinsi.h sj3lib.h
|
sj3err.h sj_hinshi.h sj3lib.h
|
||||||
sj3stat.o: sj3stat.c const.h Paths.h sj_euc.h sj_sysvdef.h sj3err.h \
|
sj3stat.o: sj3stat.c const.h Paths.h sj_euc.h sj_sysvdef.h sj3err.h \
|
||||||
sj3lib.h
|
sj3lib.h
|
||||||
sj3ver.o: sj3ver.c sj2.h wchar16.h key.h sj_sysvdef.h
|
sj3ver.o: sj3ver.c sj2.h wchar16.h key.h sj_sysvdef.h
|
||||||
|
|
@ -229,10 +229,10 @@ srchidx.o: srchidx.c sj_kcnv.h sj_typedef.h sj_rename.h sj_var.h \
|
||||||
srchnum.o: srchnum.c sj_kcnv.h sj_typedef.h sj_rename.h sj_var.h \
|
srchnum.o: srchnum.c sj_kcnv.h sj_typedef.h sj_rename.h sj_var.h \
|
||||||
sj_dict.h sj_study.h sj_table.h sj_func.h sj_struct.h Struct.h const.h \
|
sj_dict.h sj_study.h sj_table.h sj_func.h sj_struct.h Struct.h const.h \
|
||||||
Paths.h sj_euc.h sj_sysvdef.h sj_global.h sj_yomi.h \
|
Paths.h sj_euc.h sj_sysvdef.h sj_global.h sj_yomi.h \
|
||||||
sj_hinsi.h sj_suuji.h kanakan.h
|
sj_hinshi.h sj_suuji.h kanakan.h
|
||||||
stat_conv.o: stat_conv.c common.h conversion.h sj2.h wchar16.h key.h \
|
stat_conv.o: stat_conv.c common.h conversion.h sj2.h wchar16.h key.h \
|
||||||
sj_sysvdef.h sj3libsj3.h sj3lib.h henkan.h rk.h
|
sj_sysvdef.h sj3libsj3.h sj3lib.h henkan.h rk.h
|
||||||
stbtbl.o: stbtbl.c sj_rename.h sj_typedef.h sj_yomi.h sj_hinsi.h
|
stbtbl.o: stbtbl.c sj_rename.h sj_typedef.h sj_yomi.h sj_hinshi.h
|
||||||
string.o: string.c config.h sj_euc.h sj_sysvdef.h sj3lib.h
|
string.o: string.c config.h sj_euc.h sj_sysvdef.h sj3lib.h
|
||||||
string2.o: string2.c const.h Paths.h sj_euc.h sj_sysvdef.h dicttool.h \
|
string2.o: string2.c const.h Paths.h sj_euc.h sj_sysvdef.h dicttool.h \
|
||||||
sj_struct2.h
|
sj_struct2.h
|
||||||
|
|
@ -255,5 +255,5 @@ version2.o: version2.c sj2.h wchar16.h key.h sj_sysvdef.h
|
||||||
wakachi.o: wakachi.c sj_kcnv.h sj_typedef.h sj_rename.h sj_var.h \
|
wakachi.o: wakachi.c sj_kcnv.h sj_typedef.h sj_rename.h sj_var.h \
|
||||||
sj_dict.h sj_study.h sj_table.h sj_func.h sj_struct.h Struct.h const.h \
|
sj_dict.h sj_study.h sj_table.h sj_func.h sj_struct.h Struct.h const.h \
|
||||||
Paths.h sj_euc.h sj_sysvdef.h sj_global.h sj_right.h \
|
Paths.h sj_euc.h sj_sysvdef.h sj_global.h sj_right.h \
|
||||||
sj_hinsi.h kanakan.h
|
sj_hinshi.h kanakan.h
|
||||||
wc16_str.o: wc16_str.c sj_sysvdef.h sj_euc.h wchar16.h key.h
|
wc16_str.o: wc16_str.c sj_sysvdef.h sj_euc.h wchar16.h key.h
|
||||||
|
|
|
||||||
10
Sjrc
10
Sjrc
|
|
@ -26,12 +26,6 @@
|
||||||
## from Sony Corporation.
|
## from Sony Corporation.
|
||||||
##
|
##
|
||||||
|
|
||||||
##
|
|
||||||
## $SonyRCSfile: Sjrc,v $
|
|
||||||
## $SonyRevision: 1.1 $
|
|
||||||
## $SonyDate: 1994/06/03 08:03:06 $
|
|
||||||
##
|
|
||||||
|
|
||||||
# SJ3用セット・アップ・ファイル
|
# SJ3用セット・アップ・ファイル
|
||||||
# .sjrc file sample
|
# .sjrc file sample
|
||||||
# sj3 1.00, 1990 Sony Corp.
|
# sj3 1.00, 1990 Sony Corp.
|
||||||
|
|
@ -48,7 +42,7 @@
|
||||||
.key.right ^F
|
.key.right ^F
|
||||||
.key.left ^B
|
.key.left ^B
|
||||||
.key.kakuchou ^O
|
.key.kakuchou ^O
|
||||||
.key.syukusyou ^I
|
.key.shukushou ^I
|
||||||
.key.wrap ^N
|
.key.wrap ^N
|
||||||
.key.wrapback ^P
|
.key.wrapback ^P
|
||||||
.key.saihenkan ^Y
|
.key.saihenkan ^Y
|
||||||
|
|
@ -81,7 +75,7 @@
|
||||||
|
|
||||||
# その他キーが押されたときのコマンド・キーの指定
|
# その他キーが押されたときのコマンド・キーの指定
|
||||||
#.etckey.toroku hira
|
#.etckey.toroku hira
|
||||||
#.etckey.syoukyo zkatakana
|
#.etckey.shoukyo zkatakana
|
||||||
#.etckey.help hkatakana
|
#.etckey.help hkatakana
|
||||||
#.etckey.sjrc zalpha
|
#.etckey.sjrc zalpha
|
||||||
|
|
||||||
|
|
|
||||||
5
Sjrk
5
Sjrk
|
|
@ -26,11 +26,6 @@
|
||||||
## from Sony Corporation.
|
## from Sony Corporation.
|
||||||
##
|
##
|
||||||
|
|
||||||
##
|
|
||||||
## $SonyRCSfile: Sjrk,v $
|
|
||||||
## $SonyRevision: 1.1 $
|
|
||||||
## $SonyDate: 1994/06/03 08:03:07 $
|
|
||||||
##
|
|
||||||
#
|
#
|
||||||
# ローマ字かな変換規則定義ファイル
|
# ローマ字かな変換規則定義ファイル
|
||||||
# デフォルトファイル
|
# デフォルトファイル
|
||||||
|
|
|
||||||
78
Struct.h
78
Struct.h
|
|
@ -41,28 +41,28 @@
|
||||||
#include "sj_var.h"
|
#include "sj_var.h"
|
||||||
|
|
||||||
typedef struct global {
|
typedef struct global {
|
||||||
JREC *Jmaxjptr;
|
JREC* Jmaxjptr;
|
||||||
CLREC *Jmaxclptr;
|
CLREC* Jmaxclptr;
|
||||||
JREC *Jjrt1st;
|
JREC* Jjrt1st;
|
||||||
CLREC *Jclt1st;
|
CLREC* Jclt1st;
|
||||||
JREC *Jjrt2nd;
|
JREC* Jjrt2nd;
|
||||||
CLREC *Jclt2nd;
|
CLREC* Jclt2nd;
|
||||||
CLREC *Jselcl;
|
CLREC* Jselcl;
|
||||||
|
|
||||||
short Jselectid;
|
short Jselectid;
|
||||||
short Jtrank;
|
short Jtrank;
|
||||||
short Jnrank;
|
short Jnrank;
|
||||||
|
|
||||||
unsigned char *Jinputyomi;
|
unsigned char* Jinputyomi;
|
||||||
unsigned char *Jcnvstart;
|
unsigned char* Jcnvstart;
|
||||||
short Jcnvlen;
|
short Jcnvlen;
|
||||||
unsigned char *Jystart;
|
unsigned char* Jystart;
|
||||||
unsigned char Jhyomi[MaxPhInputLen + 1];
|
unsigned char Jhyomi[MaxPhInputLen + 1];
|
||||||
unsigned char Jorgyomi[MaxClInputLen*2 + 1];
|
unsigned char Jorgyomi[MaxClInputLen * 2 + 1];
|
||||||
|
|
||||||
unsigned char Jkanjibuf[MinPhOutputLen];
|
unsigned char Jkanjibuf[MinPhOutputLen];
|
||||||
unsigned char *Jkanjipos;
|
unsigned char* Jkanjipos;
|
||||||
unsigned char *Jkanjitmp;
|
unsigned char* Jkanjitmp;
|
||||||
short Jkanjilen;
|
short Jkanjilen;
|
||||||
|
|
||||||
unsigned char Jdicinl;
|
unsigned char Jdicinl;
|
||||||
|
|
@ -85,35 +85,35 @@ typedef struct global {
|
||||||
short Jkhcount;
|
short Jkhcount;
|
||||||
short Jnkhcount;
|
short Jnkhcount;
|
||||||
KHREC Jkouhotbl[MaxKouhoNumber];
|
KHREC Jkouhotbl[MaxKouhoNumber];
|
||||||
STDYIN *Jstdytop;
|
STDYIN* Jstdytop;
|
||||||
|
|
||||||
DICT *Jcurdict;
|
DICT* Jcurdict;
|
||||||
DICTL *Jdictlist;
|
DICTL* Jdictlist;
|
||||||
unsigned char *Jdicbuf;
|
unsigned char* Jdicbuf;
|
||||||
unsigned char *Jidxbuf;
|
unsigned char* Jidxbuf;
|
||||||
TypeIdxOfs *Jidxofs;
|
TypeIdxOfs* Jidxofs;
|
||||||
unsigned char *Jaskknj[MaxKnjAskNumber];
|
unsigned char* Jaskknj[MaxKnjAskNumber];
|
||||||
unsigned char *Jaskknj_k[MaxKnjAskNumber];
|
unsigned char* Jaskknj_k[MaxKnjAskNumber];
|
||||||
|
|
||||||
STDY *Jcurstdy;
|
STDY* Jcurstdy;
|
||||||
|
|
||||||
unsigned short Jsuuji_wbuf[NumWordBuf];
|
unsigned short Jsuuji_wbuf[NumWordBuf];
|
||||||
unsigned char Jsuuji_ubuf[NumKetaLength];
|
unsigned char Jsuuji_ubuf[NumKetaLength];
|
||||||
TypeClass Jsuuji_class;
|
TypeClass Jsuuji_class;
|
||||||
unsigned char Jsuuji_comma;
|
unsigned char Jsuuji_comma;
|
||||||
unsigned char Jsuuji_keta;
|
unsigned char Jsuuji_keta;
|
||||||
unsigned char *Jsuuji_yptr;
|
unsigned char* Jsuuji_yptr;
|
||||||
unsigned char Jsuuji_len;
|
unsigned char Jsuuji_len;
|
||||||
unsigned char Jsuuji_exit;
|
unsigned char Jsuuji_exit;
|
||||||
unsigned short *Jsuuji_wkeep;
|
unsigned short* Jsuuji_wkeep;
|
||||||
unsigned char *Jsuuji_ukeep;
|
unsigned char* Jsuuji_ukeep;
|
||||||
|
|
||||||
unsigned char Jpeepyomi[MaxWdYomiLen * 2 + 1];
|
unsigned char Jpeepyomi[MaxWdYomiLen * 2 + 1];
|
||||||
unsigned char Jpeepknj[MaxWdKanjiLen + 1];
|
unsigned char Jpeepknj[MaxWdKanjiLen + 1];
|
||||||
TypeGram Jpeepgrm;
|
TypeGram Jpeepgrm;
|
||||||
unsigned char *Jpeepdptr;
|
unsigned char* Jpeepdptr;
|
||||||
unsigned char *Jpeephptr;
|
unsigned char* Jpeephptr;
|
||||||
unsigned char *Jpeepkptr;
|
unsigned char* Jpeepkptr;
|
||||||
TypeDicSeg Jpeepidx;
|
TypeDicSeg Jpeepidx;
|
||||||
} Global;
|
} Global;
|
||||||
|
|
||||||
|
|
@ -121,37 +121,37 @@ typedef struct dictfile {
|
||||||
DICT dict;
|
DICT dict;
|
||||||
int refcnt;
|
int refcnt;
|
||||||
fd_set lock;
|
fd_set lock;
|
||||||
FILE *fp;
|
FILE* fp;
|
||||||
int fd;
|
int fd;
|
||||||
|
|
||||||
unsigned char *buffer;
|
unsigned char* buffer;
|
||||||
long bufsiz;
|
long bufsiz;
|
||||||
|
|
||||||
long idxstrt;
|
long idxstrt;
|
||||||
long segstrt;
|
long segstrt;
|
||||||
|
|
||||||
TypeIdxOfs *ofsptr;
|
TypeIdxOfs* ofsptr;
|
||||||
|
|
||||||
struct dictfile *link;
|
struct dictfile* link;
|
||||||
} DictFile;
|
} DictFile;
|
||||||
|
|
||||||
typedef struct stdyfile {
|
typedef struct stdyfile {
|
||||||
STDY stdy;
|
STDY stdy;
|
||||||
int refcnt;
|
int refcnt;
|
||||||
ino_t inode;
|
ino_t inode;
|
||||||
FILE *fp;
|
FILE* fp;
|
||||||
int fd;
|
int fd;
|
||||||
|
|
||||||
unsigned char *header;
|
unsigned char* header;
|
||||||
|
|
||||||
struct stdyfile *link;
|
struct stdyfile* link;
|
||||||
} StdyFile;
|
} StdyFile;
|
||||||
|
|
||||||
typedef struct workarea {
|
typedef struct workarea {
|
||||||
int refcnt;
|
int refcnt;
|
||||||
int lock;
|
int lock;
|
||||||
|
|
||||||
struct workarea *link;
|
struct workarea* link;
|
||||||
|
|
||||||
Global global;
|
Global global;
|
||||||
} WorkArea;
|
} WorkArea;
|
||||||
|
|
@ -162,12 +162,12 @@ typedef struct client {
|
||||||
char user[UserNameLen];
|
char user[UserNameLen];
|
||||||
char prog[ProgNameLen];
|
char prog[ProgNameLen];
|
||||||
|
|
||||||
WorkArea *work;
|
WorkArea* work;
|
||||||
StdyFile *stdy;
|
StdyFile* stdy;
|
||||||
short version;
|
short version;
|
||||||
unsigned char def_char[2];
|
unsigned char def_char[2];
|
||||||
uid_t uid;
|
uid_t uid;
|
||||||
struct client *next;
|
struct client* next;
|
||||||
} Client;
|
} Client;
|
||||||
|
|
||||||
#endif /* SJ3_STRUCT_H_ */
|
#endif /* SJ3_STRUCT_H_ */
|
||||||
|
|
|
||||||
|
|
@ -26,11 +26,6 @@
|
||||||
## from Sony Corporation.
|
## from Sony Corporation.
|
||||||
##
|
##
|
||||||
|
|
||||||
##
|
|
||||||
## $SonyRCSfile: Xterm.cvt,v $
|
|
||||||
## $SonyRevision: 1.1 $
|
|
||||||
## $SonyDate: 1994/06/03 08:03:08 $
|
|
||||||
##
|
|
||||||
# sj3 command key alias file
|
# sj3 command key alias file
|
||||||
# for xterm
|
# for xterm
|
||||||
#
|
#
|
||||||
|
|
|
||||||
246
adddic.c
246
adddic.c
|
|
@ -27,35 +27,23 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: adddic.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:01:26 $
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "sj_euc.h"
|
#include "sj_euc.h"
|
||||||
#include "sj_kcnv.h"
|
#include "sj_kcnv.h"
|
||||||
#include "kanakan.h"
|
#include "kanakan.h"
|
||||||
|
|
||||||
|
|
||||||
static unsigned int checkdict(unsigned char* kanji, TypeGram grm);
|
static unsigned int checkdict(unsigned char* kanji, TypeGram grm);
|
||||||
static int cal_nextym(unsigned char* ptr);
|
static int cal_nextym(unsigned char* ptr);
|
||||||
static int usr_freelen(void);
|
static int usr_freelen(void);
|
||||||
static void sprt_seg(TypeDicSeg seg, TypeDicOfs ofs);
|
static void sprt_seg(TypeDicSeg seg, TypeDicOfs ofs);
|
||||||
static void apnd_uidx(TypeDicSeg seg, unsigned char* yomi, int len);
|
static void apnd_uidx(TypeDicSeg seg, unsigned char* yomi, int len);
|
||||||
|
|
||||||
|
|
||||||
unsigned int
|
unsigned int
|
||||||
adddic(unsigned char* yomi, unsigned char* kanji, TypeGram hinsi)
|
adddic(unsigned char* yomi, unsigned char* kanji, TypeGram hinshi) {
|
||||||
{
|
|
||||||
unsigned int err;
|
unsigned int err;
|
||||||
unsigned char yptr[MaxWdYomiLen+1];
|
unsigned char yptr[MaxWdYomiLen + 1];
|
||||||
unsigned char kptr[MaxWdKanjiLen+1];
|
unsigned char kptr[MaxWdKanjiLen + 1];
|
||||||
int klen;
|
int klen;
|
||||||
TypeDicSeg segnum;
|
TypeDicSeg segnum;
|
||||||
int saml;
|
int saml;
|
||||||
|
|
@ -68,93 +56,92 @@ adddic(unsigned char* yomi, unsigned char* kanji, TypeGram hinsi)
|
||||||
TypeDicOfs oldsiz;
|
TypeDicOfs oldsiz;
|
||||||
TypeDicOfs fresiz;
|
TypeDicOfs fresiz;
|
||||||
TypeIdxOfs freidx;
|
TypeIdxOfs freidx;
|
||||||
unsigned char *douptr;
|
unsigned char* douptr;
|
||||||
unsigned char *dstptr;
|
unsigned char* dstptr;
|
||||||
TypeDicOfs pos;
|
TypeDicOfs pos;
|
||||||
unsigned char *p1;
|
unsigned char* p1;
|
||||||
int i;
|
int i;
|
||||||
int nlen, plen;
|
int nlen, plen;
|
||||||
int size;
|
int size;
|
||||||
STDYIN *stdy;
|
STDYIN* stdy;
|
||||||
STDYOUT stdydat;
|
STDYOUT stdydat;
|
||||||
|
|
||||||
if ((err = addel_arg(yomi, kanji, hinsi, yptr, sizeof(yptr))) != 0)
|
if((err = addel_arg(yomi, kanji, hinshi, yptr, sizeof(yptr))) != 0)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
inputyomi = yomi;
|
inputyomi = yomi;
|
||||||
cnvstart = ystart = yptr;
|
cnvstart = ystart = yptr;
|
||||||
cnvlen = strlen(yptr);
|
cnvlen = strlen(yptr);
|
||||||
|
|
||||||
if ((err = checkdict(kanji, hinsi)) != 0)
|
if((err = checkdict(kanji, hinshi)) != 0)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
if (!curdict -> maxunit) return AD_NotUserDict;
|
if(!curdict->maxunit) return AD_NotUserDict;
|
||||||
|
|
||||||
klen = cvtknj(yomi, kanji, kptr);
|
klen = cvtknj(yomi, kanji, kptr);
|
||||||
|
|
||||||
newsiz = DouonBlkSizeNumber + cnvlen + (klen !=0 ? klen+1 : 0) + 2;
|
newsiz = DouonBlkSizeNumber + cnvlen + (klen != 0 ? klen + 1 : 0) + 2;
|
||||||
|
|
||||||
if (newsiz > MaxDouonBlk) return AD_OvflwDouBlk;
|
if(newsiz > MaxDouonBlk) return AD_OvflwDouBlk;
|
||||||
if (newsiz > curdict->seglen) return AD_OvflwDouBlk;
|
if(newsiz > curdict->seglen) return AD_OvflwDouBlk;
|
||||||
|
|
||||||
segnum = srchidx((TypeDicSeg)DicSegBase, cnvlen);
|
segnum = srchidx((TypeDicSeg)DicSegBase, cnvlen);
|
||||||
|
|
||||||
for ( ; ; ) {
|
for(;;) {
|
||||||
(*curdict->getdic)(curdict, segnum);
|
(*curdict->getdic)(curdict, segnum);
|
||||||
i = srchkana(&p1, &saml);
|
i = srchkana(&p1, &saml);
|
||||||
dstofs = douofs = p1 - dicbuf;
|
dstofs = douofs = p1 - dicbuf;
|
||||||
hnsofs = knjofs = 0;
|
hnsofs = knjofs = 0;
|
||||||
if (i) {
|
if(i) {
|
||||||
i = srchgram(p1, &p1, hinsi);
|
i = srchgram(p1, &p1, hinshi);
|
||||||
dstofs = hnsofs = p1 - dicbuf;
|
dstofs = hnsofs = p1 - dicbuf;
|
||||||
if (i) {
|
if(i) {
|
||||||
srchkanji(&p1, kptr, klen);
|
srchkanji(&p1, kptr, klen);
|
||||||
if (*p1 != HinsiBlkTerm) return AD_ArExist;
|
if(*p1 != HinshiBlkTerm) return AD_ArExist;
|
||||||
dstofs = knjofs = p1 - dicbuf;
|
dstofs = knjofs = p1 - dicbuf;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
p1 = dicbuf + douofs;
|
p1 = dicbuf + douofs;
|
||||||
|
|
||||||
if (!hnsofs) {
|
if(!hnsofs) {
|
||||||
oldsiz = 0;
|
oldsiz = 0;
|
||||||
nlen = cnvlen - saml;
|
nlen = cnvlen - saml;
|
||||||
newsiz = DouonBlkSizeNumber + nlen;
|
newsiz = DouonBlkSizeNumber + nlen;
|
||||||
|
|
||||||
nxtask = cal_nextym(p1);
|
nxtask = cal_nextym(p1);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
oldsiz = newsiz = getsize(p1);
|
oldsiz = newsiz = getsize(p1);
|
||||||
nxtask = 0;
|
nxtask = 0;
|
||||||
}
|
}
|
||||||
if (!knjofs) newsiz += 2;
|
if(!knjofs) newsiz += 2;
|
||||||
|
|
||||||
newsiz += (klen != 0 ? klen+1 : 0);
|
newsiz += (klen != 0 ? klen + 1 : 0);
|
||||||
|
|
||||||
fresiz = usr_freelen();
|
fresiz = usr_freelen();
|
||||||
|
|
||||||
if ((unsigned int) (newsiz - oldsiz - nxtask) <=
|
if((unsigned int)(newsiz - oldsiz - nxtask) <=
|
||||||
(unsigned int) fresiz) break;
|
(unsigned int)fresiz) break;
|
||||||
|
|
||||||
if (segend(p1) && (segnum + 1 < curdict->segunit)) {
|
if(segend(p1) && (segnum + 1 < curdict->segunit)) {
|
||||||
segnum++;
|
segnum++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (curdict->segunit >= curdict->maxunit)
|
if(curdict->segunit >= curdict->maxunit)
|
||||||
return AD_OvflwUsrDic;
|
return AD_OvflwUsrDic;
|
||||||
|
|
||||||
freidx = count_uidx();
|
freidx = count_uidx();
|
||||||
|
|
||||||
if ((unsigned int) (douofs + newsiz) <= curdict->seglen) {
|
if((unsigned int)(douofs + newsiz) <= curdict->seglen) {
|
||||||
if (hnsofs) p1 = getntag(p1);
|
if(hnsofs) p1 = getntag(p1);
|
||||||
pos = p1 - dicbuf;
|
pos = p1 - dicbuf;
|
||||||
|
|
||||||
nlen = getnlen(p1);
|
nlen = getnlen(p1);
|
||||||
if ((unsigned int) freidx < getplen(p1) + nlen + 1)
|
if((unsigned int)freidx < getplen(p1) + nlen + 1)
|
||||||
return AD_OvflwIndex;
|
return AD_OvflwIndex;
|
||||||
|
|
||||||
if ((*curdict->putdic)(curdict, curdict->segunit))
|
if((*curdict->putdic)(curdict, curdict->segunit))
|
||||||
return AD_OvflwUsrDic;
|
return AD_OvflwUsrDic;
|
||||||
|
|
||||||
sprt_seg(segnum, pos);
|
sprt_seg(segnum, pos);
|
||||||
|
|
@ -163,10 +150,10 @@ adddic(unsigned char* yomi, unsigned char* kanji, TypeGram hinsi)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (segend(p1)) {
|
if(segend(p1)) {
|
||||||
if ((unsigned int) freidx < cnvlen + 1) return AD_OvflwIndex;
|
if((unsigned int)freidx < cnvlen + 1) return AD_OvflwIndex;
|
||||||
|
|
||||||
if ((*curdict->putdic)(curdict, curdict->segunit))
|
if((*curdict->putdic)(curdict, curdict->segunit))
|
||||||
return AD_OvflwUsrDic;
|
return AD_OvflwUsrDic;
|
||||||
curdict->segunit++;
|
curdict->segunit++;
|
||||||
|
|
||||||
|
|
@ -182,10 +169,10 @@ adddic(unsigned char* yomi, unsigned char* kanji, TypeGram hinsi)
|
||||||
|
|
||||||
else {
|
else {
|
||||||
nlen = getnlen(p1);
|
nlen = getnlen(p1);
|
||||||
if ((unsigned int) freidx < getplen(p1) + nlen + 1)
|
if((unsigned int)freidx < getplen(p1) + nlen + 1)
|
||||||
return AD_OvflwIndex;
|
return AD_OvflwIndex;
|
||||||
|
|
||||||
if ((*curdict->putdic)(curdict, curdict->segunit))
|
if((*curdict->putdic)(curdict, curdict->segunit))
|
||||||
return AD_OvflwUsrDic;
|
return AD_OvflwUsrDic;
|
||||||
|
|
||||||
sprt_seg(segnum, douofs);
|
sprt_seg(segnum, douofs);
|
||||||
|
|
@ -196,15 +183,15 @@ adddic(unsigned char* yomi, unsigned char* kanji, TypeGram hinsi)
|
||||||
|
|
||||||
douptr = dicbuf + douofs;
|
douptr = dicbuf + douofs;
|
||||||
|
|
||||||
if (nxtask) {
|
if(nxtask) {
|
||||||
unsigned char *tp;
|
unsigned char* tp;
|
||||||
|
|
||||||
size = getsize(douptr) - nxtask;
|
size = getsize(douptr) - nxtask;
|
||||||
plen = getplen(douptr) + nxtask;
|
plen = getplen(douptr) + nxtask;
|
||||||
nlen = getnlen(douptr) - nxtask;
|
nlen = getnlen(douptr) - nxtask;
|
||||||
*douptr = (size >> 8);
|
*douptr = (size >> 8);
|
||||||
if (nlen & 0x10) *douptr |= NokoriYomiTop;
|
if(nlen & 0x10) *douptr |= NokoriYomiTop;
|
||||||
if (plen & 0x10) *douptr |= AssyukuYomiTop;
|
if(plen & 0x10) *douptr |= AsshukuYomiTop;
|
||||||
*(douptr + 1) = size;
|
*(douptr + 1) = size;
|
||||||
*(douptr + 2) = ((nlen & 0x0f) | ((plen & 0x0f) << 4));
|
*(douptr + 2) = ((nlen & 0x0f) | ((plen & 0x0f) << 4));
|
||||||
|
|
||||||
|
|
@ -218,60 +205,59 @@ adddic(unsigned char* yomi, unsigned char* kanji, TypeGram hinsi)
|
||||||
p1 = dicbuf + curdict->seglen;
|
p1 = dicbuf + curdict->seglen;
|
||||||
mvmemd(p1 - size, p1, p1 - dstptr - size);
|
mvmemd(p1 - size, p1, p1 - dstptr - size);
|
||||||
|
|
||||||
if (!hnsofs) {
|
if(!hnsofs) {
|
||||||
if (douofs == segtop() - dicbuf) {
|
if(douofs == segtop() - dicbuf) {
|
||||||
chg_uidx(segnum, yptr, cnvlen);
|
chg_uidx(segnum, yptr, cnvlen);
|
||||||
}
|
}
|
||||||
|
|
||||||
*dstptr = 0;
|
*dstptr = 0;
|
||||||
nlen = cnvlen - saml;
|
nlen = cnvlen - saml;
|
||||||
if (nlen & 0x10) *dstptr |= NokoriYomiTop;
|
if(nlen & 0x10) *dstptr |= NokoriYomiTop;
|
||||||
if (saml & 0x10) *dstptr |= AssyukuYomiTop;
|
if(saml & 0x10) *dstptr |= AsshukuYomiTop;
|
||||||
*dstptr++ |= (size >> 8);
|
*dstptr++ |= (size >> 8);
|
||||||
*dstptr++ = size;
|
*dstptr++ = size;
|
||||||
*dstptr++ = ((nlen&0x0f)|((saml&0x0f)<<4));
|
*dstptr++ = ((nlen & 0x0f) | ((saml & 0x0f) << 4));
|
||||||
|
|
||||||
while (saml < cnvlen) *dstptr++ = yptr[saml++];
|
while(saml < cnvlen) *dstptr++ = yptr[saml++];
|
||||||
}
|
}
|
||||||
|
|
||||||
else {
|
else {
|
||||||
plen = getplen(douptr);
|
plen = getplen(douptr);
|
||||||
nlen = getnlen(douptr);
|
nlen = getnlen(douptr);
|
||||||
*douptr = (newsiz >> 8);
|
*douptr = (newsiz >> 8);
|
||||||
if (nlen & 0x10) *douptr |= NokoriYomiTop;
|
if(nlen & 0x10) *douptr |= NokoriYomiTop;
|
||||||
if (plen & 0x10) *douptr |= AssyukuYomiTop;
|
if(plen & 0x10) *douptr |= AsshukuYomiTop;
|
||||||
*(douptr + 1) = newsiz;
|
*(douptr + 1) = newsiz;
|
||||||
*(douptr + 2) = ((nlen & 0x0f) | ((plen & 0x0f) << 4));
|
*(douptr + 2) = ((nlen & 0x0f) | ((plen & 0x0f) << 4));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!knjofs) *dstptr++ = hinsi;
|
if(!knjofs) *dstptr++ = hinshi;
|
||||||
|
|
||||||
stdydat.stdy1.offset = dstptr - dicbuf;
|
stdydat.stdy1.offset = dstptr - dicbuf;
|
||||||
for (saml = 0 ; saml < klen ; ) *dstptr++ = kptr[saml++];
|
for(saml = 0; saml < klen;) *dstptr++ = kptr[saml++];
|
||||||
if (klen > 0) *dstptr++ = KanjiStrEnd;
|
if(klen > 0) *dstptr++ = KanjiStrEnd;
|
||||||
|
|
||||||
if (!knjofs) *dstptr++ = HinsiBlkTerm;
|
if(!knjofs) *dstptr++ = HinshiBlkTerm;
|
||||||
|
|
||||||
(*curdict->putdic)(curdict, segnum);
|
(*curdict->putdic)(curdict, segnum);
|
||||||
|
|
||||||
if (StudyExist()) {
|
if(StudyExist()) {
|
||||||
size -= nxtask;
|
size -= nxtask;
|
||||||
for (i = StudyCount, stdy = StudyDict ; i-- ; stdy++) {
|
for(i = StudyCount, stdy = StudyDict; i--; stdy++) {
|
||||||
if (stdy -> dicid != curdict->dicid) continue;
|
if(stdy->dicid != curdict->dicid) continue;
|
||||||
if (stdy -> seg != segnum) continue;
|
if(stdy->seg != segnum) continue;
|
||||||
if (stdy -> offset >= dstofs) stdy -> offset += size;
|
if(stdy->offset >= dstofs) stdy->offset += size;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (p1 = ClStudyDict ; !iseocl(p1) ; p1 = ClNextTag(p1)) {
|
for(p1 = ClStudyDict; !iseocl(p1); p1 = ClNextTag(p1)) {
|
||||||
err = strncmp(yptr, (unsigned char*)ClYomiPos(p1),
|
err = strncmp(yptr, (unsigned char*)ClYomiPos(p1),
|
||||||
(int)ClYomiLen(p1));
|
(int)ClYomiLen(p1));
|
||||||
if (err == MATCH) {
|
if(err == MATCH) {
|
||||||
delclsub(p1);
|
delclsub(p1);
|
||||||
mkclidx();
|
mkclidx();
|
||||||
putcldic();
|
putcldic();
|
||||||
break;
|
break;
|
||||||
}
|
} else if(err == OVER)
|
||||||
else if (err == OVER)
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -282,7 +268,7 @@ adddic(unsigned char* yomi, unsigned char* kanji, TypeGram hinsi)
|
||||||
stdydat.stdy1.sttkj = 0;
|
stdydat.stdy1.sttkj = 0;
|
||||||
stdydat.stdy1.ka_kj = 0;
|
stdydat.stdy1.ka_kj = 0;
|
||||||
stdydat.stdy1.nmflg = 0;
|
stdydat.stdy1.nmflg = 0;
|
||||||
stdydat.hinshi = hinsi;
|
stdydat.hinshi = hinshi;
|
||||||
stdydat.len = cnvlen;
|
stdydat.len = cnvlen;
|
||||||
stdydat.sttlen = 0;
|
stdydat.sttlen = 0;
|
||||||
stdydat.sttfg = 0;
|
stdydat.sttfg = 0;
|
||||||
|
|
@ -292,13 +278,11 @@ adddic(unsigned char* yomi, unsigned char* kanji, TypeGram hinsi)
|
||||||
return AD_Done;
|
return AD_Done;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
checksub(unsigned char* kanji, TypeGram grm)
|
checksub(unsigned char* kanji, TypeGram grm) {
|
||||||
{
|
unsigned char* tagp;
|
||||||
unsigned char *tagp;
|
unsigned char* ptr;
|
||||||
unsigned char *ptr;
|
unsigned char* endp;
|
||||||
unsigned char *endp;
|
|
||||||
int flg, nlen;
|
int flg, nlen;
|
||||||
int dounum;
|
int dounum;
|
||||||
unsigned char buf[MaxWdKanjiLen + 1];
|
unsigned char buf[MaxWdKanjiLen + 1];
|
||||||
|
|
@ -306,9 +290,9 @@ checksub(unsigned char* kanji, TypeGram grm)
|
||||||
dicinl = cnvlen;
|
dicinl = cnvlen;
|
||||||
dicsaml = 0;
|
dicsaml = 0;
|
||||||
prevseg = (TypeDicSeg)-1;
|
prevseg = (TypeDicSeg)-1;
|
||||||
for (;;) {
|
for(;;) {
|
||||||
if (!(tagp = srchdict(tagp))) return 0;
|
if(!(tagp = srchdict(tagp))) return 0;
|
||||||
if (cnvlen == getnlen(tagp) + getplen(tagp))
|
if(cnvlen == getnlen(tagp) + getplen(tagp))
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -317,12 +301,12 @@ checksub(unsigned char* kanji, TypeGram grm)
|
||||||
ptr = tagp + DouonBlkSizeNumber + nlen;
|
ptr = tagp + DouonBlkSizeNumber + nlen;
|
||||||
endp = tagp + getsize(tagp);
|
endp = tagp + getsize(tagp);
|
||||||
|
|
||||||
while (ptr < endp) {
|
while(ptr < endp) {
|
||||||
flg = (grm == *ptr++);
|
flg = (grm == *ptr++);
|
||||||
while (*ptr != HinsiBlkTerm) {
|
while(*ptr != HinshiBlkTerm) {
|
||||||
if (flg) {
|
if(flg) {
|
||||||
buf[getkanji(inputyomi, cnvlen, ptr, buf)] = 0;
|
buf[getkanji(inputyomi, cnvlen, ptr, buf)] = 0;
|
||||||
if (cmpstr(kanji, buf)) return -1;
|
if(cmpstr(kanji, buf)) return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
dounum++;
|
dounum++;
|
||||||
|
|
@ -335,19 +319,17 @@ checksub(unsigned char* kanji, TypeGram grm)
|
||||||
return dounum;
|
return dounum;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static unsigned int
|
static unsigned int
|
||||||
checkdict(unsigned char* kanji, TypeGram grm)
|
checkdict(unsigned char* kanji, TypeGram grm) {
|
||||||
{
|
DICTL* dp;
|
||||||
DICTL *dp;
|
|
||||||
int dounum = 0;
|
int dounum = 0;
|
||||||
int tmp;
|
int tmp;
|
||||||
DICT *tmpdict;
|
DICT* tmpdict;
|
||||||
|
|
||||||
tmpdict = curdict;
|
tmpdict = curdict;
|
||||||
for (dp = dictlist ; dp ; dp = dp -> next) {
|
for(dp = dictlist; dp; dp = dp->next) {
|
||||||
curdict = dp -> dict;
|
curdict = dp->dict;
|
||||||
if ((tmp = checksub(kanji, grm)) < 0) {
|
if((tmp = checksub(kanji, grm)) < 0) {
|
||||||
curdict = tmpdict;
|
curdict = tmpdict;
|
||||||
return AD_ArExist;
|
return AD_ArExist;
|
||||||
}
|
}
|
||||||
|
|
@ -356,26 +338,24 @@ checkdict(unsigned char* kanji, TypeGram grm)
|
||||||
}
|
}
|
||||||
curdict = tmpdict;
|
curdict = tmpdict;
|
||||||
|
|
||||||
if (MaxKouhoNumber <= dounum) return AD_OvflwDouNum;
|
if(MaxKouhoNumber <= dounum) return AD_OvflwDouNum;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
cal_nextym(unsigned char* ptr)
|
cal_nextym(unsigned char* ptr) {
|
||||||
{
|
|
||||||
int count = 0;
|
int count = 0;
|
||||||
unsigned char *src;
|
unsigned char* src;
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
if (!segend(ptr)) {
|
if(!segend(ptr)) {
|
||||||
src = cnvstart + getplen(ptr);
|
src = cnvstart + getplen(ptr);
|
||||||
len = getnlen(ptr);
|
len = getnlen(ptr);
|
||||||
ptr += DouonBlkSizeNumber;
|
ptr += DouonBlkSizeNumber;
|
||||||
|
|
||||||
while (len--) {
|
while(len--) {
|
||||||
if (*ptr++ == *src++)
|
if(*ptr++ == *src++)
|
||||||
count++;
|
count++;
|
||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
|
|
@ -385,34 +365,30 @@ cal_nextym(unsigned char* ptr)
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
usr_freelen(void)
|
usr_freelen(void) {
|
||||||
{
|
|
||||||
unsigned char* ptr;
|
unsigned char* ptr;
|
||||||
|
|
||||||
ptr = segtop();
|
ptr = segtop();
|
||||||
while (!segend(ptr)) ptr += getsize(ptr);
|
while(!segend(ptr)) ptr += getsize(ptr);
|
||||||
|
|
||||||
return(curdict->seglen - (ptr - dicbuf));
|
return (curdict->seglen - (ptr - dicbuf));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
sprt_seg(TypeDicSeg seg, TypeDicOfs ofs)
|
sprt_seg(TypeDicSeg seg, TypeDicOfs ofs) {
|
||||||
{
|
|
||||||
TypeDicSeg s;
|
TypeDicSeg s;
|
||||||
unsigned char *pos;
|
unsigned char* pos;
|
||||||
unsigned char *p;
|
unsigned char* p;
|
||||||
unsigned char *q;
|
unsigned char* q;
|
||||||
int i;
|
int i;
|
||||||
int j;
|
int j;
|
||||||
int ylen, nlen;
|
int ylen, nlen;
|
||||||
TypeDicID dicid;
|
TypeDicID dicid;
|
||||||
unsigned char yomi[MaxWdYomiLen];
|
unsigned char yomi[MaxWdYomiLen];
|
||||||
STDYIN *stdy;
|
STDYIN* stdy;
|
||||||
|
|
||||||
for (s = curdict->segunit - 1 ; s >= seg ; s--) {
|
for(s = curdict->segunit - 1; s >= seg; s--) {
|
||||||
(*curdict->getdic)(curdict, s);
|
(*curdict->getdic)(curdict, s);
|
||||||
(*curdict->putdic)(curdict, s + 1);
|
(*curdict->putdic)(curdict, s + 1);
|
||||||
}
|
}
|
||||||
|
|
@ -423,13 +399,13 @@ sprt_seg(TypeDicSeg seg, TypeDicOfs ofs)
|
||||||
|
|
||||||
pos = dicbuf + ofs;
|
pos = dicbuf + ofs;
|
||||||
|
|
||||||
for (p = segtop() ; (p <= pos) && !segend(p) ; p = q) {
|
for(p = segtop(); (p <= pos) && !segend(p); p = q) {
|
||||||
q = getntag(p);
|
q = getntag(p);
|
||||||
i = getplen(p);
|
i = getplen(p);
|
||||||
nlen = getnlen(p);
|
nlen = getnlen(p);
|
||||||
j = (nlen != 0) ? nlen+1: 0;
|
j = (nlen != 0) ? nlen + 1 : 0;
|
||||||
p += DouonBlkSizeNumber;
|
p += DouonBlkSizeNumber;
|
||||||
while (j-- > 0) yomi[i++] = *p++;
|
while(j-- > 0) yomi[i++] = *p++;
|
||||||
}
|
}
|
||||||
|
|
||||||
nlen = getnlen(pos);
|
nlen = getnlen(pos);
|
||||||
|
|
@ -451,18 +427,18 @@ sprt_seg(TypeDicSeg seg, TypeDicOfs ofs)
|
||||||
|
|
||||||
(*curdict->putdic)(curdict, seg + 1);
|
(*curdict->putdic)(curdict, seg + 1);
|
||||||
|
|
||||||
if (StudyExist()) {
|
if(StudyExist()) {
|
||||||
dicid = curdict -> dicid;
|
dicid = curdict->dicid;
|
||||||
for (i = StudyCount, stdy = StudyDict ; i-- > 0 ; stdy++) {
|
for(i = StudyCount, stdy = StudyDict; i-- > 0; stdy++) {
|
||||||
if (stdy -> dicid != dicid)
|
if(stdy->dicid != dicid)
|
||||||
continue;
|
continue;
|
||||||
else if (stdy -> seg < seg)
|
else if(stdy->seg < seg)
|
||||||
continue;
|
continue;
|
||||||
else if (stdy -> seg > seg)
|
else if(stdy->seg > seg)
|
||||||
stdy -> seg += 1;
|
stdy->seg += 1;
|
||||||
else if (stdy -> offset >= ofs) {
|
else if(stdy->offset >= ofs) {
|
||||||
stdy -> seg += 1;
|
stdy->seg += 1;
|
||||||
stdy -> offset -= j;
|
stdy->offset -= j;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -472,20 +448,18 @@ sprt_seg(TypeDicSeg seg, TypeDicOfs ofs)
|
||||||
(*curdict->putdic)(curdict, seg);
|
(*curdict->putdic)(curdict, seg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
apnd_uidx(TypeDicSeg seg, unsigned char* yomi, int len)
|
apnd_uidx(TypeDicSeg seg, unsigned char* yomi, int len) {
|
||||||
{
|
unsigned char* p;
|
||||||
unsigned char *p;
|
unsigned char* q;
|
||||||
unsigned char *q;
|
|
||||||
|
|
||||||
p = get_idxptr(seg);
|
p = get_idxptr(seg);
|
||||||
while (*p++) ;
|
while(*p++);
|
||||||
|
|
||||||
q = idxbuf + curdict->idxlen;
|
q = idxbuf + curdict->idxlen;
|
||||||
mvmemd(q - (len + 1), q, (int)(q - (len + 1) - p));
|
mvmemd(q - (len + 1), q, (int)(q - (len + 1) - p));
|
||||||
|
|
||||||
while (len--) *p++ = *yomi++;
|
while(len--) *p++ = *yomi++;
|
||||||
*p = 0;
|
*p = 0;
|
||||||
|
|
||||||
(*curdict->putidx)(curdict, 0);
|
(*curdict->putidx)(curdict, 0);
|
||||||
|
|
|
||||||
257
addelcmn.c
257
addelcmn.c
|
|
@ -27,139 +27,108 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: addelcmn.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:01:27 $
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "sj_euc.h"
|
#include "sj_euc.h"
|
||||||
#include "sj_kcnv.h"
|
#include "sj_kcnv.h"
|
||||||
#include "sj_hinsi.h"
|
#include "sj_hinshi.h"
|
||||||
#include "sj_yomi.h"
|
#include "sj_yomi.h"
|
||||||
#include "kanakan.h"
|
#include "kanakan.h"
|
||||||
|
|
||||||
|
|
||||||
int sj2cd_str();
|
int sj2cd_str();
|
||||||
void mvmemi(), mvmemd(), mkidxtbl();
|
void mvmemi(), mvmemd(), mkidxtbl();
|
||||||
|
|
||||||
|
void set_size(unsigned char* p, int size, int plen, int nlen) {
|
||||||
|
|
||||||
void
|
|
||||||
set_size (unsigned char *p, int size, int plen, int nlen)
|
|
||||||
{
|
|
||||||
*p = (unsigned char)(size >> 8);
|
*p = (unsigned char)(size >> 8);
|
||||||
if (nlen & 0x10) *p |= NokoriYomiTop;
|
if(nlen & 0x10) *p |= NokoriYomiTop;
|
||||||
if (plen & 0x10) *p |= AssyukuYomiTop;
|
if(plen & 0x10) *p |= AsshukuYomiTop;
|
||||||
*(p + 1) = (unsigned char)size;
|
*(p + 1) = (unsigned char)size;
|
||||||
*(p + 2) = (unsigned char)((nlen & 0x0f) | ((plen & 0x0f) << 4));
|
*(p + 2) = (unsigned char)((nlen & 0x0f) | ((plen & 0x0f) << 4));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
isvyomi (unsigned char *yp)
|
isvyomi(unsigned char* yp) {
|
||||||
{
|
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
if (!*yp) return FALSE;
|
if(!*yp) return FALSE;
|
||||||
|
|
||||||
if (!(Chrtbl[*yp] & DICTOP)) return FALSE;
|
if(!(Chrtbl[*yp] & DICTOP)) return FALSE;
|
||||||
|
|
||||||
for (len = 0 ; *yp ; yp++) {
|
for(len = 0; *yp; yp++) {
|
||||||
if (!(Chrtbl[*yp]) || (*yp >= Y_KUTEN)) return FALSE;
|
if(!(Chrtbl[*yp]) || (*yp >= Y_KUTEN)) return FALSE;
|
||||||
if (++len > MaxWdYomiLen) return FALSE;
|
if(++len > MaxWdYomiLen) return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
isvknj(unsigned char *kanji)
|
isvknj(unsigned char* kanji) {
|
||||||
{
|
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
if (!*kanji) return FALSE;
|
if(!*kanji) return FALSE;
|
||||||
|
|
||||||
for (len = 0 ; *kanji ; ) {
|
for(len = 0; *kanji;) {
|
||||||
if (*kanji == SS3) {
|
if(*kanji == SS3) {
|
||||||
kanji += 3;
|
kanji += 3;
|
||||||
len += 2;
|
len += 2;
|
||||||
} else
|
} else
|
||||||
|
|
||||||
if (isknj1(*kanji)) {
|
if(isknj1(*kanji)) {
|
||||||
kanji += 2;
|
kanji += 2;
|
||||||
len += 2;
|
len += 2;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
kanji++;
|
kanji++;
|
||||||
len += 2;
|
len += 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (len > MaxWdKanjiLen) return FALSE;
|
if(len > MaxWdKanjiLen) return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
isgrm (TypeGram gram)
|
isgrm(TypeGram gram) {
|
||||||
{
|
|
||||||
int grm = gram;
|
int grm = gram;
|
||||||
|
|
||||||
if (MEISI_1 <= grm && grm <= D_MEISI_6) return TRUE;
|
if(MEISHI_1 <= grm && grm <= D_MEISHI_6) return TRUE;
|
||||||
if (MYOUJI <= grm && grm <= JOSUUSI2) return TRUE;
|
if(MYOUJI <= grm && grm <= JOSUUSHI2) return TRUE;
|
||||||
if (KEIYOUSI_1 <= grm && grm <= DO_ZAHEN) return TRUE;
|
if(KEIYOUSHI_1 <= grm && grm <= DO_ZAHEN) return TRUE;
|
||||||
if (DO_1DAN_1 <= grm && grm <= DO_WAGO_2) return TRUE;
|
if(DO_1DAN_1 <= grm && grm <= DO_WAGO_2) return TRUE;
|
||||||
if (DO_KAGO_5 <= grm && grm <= DO_WAGO_5) return TRUE;
|
if(DO_KAGO_5 <= grm && grm <= DO_WAGO_5) return TRUE;
|
||||||
if (DO_KAGO_6 <= grm && grm <= DO_WAGO_6) return TRUE;
|
if(DO_KAGO_6 <= grm && grm <= DO_WAGO_6) return TRUE;
|
||||||
if (DO_1DAN_3 <= grm && grm <= DO_WAGO_3) return TRUE;
|
if(DO_1DAN_3 <= grm && grm <= DO_WAGO_3) return TRUE;
|
||||||
if (DO_1DAN_4 <= grm && grm <= DO_WAGO_4) return TRUE;
|
if(DO_1DAN_4 <= grm && grm <= DO_WAGO_4) return TRUE;
|
||||||
if (DO_KAGO_7 <= grm && grm <= DO_WAGO_7) return TRUE;
|
if(DO_KAGO_7 <= grm && grm <= DO_WAGO_7) return TRUE;
|
||||||
if (DO_KAGO_8 <= grm && grm <= DO_WAGO_8) return TRUE;
|
if(DO_KAGO_8 <= grm && grm <= DO_WAGO_8) return TRUE;
|
||||||
if (SP_SA_MI1 <= grm && grm <= TANKANJI) return TRUE;
|
if(SP_SA_MI1 <= grm && grm <= TANKANJI) return TRUE;
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
unsigned int
|
unsigned int
|
||||||
addel_arg (unsigned char *yp, unsigned char *kp, TypeGram grm, unsigned char *nyp, int len)
|
addel_arg(unsigned char* yp, unsigned char* kp, TypeGram grm, unsigned char* nyp, int len) {
|
||||||
{
|
|
||||||
unsigned int err = 0;
|
unsigned int err = 0;
|
||||||
|
|
||||||
if (!sj2cd_str(yp, nyp, len)) err |= AD_BadYomi;
|
if(!sj2cd_str(yp, nyp, len)) err |= AD_BadYomi;
|
||||||
if (!isvyomi(nyp)) err |= AD_BadYomi;
|
if(!isvyomi(nyp)) err |= AD_BadYomi;
|
||||||
if (!isvknj(kp)) err |= AD_BadKanji;
|
if(!isvknj(kp)) err |= AD_BadKanji;
|
||||||
if (!isgrm(grm)) err |= AD_BadHinsi;
|
if(!isgrm(grm)) err |= AD_BadHinshi;
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
yomi2kata (unsigned char *src, unsigned char *dst)
|
yomi2kata(unsigned char* src, unsigned char* dst) {
|
||||||
{
|
|
||||||
int first;
|
int first;
|
||||||
int second;
|
int second;
|
||||||
|
|
||||||
while ((first = *src++) != 0) {
|
while((first = *src++) != 0) {
|
||||||
second = *src++;
|
second = *src++;
|
||||||
|
|
||||||
if (first != 0xa4) {
|
if(first != 0xa4) {
|
||||||
*dst++ = first;
|
*dst++ = first;
|
||||||
*dst++ = second;
|
*dst++ = second;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
*dst++ = 0xa5;
|
*dst++ = 0xa5;
|
||||||
*dst++ = second;
|
*dst++ = second;
|
||||||
}
|
}
|
||||||
|
|
@ -168,87 +137,76 @@ yomi2kata (unsigned char *src, unsigned char *dst)
|
||||||
*dst = 0;
|
*dst = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
top_strcmp (unsigned char *src, unsigned char *dst)
|
top_strcmp(unsigned char* src, unsigned char* dst) {
|
||||||
{
|
|
||||||
int i;
|
int i;
|
||||||
for (i = 0 ; *src && (*src == *dst) ; src++, dst++) i++;
|
for(i = 0; *src && (*src == *dst); src++, dst++) i++;
|
||||||
i /= 2;
|
i /= 2;
|
||||||
return (i > MaxYomiAskNumber) ? MaxYomiAskNumber : i;
|
return (i > MaxYomiAskNumber) ? MaxYomiAskNumber : i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
last_strcmp (unsigned char *src, unsigned char *dst)
|
last_strcmp(unsigned char* src, unsigned char* dst) {
|
||||||
{
|
|
||||||
int slen;
|
int slen;
|
||||||
int dlen;
|
int dlen;
|
||||||
|
|
||||||
slen = strlen(src);
|
slen = strlen(src);
|
||||||
dlen = strlen(dst);
|
dlen = strlen(dst);
|
||||||
|
|
||||||
if (dlen > MaxYomiAskNumber * 2) return 0;
|
if(dlen > MaxYomiAskNumber * 2) return 0;
|
||||||
|
|
||||||
if (strcmp(src + (slen - dlen), dst)) return 0;
|
if(strcmp(src + (slen - dlen), dst)) return 0;
|
||||||
|
|
||||||
return (dlen / 2);
|
return (dlen / 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int cvtknj(unsigned char* yomi, unsigned char* knj, unsigned char* dst) {
|
||||||
|
|
||||||
int
|
|
||||||
cvtknj (unsigned char *yomi, unsigned char *knj, unsigned char *dst)
|
|
||||||
{
|
|
||||||
unsigned char kana[MaxWdYomiLen * 2 + 1];
|
unsigned char kana[MaxWdYomiLen * 2 + 1];
|
||||||
int len;
|
int len;
|
||||||
unsigned char *keep;
|
unsigned char* keep;
|
||||||
|
|
||||||
keep = dst;
|
keep = dst;
|
||||||
yomi2kata(yomi, kana);
|
yomi2kata(yomi, kana);
|
||||||
|
|
||||||
if ((len = top_strcmp(yomi, knj)) != 0) {
|
if((len = top_strcmp(yomi, knj)) != 0) {
|
||||||
*dst = (unsigned char)(ZenHiraAssyuku | (len - 1));
|
*dst = (unsigned char)(ZenHiraAsshuku | (len - 1));
|
||||||
}
|
} else if((len = top_strcmp(kana, knj)) != 0) {
|
||||||
else if ((len = top_strcmp(kana, knj)) != 0) {
|
*dst = (unsigned char)(ZenKataAsshuku | (len - 1));
|
||||||
*dst = (unsigned char)(ZenKataAssyuku | (len - 1));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (len) {
|
if(len) {
|
||||||
knj += len * 2;
|
knj += len * 2;
|
||||||
dst++;
|
dst++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (*knj) {
|
if(*knj) {
|
||||||
for ( ; ; ) {
|
for(;;) {
|
||||||
if ((len = last_strcmp(yomi, knj)) != 0) {
|
if((len = last_strcmp(yomi, knj)) != 0) {
|
||||||
*dst++ = (unsigned char)(ZenHiraAssyuku | (len - 1));
|
*dst++ = (unsigned char)(ZenHiraAsshuku | (len - 1));
|
||||||
break;
|
break;
|
||||||
}
|
} else if((len = last_strcmp(kana, knj)) != 0) {
|
||||||
else if ((len = last_strcmp(kana, knj)) != 0) {
|
*dst++ = (unsigned char)(ZenKataAsshuku | (len - 1));
|
||||||
*dst++ = (unsigned char)(ZenKataAssyuku | (len - 1));
|
|
||||||
break;
|
break;
|
||||||
}
|
} else if(*knj == SS2) {
|
||||||
else if (*knj == SS2) {
|
|
||||||
knj++;
|
knj++;
|
||||||
*dst++ = (unsigned char)LeadingHankaku;
|
*dst++ = (unsigned char)LeadingHankaku;
|
||||||
*dst++ = *knj++;
|
*dst++ = *knj++;
|
||||||
} else if (*knj == SS3) {
|
} else if(*knj == SS3) {
|
||||||
|
knj++;
|
||||||
|
*dst++ = (*knj & NormalKanjiMask);
|
||||||
knj++;
|
knj++;
|
||||||
*dst++ = (*knj & NormalKanjiMask); knj++;
|
|
||||||
*dst++ = *knj++;
|
*dst++ = *knj++;
|
||||||
} else if (*knj & 0x80) {
|
} else if(*knj & 0x80) {
|
||||||
*dst++ = (*knj & NormalKanjiMask); knj++;
|
*dst++ = (*knj & NormalKanjiMask);
|
||||||
*dst++ = (*knj & NormalKanjiMask); knj++;
|
knj++;
|
||||||
}
|
*dst++ = (*knj & NormalKanjiMask);
|
||||||
else {
|
knj++;
|
||||||
|
} else {
|
||||||
*dst++ = (unsigned char)LeadingHankaku;
|
*dst++ = (unsigned char)LeadingHankaku;
|
||||||
*dst++ = *knj++;
|
*dst++ = *knj++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!*knj) {
|
if(!*knj) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -259,12 +217,8 @@ cvtknj (unsigned char *yomi, unsigned char *knj, unsigned char *dst)
|
||||||
return (dst - keep);
|
return (dst - keep);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int srchkana(unsigned char** ptr, int* saml) {
|
||||||
|
unsigned char* p;
|
||||||
int
|
|
||||||
srchkana (unsigned char **ptr, int *saml)
|
|
||||||
{
|
|
||||||
unsigned char *p;
|
|
||||||
int cmp;
|
int cmp;
|
||||||
int cnt = 0;
|
int cnt = 0;
|
||||||
unsigned char same;
|
unsigned char same;
|
||||||
|
|
@ -274,14 +228,14 @@ srchkana (unsigned char **ptr, int *saml)
|
||||||
|
|
||||||
p = segtop();
|
p = segtop();
|
||||||
|
|
||||||
while (!segend(p)) {
|
while(!segend(p)) {
|
||||||
|
|
||||||
if (flg == 0) {
|
if(flg == 0) {
|
||||||
cmp = yomicmp(cnvstart, p, &same);
|
cmp = yomicmp(cnvstart, p, &same);
|
||||||
|
|
||||||
if (cmp == OVER) break;
|
if(cmp == OVER) break;
|
||||||
|
|
||||||
if (cmp == MATCH && *(cnvstart + same) == 0) {
|
if(cmp == MATCH && *(cnvstart + same) == 0) {
|
||||||
*ptr = p;
|
*ptr = p;
|
||||||
*saml = same;
|
*saml = same;
|
||||||
flg = 1;
|
flg = 1;
|
||||||
|
|
@ -292,19 +246,15 @@ srchkana (unsigned char **ptr, int *saml)
|
||||||
cnt++;
|
cnt++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flg != 0) return cnt;
|
if(flg != 0) return cnt;
|
||||||
|
|
||||||
*ptr = p;
|
*ptr = p;
|
||||||
*saml = same;
|
*saml = same;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int srchgram(unsigned char* ptr, unsigned char** dst, TypeGram hinshi) {
|
||||||
|
unsigned char* endp;
|
||||||
int
|
|
||||||
srchgram (unsigned char *ptr, unsigned char **dst, TypeGram hinsi)
|
|
||||||
{
|
|
||||||
unsigned char *endp;
|
|
||||||
int cnt = 0, nlen;
|
int cnt = 0, nlen;
|
||||||
int flg = FALSE;
|
int flg = FALSE;
|
||||||
|
|
||||||
|
|
@ -312,31 +262,27 @@ srchgram (unsigned char *ptr, unsigned char **dst, TypeGram hinsi)
|
||||||
|
|
||||||
nlen = getnlen(ptr);
|
nlen = getnlen(ptr);
|
||||||
ptr += DouonBlkSizeNumber + nlen;
|
ptr += DouonBlkSizeNumber + nlen;
|
||||||
while (ptr < endp) {
|
while(ptr < endp) {
|
||||||
if (*ptr == hinsi) {
|
if(*ptr == hinshi) {
|
||||||
*dst = ptr;
|
*dst = ptr;
|
||||||
flg = TRUE;
|
flg = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
do {
|
do {
|
||||||
ptr += codesize(*ptr);
|
ptr += codesize(*ptr);
|
||||||
} while (*ptr != HinsiBlkTerm);
|
} while(*ptr != HinshiBlkTerm);
|
||||||
ptr++;
|
ptr++;
|
||||||
cnt++;
|
cnt++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flg) return cnt;
|
if(flg) return cnt;
|
||||||
|
|
||||||
*dst = ptr;
|
*dst = ptr;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int srchkanji(unsigned char** dst, unsigned char* knj, int klen) {
|
||||||
|
unsigned char* ptr;
|
||||||
int
|
|
||||||
srchkanji (unsigned char **dst, unsigned char *knj, int klen)
|
|
||||||
{
|
|
||||||
unsigned char *ptr;
|
|
||||||
unsigned char *p, *q;
|
unsigned char *p, *q;
|
||||||
int len;
|
int len;
|
||||||
int flg = FALSE;
|
int flg = FALSE;
|
||||||
|
|
@ -344,45 +290,38 @@ srchkanji (unsigned char **dst, unsigned char *knj, int klen)
|
||||||
|
|
||||||
ptr = *dst + 1;
|
ptr = *dst + 1;
|
||||||
|
|
||||||
while (*ptr != HinsiBlkTerm) {
|
while(*ptr != HinshiBlkTerm) {
|
||||||
for (p = ptr, q = knj, len = klen ; len ; len--)
|
for(p = ptr, q = knj, len = klen; len; len--)
|
||||||
if (*p++ != *q++) break;
|
if(*p++ != *q++) break;
|
||||||
|
|
||||||
if (!len) {
|
if(!len) {
|
||||||
*dst = ptr;
|
*dst = ptr;
|
||||||
flg = TRUE;
|
flg = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
while (!(*ptr == KanjiStrEnd)) {
|
while(!(*ptr == KanjiStrEnd)) {
|
||||||
ptr += codesize(*ptr);
|
ptr += codesize(*ptr);
|
||||||
}
|
}
|
||||||
ptr++;
|
ptr++;
|
||||||
cnt++;
|
cnt++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!flg) *dst = ptr;
|
if(!flg) *dst = ptr;
|
||||||
|
|
||||||
return cnt;
|
return cnt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
TypeIdxOfs
|
TypeIdxOfs
|
||||||
count_uidx (void)
|
count_uidx(void) {
|
||||||
{
|
unsigned char* p;
|
||||||
unsigned char *p;
|
|
||||||
|
|
||||||
p = get_idxptr(curdict->segunit - 1);
|
p = get_idxptr(curdict->segunit - 1);
|
||||||
while (*p++) ;
|
while(*p++);
|
||||||
|
|
||||||
return (curdict->idxlen - (p - idxbuf));
|
return (curdict->idxlen - (p - idxbuf));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void chg_uidx(TypeDicSeg seg, unsigned char* yomi, int len) {
|
||||||
|
|
||||||
void
|
|
||||||
chg_uidx (TypeDicSeg seg, unsigned char *yomi, int len)
|
|
||||||
{
|
|
||||||
unsigned char *p, *q;
|
unsigned char *p, *q;
|
||||||
int olen;
|
int olen;
|
||||||
|
|
||||||
|
|
@ -392,17 +331,15 @@ chg_uidx (TypeDicSeg seg, unsigned char *yomi, int len)
|
||||||
|
|
||||||
q = idxbuf + curdict->idxlen;
|
q = idxbuf + curdict->idxlen;
|
||||||
|
|
||||||
if (len > olen) {
|
if(len > olen) {
|
||||||
mvmemd(q - (len-olen), q, (int)(q - (len-olen) - p));
|
mvmemd(q - (len - olen), q, (int)(q - (len - olen) - p));
|
||||||
}
|
} else {
|
||||||
else {
|
mvmemi(p + (olen - len), p, (int)(q - (p + (olen - len))));
|
||||||
mvmemi(p + (olen-len), p, (int)(q - (p + (olen-len))));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
while (len--) *p++ = *yomi++;
|
while(len--) *p++ = *yomi++;
|
||||||
|
|
||||||
(*curdict->putidx)(curdict, 0);
|
(*curdict->putidx)(curdict, 0);
|
||||||
|
|
||||||
mkidxtbl(curdict);
|
mkidxtbl(curdict);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
69
alloc.c
69
alloc.c
|
|
@ -27,16 +27,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: alloc.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:01:28 $
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include "sj_rename.h"
|
#include "sj_rename.h"
|
||||||
|
|
@ -49,61 +39,54 @@
|
||||||
#define JREC_NUM 128
|
#define JREC_NUM 128
|
||||||
#define CLREC_NUM 128
|
#define CLREC_NUM 128
|
||||||
|
|
||||||
static JREC *jrec = NULL;
|
static JREC* jrec = NULL;
|
||||||
static CLREC *clrec = NULL;
|
static CLREC* clrec = NULL;
|
||||||
|
|
||||||
JREC*
|
JREC* alloc_jrec(void) {
|
||||||
alloc_jrec(void)
|
JREC* p;
|
||||||
{
|
|
||||||
JREC *p;
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (jrec == NULL) {
|
if(jrec == NULL) {
|
||||||
jrec = (JREC *)malloc(sizeof(JREC) * JREC_NUM);
|
jrec = (JREC*)malloc(sizeof(JREC) * JREC_NUM);
|
||||||
if (jrec == NULL) return (JREC *)malloc(sizeof(JREC));
|
if(jrec == NULL) return (JREC*)malloc(sizeof(JREC));
|
||||||
for (i = 0, p = jrec ; i < JREC_NUM - 1 ; i++, p++)
|
for(i = 0, p = jrec; i < JREC_NUM - 1; i++, p++)
|
||||||
p -> jsort = p + 1;
|
p->jsort = p + 1;
|
||||||
p -> jsort = NULL;
|
p->jsort = NULL;
|
||||||
}
|
}
|
||||||
p = jrec;
|
p = jrec;
|
||||||
jrec = jrec -> jsort;
|
jrec = jrec->jsort;
|
||||||
|
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void free_jrec(JREC* p) {
|
||||||
free_jrec(JREC *p)
|
if(p != NULL) {
|
||||||
{
|
p->jsort = jrec;
|
||||||
if (p != NULL) {
|
|
||||||
p -> jsort = jrec;
|
|
||||||
jrec = p;
|
jrec = p;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CLREC*
|
CLREC*
|
||||||
alloc_clrec(void)
|
alloc_clrec(void) {
|
||||||
{
|
CLREC* p;
|
||||||
CLREC *p;
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (clrec == NULL) {
|
if(clrec == NULL) {
|
||||||
clrec = (CLREC *)malloc(sizeof(CLREC) * CLREC_NUM);
|
clrec = (CLREC*)malloc(sizeof(CLREC) * CLREC_NUM);
|
||||||
if (clrec == NULL) return (CLREC *)malloc(sizeof(CLREC));
|
if(clrec == NULL) return (CLREC*)malloc(sizeof(CLREC));
|
||||||
for (i = 0, p = clrec ; i < CLREC_NUM - 1 ; i++, p++)
|
for(i = 0, p = clrec; i < CLREC_NUM - 1; i++, p++)
|
||||||
p -> clsort = p + 1;
|
p->clsort = p + 1;
|
||||||
p -> clsort = NULL;
|
p->clsort = NULL;
|
||||||
}
|
}
|
||||||
p = clrec;
|
p = clrec;
|
||||||
clrec = clrec -> clsort;
|
clrec = clrec->clsort;
|
||||||
|
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void free_clrec(CLREC* p) {
|
||||||
free_clrec(CLREC* p)
|
if(p != NULL) {
|
||||||
{
|
p->clsort = clrec;
|
||||||
if (p != NULL) {
|
|
||||||
p -> clsort = clrec;
|
|
||||||
clrec = p;
|
clrec = p;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
238
char.c
238
char.c
|
|
@ -27,7 +27,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
@ -35,10 +34,7 @@
|
||||||
#include "sj_euc.h"
|
#include "sj_euc.h"
|
||||||
#include "const.h"
|
#include "const.h"
|
||||||
|
|
||||||
|
int cnvyomi(int code) {
|
||||||
int
|
|
||||||
cnvyomi(int code)
|
|
||||||
{
|
|
||||||
unsigned short hh;
|
unsigned short hh;
|
||||||
unsigned char high;
|
unsigned char high;
|
||||||
unsigned char low;
|
unsigned char low;
|
||||||
|
|
@ -47,44 +43,47 @@ cnvyomi(int code)
|
||||||
high = ((code >> 8) & 0xff);
|
high = ((code >> 8) & 0xff);
|
||||||
low = (code & 0xff);
|
low = (code & 0xff);
|
||||||
|
|
||||||
if (!hh) {
|
if(!hh) {
|
||||||
if (high == 0xa1) {
|
if(high == 0xa1) {
|
||||||
switch (low) {
|
switch(low) {
|
||||||
case 0xbc: return 1;
|
case 0xbc:
|
||||||
case 0xf4: return 2;
|
return 1;
|
||||||
case 0xf7: return 3;
|
case 0xf4:
|
||||||
case 0xa7: return 4;
|
return 2;
|
||||||
}
|
case 0xf7:
|
||||||
}
|
return 3;
|
||||||
else if (high == 0xa2) {
|
case 0xa7:
|
||||||
if (low == 0xa9)
|
|
||||||
return 4;
|
return 4;
|
||||||
}
|
}
|
||||||
else if (high == 0xa3) {
|
} else if(high == 0xa2) {
|
||||||
if (low < 0xb0)
|
if(low == 0xa9)
|
||||||
|
return 4;
|
||||||
|
} else if(high == 0xa3) {
|
||||||
|
if(low < 0xb0)
|
||||||
;
|
;
|
||||||
else if (low <= 0xb9)
|
else if(low <= 0xb9)
|
||||||
return(low - 0xb0 + 0x10);
|
return (low - 0xb0 + 0x10);
|
||||||
else if (low < 0xc0)
|
else if(low < 0xc0)
|
||||||
;
|
;
|
||||||
else if (low <= 0xda)
|
else if(low <= 0xda)
|
||||||
return(low - 0xc1 + 0x1A);
|
return (low - 0xc1 + 0x1A);
|
||||||
else if (low < 0xe1)
|
else if(low < 0xe1)
|
||||||
;
|
;
|
||||||
else if (low <= 0xfa)
|
else if(low <= 0xfa)
|
||||||
return(low - 0xe1 + 0x34);
|
return (low - 0xe1 + 0x34);
|
||||||
}
|
} else if(high == 0xa4) {
|
||||||
else if (high == 0xa4) {
|
if(low < 0xa1)
|
||||||
if (low < 0xa1)
|
|
||||||
;
|
;
|
||||||
else if (low <= 0xf3)
|
else if(low <= 0xf3)
|
||||||
return(low - 0xa1 + 0x4e);
|
return (low - 0xa1 + 0x4e);
|
||||||
}
|
} else if(high == 0xa5) {
|
||||||
else if (high == 0xa5) {
|
switch(low) {
|
||||||
switch (low) {
|
case 0xf4:
|
||||||
case 0xf4: return 0xa1;
|
return 0xa1;
|
||||||
case 0xf5: return 0xa2;
|
case 0xf5:
|
||||||
case 0xf6: return 0xa3;
|
return 0xa2;
|
||||||
|
case 0xf6:
|
||||||
|
return 0xa3;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -92,10 +91,7 @@ cnvyomi(int code)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int h2kcode(int code) {
|
||||||
int
|
|
||||||
h2kcode(int code)
|
|
||||||
{
|
|
||||||
unsigned short hh;
|
unsigned short hh;
|
||||||
unsigned char high;
|
unsigned char high;
|
||||||
unsigned char low;
|
unsigned char low;
|
||||||
|
|
@ -104,8 +100,8 @@ h2kcode(int code)
|
||||||
high = ((code >> 8) & 0xff);
|
high = ((code >> 8) & 0xff);
|
||||||
low = (code & 0xff);
|
low = (code & 0xff);
|
||||||
|
|
||||||
if (!hh) {
|
if(!hh) {
|
||||||
if (high != 0xa4)
|
if(high != 0xa4)
|
||||||
return code;
|
return code;
|
||||||
else
|
else
|
||||||
return (code + 0x0100);
|
return (code + 0x0100);
|
||||||
|
|
@ -116,18 +112,15 @@ h2kcode(int code)
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int codesize(unsigned char code) {
|
||||||
int
|
switch(code & KanjiModeMask) {
|
||||||
codesize(unsigned char code)
|
case ZenHiraAsshuku:
|
||||||
{
|
case ZenKataAsshuku:
|
||||||
switch (code&KanjiModeMask) {
|
case KanjiAsshuku:
|
||||||
case ZenHiraAssyuku:
|
|
||||||
case ZenKataAssyuku:
|
|
||||||
case KanjiAssyuku:
|
|
||||||
case KanjiStrEnd:
|
case KanjiStrEnd:
|
||||||
return 1;
|
return 1;
|
||||||
case LeadingHankaku:
|
case LeadingHankaku:
|
||||||
case OffsetAssyuku:
|
case OffsetAsshuku:
|
||||||
case AiAttribute:
|
case AiAttribute:
|
||||||
return 2;
|
return 2;
|
||||||
default:
|
default:
|
||||||
|
|
@ -135,21 +128,18 @@ codesize(unsigned char code)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void output_knj(FILE* fp, unsigned char* p, int l) {
|
||||||
void
|
while(l > 0) {
|
||||||
output_knj(FILE* fp, unsigned char* p, int l)
|
switch(*p & KanjiModeMask) {
|
||||||
{
|
case ZenHiraAsshuku:
|
||||||
while (l > 0) {
|
|
||||||
switch (*p & KanjiModeMask) {
|
|
||||||
case ZenHiraAssyuku:
|
|
||||||
fprintf(fp, "\244\322%d", (*p++ & 0x0f) + 1);
|
fprintf(fp, "\244\322%d", (*p++ & 0x0f) + 1);
|
||||||
l--;
|
l--;
|
||||||
break;
|
break;
|
||||||
case ZenKataAssyuku:
|
case ZenKataAsshuku:
|
||||||
fprintf(fp, "\245\253%d", (*p++ & 0x0f) + 1);
|
fprintf(fp, "\245\253%d", (*p++ & 0x0f) + 1);
|
||||||
l--;
|
l--;
|
||||||
break;
|
break;
|
||||||
case KanjiAssyuku:
|
case KanjiAsshuku:
|
||||||
fprintf(fp, "\260\265%1x", (*p++ & 0x0f));
|
fprintf(fp, "\260\265%1x", (*p++ & 0x0f));
|
||||||
l--;
|
l--;
|
||||||
break;
|
break;
|
||||||
|
|
@ -158,111 +148,119 @@ output_knj(FILE* fp, unsigned char* p, int l)
|
||||||
l = 0;
|
l = 0;
|
||||||
fprintf(stderr, "\244\252\244\253\244\267\244\244");
|
fprintf(stderr, "\244\252\244\253\244\267\244\244");
|
||||||
#else
|
#else
|
||||||
fputc(*p++, fp); l--;
|
fputc(*p++, fp);
|
||||||
fputc(*p++, fp); l--;
|
l--;
|
||||||
|
fputc(*p++, fp);
|
||||||
|
l--;
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
case OffsetAssyuku:
|
case OffsetAsshuku:
|
||||||
fprintf(fp, "ofs%1x", (*p++ & 0x0f));
|
fprintf(fp, "ofs%1x", (*p++ & 0x0f));
|
||||||
l--;
|
l--;
|
||||||
fprintf(fp, "%02x", *p++); l--;
|
fprintf(fp, "%02x", *p++);
|
||||||
|
l--;
|
||||||
break;
|
break;
|
||||||
case AiAttribute:
|
case AiAttribute:
|
||||||
fprintf(fp, "\302\260%1x", (*p++ & 0x0f));
|
fprintf(fp, "\302\260%1x", (*p++ & 0x0f));
|
||||||
l--;
|
l--;
|
||||||
fprintf(fp, "%02x", *p++); l--;
|
fprintf(fp, "%02x", *p++);
|
||||||
|
l--;
|
||||||
break;
|
break;
|
||||||
case KanjiStrEnd:
|
case KanjiStrEnd:
|
||||||
p++; l--;
|
p++;
|
||||||
|
l--;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if (p[1] & 0x80)
|
if(p[1] & 0x80)
|
||||||
fputc(SS3, fp);
|
fputc(SS3, fp);
|
||||||
fputc((*p | 0x80), fp); l--; p++;
|
fputc((*p | 0x80), fp);
|
||||||
fputc((*p | 0x80), fp); l--; p++;
|
l--;
|
||||||
|
p++;
|
||||||
|
fputc((*p | 0x80), fp);
|
||||||
|
l--;
|
||||||
|
p++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void output_str(FILE* fp, char* p) {
|
||||||
void
|
while(*p) {
|
||||||
output_str(FILE* fp, char* p)
|
fputc(*p, fp);
|
||||||
{
|
p++;
|
||||||
while (*p) { fputc(*p, fp); p++; }
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void output_int(FILE* fp, int* p) {
|
||||||
void
|
while(*p) {
|
||||||
output_int(FILE* fp, int* p)
|
if(*p < 0x100) {
|
||||||
{
|
fputc(*p, fp);
|
||||||
while (*p) {
|
p++;
|
||||||
if (*p < 0x100) {
|
} else if(*p < 0x10000) {
|
||||||
fputc(*p, fp); p++;
|
|
||||||
}
|
|
||||||
else if (*p < 0x10000) {
|
|
||||||
fputc((*p >> 8) & 0xff, fp);
|
fputc((*p >> 8) & 0xff, fp);
|
||||||
fputc(*p & 0xff, fp); p++;
|
fputc(*p & 0xff, fp);
|
||||||
}
|
p++;
|
||||||
else if (*p < 0x1000000) {
|
} else if(*p < 0x1000000) {
|
||||||
fputc((*p >> 16) & 0xff, fp);
|
fputc((*p >> 16) & 0xff, fp);
|
||||||
fputc((*p >> 8) & 0xff, fp);
|
fputc((*p >> 8) & 0xff, fp);
|
||||||
fputc(*p & 0xff, fp); p++;
|
fputc(*p & 0xff, fp);
|
||||||
}
|
p++;
|
||||||
else {
|
} else {
|
||||||
fputc((*p >> 24) & 0xff, fp);
|
fputc((*p >> 24) & 0xff, fp);
|
||||||
fputc((*p >> 16) & 0xff, fp);
|
fputc((*p >> 16) & 0xff, fp);
|
||||||
fputc((*p >> 8) & 0xff, fp);
|
fputc((*p >> 8) & 0xff, fp);
|
||||||
fputc(*p & 0xff, fp); p++;
|
fputc(*p & 0xff, fp);
|
||||||
|
p++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
yomi2zen(int code)
|
yomi2zen(int code) {
|
||||||
{
|
|
||||||
static char num[] = {
|
static char num[] = {
|
||||||
'0', '1', '2', '3', '4', '5', '6', '7',
|
'0', '1', '2', '3', '4', '5', '6', '7',
|
||||||
'8', '9', 'A', 'B', 'C', 'D', 'E', 'F'
|
'8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
|
||||||
};
|
|
||||||
|
|
||||||
switch (code) {
|
switch(code) {
|
||||||
case 0x01: return 0xa1bc;
|
case 0x01:
|
||||||
case 0x02: return 0xa1f4;
|
return 0xa1bc;
|
||||||
case 0x03: return 0xa1f7;
|
case 0x02:
|
||||||
case 0x04: return 0xa2a9;
|
return 0xa1f4;
|
||||||
case 0xa1: return 0xa5f4;
|
case 0x03:
|
||||||
case 0xa2: return 0xa5f5;
|
return 0xa1f7;
|
||||||
case 0xa3: return 0xa5f6;
|
case 0x04:
|
||||||
default: break;
|
return 0xa2a9;
|
||||||
|
case 0xa1:
|
||||||
|
return 0xa5f4;
|
||||||
|
case 0xa2:
|
||||||
|
return 0xa5f5;
|
||||||
|
case 0xa3:
|
||||||
|
return 0xa5f6;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (code < 0x10)
|
if(code < 0x10)
|
||||||
;
|
;
|
||||||
|
|
||||||
else if (code < 0x1a)
|
else if(code < 0x1a)
|
||||||
return(0xa300 + code - 0x10 + 0xb0);
|
return (0xa300 + code - 0x10 + 0xb0);
|
||||||
|
|
||||||
else if (code < 0x34)
|
else if(code < 0x34)
|
||||||
return(0xa300 + code - 0x1a + 0xc1);
|
return (0xa300 + code - 0x1a + 0xc1);
|
||||||
|
|
||||||
else if (code < 0x4e)
|
else if(code < 0x4e)
|
||||||
return(0xa300 + code - 0x34 + 0xe1);
|
return (0xa300 + code - 0x34 + 0xe1);
|
||||||
|
|
||||||
else if (code < 0xa1)
|
else if(code < 0xa1)
|
||||||
return(0xa400 + code - 0x4e + 0xa1);
|
return (0xa400 + code - 0x4e + 0xa1);
|
||||||
|
|
||||||
return ((num[(code >> 4) & 0x0f] << 8) | num[code & 0x0f]);
|
return ((num[(code >> 4) & 0x0f] << 8) | num[code & 0x0f]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void output_yomi(FILE* fp, unsigned char* p) {
|
||||||
void
|
|
||||||
output_yomi(FILE* fp, unsigned char* p)
|
|
||||||
{
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
while (*p) {
|
while(*p) {
|
||||||
i = yomi2zen(*p++);
|
i = yomi2zen(*p++);
|
||||||
fputc((i >> 8) & 0xff, fp);
|
fputc((i >> 8) & 0xff, fp);
|
||||||
fputc(i & 0xff, fp);
|
fputc(i & 0xff, fp);
|
||||||
|
|
|
||||||
24
charsize.c
24
charsize.c
|
|
@ -27,36 +27,24 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: charsize.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:01:29 $
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include "sj_euc.h"
|
#include "sj_euc.h"
|
||||||
#include "sj_rename.h"
|
#include "sj_rename.h"
|
||||||
#include "sj_typedef.h"
|
#include "sj_typedef.h"
|
||||||
#include "sj_dict.h"
|
#include "sj_dict.h"
|
||||||
#include "kanakan.h"
|
#include "kanakan.h"
|
||||||
|
|
||||||
int
|
int codesize(unsigned char code) {
|
||||||
codesize(unsigned char code)
|
switch(code & KanjiModeMask) {
|
||||||
{
|
case ZenHiraAsshuku:
|
||||||
switch (code & KanjiModeMask) {
|
case ZenKataAsshuku:
|
||||||
case ZenHiraAssyuku:
|
case KanjiAsshuku:
|
||||||
case ZenKataAssyuku:
|
|
||||||
case KanjiAssyuku:
|
|
||||||
case KanjiStrEnd:
|
case KanjiStrEnd:
|
||||||
return 1;
|
return 1;
|
||||||
case LeadingHankaku:
|
case LeadingHankaku:
|
||||||
case OffsetAssyuku:
|
case OffsetAsshuku:
|
||||||
case AiAttribute:
|
case AiAttribute:
|
||||||
return 2;
|
return 2;
|
||||||
default:
|
default:
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
16
chrtbl.c
16
chrtbl.c
|
|
@ -27,23 +27,12 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: chrtbl.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:01:30 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include "const.h"
|
#include "const.h"
|
||||||
#include "sj_rename.h"
|
#include "sj_rename.h"
|
||||||
#include "sj_typedef.h"
|
#include "sj_typedef.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
unsigned char chrtbl[256] =
|
unsigned char chrtbl[256] =
|
||||||
{
|
{
|
||||||
0,
|
0,
|
||||||
FZKTOP,
|
FZKTOP,
|
||||||
DICTOP + TAI_KGU,
|
DICTOP + TAI_KGU,
|
||||||
|
|
@ -299,5 +288,4 @@ unsigned char chrtbl[256] =
|
||||||
TAI_KGU,
|
TAI_KGU,
|
||||||
TAI_KGU,
|
TAI_KGU,
|
||||||
TAI_KGU,
|
TAI_KGU,
|
||||||
0
|
0};
|
||||||
};
|
|
||||||
|
|
|
||||||
121
cl2knj.c
121
cl2knj.c
|
|
@ -27,46 +27,33 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: cl2knj.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:01:31 $
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "sj_kcnv.h"
|
#include "sj_kcnv.h"
|
||||||
#include "kanakan.h"
|
#include "kanakan.h"
|
||||||
|
|
||||||
|
|
||||||
int sj2cd_chr();
|
int sj2cd_chr();
|
||||||
void cvtclknj(), freework();
|
void cvtclknj(), freework();
|
||||||
|
|
||||||
|
|
||||||
static CLREC* nextrecblk(void);
|
static CLREC* nextrecblk(void);
|
||||||
static CLREC* prevrecblk(void);
|
static CLREC* prevrecblk(void);
|
||||||
static void initkbuf(unsigned char* kouho);
|
static void initkbuf(unsigned char* kouho);
|
||||||
|
|
||||||
|
int cl2knj(unsigned char* yomi, int len, unsigned char* kouho) {
|
||||||
int
|
unsigned char* ptr1;
|
||||||
cl2knj(unsigned char* yomi, int len, unsigned char* kouho)
|
unsigned char* ptr2;
|
||||||
{
|
|
||||||
unsigned char *ptr1;
|
|
||||||
unsigned char *ptr2;
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
khcount = nkhcount = 0;
|
khcount = nkhcount = 0;
|
||||||
|
|
||||||
initkbuf(kouho);
|
initkbuf(kouho);
|
||||||
|
|
||||||
if (len > MaxClInputLen * 2) len = MaxClInputLen * 2;
|
if(len > MaxClInputLen * 2) len = MaxClInputLen * 2;
|
||||||
|
|
||||||
ptr1 = yomi; ptr2 = hyomi;
|
ptr1 = yomi;
|
||||||
for (i = 0 ; i < len ; i++) {
|
ptr2 = hyomi;
|
||||||
if (isknj1(*ptr1)) {
|
for(i = 0; i < len; i++) {
|
||||||
if (++i >= len) break;
|
if(isknj1(*ptr1)) {
|
||||||
|
if(++i >= len) break;
|
||||||
}
|
}
|
||||||
ptr1 += sj2cd_chr(ptr1, ptr2++);
|
ptr1 += sj2cd_chr(ptr1, ptr2++);
|
||||||
}
|
}
|
||||||
|
|
@ -74,7 +61,7 @@ cl2knj(unsigned char* yomi, int len, unsigned char* kouho)
|
||||||
|
|
||||||
strlcpy(yomi, orgyomi, (int)(ptr1 - yomi));
|
strlcpy(yomi, orgyomi, (int)(ptr1 - yomi));
|
||||||
|
|
||||||
if (!hyomi[0]) return 0;
|
if(!hyomi[0]) return 0;
|
||||||
|
|
||||||
freework();
|
freework();
|
||||||
|
|
||||||
|
|
@ -82,9 +69,9 @@ cl2knj(unsigned char* yomi, int len, unsigned char* kouho)
|
||||||
cnvstart = ystart = hyomi;
|
cnvstart = ystart = hyomi;
|
||||||
cnvlen = strlen(hyomi);
|
cnvlen = strlen(hyomi);
|
||||||
|
|
||||||
mkjiritu(0);
|
mkjiritsu(0);
|
||||||
mkbunsetu();
|
mkbunsetsu();
|
||||||
if (!maxclptr) wakachi();
|
if(!maxclptr) wakachi();
|
||||||
|
|
||||||
jrt1st = maxjptr;
|
jrt1st = maxjptr;
|
||||||
clt1st = maxclptr;
|
clt1st = maxclptr;
|
||||||
|
|
@ -96,120 +83,100 @@ cl2knj(unsigned char* yomi, int len, unsigned char* kouho)
|
||||||
|
|
||||||
cvtclknj();
|
cvtclknj();
|
||||||
|
|
||||||
return hzstrlen(inputyomi, (int)clt1st -> cllen);
|
return hzstrlen(inputyomi, (int)clt1st->cllen);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int nextcl(unsigned char* kouho, int mode) {
|
||||||
|
CLREC* clptr;
|
||||||
int
|
|
||||||
nextcl(unsigned char* kouho, int mode)
|
|
||||||
{
|
|
||||||
CLREC *clptr;
|
|
||||||
|
|
||||||
initkbuf(kouho);
|
initkbuf(kouho);
|
||||||
|
|
||||||
if (!khcount) return 0;
|
if(!khcount) return 0;
|
||||||
|
|
||||||
if (!mode && (selectid < khcount)) {
|
if(!mode && (selectid < khcount)) {
|
||||||
selectid++;
|
selectid++;
|
||||||
}
|
} else if((mode < 2) && (clptr = nextrecblk())) {
|
||||||
else if((mode < 2) && (clptr = nextrecblk())) {
|
|
||||||
selectid = 1;
|
selectid = 1;
|
||||||
clt1st = clptr;
|
clt1st = clptr;
|
||||||
mkkouho();
|
mkkouho();
|
||||||
getrank();
|
getrank();
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
cvtclknj();
|
cvtclknj();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
cvtclknj();
|
cvtclknj();
|
||||||
|
|
||||||
return hzstrlen(inputyomi, (int)clt1st -> cllen);
|
return hzstrlen(inputyomi, (int)clt1st->cllen);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static CLREC*
|
static CLREC*
|
||||||
nextrecblk(void)
|
nextrecblk(void) {
|
||||||
{
|
CLREC* clptr;
|
||||||
CLREC *clptr;
|
|
||||||
int keeplen;
|
int keeplen;
|
||||||
|
|
||||||
keeplen = clt1st -> cllen;
|
keeplen = clt1st->cllen;
|
||||||
clptr = clt1st -> clsort;
|
clptr = clt1st->clsort;
|
||||||
|
|
||||||
while (clptr && (int)clptr -> cllen == keeplen)
|
while(clptr && (int)clptr->cllen == keeplen)
|
||||||
clptr = clptr -> clsort;
|
clptr = clptr->clsort;
|
||||||
|
|
||||||
return clptr;
|
return clptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int prevcl(unsigned char* kouho, int mode) {
|
||||||
int
|
CLREC* clptr;
|
||||||
prevcl(unsigned char* kouho, int mode)
|
|
||||||
{
|
|
||||||
CLREC *clptr;
|
|
||||||
|
|
||||||
initkbuf(kouho);
|
initkbuf(kouho);
|
||||||
|
|
||||||
if (!khcount) return 0;
|
if(!khcount) return 0;
|
||||||
|
|
||||||
if (!mode && (selectid > 1)) {
|
if(!mode && (selectid > 1)) {
|
||||||
selectid--;
|
selectid--;
|
||||||
}
|
} else if((mode < 2) && (clptr = prevrecblk())) {
|
||||||
else if ((mode < 2) && (clptr = prevrecblk())) {
|
|
||||||
clt1st = clptr;
|
clt1st = clptr;
|
||||||
mkkouho();
|
mkkouho();
|
||||||
getrank();
|
getrank();
|
||||||
selectid = khcount;
|
selectid = khcount;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
cvtclknj();
|
cvtclknj();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
cvtclknj();
|
cvtclknj();
|
||||||
|
|
||||||
return hzstrlen(inputyomi, (int)clt1st -> cllen);
|
return hzstrlen(inputyomi, (int)clt1st->cllen);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static CLREC*
|
static CLREC*
|
||||||
prevrecblk(void)
|
prevrecblk(void) {
|
||||||
{
|
CLREC* clptr;
|
||||||
CLREC *clptr;
|
CLREC* keepptr;
|
||||||
CLREC *keepptr;
|
|
||||||
int keeplen;
|
int keeplen;
|
||||||
int cllen;
|
int cllen;
|
||||||
|
|
||||||
clptr = maxclptr;
|
clptr = maxclptr;
|
||||||
|
|
||||||
if ((cllen = clt1st -> cllen) == clptr -> cllen)
|
if((cllen = clt1st->cllen) == clptr->cllen)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
while ((int)clptr -> cllen > cllen) {
|
while((int)clptr->cllen > cllen) {
|
||||||
keeplen = clptr -> cllen;
|
keeplen = clptr->cllen;
|
||||||
keepptr = clptr;
|
keepptr = clptr;
|
||||||
|
|
||||||
while ((int)clptr -> cllen == keeplen)
|
while((int)clptr->cllen == keeplen)
|
||||||
clptr = clptr -> clsort;
|
clptr = clptr->clsort;
|
||||||
}
|
}
|
||||||
|
|
||||||
return keepptr;
|
return keepptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
initkbuf(unsigned char* kouho)
|
initkbuf(unsigned char* kouho) {
|
||||||
{
|
|
||||||
kanjitmp = kouho;
|
kanjitmp = kouho;
|
||||||
memset(kanjitmp, 0, sizeof(STDYOUT) + 1);
|
memset(kanjitmp, 0, sizeof(STDYOUT) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int selectnum(void) {
|
||||||
int
|
|
||||||
selectnum(void)
|
|
||||||
{
|
|
||||||
return selectid;
|
return selectid;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
137
clstudy.c
137
clstudy.c
|
|
@ -27,21 +27,11 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: clstudy.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:01:32 $
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include "sj_kcnv.h"
|
#include "sj_kcnv.h"
|
||||||
#include "kanakan.h"
|
#include "kanakan.h"
|
||||||
|
|
||||||
|
|
||||||
int sj2cd_str();
|
int sj2cd_str();
|
||||||
void mvmemd(), mvmemi();
|
void mvmemd(), mvmemi();
|
||||||
|
|
||||||
|
|
@ -49,10 +39,7 @@ static unsigned char* delcldata(unsigned char* ycode);
|
||||||
static int delclold(void);
|
static int delclold(void);
|
||||||
static unsigned char* srchclpos(unsigned char* ycode);
|
static unsigned char* srchclpos(unsigned char* ycode);
|
||||||
|
|
||||||
|
int clstudy(unsigned char* yomi1, unsigned char* yomi2, STDYOUT* stdy) {
|
||||||
int
|
|
||||||
clstudy(unsigned char* yomi1, unsigned char* yomi2, STDYOUT *stdy)
|
|
||||||
{
|
|
||||||
unsigned char ytmp[CLSTDY_TMPLEN];
|
unsigned char ytmp[CLSTDY_TMPLEN];
|
||||||
unsigned char *dst, *ptr;
|
unsigned char *dst, *ptr;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
@ -60,56 +47,53 @@ clstudy(unsigned char* yomi1, unsigned char* yomi2, STDYOUT *stdy)
|
||||||
int alen, blen;
|
int alen, blen;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (!StudyExist()) return ClstudyNoDict;
|
if(!StudyExist()) return ClstudyNoDict;
|
||||||
|
|
||||||
if (!yomi1 || !*yomi1) return ClstudyParaErr;
|
if(!yomi1 || !*yomi1) return ClstudyParaErr;
|
||||||
|
|
||||||
if (!yomi2 || !*yomi2) {
|
if(!yomi2 || !*yomi2) {
|
||||||
if (!sj2cd_str(yomi1, ytmp, CLSTDY_TMPLEN))
|
if(!sj2cd_str(yomi1, ytmp, CLSTDY_TMPLEN))
|
||||||
return ClstudyYomiErr;
|
return ClstudyYomiErr;
|
||||||
|
|
||||||
(void)delcldata(ytmp);
|
(void)delcldata(ytmp);
|
||||||
|
|
||||||
ret = ClstudyNormEnd;
|
ret = ClstudyNormEnd;
|
||||||
}
|
} else if(!stdy) {
|
||||||
else if (!stdy) {
|
|
||||||
return ClstudyParaErr;
|
return ClstudyParaErr;
|
||||||
}
|
} else {
|
||||||
else {
|
if(!sj2cd_str(yomi1, ytmp, CLSTDY_TMPLEN))
|
||||||
if (!sj2cd_str(yomi1, ytmp, CLSTDY_TMPLEN))
|
|
||||||
return ClstudyYomiErr;
|
return ClstudyYomiErr;
|
||||||
len1 = strlen(ytmp);
|
len1 = strlen(ytmp);
|
||||||
|
|
||||||
if (!sj2cd_str(yomi2, ytmp + len1, CLSTDY_TMPLEN - len1))
|
if(!sj2cd_str(yomi2, ytmp + len1, CLSTDY_TMPLEN - len1))
|
||||||
return ClstudyYomiErr;
|
return ClstudyYomiErr;
|
||||||
|
|
||||||
len2 = len1 + stdy -> len;
|
len2 = len1 + stdy->len;
|
||||||
ytmp[len2] = 0;
|
ytmp[len2] = 0;
|
||||||
alen = len2 + CL_HDLEN;
|
alen = len2 + CL_HDLEN;
|
||||||
|
|
||||||
if (alen + 1 >= ClStudyLen) return ClstudyNoArea;
|
if(alen + 1 >= ClStudyLen) return ClstudyNoArea;
|
||||||
|
|
||||||
blen = ClStudyTail - delcldata(ytmp) - 1;
|
blen = ClStudyTail - delcldata(ytmp) - 1;
|
||||||
|
|
||||||
while (blen < alen) {
|
while(blen < alen) {
|
||||||
if (!(i = delclold())) break;
|
if(!(i = delclold())) break;
|
||||||
blen += i;
|
blen += i;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (blen >= alen) {
|
if(blen >= alen) {
|
||||||
dst = srchclpos(ytmp);
|
dst = srchclpos(ytmp);
|
||||||
|
|
||||||
ptr = ClStudyTail - alen;
|
ptr = ClStudyTail - alen;
|
||||||
mvmemd(ptr, ClStudyTail, (ptr - dst));
|
mvmemd(ptr, ClStudyTail, (ptr - dst));
|
||||||
ClYomiLen(dst) = (unsigned char)len2;
|
ClYomiLen(dst) = (unsigned char)len2;
|
||||||
ClGramCode(dst) = stdy -> hinshi;
|
ClGramCode(dst) = stdy->hinshi;
|
||||||
ClYomi1Len(dst) = (unsigned char)len1;
|
ClYomi1Len(dst) = (unsigned char)len1;
|
||||||
ClSetNum(dst, 1);
|
ClSetNum(dst, 1);
|
||||||
memcpy(ytmp, ClYomiPos(dst), len2);
|
memcpy(ytmp, ClYomiPos(dst), len2);
|
||||||
|
|
||||||
ret = ClstudyNormEnd;
|
ret = ClstudyNormEnd;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
ret = ClstudyNoArea;
|
ret = ClstudyNoArea;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -120,32 +104,29 @@ clstudy(unsigned char* yomi1, unsigned char* yomi2, STDYOUT *stdy)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static unsigned char*
|
static unsigned char*
|
||||||
delcldata(unsigned char* ycode)
|
delcldata(unsigned char* ycode) {
|
||||||
{
|
unsigned char* tagptr;
|
||||||
unsigned char *tagptr;
|
unsigned char* ptr1;
|
||||||
unsigned char *ptr1;
|
unsigned char* ptr2;
|
||||||
unsigned char *ptr2;
|
|
||||||
int len1;
|
int len1;
|
||||||
|
|
||||||
tagptr = ClStudyDict;
|
tagptr = ClStudyDict;
|
||||||
while (!iseocl(tagptr)) {
|
while(!iseocl(tagptr)) {
|
||||||
ptr1 = ycode;
|
ptr1 = ycode;
|
||||||
ptr2 = ClYomiPos(tagptr);
|
ptr2 = ClYomiPos(tagptr);
|
||||||
len1 = ClYomiLen(tagptr);
|
len1 = ClYomiLen(tagptr);
|
||||||
|
|
||||||
while (*ptr1 && len1) {
|
while(*ptr1 && len1) {
|
||||||
if (*ptr1 != *ptr2) break;
|
if(*ptr1 != *ptr2) break;
|
||||||
ptr1++;
|
ptr1++;
|
||||||
ptr2++;
|
ptr2++;
|
||||||
len1--;
|
len1--;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!*ptr1 || !len1) {
|
if(!*ptr1 || !len1) {
|
||||||
delclsub(tagptr);
|
delclsub(tagptr);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
tagptr = ClNextTag(tagptr);
|
tagptr = ClNextTag(tagptr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -153,11 +134,8 @@ delcldata(unsigned char* ycode)
|
||||||
return tagptr;
|
return tagptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void delclsub(unsigned char* target) {
|
||||||
void
|
unsigned char* src;
|
||||||
delclsub(unsigned char* target)
|
|
||||||
{
|
|
||||||
unsigned char *src;
|
|
||||||
int num;
|
int num;
|
||||||
int tmp;
|
int tmp;
|
||||||
int len;
|
int len;
|
||||||
|
|
@ -169,10 +147,10 @@ delclsub(unsigned char* target)
|
||||||
memset(ClStudyTail - len, 0, len);
|
memset(ClStudyTail - len, 0, len);
|
||||||
|
|
||||||
src = ClStudyDict;
|
src = ClStudyDict;
|
||||||
while (!iseocl(src)) {
|
while(!iseocl(src)) {
|
||||||
tmp = ClGetNum(src);
|
tmp = ClGetNum(src);
|
||||||
|
|
||||||
if (tmp > num) {
|
if(tmp > num) {
|
||||||
tmp -= 1;
|
tmp -= 1;
|
||||||
ClSetNum(src, tmp);
|
ClSetNum(src, tmp);
|
||||||
}
|
}
|
||||||
|
|
@ -181,12 +159,10 @@ delclsub(unsigned char* target)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
delclold(void)
|
delclold(void) {
|
||||||
{
|
unsigned char* tagptr;
|
||||||
unsigned char *tagptr;
|
unsigned char* target;
|
||||||
unsigned char *target;
|
|
||||||
int num;
|
int num;
|
||||||
int tmp;
|
int tmp;
|
||||||
|
|
||||||
|
|
@ -194,11 +170,11 @@ delclold(void)
|
||||||
num = 0;
|
num = 0;
|
||||||
|
|
||||||
tagptr = ClStudyDict;
|
tagptr = ClStudyDict;
|
||||||
while (!iseocl(tagptr)) {
|
while(!iseocl(tagptr)) {
|
||||||
|
|
||||||
tmp = ClGetNum(tagptr);
|
tmp = ClGetNum(tagptr);
|
||||||
|
|
||||||
if (tmp >= num) {
|
if(tmp >= num) {
|
||||||
num = tmp;
|
num = tmp;
|
||||||
target = tagptr;
|
target = tagptr;
|
||||||
}
|
}
|
||||||
|
|
@ -206,7 +182,7 @@ delclold(void)
|
||||||
tagptr = ClNextTag(tagptr);
|
tagptr = ClNextTag(tagptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (target) {
|
if(target) {
|
||||||
num = ClBlkLen(tagptr);
|
num = ClBlkLen(tagptr);
|
||||||
|
|
||||||
delclsub(target);
|
delclsub(target);
|
||||||
|
|
@ -215,20 +191,18 @@ delclold(void)
|
||||||
return num;
|
return num;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static unsigned char*
|
static unsigned char*
|
||||||
srchclpos(unsigned char* ycode)
|
srchclpos(unsigned char* ycode) {
|
||||||
{
|
unsigned char* tagptr;
|
||||||
unsigned char *tagptr;
|
unsigned char* target;
|
||||||
unsigned char *target;
|
unsigned char* ptr1;
|
||||||
unsigned char *ptr1;
|
unsigned char* ptr2;
|
||||||
unsigned char *ptr2;
|
|
||||||
int len;
|
int len;
|
||||||
int tmp;
|
int tmp;
|
||||||
|
|
||||||
target = NULL;
|
target = NULL;
|
||||||
tagptr = ClStudyDict;
|
tagptr = ClStudyDict;
|
||||||
while (!iseocl(tagptr)) {
|
while(!iseocl(tagptr)) {
|
||||||
tmp = ClGetNum(tagptr);
|
tmp = ClGetNum(tagptr);
|
||||||
|
|
||||||
tmp++;
|
tmp++;
|
||||||
|
|
@ -237,19 +211,19 @@ srchclpos(unsigned char* ycode)
|
||||||
ptr1 = ycode;
|
ptr1 = ycode;
|
||||||
ptr2 = ClYomiPos(tagptr);
|
ptr2 = ClYomiPos(tagptr);
|
||||||
len = ClYomiLen(tagptr);
|
len = ClYomiLen(tagptr);
|
||||||
while (*ptr1 && len) {
|
while(*ptr1 && len) {
|
||||||
if (*ptr1 != *ptr2) break;
|
if(*ptr1 != *ptr2) break;
|
||||||
ptr1++;
|
ptr1++;
|
||||||
ptr2++;
|
ptr2++;
|
||||||
len--;
|
len--;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!target) {
|
if(!target) {
|
||||||
if (!len)
|
if(!len)
|
||||||
;
|
;
|
||||||
else if (!*ptr1)
|
else if(!*ptr1)
|
||||||
target = tagptr;
|
target = tagptr;
|
||||||
else if (*ptr1 < *ptr2)
|
else if(*ptr1 < *ptr2)
|
||||||
target = tagptr;
|
target = tagptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -259,26 +233,23 @@ srchclpos(unsigned char* ycode)
|
||||||
return target ? target : tagptr;
|
return target ? target : tagptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void mkclidx(void) {
|
||||||
void
|
unsigned char* ptr;
|
||||||
mkclidx(void)
|
|
||||||
{
|
|
||||||
unsigned char *ptr;
|
|
||||||
int num;
|
int num;
|
||||||
int st, ed;
|
int st, ed;
|
||||||
|
|
||||||
if (!StudyExist()) return;
|
if(!StudyExist()) return;
|
||||||
|
|
||||||
ptr = ClStudyDict;
|
ptr = ClStudyDict;
|
||||||
for (num = st = 0 ; st < 0x100 ; num++, st = ed) {
|
for(num = st = 0; st < 0x100; num++, st = ed) {
|
||||||
ed = st + ClStudyStep;
|
ed = st + ClStudyStep;
|
||||||
|
|
||||||
while (!iseocl(ptr)) {
|
while(!iseocl(ptr)) {
|
||||||
if ((unsigned int) *ClYomiPos(ptr) >= st) break;
|
if((unsigned int)*ClYomiPos(ptr) >= st) break;
|
||||||
ptr = ClNextTag(ptr);
|
ptr = ClNextTag(ptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ClYomiLen(ptr) && ((int)*ClYomiPos(ptr) < ed))
|
if(ClYomiLen(ptr) && ((int)*ClYomiPos(ptr) < ed))
|
||||||
ClStudyIdx[num] = ptr - ClStudyDict;
|
ClStudyIdx[num] = ptr - ClStudyDict;
|
||||||
else
|
else
|
||||||
ClStudyIdx[num] = (unsigned short)-1;
|
ClStudyIdx[num] = (unsigned short)-1;
|
||||||
|
|
|
||||||
20
cmpstr.c
20
cmpstr.c
|
|
@ -27,31 +27,21 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: cmpstr.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:01:32 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include "sj_rename.h"
|
#include "sj_rename.h"
|
||||||
#include "const.h"
|
#include "const.h"
|
||||||
#include "sj_typedef.h"
|
#include "sj_typedef.h"
|
||||||
|
|
||||||
int cmpstr(src, dst)
|
int cmpstr(src, dst)
|
||||||
unsigned char *src;
|
unsigned char* src;
|
||||||
unsigned char *dst;
|
unsigned char* dst;
|
||||||
{
|
{
|
||||||
while (*src) {
|
while(*src) {
|
||||||
if (*src != *dst) return FALSE;
|
if(*src != *dst) return FALSE;
|
||||||
src++;
|
src++;
|
||||||
dst++;
|
dst++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (*dst) return FALSE;
|
if(*dst) return FALSE;
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -27,20 +27,12 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: cnvhinsi.c,v $
|
|
||||||
* $SonyRevision: 1.2 $
|
|
||||||
* $SonyDate: 1996/05/27 06:59:47 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include "dicttool.h"
|
#include "dicttool.h"
|
||||||
|
|
||||||
|
|
||||||
struct gram_code {
|
struct gram_code {
|
||||||
char *name;
|
char* name;
|
||||||
int code;
|
int code;
|
||||||
} gramtbl[] = {
|
} gramtbl[] = {
|
||||||
|
|
||||||
|
|
@ -48,28 +40,23 @@ struct gram_code {
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#define GramMax (sizeof(gramtbl)/sizeof(struct gram_code) - 1)
|
#define GramMax (sizeof(gramtbl) / sizeof(struct gram_code) - 1)
|
||||||
|
|
||||||
int
|
int u_strcmp(unsigned char* a, unsigned char* b) {
|
||||||
u_strcmp(unsigned char* a, unsigned char* b)
|
if(!a || !b) return 0;
|
||||||
{
|
|
||||||
if (!a || !b) return 0;
|
|
||||||
|
|
||||||
while (*a && *b) {
|
while(*a && *b) {
|
||||||
if (*a < *b) return -1;
|
if(*a < *b) return -1;
|
||||||
if (*a > *b) return 1;
|
if(*a > *b) return 1;
|
||||||
a++;
|
a++;
|
||||||
b++;
|
b++;
|
||||||
}
|
}
|
||||||
if (!*a && !*b) return 0;
|
if(!*a && !*b) return 0;
|
||||||
if (!*a) return -1;
|
if(!*a) return -1;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int cnvhinshi(unsigned char* buf) {
|
||||||
int
|
|
||||||
cnvhinsi(unsigned char *buf)
|
|
||||||
{
|
|
||||||
int min;
|
int min;
|
||||||
int max;
|
int max;
|
||||||
int mid;
|
int mid;
|
||||||
|
|
@ -77,40 +64,33 @@ cnvhinsi(unsigned char *buf)
|
||||||
|
|
||||||
min = 0;
|
min = 0;
|
||||||
max = GramMax;
|
max = GramMax;
|
||||||
while (min <= max) {
|
while(min <= max) {
|
||||||
|
|
||||||
mid = (min + max) / 2;
|
mid = (min + max) / 2;
|
||||||
|
|
||||||
|
|
||||||
i = u_strcmp(buf, gramtbl[mid].name);
|
i = u_strcmp(buf, gramtbl[mid].name);
|
||||||
|
|
||||||
|
if(i < 0) {
|
||||||
if (i < 0) {
|
|
||||||
max = mid - 1;
|
max = mid - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (i > 0) {
|
else if(i > 0) {
|
||||||
min = mid + 1;
|
min = mid + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
else {
|
else {
|
||||||
return(gramtbl[mid].code);
|
return (gramtbl[mid].code);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char* hinshi_str(int code) {
|
||||||
|
|
||||||
char*
|
|
||||||
hinsi_str(int code)
|
|
||||||
{
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0 ; i <= GramMax ; i++) {
|
for(i = 0; i <= GramMax; i++) {
|
||||||
if (gramtbl[i].code == code) return gramtbl[i].name;
|
if(gramtbl[i].code == code) return gramtbl[i].name;
|
||||||
}
|
}
|
||||||
|
|
||||||
return "Err";
|
return "Err";
|
||||||
128
code.c
128
code.c
|
|
@ -27,14 +27,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: code.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:03:09 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include "sj_sysvdef.h"
|
#include "sj_sysvdef.h"
|
||||||
#include "wchar16.h"
|
#include "wchar16.h"
|
||||||
#include "kctype.h"
|
#include "kctype.h"
|
||||||
|
|
@ -51,36 +43,36 @@ extern int current_locale;
|
||||||
static int ccnt = 0;
|
static int ccnt = 0;
|
||||||
|
|
||||||
codeconv(c, rkstr)
|
codeconv(c, rkstr)
|
||||||
wchar16_t c;
|
wchar16_t c;
|
||||||
unsigned int *rkstr;
|
unsigned int* rkstr;
|
||||||
{
|
{
|
||||||
unsigned short ccode, i;
|
unsigned short ccode, i;
|
||||||
unsigned short CheckCcode();
|
unsigned short CheckCcode();
|
||||||
extern int erase_char;
|
extern int erase_char;
|
||||||
|
|
||||||
if (c == erase_char) {
|
if(c == erase_char) {
|
||||||
if (ccnt) {
|
if(ccnt) {
|
||||||
ccnt--;
|
ccnt--;
|
||||||
*rkstr++ = erase_char + ERRCODE;
|
*rkstr++ = erase_char + ERRCODE;
|
||||||
} else {
|
} else {
|
||||||
*rkstr++ = erase_char;
|
*rkstr++ = erase_char;
|
||||||
}
|
}
|
||||||
} else if (iswcntrl(c) || (WcIsKANJI(c) && ccnt == 0)) {
|
} else if(iswcntrl(c) || (WcIsKANJI(c) && ccnt == 0)) {
|
||||||
*rkstr++ = c;
|
*rkstr++ = c;
|
||||||
if (iswcntrl(c))
|
if(iswcntrl(c))
|
||||||
ccnt = 0;
|
ccnt = 0;
|
||||||
} else if ((ccode = CheckCcode(c)) > 0) {
|
} else if((ccode = CheckCcode(c)) > 0) {
|
||||||
if (ccnt == 4) {
|
if(ccnt == 4) {
|
||||||
if ((cur_code != CODE_EUC) || (cur_code != CODE_EUC2)) {
|
if((cur_code != CODE_EUC) || (cur_code != CODE_EUC2)) {
|
||||||
if ((cur_code == CODE_KUTEN) || (cur_code == CODE_KUTEN2))
|
if((cur_code == CODE_KUTEN) || (cur_code == CODE_KUTEN2))
|
||||||
ccode += 0x2020;
|
ccode += 0x2020;
|
||||||
ccode = jis2euc(ccode & 0x7f7f);
|
ccode = jis2euc(ccode & 0x7f7f);
|
||||||
}
|
}
|
||||||
if ((cur_code == CODE_KUTEN2) ||
|
if((cur_code == CODE_KUTEN2) ||
|
||||||
(cur_code == CODE_JIS2) || (cur_code == CODE_EUC2))
|
(cur_code == CODE_JIS2) || (cur_code == CODE_EUC2))
|
||||||
ccode &= WcX0212MASK;
|
ccode &= WcX0212MASK;
|
||||||
ccnt--;
|
ccnt--;
|
||||||
for (; ccnt > 0; ccnt--)
|
for(; ccnt > 0; ccnt--)
|
||||||
*rkstr++ = erase_char + ERRCODE;
|
*rkstr++ = erase_char + ERRCODE;
|
||||||
*rkstr++ = SetMojilen(4) + ccode;
|
*rkstr++ = SetMojilen(4) + ccode;
|
||||||
} else
|
} else
|
||||||
|
|
@ -91,103 +83,100 @@ unsigned int *rkstr;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned short
|
unsigned short
|
||||||
CheckCcode (c)
|
CheckCcode(c)
|
||||||
wchar16_t c;
|
wchar16_t c;
|
||||||
{
|
{
|
||||||
unsigned char c1;
|
unsigned char c1;
|
||||||
unsigned short code;
|
unsigned short code;
|
||||||
|
|
||||||
if (!WcIsASCII(c) || !isxdigit(WcLowByte(c)) ||
|
if(!WcIsASCII(c) || !isxdigit(WcLowByte(c)) ||
|
||||||
(cur_code == CODE_KUTEN && !isdigit(WcLowByte(c))))
|
(cur_code == CODE_KUTEN && !isdigit(WcLowByte(c))))
|
||||||
return(0);
|
return (0);
|
||||||
cbuf[ccnt] = WcLowByte(c);
|
cbuf[ccnt] = WcLowByte(c);
|
||||||
cbuf[ccnt + 1] = '\0';
|
cbuf[ccnt + 1] = '\0';
|
||||||
|
|
||||||
if ((cur_code == CODE_KUTEN) || (cur_code == CODE_KUTEN2)) {
|
if((cur_code == CODE_KUTEN) || (cur_code == CODE_KUTEN2)) {
|
||||||
if (ccnt % 2) {
|
if(ccnt % 2) {
|
||||||
code = (cbuf[ccnt-1] - '0') * 10 + cbuf[ccnt] - '0';
|
code = (cbuf[ccnt - 1] - '0') * 10 + cbuf[ccnt] - '0';
|
||||||
if (code < 1 || code > 94)
|
if(code < 1 || code > 94)
|
||||||
return(0);
|
return (0);
|
||||||
if (ccnt >= 3)
|
if(ccnt >= 3)
|
||||||
code += ((cbuf[0]-'0') * 10 + cbuf[1]-'0') << 8;
|
code += ((cbuf[0] - '0') * 10 + cbuf[1] - '0') << 8;
|
||||||
} else
|
} else
|
||||||
code = 1;
|
code = 1;
|
||||||
} else {
|
} else {
|
||||||
code = (unsigned short)strtol((char *)cbuf, (char **)NULL, 16);
|
code = (unsigned short)strtol((char*)cbuf, (char**)NULL, 16);
|
||||||
if (ccnt % 2)
|
if(ccnt % 2)
|
||||||
c1 = code & 0xff;
|
c1 = code & 0xff;
|
||||||
else
|
else
|
||||||
c1 = code & 0xf;
|
c1 = code & 0xf;
|
||||||
switch(cur_code) {
|
switch(cur_code) {
|
||||||
case CODE_SJIS:
|
case CODE_SJIS:
|
||||||
if (ccnt == 0 && (c1 == 8 || c1 == 9 || c1 >= 0xe))
|
if(ccnt == 0 && (c1 == 8 || c1 == 9 || c1 >= 0xe))
|
||||||
break;
|
break;
|
||||||
if (ccnt == 1 && issjis1(c1))
|
if(ccnt == 1 && issjis1(c1))
|
||||||
break;
|
break;
|
||||||
if (ccnt == 2 && c1 >= 4)
|
if(ccnt == 2 && c1 >= 4)
|
||||||
break;
|
break;
|
||||||
if (ccnt == 3 && issjis2(c1))
|
if(ccnt == 3 && issjis2(c1))
|
||||||
break;
|
break;
|
||||||
return(0);
|
return (0);
|
||||||
case CODE_EUC:
|
case CODE_EUC:
|
||||||
case CODE_EUC2:
|
case CODE_EUC2:
|
||||||
if (ccnt % 2 && iseuc(c1))
|
if(ccnt % 2 && iseuc(c1))
|
||||||
break;
|
break;
|
||||||
if (!(ccnt % 2) && (c1 >= 0xa && c1 <= 0xf))
|
if(!(ccnt % 2) && (c1 >= 0xa && c1 <= 0xf))
|
||||||
break;
|
break;
|
||||||
return(0);
|
return (0);
|
||||||
case CODE_JIS:
|
case CODE_JIS:
|
||||||
case CODE_JIS2:
|
case CODE_JIS2:
|
||||||
if (ccnt % 2 && isjjis(c1))
|
if(ccnt % 2 && isjjis(c1))
|
||||||
break;
|
break;
|
||||||
if (!(ccnt % 2) && (c1 >= 2 && c1 <= 7))
|
if(!(ccnt % 2) && (c1 >= 2 && c1 <= 7))
|
||||||
break;
|
break;
|
||||||
return(0);
|
return (0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
ccnt++;
|
ccnt++;
|
||||||
return(code);
|
return (code);
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned short
|
unsigned short
|
||||||
strtocode()
|
strtocode() {
|
||||||
{
|
|
||||||
int c;
|
int c;
|
||||||
unsigned short code;
|
unsigned short code;
|
||||||
|
|
||||||
while (ccnt < 4) {
|
while(ccnt < 4) {
|
||||||
c = inkey();
|
c = inkey();
|
||||||
if (AnotherConversion ()) {
|
if(AnotherConversion()) {
|
||||||
unget_key(c);
|
unget_key(c);
|
||||||
ccnt = 0;
|
ccnt = 0;
|
||||||
return(-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
if ((code = CheckCcode(c)) == 0) {
|
if((code = CheckCcode(c)) == 0) {
|
||||||
ccnt = 0;
|
ccnt = 0;
|
||||||
beep();
|
beep();
|
||||||
return(0);
|
return (0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ccnt = 0;
|
ccnt = 0;
|
||||||
switch (cur_code) {
|
switch(cur_code) {
|
||||||
case CODE_SJIS :
|
case CODE_SJIS:
|
||||||
return(sjis2jis(code));
|
return (sjis2jis(code));
|
||||||
case CODE_KUTEN :
|
case CODE_KUTEN:
|
||||||
case CODE_KUTEN2:
|
case CODE_KUTEN2:
|
||||||
return(code + 0x2020);
|
return (code + 0x2020);
|
||||||
default :
|
default:
|
||||||
return(code & 0x7f7f);
|
return (code & 0x7f7f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void ChangeCode(void) {
|
||||||
ChangeCode (void)
|
if(cur_code == CODE_KUTEN2)
|
||||||
{
|
|
||||||
if (cur_code == CODE_KUTEN2)
|
|
||||||
cur_code = CODE_SJIS;
|
cur_code = CODE_SJIS;
|
||||||
else {
|
else {
|
||||||
if (current_locale == LC_CTYPE_SHIFTJIS) {
|
if(current_locale == LC_CTYPE_SHIFTJIS) {
|
||||||
if( cur_code == CODE_KUTEN) {
|
if(cur_code == CODE_KUTEN) {
|
||||||
cur_code = CODE_SJIS;
|
cur_code = CODE_SJIS;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -201,14 +190,11 @@ ChangeCode (void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SetCode(code)
|
SetCode(code) int code;
|
||||||
int code;
|
|
||||||
{
|
{
|
||||||
cur_code = code;
|
cur_code = code;
|
||||||
}
|
}
|
||||||
|
|
||||||
GetCcode()
|
GetCcode() {
|
||||||
{
|
return (cur_code);
|
||||||
return(cur_code);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
75
codecnv.c
75
codecnv.c
|
|
@ -27,14 +27,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: codecnv.c,v $
|
|
||||||
* $SonyRevision: 1.3 $
|
|
||||||
* $SonyDate: 1997/01/23 11:26:31 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
|
@ -44,23 +36,21 @@
|
||||||
|
|
||||||
static int euc_mode;
|
static int euc_mode;
|
||||||
|
|
||||||
int
|
int init_code() {
|
||||||
init_code()
|
char* loc;
|
||||||
{
|
|
||||||
char *loc;
|
|
||||||
|
|
||||||
#ifdef LACKOF_SETLOCALE
|
#ifdef LACKOF_SETLOCALE
|
||||||
loc = getenv("LANG");
|
loc = getenv("LANG");
|
||||||
#else
|
#else
|
||||||
loc = setlocale(LC_CTYPE, "");
|
loc = setlocale(LC_CTYPE, "");
|
||||||
#endif
|
#endif
|
||||||
if (!loc) {
|
if(!loc) {
|
||||||
fprintf(stderr, "Error: can't get current locale\n");
|
fprintf(stderr, "Error: can't get current locale\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
if (strncmp(loc, "ja_JP.SJIS", 10) == 0) {
|
if(strncmp(loc, "ja_JP.SJIS", 10) == 0) {
|
||||||
euc_mode = 0;
|
euc_mode = 0;
|
||||||
} else if (strncmp(loc, "ja", 2) == 0 ||
|
} else if(strncmp(loc, "ja", 2) == 0 ||
|
||||||
strncmp(loc, "Ja", 2) == 0) {
|
strncmp(loc, "Ja", 2) == 0) {
|
||||||
euc_mode = -1;
|
euc_mode = -1;
|
||||||
} else
|
} else
|
||||||
|
|
@ -76,35 +66,30 @@ init_code()
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
cnvcode(s)
|
cnvcode(s) unsigned char* s;
|
||||||
unsigned char *s;
|
|
||||||
{
|
{
|
||||||
if (euc_mode) {
|
if(euc_mode) {
|
||||||
unsigned short i;
|
unsigned short i;
|
||||||
unsigned char *d = s;
|
unsigned char* d = s;
|
||||||
|
|
||||||
while ((i = *s++)) {
|
while((i = *s++)) {
|
||||||
if (iseuckana(i)) {
|
if(iseuckana(i)) {
|
||||||
if (*s) {
|
if(*s) {
|
||||||
*d++ = *s++;
|
*d++ = *s++;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
*d++ = i;
|
*d++ = i;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
} else if(iseuc(i)) {
|
||||||
else if (iseuc(i)) {
|
if(*s) {
|
||||||
if (*s) {
|
|
||||||
i = euc2sjis((i << 8) + *s++);
|
i = euc2sjis((i << 8) + *s++);
|
||||||
*d++ = (i >> 8);
|
*d++ = (i >> 8);
|
||||||
*d++ = i;
|
*d++ = i;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
*d++ = i;
|
*d++ = i;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
*d++ = i;
|
*d++ = i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -113,32 +98,31 @@ unsigned char *s;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
printout_mb(fp, s)
|
printout_mb(fp, s)
|
||||||
FILE *fp;
|
FILE* fp;
|
||||||
unsigned char *s;
|
unsigned char* s;
|
||||||
{
|
{
|
||||||
fputs((char *)s, fp);
|
fputs((char*)s, fp);
|
||||||
fflush(fp);
|
fflush(fp);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
printout(fp, s)
|
printout(fp, s)
|
||||||
FILE *fp;
|
FILE* fp;
|
||||||
unsigned char *s;
|
unsigned char* s;
|
||||||
{
|
{
|
||||||
unsigned char buf[BUFSIZ];
|
unsigned char buf[BUFSIZ];
|
||||||
|
|
||||||
if (euc_mode)
|
if(euc_mode)
|
||||||
strcpy((char *)buf, s);
|
strcpy((char*)buf, s);
|
||||||
else
|
else
|
||||||
euctosjis(buf, BUFSIZ, s, strlen(s)+1);
|
euctosjis(buf, BUFSIZ, s, strlen(s) + 1);
|
||||||
fputs((char *)buf, fp);
|
fputs((char*)buf, fp);
|
||||||
fflush(fp);
|
fflush(fp);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
normal_out(fmt, p1, p2, p3, p4, p5)
|
normal_out(fmt, p1, p2, p3, p4, p5) char* fmt;
|
||||||
char *fmt;
|
|
||||||
int p1, p2, p3, p4, p5;
|
int p1, p2, p3, p4, p5;
|
||||||
{
|
{
|
||||||
char buf[BUFSIZ];
|
char buf[BUFSIZ];
|
||||||
|
|
@ -148,8 +132,7 @@ int p1, p2, p3, p4, p5;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
error_out(fmt, p1, p2, p3, p4, p5)
|
error_out(fmt, p1, p2, p3, p4, p5) char* fmt;
|
||||||
char *fmt;
|
|
||||||
int p1, p2, p3, p4, p5;
|
int p1, p2, p3, p4, p5;
|
||||||
{
|
{
|
||||||
char buf[BUFSIZ];
|
char buf[BUFSIZ];
|
||||||
|
|
|
||||||
79
common.c
79
common.c
|
|
@ -27,14 +27,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: common.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:03:10 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include "conversion.h"
|
#include "conversion.h"
|
||||||
|
|
||||||
int allways_buff = 0;
|
int allways_buff = 0;
|
||||||
|
|
@ -44,16 +36,15 @@ int Hlevel = 2;
|
||||||
int oasys = 0;
|
int oasys = 0;
|
||||||
int flush_conversion;
|
int flush_conversion;
|
||||||
|
|
||||||
Conversion *current_conversion;
|
Conversion* current_conversion;
|
||||||
Conversion *default_conversion;
|
Conversion* default_conversion;
|
||||||
|
|
||||||
Conversion *
|
Conversion*
|
||||||
AllocConversion ()
|
AllocConversion() {
|
||||||
{
|
Conversion* c;
|
||||||
Conversion *c;
|
|
||||||
|
|
||||||
if ((c = (Conversion *)malloc (sizeof(Conversion))) == NULL) {
|
if((c = (Conversion*)malloc(sizeof(Conversion))) == NULL) {
|
||||||
fprintf (stderr, "conversion: can't alloc memory\n\r");
|
fprintf(stderr, "conversion: can't alloc memory\n\r");
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -73,65 +64,59 @@ AllocConversion ()
|
||||||
return (c);
|
return (c);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Conversion *push_conversion;
|
static Conversion* push_conversion;
|
||||||
|
|
||||||
FreeConversion (c)
|
FreeConversion(c)
|
||||||
Conversion *c;
|
Conversion* c;
|
||||||
{
|
{
|
||||||
if (c == push_conversion)
|
if(c == push_conversion)
|
||||||
push_conversion = 0;
|
push_conversion = 0;
|
||||||
free (c);
|
free(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
SetConversion (c)
|
SetConversion(c)
|
||||||
Conversion *c;
|
Conversion* c;
|
||||||
{
|
{
|
||||||
PushConversion (current_conversion);
|
PushConversion(current_conversion);
|
||||||
current_conversion = c;
|
current_conversion = c;
|
||||||
}
|
}
|
||||||
|
|
||||||
PushConversion (c)
|
PushConversion(c)
|
||||||
Conversion *c;
|
Conversion* c;
|
||||||
{
|
{
|
||||||
push_conversion = c;
|
push_conversion = c;
|
||||||
}
|
}
|
||||||
|
|
||||||
PopConversion ()
|
PopConversion() {
|
||||||
{
|
if(push_conversion)
|
||||||
if (push_conversion)
|
|
||||||
current_conversion = push_conversion;
|
current_conversion = push_conversion;
|
||||||
}
|
}
|
||||||
|
|
||||||
Conversion *
|
Conversion*
|
||||||
GetConversion ()
|
GetConversion() {
|
||||||
{
|
|
||||||
return (current_conversion);
|
return (current_conversion);
|
||||||
}
|
}
|
||||||
|
|
||||||
InitConversion ()
|
InitConversion() {
|
||||||
{
|
default_conversion = AllocConversion();
|
||||||
default_conversion = AllocConversion ();
|
DefaultConversion();
|
||||||
DefaultConversion ();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DefaultConversion ()
|
DefaultConversion() {
|
||||||
{
|
|
||||||
current_conversion = default_conversion;
|
current_conversion = default_conversion;
|
||||||
}
|
}
|
||||||
|
|
||||||
EndConversion ()
|
EndConversion() {
|
||||||
{
|
free(default_conversion);
|
||||||
free (default_conversion);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int wcbyte(str)
|
||||||
wcbyte(str)
|
wchar16_t* str;
|
||||||
wchar16_t *str;
|
|
||||||
{
|
{
|
||||||
count=0;
|
count = 0;
|
||||||
|
|
||||||
while (*str) {
|
while(*str) {
|
||||||
if (WcHighMASK & *str++)
|
if(WcHighMASK & *str++)
|
||||||
count += 2;
|
count += 2;
|
||||||
else
|
else
|
||||||
count++;
|
count++;
|
||||||
|
|
|
||||||
18
common.h
18
common.h
|
|
@ -27,19 +27,9 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: common.h,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:03:42 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include "conversion.h"
|
#include "conversion.h"
|
||||||
|
|
||||||
extern Conversion *current_conversion;
|
extern Conversion* current_conversion;
|
||||||
|
|
||||||
extern int allways_buff;
|
extern int allways_buff;
|
||||||
extern int no_flush;
|
extern int no_flush;
|
||||||
|
|
@ -49,9 +39,9 @@ extern int Hlevel;
|
||||||
extern int oasys;
|
extern int oasys;
|
||||||
extern int flush_conversion;
|
extern int flush_conversion;
|
||||||
|
|
||||||
Conversion *AllocConversion ();
|
Conversion* AllocConversion();
|
||||||
Conversion *GetConversion ();
|
Conversion* GetConversion();
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
FILE *dbfp;
|
FILE* dbfp;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
417
comuni.c
417
comuni.c
|
|
@ -27,15 +27,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: comuni.c,v $
|
|
||||||
* $SonyRevision: 1.4 $
|
|
||||||
* $SonyDate: 1994/11/16 07:34:05 $
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
@ -68,34 +59,34 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__FD_SET) && !defined(FD_SET)
|
#if defined(__FD_SET) && !defined(FD_SET)
|
||||||
# define FD_SET __FD_SET
|
#define FD_SET __FD_SET
|
||||||
# define FD_ZERO __FD_ZERO
|
#define FD_ZERO __FD_ZERO
|
||||||
# define FD_CLR __FD_CLR
|
#define FD_CLR __FD_CLR
|
||||||
# define FD_ISSET __FD_ISSET
|
#define FD_ISSET __FD_ISSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef SOMAXCONN
|
#ifndef SOMAXCONN
|
||||||
# define SOMAXCONN 5
|
#define SOMAXCONN 5
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int client_num = 0;
|
int client_num = 0;
|
||||||
Client *client = NULL;
|
Client* client = NULL;
|
||||||
Client *cur_client;
|
Client* cur_client;
|
||||||
|
|
||||||
int maxfds = 0;
|
int maxfds = 0;
|
||||||
#ifdef SVR4
|
#ifdef SVR4
|
||||||
struct pollfd poll_fds[_NFILE];
|
struct pollfd poll_fds[_NFILE];
|
||||||
#else
|
#else
|
||||||
fd_set fds_org = { 0 };
|
fd_set fds_org = {0};
|
||||||
#endif
|
#endif
|
||||||
jmp_buf client_dead;
|
jmp_buf client_dead;
|
||||||
int client_fd;
|
int client_fd;
|
||||||
|
|
||||||
extern char *socket_name;
|
extern char* socket_name;
|
||||||
extern char *port_name;
|
extern char* port_name;
|
||||||
#ifdef TLI
|
#ifdef TLI
|
||||||
extern char *port_number;
|
extern char* port_number;
|
||||||
extern char *proto_name;
|
extern char* proto_name;
|
||||||
#else
|
#else
|
||||||
extern int port_number;
|
extern int port_number;
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -110,14 +101,11 @@ static int putpos = 0;
|
||||||
static int buflen = 0;
|
static int buflen = 0;
|
||||||
static int getpos = 0;
|
static int getpos = 0;
|
||||||
|
|
||||||
|
void socket_init(void) {
|
||||||
void
|
|
||||||
socket_init(void)
|
|
||||||
{
|
|
||||||
#ifdef SVR4
|
#ifdef SVR4
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < _NFILE; i++) {
|
for(i = 0; i < _NFILE; i++) {
|
||||||
poll_fds[i].fd = -1;
|
poll_fds[i].fd = -1;
|
||||||
poll_fds[i].events = 0;
|
poll_fds[i].events = 0;
|
||||||
poll_fds[i].revents = 0;
|
poll_fds[i].revents = 0;
|
||||||
|
|
@ -129,36 +117,30 @@ socket_init(void)
|
||||||
maxfds = 0;
|
maxfds = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
set_fd(int fd)
|
set_fd(int fd) {
|
||||||
{
|
|
||||||
#ifdef SVR4
|
#ifdef SVR4
|
||||||
poll_fds[maxfds].fd = fd;
|
poll_fds[maxfds].fd = fd;
|
||||||
poll_fds[maxfds].events = POLLIN;
|
poll_fds[maxfds].events = POLLIN;
|
||||||
maxfds++;
|
maxfds++;
|
||||||
#else
|
#else
|
||||||
FD_SET(fd, &fds_org);
|
FD_SET(fd, &fds_org);
|
||||||
if (fd >= maxfds) maxfds = fd + 1;
|
if(fd >= maxfds) maxfds = fd + 1;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
clr_fd(int fd)
|
clr_fd(int fd) {
|
||||||
{
|
|
||||||
#ifdef SVR4
|
#ifdef SVR4
|
||||||
int i, j;
|
int i, j;
|
||||||
|
|
||||||
for (i = 0; i < maxfds; i++) {
|
for(i = 0; i < maxfds; i++) {
|
||||||
if (poll_fds[i].fd == fd) {
|
if(poll_fds[i].fd == fd) {
|
||||||
maxfds--;
|
maxfds--;
|
||||||
for (j = i; j < maxfds; j++) {
|
for(j = i; j < maxfds; j++) {
|
||||||
poll_fds[j].fd = poll_fds[j+1].fd;
|
poll_fds[j].fd = poll_fds[j + 1].fd;
|
||||||
poll_fds[j].events = poll_fds[j+1].events;
|
poll_fds[j].events = poll_fds[j + 1].events;
|
||||||
poll_fds[j].revents = poll_fds[j+1].revents;
|
poll_fds[j].revents = poll_fds[j + 1].revents;
|
||||||
}
|
}
|
||||||
poll_fds[j].fd = -1;
|
poll_fds[j].fd = -1;
|
||||||
poll_fds[j].events = 0;
|
poll_fds[j].events = 0;
|
||||||
|
|
@ -168,9 +150,9 @@ clr_fd(int fd)
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
FD_CLR(fd, &fds_org);
|
FD_CLR(fd, &fds_org);
|
||||||
if (maxfds == fd + 1) {
|
if(maxfds == fd + 1) {
|
||||||
while (--fd >= 0) {
|
while(--fd >= 0) {
|
||||||
if (FD_ISSET(fd, &fds_org)) break;
|
if(FD_ISSET(fd, &fds_org)) break;
|
||||||
}
|
}
|
||||||
maxfds = fd + 1;
|
maxfds = fd + 1;
|
||||||
}
|
}
|
||||||
|
|
@ -179,26 +161,24 @@ clr_fd(int fd)
|
||||||
|
|
||||||
#if (!defined(TLI) || (defined(TLI) && defined(SOCK_UNIX)))
|
#if (!defined(TLI) || (defined(TLI) && defined(SOCK_UNIX)))
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
open_af_unix(void)
|
open_af_unix(void) {
|
||||||
{
|
|
||||||
struct sockaddr_un sunix;
|
struct sockaddr_un sunix;
|
||||||
|
|
||||||
unlink(socket_name);
|
unlink(socket_name);
|
||||||
|
|
||||||
memset((char *)&sunix, '\0', sizeof(sunix));
|
memset((char*)&sunix, '\0', sizeof(sunix));
|
||||||
sunix.sun_family = AF_UNIX;
|
sunix.sun_family = AF_UNIX;
|
||||||
strcpy(sunix.sun_path, socket_name);
|
strcpy(sunix.sun_path, socket_name);
|
||||||
|
|
||||||
if ((fd_unix = socket(AF_UNIX, SOCK_STREAM, 0)) == ERROR) {
|
if((fd_unix = socket(AF_UNIX, SOCK_STREAM, 0)) == ERROR) {
|
||||||
unlink(socket_name);
|
unlink(socket_name);
|
||||||
fprintf(stderr, "Can't create AF_UNIX socket\n");
|
fprintf(stderr, "Can't create AF_UNIX socket\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bind(fd_unix, (struct sockaddr *)&sunix, strlen(sunix.sun_path) + 2) == ERROR) {
|
if(bind(fd_unix, (struct sockaddr*)&sunix, strlen(sunix.sun_path) + 2) == ERROR) {
|
||||||
if (errno == EADDRINUSE)
|
if(errno == EADDRINUSE)
|
||||||
fprintf(stderr, "Port '%s' is already in use\n",
|
fprintf(stderr, "Port '%s' is already in use\n",
|
||||||
socket_name);
|
socket_name);
|
||||||
else
|
else
|
||||||
|
|
@ -209,7 +189,7 @@ open_af_unix(void)
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (listen(fd_unix, SOMAXCONN) == ERROR) {
|
if(listen(fd_unix, SOMAXCONN) == ERROR) {
|
||||||
shutdown(fd_unix, 2);
|
shutdown(fd_unix, 2);
|
||||||
unlink(socket_name);
|
unlink(socket_name);
|
||||||
close(fd_unix);
|
close(fd_unix);
|
||||||
|
|
@ -221,66 +201,63 @@ open_af_unix(void)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef TLI
|
#ifdef TLI
|
||||||
struct t_call *inet_callptr;
|
struct t_call* inet_callptr;
|
||||||
struct netconfig *nconf;
|
struct netconfig* nconf;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
open_af_inet(void)
|
open_af_inet(void) {
|
||||||
{
|
|
||||||
#ifdef TLI
|
#ifdef TLI
|
||||||
struct t_bind *req;
|
struct t_bind* req;
|
||||||
struct nd_hostserv hserv;
|
struct nd_hostserv hserv;
|
||||||
struct nd_addrlist *addrs;
|
struct nd_addrlist* addrs;
|
||||||
struct t_optmgmt *opt;
|
struct t_optmgmt* opt;
|
||||||
struct opthdr *hdr;
|
struct opthdr* hdr;
|
||||||
void *handlep;
|
void* handlep;
|
||||||
extern int t_errno;
|
extern int t_errno;
|
||||||
extern void *setnetpath(void);
|
extern void* setnetpath(void);
|
||||||
extern struct netconfig *getnetpath(void *);
|
extern struct netconfig* getnetpath(void*);
|
||||||
#else
|
#else
|
||||||
struct sockaddr_in sin;
|
struct sockaddr_in sin;
|
||||||
struct servent *sp;
|
struct servent* sp;
|
||||||
unsigned short port;
|
unsigned short port;
|
||||||
#endif
|
#endif
|
||||||
int true = 1;
|
int true = 1;
|
||||||
|
|
||||||
|
|
||||||
#ifdef TLI
|
#ifdef TLI
|
||||||
if (( handlep = setnetpath()) == NULL) {
|
if((handlep = setnetpath()) == NULL) {
|
||||||
fprintf(stderr, "Setnetpath fail\n");
|
fprintf(stderr, "Setnetpath fail\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
while((nconf = getnetpath(handlep)) != NULL) {
|
while((nconf = getnetpath(handlep)) != NULL) {
|
||||||
if ((nconf->nc_semantics == NC_TPI_COTS_ORD) &&
|
if((nconf->nc_semantics == NC_TPI_COTS_ORD) &&
|
||||||
(strncmp(nconf->nc_proto, proto_name, strlen(proto_name)) == 0))
|
(strncmp(nconf->nc_proto, proto_name, strlen(proto_name)) == 0))
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (nconf == NULL) {
|
if(nconf == NULL) {
|
||||||
fprintf(stderr, "No connection mode transport\n");
|
fprintf(stderr, "No connection mode transport\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
hserv.h_host = HOST_SELF;
|
hserv.h_host = HOST_SELF;
|
||||||
hserv.h_serv = port_number;
|
hserv.h_serv = port_number;
|
||||||
if (netdir_getbyname(nconf, &hserv, &addrs) != 0) {
|
if(netdir_getbyname(nconf, &hserv, &addrs) != 0) {
|
||||||
hserv.h_serv = port_name;
|
hserv.h_serv = port_name;
|
||||||
if (netdir_getbyname(nconf, &hserv, &addrs) != 0) {
|
if(netdir_getbyname(nconf, &hserv, &addrs) != 0) {
|
||||||
fprintf(stderr, "Can't get address\n");
|
fprintf(stderr, "Can't get address\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ((fd_inet = t_open(nconf->nc_device, O_RDWR, (struct t_info *) NULL)) < 0) {
|
if((fd_inet = t_open(nconf->nc_device, O_RDWR, (struct t_info*)NULL)) < 0) {
|
||||||
fprintf(stderr,"Can't t_open\n");
|
fprintf(stderr, "Can't t_open\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((opt = (struct t_optmgmt *) t_alloc(fd_inet, T_OPTMGMT, T_ALL)) == NULL) {
|
if((opt = (struct t_optmgmt*)t_alloc(fd_inet, T_OPTMGMT, T_ALL)) == NULL) {
|
||||||
fprintf(stderr, "Can't t_alloc error for T_OPTMGT\n");
|
fprintf(stderr, "Can't t_alloc error for T_OPTMGT\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
if ((hdr = (struct opthdr *) malloc(sizeof(*hdr) + sizeof(true))) == NULL) {
|
if((hdr = (struct opthdr*)malloc(sizeof(*hdr) + sizeof(true))) == NULL) {
|
||||||
fprintf(stderr, "server: not malloc\n");
|
fprintf(stderr, "server: not malloc\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
@ -288,23 +265,23 @@ open_af_inet(void)
|
||||||
hdr->name = SO_REUSEADDR;
|
hdr->name = SO_REUSEADDR;
|
||||||
hdr->len = sizeof(true);
|
hdr->len = sizeof(true);
|
||||||
|
|
||||||
(void) memcpy(&true, (char *)hdr + sizeof(*hdr), sizeof(true));
|
(void)memcpy(&true, (char*)hdr + sizeof(*hdr), sizeof(true));
|
||||||
|
|
||||||
opt->opt.len = opt->opt.maxlen = sizeof(*hdr) + sizeof(true);
|
opt->opt.len = opt->opt.maxlen = sizeof(*hdr) + sizeof(true);
|
||||||
opt->flags = T_CHECK;
|
opt->flags = T_CHECK;
|
||||||
opt->opt.buf = (char *)hdr;
|
opt->opt.buf = (char*)hdr;
|
||||||
|
|
||||||
if ((t_optmgmt(fd_inet, opt, opt) < 0) || !(opt->flags & T_SUCCESS)){
|
if((t_optmgmt(fd_inet, opt, opt) < 0) || !(opt->flags & T_SUCCESS)) {
|
||||||
fprintf(stderr, "Warning: Can't reuse address %s(%s)\n",
|
fprintf(stderr, "Warning: Can't reuse address %s(%s)\n",
|
||||||
port_name, port_number);
|
port_name, port_number);
|
||||||
} else {
|
} else {
|
||||||
opt->flags = T_NEGOTIATE;
|
opt->flags = T_NEGOTIATE;
|
||||||
|
|
||||||
(void) memcpy(&true, (char *)hdr + sizeof(*hdr), sizeof(true));
|
(void)memcpy(&true, (char*)hdr + sizeof(*hdr), sizeof(true));
|
||||||
(void) t_optmgmt(fd_inet, opt, opt);
|
(void)t_optmgmt(fd_inet, opt, opt);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((req = (struct t_bind *) t_alloc(fd_inet, T_BIND, T_ALL)) == NULL) {
|
if((req = (struct t_bind*)t_alloc(fd_inet, T_BIND, T_ALL)) == NULL) {
|
||||||
t_close(fd_inet);
|
t_close(fd_inet);
|
||||||
fprintf(stderr, "Can't alloc bind data\n");
|
fprintf(stderr, "Can't alloc bind data\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|
@ -312,53 +289,52 @@ open_af_inet(void)
|
||||||
req->addr.maxlen = addrs->n_addrs->maxlen;
|
req->addr.maxlen = addrs->n_addrs->maxlen;
|
||||||
req->addr.len = addrs->n_addrs->len;
|
req->addr.len = addrs->n_addrs->len;
|
||||||
|
|
||||||
(void) memcpy(addrs->n_addrs->buf, req->addr.buf, addrs->n_addrs->len);
|
(void)memcpy(addrs->n_addrs->buf, req->addr.buf, addrs->n_addrs->len);
|
||||||
req->qlen = 5;
|
req->qlen = 5;
|
||||||
|
|
||||||
if (t_bind(fd_inet, req, req) < 0 ) {
|
if(t_bind(fd_inet, req, req) < 0) {
|
||||||
fprintf(stderr, "Can't t_bind\n");
|
fprintf(stderr, "Can't t_bind\n");
|
||||||
t_close(fd_inet);
|
t_close(fd_inet);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
if (memcmp(req->addr.buf, addrs->n_addrs->buf, addrs->n_addrs->len) != 0) {
|
if(memcmp(req->addr.buf, addrs->n_addrs->buf, addrs->n_addrs->len) != 0) {
|
||||||
fprintf(stderr, "Port '%s(%s)' is already in use\n",
|
fprintf(stderr, "Port '%s(%s)' is already in use\n",
|
||||||
port_name, port_number);
|
port_name, port_number);
|
||||||
t_close(fd_inet);
|
t_close(fd_inet);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
if ((inet_callptr = (struct t_call *) t_alloc(fd_inet, T_CALL, T_ALL)) == NULL) {
|
if((inet_callptr = (struct t_call*)t_alloc(fd_inet, T_CALL, T_ALL)) == NULL) {
|
||||||
fprintf(stderr,"t_alloc error for T_CALL\n");
|
fprintf(stderr, "t_alloc error for T_CALL\n");
|
||||||
t_close(fd_inet);
|
t_close(fd_inet);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
inet_callptr->addr = *(addrs->n_addrs);
|
inet_callptr->addr = *(addrs->n_addrs);
|
||||||
|
|
||||||
|
|
||||||
inet_callptr->udata.maxlen = 0;
|
inet_callptr->udata.maxlen = 0;
|
||||||
inet_callptr->udata.len = 0;
|
inet_callptr->udata.len = 0;
|
||||||
inet_callptr->udata.buf = (char *) NULL;
|
inet_callptr->udata.buf = (char*)NULL;
|
||||||
#else
|
#else
|
||||||
if ((sp = getservbyname(port_name, "tcp")) != NULL)
|
if((sp = getservbyname(port_name, "tcp")) != NULL)
|
||||||
port = ntohs(sp -> s_port);
|
port = ntohs(sp->s_port);
|
||||||
else
|
else
|
||||||
port = port_number;
|
port = port_number;
|
||||||
|
|
||||||
memset((char *)&sin, '\0', sizeof(sin));
|
memset((char*)&sin, '\0', sizeof(sin));
|
||||||
sin.sin_family = AF_INET;
|
sin.sin_family = AF_INET;
|
||||||
sin.sin_port = htons(port);
|
sin.sin_port = htons(port);
|
||||||
sin.sin_addr.s_addr = htonl(INADDR_ANY);
|
sin.sin_addr.s_addr = htonl(INADDR_ANY);
|
||||||
|
|
||||||
if ((fd_inet = socket(AF_INET, SOCK_STREAM, 0)) == ERROR) {
|
if((fd_inet = socket(AF_INET, SOCK_STREAM, 0)) == ERROR) {
|
||||||
fprintf(stderr, "Can't create AF_INET socket\n");
|
fprintf(stderr, "Can't create AF_INET socket\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
setsockopt(fd_inet, SOL_SOCKET, SO_REUSEADDR, &true, sizeof(true));
|
setsockopt(fd_inet, SOL_SOCKET, SO_REUSEADDR, &true, sizeof(true));
|
||||||
|
|
||||||
if (bind(fd_inet, (struct sockaddr *)&sin, sizeof(sin)) == ERROR) {
|
if(bind(fd_inet, (struct sockaddr*)&sin, sizeof(sin)) == ERROR) {
|
||||||
if (errno == EADDRINUSE) {
|
if(errno == EADDRINUSE) {
|
||||||
if (sp)
|
if(sp)
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"Port '%s(%d)' is already in use\n",
|
"Port '%s(%d)' is already in use\n",
|
||||||
port_name, port);
|
port_name, port);
|
||||||
|
|
@ -366,15 +342,14 @@ open_af_inet(void)
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"Port %d is already in use\n",
|
"Port %d is already in use\n",
|
||||||
port);
|
port);
|
||||||
}
|
} else
|
||||||
else
|
|
||||||
fprintf(stderr, "Can't bind AF_INET socket\n");
|
fprintf(stderr, "Can't bind AF_INET socket\n");
|
||||||
shutdown(fd_inet, 2);
|
shutdown(fd_inet, 2);
|
||||||
close(fd_inet);
|
close(fd_inet);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (listen(fd_inet, SOMAXCONN) == ERROR) {
|
if(listen(fd_inet, SOMAXCONN) == ERROR) {
|
||||||
shutdown(fd_inet, 2);
|
shutdown(fd_inet, 2);
|
||||||
close(fd_inet);
|
close(fd_inet);
|
||||||
fprintf(stderr, "Can't listen AF_INET socket\n");
|
fprintf(stderr, "Can't listen AF_INET socket\n");
|
||||||
|
|
@ -384,9 +359,7 @@ open_af_inet(void)
|
||||||
set_fd(fd_inet);
|
set_fd(fd_inet);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void open_socket(void) {
|
||||||
open_socket(void)
|
|
||||||
{
|
|
||||||
open_af_inet();
|
open_af_inet();
|
||||||
#if (!defined(TLI) || (defined(TLI) && defined(SOCK_UNIX)))
|
#if (!defined(TLI) || (defined(TLI) && defined(SOCK_UNIX)))
|
||||||
open_af_unix();
|
open_af_unix();
|
||||||
|
|
@ -395,59 +368,52 @@ open_socket(void)
|
||||||
|
|
||||||
#if (!defined(TLI) || (defined(TLI) && defined(SOCK_UNIX)))
|
#if (!defined(TLI) || (defined(TLI) && defined(SOCK_UNIX)))
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
connect_af_unix(void)
|
connect_af_unix(void) {
|
||||||
{
|
|
||||||
struct sockaddr_un sunix;
|
struct sockaddr_un sunix;
|
||||||
int i = sizeof(sunix);
|
int i = sizeof(sunix);
|
||||||
int fd;
|
int fd;
|
||||||
|
|
||||||
if ((fd = accept(fd_unix, (struct sockaddr *)&sunix, &i)) == ERROR)
|
if((fd = accept(fd_unix, (struct sockaddr*)&sunix, &i)) == ERROR)
|
||||||
warning_out("Can't accept AF_UNIX socket");
|
warning_out("Can't accept AF_UNIX socket");
|
||||||
return fd;
|
return fd;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef TLI
|
#ifdef TLI
|
||||||
int
|
int accept_func(int fd, struct t_call* callptr, char* name, int closeflg) {
|
||||||
accept_func(int fd, struct t_call* callptr, char* name, int closeflg)
|
|
||||||
{
|
|
||||||
int newfd;
|
int newfd;
|
||||||
int look;
|
int look;
|
||||||
extern int t_errno;
|
extern int t_errno;
|
||||||
|
|
||||||
if ((newfd = t_open(name, O_RDWR, (struct t_info *)0)) < 0) {
|
if((newfd = t_open(name, O_RDWR, (struct t_info*)0)) < 0) {
|
||||||
if (!closeflg) warning_out("Can't t_open");
|
if(!closeflg) warning_out("Can't t_open");
|
||||||
return ERROR;
|
return ERROR;
|
||||||
}
|
}
|
||||||
if (t_bind(newfd, (struct t_bind *)0, (struct t_bind *)0) < 0) {
|
if(t_bind(newfd, (struct t_bind*)0, (struct t_bind*)0) < 0) {
|
||||||
if (!closeflg) warning_out("t_bind error");
|
if(!closeflg) warning_out("t_bind error");
|
||||||
return ERROR;
|
return ERROR;
|
||||||
}
|
}
|
||||||
t_errno = 0;
|
t_errno = 0;
|
||||||
if (t_accept(fd, newfd, callptr) <0 ){
|
if(t_accept(fd, newfd, callptr) < 0) {
|
||||||
t_close(newfd);
|
t_close(newfd);
|
||||||
if (!closeflg) warning_out("t_accept error");
|
if(!closeflg) warning_out("t_accept error");
|
||||||
return ERROR;
|
return ERROR;
|
||||||
}
|
}
|
||||||
if (ioctl(newfd, I_POP, (char *) 0) < 0) {
|
if(ioctl(newfd, I_POP, (char*)0) < 0) {
|
||||||
if (!closeflg) warning_out("I_POP timod failed");
|
if(!closeflg) warning_out("I_POP timod failed");
|
||||||
return ERROR;
|
return ERROR;
|
||||||
}
|
}
|
||||||
if (ioctl(newfd, I_PUSH, "tirdwr") < 0) {
|
if(ioctl(newfd, I_PUSH, "tirdwr") < 0) {
|
||||||
if (!closeflg) warning_out("I_PUSH tirdwr failed");
|
if(!closeflg) warning_out("I_PUSH tirdwr failed");
|
||||||
return ERROR;
|
return ERROR;
|
||||||
}
|
}
|
||||||
return(newfd);
|
return (newfd);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
connect_af_inet(void)
|
connect_af_inet(void) {
|
||||||
{
|
|
||||||
#ifndef TLI
|
#ifndef TLI
|
||||||
struct sockaddr_in sin;
|
struct sockaddr_in sin;
|
||||||
int i = sizeof(sin);
|
int i = sizeof(sin);
|
||||||
|
|
@ -455,14 +421,13 @@ connect_af_inet(void)
|
||||||
int fd;
|
int fd;
|
||||||
|
|
||||||
#ifdef TLI
|
#ifdef TLI
|
||||||
if (t_listen(fd_inet, inet_callptr) < 0) {
|
if(t_listen(fd_inet, inet_callptr) < 0) {
|
||||||
warning_out("t_listen error");
|
warning_out("t_listen error");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((fd = accept_func(fd_inet, inet_callptr, nconf->nc_device, FALSE)) == ERROR)
|
if((fd = accept_func(fd_inet, inet_callptr, nconf->nc_device, FALSE)) == ERROR)
|
||||||
#else
|
#else
|
||||||
if ((fd = accept(fd_inet, (struct sockaddr *)&sin, &i)) == ERROR)
|
if((fd = accept(fd_inet, (struct sockaddr*)&sin, &i)) == ERROR)
|
||||||
#endif
|
#endif
|
||||||
warning_out("Can't accept AF_INET socket");
|
warning_out("Can't accept AF_INET socket");
|
||||||
return fd;
|
return fd;
|
||||||
|
|
@ -470,18 +435,16 @@ connect_af_inet(void)
|
||||||
|
|
||||||
#if (!defined(TLI) || (defined(TLI) && defined(SOCK_UNIX)))
|
#if (!defined(TLI) || (defined(TLI) && defined(SOCK_UNIX)))
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
close_af_unix(void)
|
close_af_unix(void) {
|
||||||
{
|
|
||||||
struct sockaddr_un sunix;
|
struct sockaddr_un sunix;
|
||||||
int true = 1;
|
int true = 1;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
ioctl(fd_unix, FIONBIO, &true);
|
ioctl(fd_unix, FIONBIO, &true);
|
||||||
for ( ; ; ) {
|
for(;;) {
|
||||||
i = sizeof(sunix);
|
i = sizeof(sunix);
|
||||||
if (accept(fd_unix, (struct sockaddr *)&sunix, &i) < 0) break;
|
if(accept(fd_unix, (struct sockaddr*)&sunix, &i) < 0) break;
|
||||||
}
|
}
|
||||||
shutdown(fd_unix, 2);
|
shutdown(fd_unix, 2);
|
||||||
close(fd_unix);
|
close(fd_unix);
|
||||||
|
|
@ -490,11 +453,8 @@ close_af_unix(void)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
close_af_inet(void)
|
close_af_inet(void) {
|
||||||
{
|
|
||||||
#ifndef TLI
|
#ifndef TLI
|
||||||
struct sockaddr_in sin;
|
struct sockaddr_in sin;
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -502,13 +462,13 @@ close_af_inet(void)
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
ioctl(fd_inet, FIONBIO, &true);
|
ioctl(fd_inet, FIONBIO, &true);
|
||||||
for ( ; ; ) {
|
for(;;) {
|
||||||
#ifdef TLI
|
#ifdef TLI
|
||||||
if (accept_func(fd_inet, inet_callptr, nconf->nc_device, TRUE) < 0)
|
if(accept_func(fd_inet, inet_callptr, nconf->nc_device, TRUE) < 0)
|
||||||
break;
|
break;
|
||||||
#else
|
#else
|
||||||
i = sizeof(sin);
|
i = sizeof(sin);
|
||||||
if (accept(fd_inet, (struct sockaddr *)&sin, &i) < 0) break;
|
if(accept(fd_inet, (struct sockaddr*)&sin, &i) < 0) break;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#ifdef TLI
|
#ifdef TLI
|
||||||
|
|
@ -522,42 +482,38 @@ close_af_inet(void)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void close_socket(void) {
|
||||||
close_socket(void)
|
|
||||||
{
|
|
||||||
#if (!defined(TLI) || (defined(TLI) && defined(SOCK_UNIX)))
|
#if (!defined(TLI) || (defined(TLI) && defined(SOCK_UNIX)))
|
||||||
close_af_unix();
|
close_af_unix();
|
||||||
#endif
|
#endif
|
||||||
close_af_inet();
|
close_af_inet();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
#ifdef SVR4
|
#ifdef SVR4
|
||||||
connect_client(struct pollfd *readfds)
|
connect_client(struct pollfd* readfds)
|
||||||
#else
|
#else
|
||||||
connect_client(fd_set *readfds)
|
connect_client(fd_set* readfds)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
int fd;
|
int fd;
|
||||||
#if (defined(TLI) && defined(SOCK_UNIX))
|
#if (defined(TLI) && defined(SOCK_UNIX))
|
||||||
int unix_flag=0;
|
int unix_flag = 0;
|
||||||
#endif
|
#endif
|
||||||
Client *client_tmp;
|
Client* client_tmp;
|
||||||
|
|
||||||
#ifdef SVR4
|
#ifdef SVR4
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < maxfds; i++) {
|
for(i = 0; i < maxfds; i++) {
|
||||||
if ((readfds[i].fd == fd_inet) &&
|
if((readfds[i].fd == fd_inet) &&
|
||||||
(readfds[i].revents == POLLIN)) {
|
(readfds[i].revents == POLLIN)) {
|
||||||
fd = connect_af_inet();
|
fd = connect_af_inet();
|
||||||
readfds[i].revents = 0;
|
readfds[i].revents = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#if (!defined(TLI) || (defined(TLI) && defined(SOCK_UNIX)))
|
#if (!defined(TLI) || (defined(TLI) && defined(SOCK_UNIX)))
|
||||||
if ((readfds[i].fd == fd_unix) &&
|
if((readfds[i].fd == fd_unix) &&
|
||||||
(readfds[i].revents == POLLIN)) {
|
(readfds[i].revents == POLLIN)) {
|
||||||
fd = connect_af_unix();
|
fd = connect_af_unix();
|
||||||
readfds[i].revents = 0;
|
readfds[i].revents = 0;
|
||||||
|
|
@ -568,12 +524,12 @@ connect_client(fd_set *readfds)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
if (i == maxfds) return;
|
if(i == maxfds) return;
|
||||||
#else /* SVR4 */
|
#else /* SVR4 */
|
||||||
if (FD_ISSET(fd_inet, readfds))
|
if(FD_ISSET(fd_inet, readfds))
|
||||||
fd = connect_af_inet();
|
fd = connect_af_inet();
|
||||||
#if (!defined(TLI) || (defined(TLI) && defined(SOCK_UNIX)))
|
#if (!defined(TLI) || (defined(TLI) && defined(SOCK_UNIX)))
|
||||||
else if (FD_ISSET(fd_unix, readfds))
|
else if(FD_ISSET(fd_unix, readfds))
|
||||||
#if (defined(TLI) && defined(SOCK_UNIX))
|
#if (defined(TLI) && defined(SOCK_UNIX))
|
||||||
{
|
{
|
||||||
fd = connect_af_unix();
|
fd = connect_af_unix();
|
||||||
|
|
@ -586,12 +542,9 @@ connect_client(fd_set *readfds)
|
||||||
else
|
else
|
||||||
return;
|
return;
|
||||||
#endif /* SVR4 */
|
#endif /* SVR4 */
|
||||||
if (fd == ERROR) return;
|
if(fd == ERROR) return;
|
||||||
|
|
||||||
|
if(client_num >= MaxClientNum || client_num >= max_client) {
|
||||||
|
|
||||||
|
|
||||||
if (client_num >= MaxClientNum || client_num >= max_client) {
|
|
||||||
warning_out("No more client");
|
warning_out("No more client");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -599,8 +552,7 @@ connect_client(fd_set *readfds)
|
||||||
debug_out(1, "client create(%d)\r\n", fd);
|
debug_out(1, "client create(%d)\r\n", fd);
|
||||||
logging_out("connect to client on %d", fd);
|
logging_out("connect to client on %d", fd);
|
||||||
|
|
||||||
|
if((client_tmp = (Client*)malloc(sizeof(Client))) != NULL) {
|
||||||
if ((client_tmp = (Client *)malloc(sizeof(Client))) != NULL) {
|
|
||||||
memset(client_tmp, 0, sizeof(Client));
|
memset(client_tmp, 0, sizeof(Client));
|
||||||
client_tmp->fd = fd;
|
client_tmp->fd = fd;
|
||||||
#if (defined(TLI) && defined(SOCK_UNIX))
|
#if (defined(TLI) && defined(SOCK_UNIX))
|
||||||
|
|
@ -618,7 +570,7 @@ connect_client(fd_set *readfds)
|
||||||
}
|
}
|
||||||
#ifdef TLI
|
#ifdef TLI
|
||||||
#ifdef SOCK_UNIX
|
#ifdef SOCK_UNIX
|
||||||
if (unix_flag) {
|
if(unix_flag) {
|
||||||
shutdown(fd, 2);
|
shutdown(fd, 2);
|
||||||
close(fd);
|
close(fd);
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -633,27 +585,23 @@ connect_client(fd_set *readfds)
|
||||||
shutdown(fd, 2);
|
shutdown(fd, 2);
|
||||||
close(fd);
|
close(fd);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static Client*
|
static Client*
|
||||||
disconnect_client(Client *cp)
|
disconnect_client(Client* cp) {
|
||||||
{
|
WorkArea* wp;
|
||||||
WorkArea *wp;
|
StdyFile* sp;
|
||||||
StdyFile *sp;
|
|
||||||
int fd;
|
int fd;
|
||||||
Client *cl_tmp, *cl_before;
|
Client * cl_tmp, *cl_before;
|
||||||
|
|
||||||
if ((sp = cp->stdy) != NULL) closestdy(sp);
|
if((sp = cp->stdy) != NULL) closestdy(sp);
|
||||||
if ((wp = cp->work) != NULL) free_workarea(wp);
|
if((wp = cp->work) != NULL) free_workarea(wp);
|
||||||
|
|
||||||
debug_out(1, "client dead(%d)\r\n", cp->fd);
|
debug_out(1, "client dead(%d)\r\n", cp->fd);
|
||||||
logging_out("disconnect from client on %d", cp->fd);
|
logging_out("disconnect from client on %d", cp->fd);
|
||||||
#ifdef TLI
|
#ifdef TLI
|
||||||
#ifdef SOCK_UNIX
|
#ifdef SOCK_UNIX
|
||||||
if (cp->unix_flag) {
|
if(cp->unix_flag) {
|
||||||
shutdown(fd = cp->fd, 2);
|
shutdown(fd = cp->fd, 2);
|
||||||
close(fd);
|
close(fd);
|
||||||
clr_fd(fd);
|
clr_fd(fd);
|
||||||
|
|
@ -674,15 +622,15 @@ disconnect_client(Client *cp)
|
||||||
close(fd);
|
close(fd);
|
||||||
clr_fd(fd);
|
clr_fd(fd);
|
||||||
#endif
|
#endif
|
||||||
if (cp == client) {
|
if(cp == client) {
|
||||||
client = cp->next;
|
client = cp->next;
|
||||||
free(cp);
|
free(cp);
|
||||||
cp = client;
|
cp = client;
|
||||||
} else {
|
} else {
|
||||||
cl_before = client;
|
cl_before = client;
|
||||||
cl_tmp = client->next;
|
cl_tmp = client->next;
|
||||||
while (cl_tmp) {
|
while(cl_tmp) {
|
||||||
if (cl_tmp == cp) {
|
if(cl_tmp == cp) {
|
||||||
cl_before->next = cp->next;
|
cl_before->next = cp->next;
|
||||||
free(cp);
|
free(cp);
|
||||||
break;
|
break;
|
||||||
|
|
@ -700,41 +648,38 @@ disconnect_client(Client *cp)
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void
|
void communicate(void) {
|
||||||
communicate(void)
|
|
||||||
{
|
|
||||||
|
|
||||||
signal(SIGPIPE, SIG_IGN);
|
signal(SIGPIPE, SIG_IGN);
|
||||||
|
|
||||||
for ( ; ; ) {
|
for(;;) {
|
||||||
#ifdef SVR4
|
#ifdef SVR4
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
while(poll(poll_fds, maxfds, -1) == ERROR) {
|
while(poll(poll_fds, maxfds, -1) == ERROR) {
|
||||||
if (errno != EINTR) error_out("poll");
|
if(errno != EINTR) error_out("poll");
|
||||||
errno = 0;
|
errno = 0;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
|
||||||
fd_set readfds;
|
fd_set readfds;
|
||||||
|
|
||||||
|
|
||||||
readfds = fds_org;
|
readfds = fds_org;
|
||||||
while (select(maxfds,&readfds,NULL,NULL,NULL) == ERROR) {
|
while(select(maxfds, &readfds, NULL, NULL, NULL) == ERROR) {
|
||||||
if (errno != EINTR) error_out("select");
|
if(errno != EINTR) error_out("select");
|
||||||
errno = 0;
|
errno = 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
for (cur_client = client ; cur_client; ) {
|
for(cur_client = client; cur_client;) {
|
||||||
|
|
||||||
if (setjmp(client_dead)) {
|
if(setjmp(client_dead)) {
|
||||||
cur_client = disconnect_client(cur_client);
|
cur_client = disconnect_client(cur_client);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
#ifdef SVR4
|
#ifdef SVR4
|
||||||
for ( i = 0; i < maxfds; i++) {
|
for(i = 0; i < maxfds; i++) {
|
||||||
if ((poll_fds[i].fd == cur_client->fd) &&
|
if((poll_fds[i].fd == cur_client->fd) &&
|
||||||
(poll_fds[i].revents == POLLIN)) {
|
(poll_fds[i].revents == POLLIN)) {
|
||||||
poll_fds[i].revents = 0;
|
poll_fds[i].revents = 0;
|
||||||
client_fd = cur_client->fd;
|
client_fd = cur_client->fd;
|
||||||
|
|
@ -747,7 +692,7 @@ communicate(void)
|
||||||
}
|
}
|
||||||
connect_client(poll_fds);
|
connect_client(poll_fds);
|
||||||
#else
|
#else
|
||||||
if (FD_ISSET(cur_client->fd, &readfds)) {
|
if(FD_ISSET(cur_client->fd, &readfds)) {
|
||||||
client_fd = cur_client->fd;
|
client_fd = cur_client->fd;
|
||||||
putpos = buflen = getpos = 0;
|
putpos = buflen = getpos = 0;
|
||||||
execute_cmd();
|
execute_cmd();
|
||||||
|
|
@ -759,16 +704,13 @@ communicate(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void put_flush(void) {
|
||||||
void
|
|
||||||
put_flush(void)
|
|
||||||
{
|
|
||||||
int len;
|
int len;
|
||||||
int i;
|
int i;
|
||||||
char *p;
|
char* p;
|
||||||
|
|
||||||
for (len = putpos, p = putbuf ; len > 0 ; ) {
|
for(len = putpos, p = putbuf; len > 0;) {
|
||||||
if ((i = write(client_fd, p, len)) == ERROR) {
|
if((i = write(client_fd, p, len)) == ERROR) {
|
||||||
longjmp(client_dead, -1);
|
longjmp(client_dead, -1);
|
||||||
}
|
}
|
||||||
len -= i;
|
len -= i;
|
||||||
|
|
@ -777,65 +719,48 @@ put_flush(void)
|
||||||
putpos = 0;
|
putpos = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void put_byte(int c) {
|
||||||
void
|
|
||||||
put_byte(int c)
|
|
||||||
{
|
|
||||||
putbuf[putpos++] = c;
|
putbuf[putpos++] = c;
|
||||||
if (putpos >= sizeof(putbuf)) put_flush();
|
if(putpos >= sizeof(putbuf)) put_flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void put_work(int c) {
|
||||||
void
|
|
||||||
put_work(int c)
|
|
||||||
{
|
|
||||||
put_byte(c >> 8);
|
put_byte(c >> 8);
|
||||||
put_byte(c & 0xff);
|
put_byte(c & 0xff);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void put_int(int c) {
|
||||||
void
|
|
||||||
put_int(int c)
|
|
||||||
{
|
|
||||||
put_byte(c >> (8 * 3));
|
put_byte(c >> (8 * 3));
|
||||||
put_byte(c >> (8 * 2));
|
put_byte(c >> (8 * 2));
|
||||||
put_byte(c >> (8 * 1));
|
put_byte(c >> (8 * 1));
|
||||||
put_byte(c);
|
put_byte(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
unsigned char*
|
unsigned char*
|
||||||
put_string(unsigned char* p)
|
put_string(unsigned char* p) {
|
||||||
{
|
if(p) {
|
||||||
if (p) {
|
|
||||||
do {
|
do {
|
||||||
put_byte(*p);
|
put_byte(*p);
|
||||||
} while (*p++);
|
} while(*p++);
|
||||||
}
|
} else
|
||||||
else
|
|
||||||
put_byte(0);
|
put_byte(0);
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
unsigned char*
|
unsigned char*
|
||||||
put_ndata(unsigned char* p, int n)
|
put_ndata(unsigned char* p, int n) {
|
||||||
{
|
while(n-- > 0) put_byte(p ? *p++ : 0);
|
||||||
while (n-- > 0) put_byte(p ? *p++ : 0);
|
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void get_buf(void) {
|
||||||
void
|
|
||||||
get_buf(void)
|
|
||||||
{
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (;;) {
|
for(;;) {
|
||||||
if ((i = read(client_fd, getbuf, sizeof(getbuf))) > 0) break;
|
if((i = read(client_fd, getbuf, sizeof(getbuf))) > 0) break;
|
||||||
if (i == ERROR) {
|
if(i == ERROR) {
|
||||||
if (errno == EINTR) continue;
|
if(errno == EINTR) continue;
|
||||||
if (errno == EWOULDBLOCK) continue;
|
if(errno == EWOULDBLOCK) continue;
|
||||||
}
|
}
|
||||||
longjmp(client_dead, -1);
|
longjmp(client_dead, -1);
|
||||||
}
|
}
|
||||||
|
|
@ -843,28 +768,19 @@ get_buf(void)
|
||||||
getpos = 0;
|
getpos = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int get_byte(void) {
|
||||||
int
|
if(getpos >= buflen) get_buf();
|
||||||
get_byte(void)
|
|
||||||
{
|
|
||||||
if (getpos >= buflen) get_buf();
|
|
||||||
return (getbuf[getpos++] & 0xff);
|
return (getbuf[getpos++] & 0xff);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int get_word(void) {
|
||||||
int
|
|
||||||
get_word(void)
|
|
||||||
{
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
i = get_byte();
|
i = get_byte();
|
||||||
return ((i << 8) | get_byte());
|
return ((i << 8) | get_byte());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int get_int(void) {
|
||||||
int
|
|
||||||
get_int(void)
|
|
||||||
{
|
|
||||||
int i0;
|
int i0;
|
||||||
int i1;
|
int i1;
|
||||||
int i2;
|
int i2;
|
||||||
|
|
@ -872,27 +788,22 @@ get_int(void)
|
||||||
i0 = get_byte();
|
i0 = get_byte();
|
||||||
i1 = get_byte();
|
i1 = get_byte();
|
||||||
i2 = get_byte();
|
i2 = get_byte();
|
||||||
return((i0 << (8*3)) | (i1 << (8*2)) | (i2 << (8*1)) | get_byte());
|
return ((i0 << (8 * 3)) | (i1 << (8 * 2)) | (i2 << (8 * 1)) | get_byte());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int get_nstring(unsigned char* p, int n) {
|
||||||
int
|
|
||||||
get_nstring(unsigned char* p, int n)
|
|
||||||
{
|
|
||||||
int c;
|
int c;
|
||||||
|
|
||||||
do {
|
do {
|
||||||
c = get_byte();
|
c = get_byte();
|
||||||
if (n-- > 0) *p++ = c;
|
if(n-- > 0) *p++ = c;
|
||||||
} while (c);
|
} while(c);
|
||||||
|
|
||||||
return (n < 0) ? ERROR : 0;
|
return (n < 0) ? ERROR : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
unsigned char*
|
unsigned char*
|
||||||
get_ndata(unsigned char* p, int n)
|
get_ndata(unsigned char* p, int n) {
|
||||||
{
|
while(n-- > 0) *p++ = get_byte();
|
||||||
while (n-- > 0) *p++ = get_byte();
|
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
13
config.h.cmake
Normal file
13
config.h.cmake
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
#ifndef OCONFIGURE_CONFIG_H
|
||||||
|
#define OCONFIGURE_CONFIG_H
|
||||||
|
|
||||||
|
#cmakedefine01 HAVE_C99_STDINT
|
||||||
|
|
||||||
|
#ifndef HAVE_MD5
|
||||||
|
# define HAVE_MD5 1
|
||||||
|
#endif
|
||||||
|
#ifndef HAVE_SHA2
|
||||||
|
# define HAVE_SHA2 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* OCONFIGURE_CONFIG_H */
|
||||||
5
configure
vendored
5
configure
vendored
|
|
@ -221,6 +221,7 @@ HAVE_B64_NTOP=
|
||||||
HAVE_CAPSICUM=
|
HAVE_CAPSICUM=
|
||||||
HAVE_CRYPT=
|
HAVE_CRYPT=
|
||||||
HAVE_CRYPT_NEWHASH=
|
HAVE_CRYPT_NEWHASH=
|
||||||
|
HAVE_C99_STDINT=
|
||||||
HAVE_ENDIAN_H=
|
HAVE_ENDIAN_H=
|
||||||
HAVE_ERR=
|
HAVE_ERR=
|
||||||
HAVE_EXPLICIT_BZERO=
|
HAVE_EXPLICIT_BZERO=
|
||||||
|
|
@ -391,6 +392,7 @@ runtest b64_ntop B64_NTOP "" "" "-lresolv" || true
|
||||||
runtest capsicum CAPSICUM || true
|
runtest capsicum CAPSICUM || true
|
||||||
runtest crypt CRYPT "" "" "-lcrypt" || true
|
runtest crypt CRYPT "" "" "-lcrypt" || true
|
||||||
runtest crypt_newhash CRYPT_NEWHASH || true
|
runtest crypt_newhash CRYPT_NEWHASH || true
|
||||||
|
runtest c99_stdint C99_STDINT || true
|
||||||
runtest endian_h ENDIAN_H || true
|
runtest endian_h ENDIAN_H || true
|
||||||
runtest err ERR || true
|
runtest err ERR || true
|
||||||
runtest explicit_bzero EXPLICIT_BZERO || true
|
runtest explicit_bzero EXPLICIT_BZERO || true
|
||||||
|
|
@ -513,7 +515,7 @@ fi
|
||||||
if [ ${HAVE_MD5} -eq 0 -o \
|
if [ ${HAVE_MD5} -eq 0 -o \
|
||||||
${HAVE_SHA2} -eq 0 ]
|
${HAVE_SHA2} -eq 0 ]
|
||||||
then
|
then
|
||||||
echo "#include <stdint.h> /* C99 [u]int[nn]_t types */"
|
echo "#include \"sj_stdint.h\" /* C99 stdint.h or C89 fallback types */"
|
||||||
echo
|
echo
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
@ -555,6 +557,7 @@ cat << __HEREDOC__
|
||||||
#define HAVE_CAPSICUM ${HAVE_CAPSICUM}
|
#define HAVE_CAPSICUM ${HAVE_CAPSICUM}
|
||||||
#define HAVE_CRYPT ${HAVE_CRYPT}
|
#define HAVE_CRYPT ${HAVE_CRYPT}
|
||||||
#define HAVE_CRYPT_NEWHASH ${HAVE_CRYPT_NEWHASH}
|
#define HAVE_CRYPT_NEWHASH ${HAVE_CRYPT_NEWHASH}
|
||||||
|
#define HAVE_C99_STDINT ${HAVE_C99_STDINT}
|
||||||
#define HAVE_ENDIAN_H ${HAVE_ENDIAN_H}
|
#define HAVE_ENDIAN_H ${HAVE_ENDIAN_H}
|
||||||
#define HAVE_ERR ${HAVE_ERR}
|
#define HAVE_ERR ${HAVE_ERR}
|
||||||
#define HAVE_EXPLICIT_BZERO ${HAVE_EXPLICIT_BZERO}
|
#define HAVE_EXPLICIT_BZERO ${HAVE_EXPLICIT_BZERO}
|
||||||
|
|
|
||||||
308
conjunc.c
308
conjunc.c
|
|
@ -27,13 +27,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: conjunc.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:01:33 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include "sj_rename.h"
|
#include "sj_rename.h"
|
||||||
#include "sj_typedef.h"
|
#include "sj_typedef.h"
|
||||||
#include "sj_yomi.h"
|
#include "sj_yomi.h"
|
||||||
|
|
@ -60,8 +53,7 @@ static unsigned char sahencnj[] = {
|
||||||
0x31, _RE, R_KATEI2,
|
0x31, _RE, R_KATEI2,
|
||||||
0x31, _RO, R_MEIREI1,
|
0x31, _RO, R_MEIREI1,
|
||||||
0x11, _YO, R_MEIREI2,
|
0x11, _YO, R_MEIREI2,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char zahencnj[] = {
|
static unsigned char zahencnj[] = {
|
||||||
0x00, R_CUT,
|
0x00, R_CUT,
|
||||||
|
|
@ -74,8 +66,7 @@ static unsigned char zahencnj[] = {
|
||||||
0x11, _RE, R_KATEI2,
|
0x11, _RE, R_KATEI2,
|
||||||
0x01, _ZE, R_MIZEN3,
|
0x01, _ZE, R_MIZEN3,
|
||||||
0x11, _YO, R_MEIREI2,
|
0x11, _YO, R_MEIREI2,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char ka5cnj1[] = {
|
static unsigned char ka5cnj1[] = {
|
||||||
0x01, _I, R_ONBIN2,
|
0x01, _I, R_ONBIN2,
|
||||||
|
|
@ -84,8 +75,7 @@ static unsigned char ka5cnj1[] = {
|
||||||
0x01, _KU, R_SHUUSI,
|
0x01, _KU, R_SHUUSI,
|
||||||
0x01, _KE, R_KAMEI,
|
0x01, _KE, R_KAMEI,
|
||||||
0x02, _KO, _U, R_AROU,
|
0x02, _KO, _U, R_AROU,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char ka5cnj3[] = {
|
static unsigned char ka5cnj3[] = {
|
||||||
0x01, _I, R_ONBIN2,
|
0x01, _I, R_ONBIN2,
|
||||||
|
|
@ -94,8 +84,7 @@ static unsigned char ka5cnj3[] = {
|
||||||
0x01, _KU, R_SHUUSI,
|
0x01, _KU, R_SHUUSI,
|
||||||
0x01, _KE, R_KAMEI,
|
0x01, _KE, R_KAMEI,
|
||||||
0x02, _KO, _U, R_AROU,
|
0x02, _KO, _U, R_AROU,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char ka5cnj5[] = {
|
static unsigned char ka5cnj5[] = {
|
||||||
0x01, _I, R_ONBIN2,
|
0x01, _I, R_ONBIN2,
|
||||||
|
|
@ -110,8 +99,7 @@ static unsigned char ka5cnj5[] = {
|
||||||
0x11, _RU, R_SHUUSI,
|
0x11, _RU, R_SHUUSI,
|
||||||
0x11, _RE, R_KATEI2,
|
0x11, _RE, R_KATEI2,
|
||||||
0x02, _KO, _U, R_AROU,
|
0x02, _KO, _U, R_AROU,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char ka5cnj7[] = {
|
static unsigned char ka5cnj7[] = {
|
||||||
0x01, _I, R_ONBIN2,
|
0x01, _I, R_ONBIN2,
|
||||||
|
|
@ -126,8 +114,7 @@ static unsigned char ka5cnj7[] = {
|
||||||
0x11, _RU, R_SHUUSI,
|
0x11, _RU, R_SHUUSI,
|
||||||
0x11, _RE, R_KATEI2,
|
0x11, _RE, R_KATEI2,
|
||||||
0x02, _KO, _U, R_AROU,
|
0x02, _KO, _U, R_AROU,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char ga5cnj1[] = {
|
static unsigned char ga5cnj1[] = {
|
||||||
0x01, _I, R_ONBIN3,
|
0x01, _I, R_ONBIN3,
|
||||||
|
|
@ -136,8 +123,7 @@ static unsigned char ga5cnj1[] = {
|
||||||
0x01, _GU, R_SHUUSI,
|
0x01, _GU, R_SHUUSI,
|
||||||
0x01, _GE, R_KAMEI,
|
0x01, _GE, R_KAMEI,
|
||||||
0x02, _GO, _U, R_AROU,
|
0x02, _GO, _U, R_AROU,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char ga5cnj3[] = {
|
static unsigned char ga5cnj3[] = {
|
||||||
0x01, _I, R_ONBIN3,
|
0x01, _I, R_ONBIN3,
|
||||||
|
|
@ -146,8 +132,7 @@ static unsigned char ga5cnj3[] = {
|
||||||
0x01, _GU, R_SHUUSI,
|
0x01, _GU, R_SHUUSI,
|
||||||
0x01, _GE, R_KAMEI,
|
0x01, _GE, R_KAMEI,
|
||||||
0x02, _GO, _U, R_AROU,
|
0x02, _GO, _U, R_AROU,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char ga5cnj5[] = {
|
static unsigned char ga5cnj5[] = {
|
||||||
0x01, _I, R_ONBIN3,
|
0x01, _I, R_ONBIN3,
|
||||||
|
|
@ -162,8 +147,7 @@ static unsigned char ga5cnj5[] = {
|
||||||
0x11, _RU, R_SHUUSI,
|
0x11, _RU, R_SHUUSI,
|
||||||
0x11, _RE, R_KATEI2,
|
0x11, _RE, R_KATEI2,
|
||||||
0x02, _GO, _U, R_AROU,
|
0x02, _GO, _U, R_AROU,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char ga5cnj7[] = {
|
static unsigned char ga5cnj7[] = {
|
||||||
0x01, _I, R_ONBIN3,
|
0x01, _I, R_ONBIN3,
|
||||||
|
|
@ -178,8 +162,7 @@ static unsigned char ga5cnj7[] = {
|
||||||
0x11, _RU, R_SHUUSI,
|
0x11, _RU, R_SHUUSI,
|
||||||
0x11, _RE, R_KATEI2,
|
0x11, _RE, R_KATEI2,
|
||||||
0x02, _GO, _U, R_AROU,
|
0x02, _GO, _U, R_AROU,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char sa5cnj1[] = {
|
static unsigned char sa5cnj1[] = {
|
||||||
0x01, _SA, R_MIZEN5,
|
0x01, _SA, R_MIZEN5,
|
||||||
|
|
@ -187,8 +170,7 @@ static unsigned char sa5cnj1[] = {
|
||||||
0x01, _SU, R_SHUUSI,
|
0x01, _SU, R_SHUUSI,
|
||||||
0x01, _SE, R_KAMEI,
|
0x01, _SE, R_KAMEI,
|
||||||
0x02, _SO, _U, R_AROU,
|
0x02, _SO, _U, R_AROU,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char sa5cnj3[] = {
|
static unsigned char sa5cnj3[] = {
|
||||||
0x01, _SA, R_MIZEN5,
|
0x01, _SA, R_MIZEN5,
|
||||||
|
|
@ -196,8 +178,7 @@ static unsigned char sa5cnj3[] = {
|
||||||
0x01, _SU, R_SHUUSI,
|
0x01, _SU, R_SHUUSI,
|
||||||
0x01, _SE, R_KAMEI,
|
0x01, _SE, R_KAMEI,
|
||||||
0x02, _SO, _U, R_AROU,
|
0x02, _SO, _U, R_AROU,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char sa5cnj5[] = {
|
static unsigned char sa5cnj5[] = {
|
||||||
0x01, _SA, R_MIZEN5,
|
0x01, _SA, R_MIZEN5,
|
||||||
|
|
@ -207,8 +188,7 @@ static unsigned char sa5cnj5[] = {
|
||||||
0x11, _RU, R_SHUUSI,
|
0x11, _RU, R_SHUUSI,
|
||||||
0x11, _RE, R_KATEI2,
|
0x11, _RE, R_KATEI2,
|
||||||
0x02, _SO, _U, R_AROU,
|
0x02, _SO, _U, R_AROU,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char sa5cnj7[] = {
|
static unsigned char sa5cnj7[] = {
|
||||||
0x01, _SA, R_MIZEN5,
|
0x01, _SA, R_MIZEN5,
|
||||||
|
|
@ -218,8 +198,7 @@ static unsigned char sa5cnj7[] = {
|
||||||
0x11, _RU, R_SHUUSI,
|
0x11, _RU, R_SHUUSI,
|
||||||
0x11, _RE, R_KATEI2,
|
0x11, _RE, R_KATEI2,
|
||||||
0x02, _SO, _U, R_AROU,
|
0x02, _SO, _U, R_AROU,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char ta5cnj1[] = {
|
static unsigned char ta5cnj1[] = {
|
||||||
0x01, _TA, R_MIZEN5,
|
0x01, _TA, R_MIZEN5,
|
||||||
|
|
@ -228,8 +207,7 @@ static unsigned char ta5cnj1[] = {
|
||||||
0x01, _TU, R_SHUUSI,
|
0x01, _TU, R_SHUUSI,
|
||||||
0x01, _TE, R_KAMEI,
|
0x01, _TE, R_KAMEI,
|
||||||
0x02, _TO, _U, R_AROU,
|
0x02, _TO, _U, R_AROU,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char ta5cnj3[] = {
|
static unsigned char ta5cnj3[] = {
|
||||||
0x01, _TA, R_MIZEN5,
|
0x01, _TA, R_MIZEN5,
|
||||||
|
|
@ -238,8 +216,7 @@ static unsigned char ta5cnj3[] = {
|
||||||
0x01, _TU, R_SHUUSI,
|
0x01, _TU, R_SHUUSI,
|
||||||
0x01, _TE, R_KAMEI,
|
0x01, _TE, R_KAMEI,
|
||||||
0x02, _TO, _U, R_AROU,
|
0x02, _TO, _U, R_AROU,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char ta5cnj5[] = {
|
static unsigned char ta5cnj5[] = {
|
||||||
0x01, _TA, R_MIZEN5,
|
0x01, _TA, R_MIZEN5,
|
||||||
|
|
@ -254,8 +231,7 @@ static unsigned char ta5cnj5[] = {
|
||||||
0x11, _RU, R_SHUUSI,
|
0x11, _RU, R_SHUUSI,
|
||||||
0x11, _RE, R_KATEI2,
|
0x11, _RE, R_KATEI2,
|
||||||
0x02, _TO, _U, R_AROU,
|
0x02, _TO, _U, R_AROU,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char ta5cnj7[] = {
|
static unsigned char ta5cnj7[] = {
|
||||||
0x01, _TA, R_MIZEN5,
|
0x01, _TA, R_MIZEN5,
|
||||||
|
|
@ -270,9 +246,7 @@ static unsigned char ta5cnj7[] = {
|
||||||
0x11, _RU, R_SHUUSI,
|
0x11, _RU, R_SHUUSI,
|
||||||
0x11, _RE, R_KATEI2,
|
0x11, _RE, R_KATEI2,
|
||||||
0x02, _TO, _U, R_AROU,
|
0x02, _TO, _U, R_AROU,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
static unsigned char na5cnj[] = {
|
static unsigned char na5cnj[] = {
|
||||||
0x01, _NA, R_MIZEN5,
|
0x01, _NA, R_MIZEN5,
|
||||||
|
|
@ -281,8 +255,7 @@ static unsigned char na5cnj[] = {
|
||||||
0x01, _NE, R_KAMEI,
|
0x01, _NE, R_KAMEI,
|
||||||
0x02, _NO, _U, R_AROU,
|
0x02, _NO, _U, R_AROU,
|
||||||
0x01, _NN, R_ONBIN3,
|
0x01, _NN, R_ONBIN3,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char ba5cnj1[] = {
|
static unsigned char ba5cnj1[] = {
|
||||||
0x01, _BA, R_MIZEN5,
|
0x01, _BA, R_MIZEN5,
|
||||||
|
|
@ -291,8 +264,7 @@ static unsigned char ba5cnj1[] = {
|
||||||
0x01, _BE, R_KAMEI,
|
0x01, _BE, R_KAMEI,
|
||||||
0x02, _BO, _U, R_AROU,
|
0x02, _BO, _U, R_AROU,
|
||||||
0x01, _NN, R_ONBIN3,
|
0x01, _NN, R_ONBIN3,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char ba5cnj3[] = {
|
static unsigned char ba5cnj3[] = {
|
||||||
0x01, _BA, R_MIZEN5,
|
0x01, _BA, R_MIZEN5,
|
||||||
|
|
@ -301,8 +273,7 @@ static unsigned char ba5cnj3[] = {
|
||||||
0x01, _BE, R_KAMEI,
|
0x01, _BE, R_KAMEI,
|
||||||
0x02, _BO, _U, R_AROU,
|
0x02, _BO, _U, R_AROU,
|
||||||
0x01, _NN, R_ONBIN3,
|
0x01, _NN, R_ONBIN3,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char ba5cnj5[] = {
|
static unsigned char ba5cnj5[] = {
|
||||||
0x01, _BA, R_MIZEN5,
|
0x01, _BA, R_MIZEN5,
|
||||||
|
|
@ -317,8 +288,7 @@ static unsigned char ba5cnj5[] = {
|
||||||
0x11, _RE, R_KATEI2,
|
0x11, _RE, R_KATEI2,
|
||||||
0x02, _BO, _U, R_AROU,
|
0x02, _BO, _U, R_AROU,
|
||||||
0x01, _NN, R_ONBIN3,
|
0x01, _NN, R_ONBIN3,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char ba5cnj7[] = {
|
static unsigned char ba5cnj7[] = {
|
||||||
0x01, _BA, R_MIZEN5,
|
0x01, _BA, R_MIZEN5,
|
||||||
|
|
@ -333,8 +303,7 @@ static unsigned char ba5cnj7[] = {
|
||||||
0x11, _RE, R_KATEI2,
|
0x11, _RE, R_KATEI2,
|
||||||
0x02, _BO, _U, R_AROU,
|
0x02, _BO, _U, R_AROU,
|
||||||
0x01, _NN, R_ONBIN3,
|
0x01, _NN, R_ONBIN3,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char ma5cnj1[] = {
|
static unsigned char ma5cnj1[] = {
|
||||||
0x01, _MA, R_MIZEN5,
|
0x01, _MA, R_MIZEN5,
|
||||||
|
|
@ -343,8 +312,7 @@ static unsigned char ma5cnj1[] = {
|
||||||
0x01, _ME, R_KAMEI,
|
0x01, _ME, R_KAMEI,
|
||||||
0x02, _MO, _U, R_AROU,
|
0x02, _MO, _U, R_AROU,
|
||||||
0x01, _NN, R_ONBIN3,
|
0x01, _NN, R_ONBIN3,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char ma5cnj3[] = {
|
static unsigned char ma5cnj3[] = {
|
||||||
0x01, _MA, R_MIZEN5,
|
0x01, _MA, R_MIZEN5,
|
||||||
|
|
@ -353,8 +321,7 @@ static unsigned char ma5cnj3[] = {
|
||||||
0x01, _ME, R_KAMEI,
|
0x01, _ME, R_KAMEI,
|
||||||
0x02, _MO, _U, R_AROU,
|
0x02, _MO, _U, R_AROU,
|
||||||
0x01, _NN, R_ONBIN3,
|
0x01, _NN, R_ONBIN3,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char ma5cnj5[] = {
|
static unsigned char ma5cnj5[] = {
|
||||||
0x01, _MA, R_MIZEN5,
|
0x01, _MA, R_MIZEN5,
|
||||||
|
|
@ -369,8 +336,7 @@ static unsigned char ma5cnj5[] = {
|
||||||
0x11, _RE, R_KATEI2,
|
0x11, _RE, R_KATEI2,
|
||||||
0x02, _MO, _U, R_AROU,
|
0x02, _MO, _U, R_AROU,
|
||||||
0x01, _NN, R_ONBIN3,
|
0x01, _NN, R_ONBIN3,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char ma5cnj7[] = {
|
static unsigned char ma5cnj7[] = {
|
||||||
0x01, _MA, R_MIZEN5,
|
0x01, _MA, R_MIZEN5,
|
||||||
|
|
@ -385,8 +351,7 @@ static unsigned char ma5cnj7[] = {
|
||||||
0x11, _RE, R_KATEI2,
|
0x11, _RE, R_KATEI2,
|
||||||
0x02, _MO, _U, R_AROU,
|
0x02, _MO, _U, R_AROU,
|
||||||
0x01, _NN, R_ONBIN3,
|
0x01, _NN, R_ONBIN3,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char ra5cnj1[] = {
|
static unsigned char ra5cnj1[] = {
|
||||||
0x01, _XTU, R_ONBIN2,
|
0x01, _XTU, R_ONBIN2,
|
||||||
|
|
@ -395,8 +360,7 @@ static unsigned char ra5cnj1[] = {
|
||||||
0x01, _RU, R_SHUUSI,
|
0x01, _RU, R_SHUUSI,
|
||||||
0x01, _RE, R_KAMEI,
|
0x01, _RE, R_KAMEI,
|
||||||
0x02, _RO, _U, R_AROU,
|
0x02, _RO, _U, R_AROU,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char ra5cnj3[] = {
|
static unsigned char ra5cnj3[] = {
|
||||||
0x01, _XTU, R_ONBIN2,
|
0x01, _XTU, R_ONBIN2,
|
||||||
|
|
@ -405,8 +369,7 @@ static unsigned char ra5cnj3[] = {
|
||||||
0x01, _RU, R_SHUUSI,
|
0x01, _RU, R_SHUUSI,
|
||||||
0x01, _RE, R_KAMEI,
|
0x01, _RE, R_KAMEI,
|
||||||
0x02, _RO, _U, R_AROU,
|
0x02, _RO, _U, R_AROU,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char ra5cnj5[] = {
|
static unsigned char ra5cnj5[] = {
|
||||||
0x01, _XTU, R_ONBIN2,
|
0x01, _XTU, R_ONBIN2,
|
||||||
|
|
@ -421,8 +384,7 @@ static unsigned char ra5cnj5[] = {
|
||||||
0x11, _RU, R_SHUUSI,
|
0x11, _RU, R_SHUUSI,
|
||||||
0x11, _RE, R_KATEI2,
|
0x11, _RE, R_KATEI2,
|
||||||
0x02, _RO, _U, R_AROU,
|
0x02, _RO, _U, R_AROU,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char ra5cnj7[] = {
|
static unsigned char ra5cnj7[] = {
|
||||||
0x01, _XTU, R_ONBIN2,
|
0x01, _XTU, R_ONBIN2,
|
||||||
|
|
@ -437,8 +399,7 @@ static unsigned char ra5cnj7[] = {
|
||||||
0x11, _RU, R_SHUUSI,
|
0x11, _RU, R_SHUUSI,
|
||||||
0x11, _RE, R_KATEI2,
|
0x11, _RE, R_KATEI2,
|
||||||
0x02, _RO, _U, R_AROU,
|
0x02, _RO, _U, R_AROU,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char wa5cnj1[] = {
|
static unsigned char wa5cnj1[] = {
|
||||||
0x01, _I, R_RENYOU5,
|
0x01, _I, R_RENYOU5,
|
||||||
|
|
@ -447,8 +408,7 @@ static unsigned char wa5cnj1[] = {
|
||||||
0x02, _O, _U, R_AROU,
|
0x02, _O, _U, R_AROU,
|
||||||
0x01, _XTU, R_ONBIN2,
|
0x01, _XTU, R_ONBIN2,
|
||||||
0x01, _WA, R_MIZEN5,
|
0x01, _WA, R_MIZEN5,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char wa5cnj3[] = {
|
static unsigned char wa5cnj3[] = {
|
||||||
0x01, _I, R_RENYOU7,
|
0x01, _I, R_RENYOU7,
|
||||||
|
|
@ -457,8 +417,7 @@ static unsigned char wa5cnj3[] = {
|
||||||
0x02, _O, _U, R_AROU,
|
0x02, _O, _U, R_AROU,
|
||||||
0x01, _XTU, R_ONBIN2,
|
0x01, _XTU, R_ONBIN2,
|
||||||
0x01, _WA, R_MIZEN5,
|
0x01, _WA, R_MIZEN5,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char wa5cnj5[] = {
|
static unsigned char wa5cnj5[] = {
|
||||||
0x01, _I, R_RENYOU5,
|
0x01, _I, R_RENYOU5,
|
||||||
|
|
@ -473,8 +432,7 @@ static unsigned char wa5cnj5[] = {
|
||||||
0x11, _SI, R_SA5RENYOU3,
|
0x11, _SI, R_SA5RENYOU3,
|
||||||
0x11, _SU, R_SHUUSI,
|
0x11, _SU, R_SHUUSI,
|
||||||
0x12, _SO, _U, R_AROU,
|
0x12, _SO, _U, R_AROU,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char wa5cnj7[] = {
|
static unsigned char wa5cnj7[] = {
|
||||||
0x01, _I, R_RENYOU7,
|
0x01, _I, R_RENYOU7,
|
||||||
|
|
@ -489,8 +447,7 @@ static unsigned char wa5cnj7[] = {
|
||||||
0x11, _SI, R_SA5RENYOU3,
|
0x11, _SI, R_SA5RENYOU3,
|
||||||
0x11, _SU, R_SHUUSI,
|
0x11, _SU, R_SHUUSI,
|
||||||
0x12, _SO, _U, R_AROU,
|
0x12, _SO, _U, R_AROU,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char ichicnj1[] = {
|
static unsigned char ichicnj1[] = {
|
||||||
0x00, R_RENYOU1,
|
0x00, R_RENYOU1,
|
||||||
|
|
@ -498,8 +455,7 @@ static unsigned char ichicnj1[] = {
|
||||||
0x01, _RU, R_SHUUSI,
|
0x01, _RU, R_SHUUSI,
|
||||||
0x01, _RE, R_KATEI2,
|
0x01, _RE, R_KATEI2,
|
||||||
0x01, _RO, R_MEIREI1,
|
0x01, _RO, R_MEIREI1,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char ichicnj3[] = {
|
static unsigned char ichicnj3[] = {
|
||||||
0x00, R_RENYOU3,
|
0x00, R_RENYOU3,
|
||||||
|
|
@ -507,8 +463,7 @@ static unsigned char ichicnj3[] = {
|
||||||
0x01, _RU, R_SHUUSI,
|
0x01, _RU, R_SHUUSI,
|
||||||
0x01, _RE, R_KATEI2,
|
0x01, _RE, R_KATEI2,
|
||||||
0x01, _RO, R_MEIREI1,
|
0x01, _RO, R_MEIREI1,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char keiyou1[] = {
|
static unsigned char keiyou1[] = {
|
||||||
0x80, R_KGOKAN,
|
0x80, R_KGOKAN,
|
||||||
|
|
@ -518,8 +473,7 @@ static unsigned char keiyou1[] = {
|
||||||
0x01, _KI, R_KRENTAI,
|
0x01, _KI, R_KRENTAI,
|
||||||
0x01, _KU, R_KRENYOU,
|
0x01, _KU, R_KRENYOU,
|
||||||
0x02, _KE, _RE, R_KATEI2,
|
0x02, _KE, _RE, R_KATEI2,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char keiyou2[] = {
|
static unsigned char keiyou2[] = {
|
||||||
0x80, R_KGOKAN,
|
0x80, R_KGOKAN,
|
||||||
|
|
@ -529,9 +483,8 @@ static unsigned char keiyou2[] = {
|
||||||
0x01, _KI, R_KRENTAI,
|
0x01, _KI, R_KRENTAI,
|
||||||
0x01, _KU, R_KRENYOU,
|
0x01, _KU, R_KRENYOU,
|
||||||
0x02, _KE, _RE, R_KATEI2,
|
0x02, _KE, _RE, R_KATEI2,
|
||||||
0x01, _SA, R_FZKMEISI,
|
0x01, _SA, R_FZKMEISHI,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char keiyou3[] = {
|
static unsigned char keiyou3[] = {
|
||||||
0x80, R_KGOKAN,
|
0x80, R_KGOKAN,
|
||||||
|
|
@ -541,7 +494,7 @@ static unsigned char keiyou3[] = {
|
||||||
0x01, _KI, R_KRENTAI,
|
0x01, _KI, R_KRENTAI,
|
||||||
0x01, _KU, R_KRENYOU,
|
0x01, _KU, R_KRENYOU,
|
||||||
0x02, _KE, _RE, R_KATEI2,
|
0x02, _KE, _RE, R_KATEI2,
|
||||||
0x01, _GE, R_DMEISI,
|
0x01, _GE, R_DMEISHI,
|
||||||
0x11, _DA, R_DSHUUSI1,
|
0x11, _DA, R_DSHUUSI1,
|
||||||
0x21, _XTU, R_ONBIN1,
|
0x21, _XTU, R_ONBIN1,
|
||||||
0x22, _RO, _U, R_DAROU,
|
0x22, _RO, _U, R_DAROU,
|
||||||
|
|
@ -552,9 +505,8 @@ static unsigned char keiyou3[] = {
|
||||||
0x21, _RU, R_DRENTAI3,
|
0x21, _RU, R_DRENTAI3,
|
||||||
0x21, _RE, R_KAMEI,
|
0x21, _RE, R_KAMEI,
|
||||||
0x11, _NI, R_DRENYOU2,
|
0x11, _NI, R_DRENYOU2,
|
||||||
0x01, _SA, R_FZKMEISI,
|
0x01, _SA, R_FZKMEISHI,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char keiyou4[] = {
|
static unsigned char keiyou4[] = {
|
||||||
0x80, R_KGOKAN,
|
0x80, R_KGOKAN,
|
||||||
|
|
@ -570,9 +522,8 @@ static unsigned char keiyou4[] = {
|
||||||
0x01, _KI, R_KRENTAI,
|
0x01, _KI, R_KRENTAI,
|
||||||
0x01, _KU, R_KRENYOU,
|
0x01, _KU, R_KRENYOU,
|
||||||
0x02, _KE, _RE, R_KATEI2,
|
0x02, _KE, _RE, R_KATEI2,
|
||||||
0x01, _SA, R_FZKMEISI,
|
0x01, _SA, R_FZKMEISHI,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char keiyou5[] = {
|
static unsigned char keiyou5[] = {
|
||||||
0x80, R_KGOKAN,
|
0x80, R_KGOKAN,
|
||||||
|
|
@ -588,7 +539,7 @@ static unsigned char keiyou5[] = {
|
||||||
0x01, _KI, R_KRENTAI,
|
0x01, _KI, R_KRENTAI,
|
||||||
0x01, _KU, R_KRENYOU,
|
0x01, _KU, R_KRENYOU,
|
||||||
0x02, _KE, _RE, R_KATEI2,
|
0x02, _KE, _RE, R_KATEI2,
|
||||||
0x01, _GE, R_DMEISI,
|
0x01, _GE, R_DMEISHI,
|
||||||
0x11, _DA, R_DSHUUSI1,
|
0x11, _DA, R_DSHUUSI1,
|
||||||
0x21, _XTU, R_ONBIN1,
|
0x21, _XTU, R_ONBIN1,
|
||||||
0x22, _RO, _U, R_DAROU,
|
0x22, _RO, _U, R_DAROU,
|
||||||
|
|
@ -599,9 +550,8 @@ static unsigned char keiyou5[] = {
|
||||||
0x21, _RU, R_DRENTAI3,
|
0x21, _RU, R_DRENTAI3,
|
||||||
0x21, _RE, R_KAMEI,
|
0x21, _RE, R_KAMEI,
|
||||||
0x11, _NI, R_DRENYOU2,
|
0x11, _NI, R_DRENYOU2,
|
||||||
0x01, _SA, R_FZKMEISI,
|
0x01, _SA, R_FZKMEISHI,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char keiyou6[] = {
|
static unsigned char keiyou6[] = {
|
||||||
0x80, R_KGOKAN,
|
0x80, R_KGOKAN,
|
||||||
|
|
@ -611,7 +561,7 @@ static unsigned char keiyou6[] = {
|
||||||
0x01, _KI, R_KRENTAI,
|
0x01, _KI, R_KRENTAI,
|
||||||
0x01, _KU, R_KRENYOU,
|
0x01, _KU, R_KRENYOU,
|
||||||
0x02, _KE, _RE, R_KATEI2,
|
0x02, _KE, _RE, R_KATEI2,
|
||||||
0x01, _GE, R_DMEISI,
|
0x01, _GE, R_DMEISHI,
|
||||||
0x11, _DA, R_DSHUUSI1,
|
0x11, _DA, R_DSHUUSI1,
|
||||||
0x21, _XTU, R_ONBIN1,
|
0x21, _XTU, R_ONBIN1,
|
||||||
0x22, _RO, _U, R_DAROU,
|
0x22, _RO, _U, R_DAROU,
|
||||||
|
|
@ -622,8 +572,8 @@ static unsigned char keiyou6[] = {
|
||||||
0x21, _RU, R_DRENTAI3,
|
0x21, _RU, R_DRENTAI3,
|
||||||
0x21, _RE, R_KAMEI,
|
0x21, _RE, R_KAMEI,
|
||||||
0x11, _NI, R_DRENYOU2,
|
0x11, _NI, R_DRENYOU2,
|
||||||
0x01, _SA, R_FZKMEISI,
|
0x01, _SA, R_FZKMEISHI,
|
||||||
0x01, _ME, R_DMEISI,
|
0x01, _ME, R_DMEISHI,
|
||||||
0x11, _DA, R_DSHUUSI1,
|
0x11, _DA, R_DSHUUSI1,
|
||||||
0x21, _XTU, R_ONBIN1,
|
0x21, _XTU, R_ONBIN1,
|
||||||
0x22, _RO, _U, R_DAROU,
|
0x22, _RO, _U, R_DAROU,
|
||||||
|
|
@ -634,8 +584,7 @@ static unsigned char keiyou6[] = {
|
||||||
0x21, _RU, R_DRENTAI3,
|
0x21, _RU, R_DRENTAI3,
|
||||||
0x21, _RE, R_KAMEI,
|
0x21, _RE, R_KAMEI,
|
||||||
0x11, _NI, R_DRENYOU2,
|
0x11, _NI, R_DRENYOU2,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char keiyou7[] = {
|
static unsigned char keiyou7[] = {
|
||||||
0x80, R_KGOKAN,
|
0x80, R_KGOKAN,
|
||||||
|
|
@ -651,7 +600,7 @@ static unsigned char keiyou7[] = {
|
||||||
0x01, _KI, R_KRENTAI,
|
0x01, _KI, R_KRENTAI,
|
||||||
0x01, _KU, R_KRENYOU,
|
0x01, _KU, R_KRENYOU,
|
||||||
0x02, _KE, _RE, R_KATEI2,
|
0x02, _KE, _RE, R_KATEI2,
|
||||||
0x01, _GE, R_DMEISI,
|
0x01, _GE, R_DMEISHI,
|
||||||
0x11, _DA, R_DSHUUSI1,
|
0x11, _DA, R_DSHUUSI1,
|
||||||
0x21, _XTU, R_ONBIN1,
|
0x21, _XTU, R_ONBIN1,
|
||||||
0x22, _RO, _U, R_DAROU,
|
0x22, _RO, _U, R_DAROU,
|
||||||
|
|
@ -662,8 +611,8 @@ static unsigned char keiyou7[] = {
|
||||||
0x21, _RU, R_DRENTAI3,
|
0x21, _RU, R_DRENTAI3,
|
||||||
0x21, _RE, R_KAMEI,
|
0x21, _RE, R_KAMEI,
|
||||||
0x11, _NI, R_DRENYOU2,
|
0x11, _NI, R_DRENYOU2,
|
||||||
0x01, _SA, R_FZKMEISI,
|
0x01, _SA, R_FZKMEISHI,
|
||||||
0x01, _ME, R_DMEISI,
|
0x01, _ME, R_DMEISHI,
|
||||||
0x11, _DA, R_DSHUUSI1,
|
0x11, _DA, R_DSHUUSI1,
|
||||||
0x21, _XTU, R_ONBIN1,
|
0x21, _XTU, R_ONBIN1,
|
||||||
0x22, _RO, _U, R_DAROU,
|
0x22, _RO, _U, R_DAROU,
|
||||||
|
|
@ -674,8 +623,7 @@ static unsigned char keiyou7[] = {
|
||||||
0x21, _RU, R_DRENTAI3,
|
0x21, _RU, R_DRENTAI3,
|
||||||
0x21, _RE, R_KAMEI,
|
0x21, _RE, R_KAMEI,
|
||||||
0x11, _NI, R_DRENYOU2,
|
0x11, _NI, R_DRENYOU2,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char keiyou8[] = {
|
static unsigned char keiyou8[] = {
|
||||||
0x80, R_KGOKAN,
|
0x80, R_KGOKAN,
|
||||||
|
|
@ -691,7 +639,7 @@ static unsigned char keiyou8[] = {
|
||||||
0x01, _KI, R_KRENTAI,
|
0x01, _KI, R_KRENTAI,
|
||||||
0x01, _KU, R_KRENYOU,
|
0x01, _KU, R_KRENYOU,
|
||||||
0x02, _KE, _RE, R_KATEI2,
|
0x02, _KE, _RE, R_KATEI2,
|
||||||
0x01, _GE, R_DMEISI,
|
0x01, _GE, R_DMEISHI,
|
||||||
0x11, _DA, R_DSHUUSI1,
|
0x11, _DA, R_DSHUUSI1,
|
||||||
0x21, _XTU, R_ONBIN1,
|
0x21, _XTU, R_ONBIN1,
|
||||||
0x22, _RO, _U, R_DAROU,
|
0x22, _RO, _U, R_DAROU,
|
||||||
|
|
@ -702,9 +650,9 @@ static unsigned char keiyou8[] = {
|
||||||
0x21, _RU, R_DRENTAI3,
|
0x21, _RU, R_DRENTAI3,
|
||||||
0x21, _RE, R_KAMEI,
|
0x21, _RE, R_KAMEI,
|
||||||
0x11, _NI, R_DRENYOU2,
|
0x11, _NI, R_DRENYOU2,
|
||||||
0x01, _SA, R_FZKMEISI,
|
0x01, _SA, R_FZKMEISHI,
|
||||||
0x01, _MI, R_FZKMEISI,
|
0x01, _MI, R_FZKMEISHI,
|
||||||
0x01, _ME, R_DMEISI,
|
0x01, _ME, R_DMEISHI,
|
||||||
0x11, _DA, R_DSHUUSI1,
|
0x11, _DA, R_DSHUUSI1,
|
||||||
0x21, _XTU, R_ONBIN1,
|
0x21, _XTU, R_ONBIN1,
|
||||||
0x22, _RO, _U, R_DAROU,
|
0x22, _RO, _U, R_DAROU,
|
||||||
|
|
@ -715,8 +663,7 @@ static unsigned char keiyou8[] = {
|
||||||
0x21, _RU, R_DRENTAI3,
|
0x21, _RU, R_DRENTAI3,
|
||||||
0x21, _RE, R_KAMEI,
|
0x21, _RE, R_KAMEI,
|
||||||
0x11, _NI, R_DRENYOU2,
|
0x11, _NI, R_DRENYOU2,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char keiyou9[] = {
|
static unsigned char keiyou9[] = {
|
||||||
0x80, R_KGOKAN,
|
0x80, R_KGOKAN,
|
||||||
|
|
@ -732,7 +679,7 @@ static unsigned char keiyou9[] = {
|
||||||
0x01, _KI, R_KRENTAI,
|
0x01, _KI, R_KRENTAI,
|
||||||
0x01, _KU, R_KRENYOU,
|
0x01, _KU, R_KRENYOU,
|
||||||
0x02, _KE, _RE, R_KATEI2,
|
0x02, _KE, _RE, R_KATEI2,
|
||||||
0x01, _GE, R_DMEISI,
|
0x01, _GE, R_DMEISHI,
|
||||||
0x11, _DA, R_DSHUUSI1,
|
0x11, _DA, R_DSHUUSI1,
|
||||||
0x21, _XTU, R_ONBIN1,
|
0x21, _XTU, R_ONBIN1,
|
||||||
0x22, _RO, _U, R_DAROU,
|
0x22, _RO, _U, R_DAROU,
|
||||||
|
|
@ -743,9 +690,8 @@ static unsigned char keiyou9[] = {
|
||||||
0x21, _RU, R_DRENTAI3,
|
0x21, _RU, R_DRENTAI3,
|
||||||
0x21, _RE, R_KAMEI,
|
0x21, _RE, R_KAMEI,
|
||||||
0x11, _NI, R_DRENYOU2,
|
0x11, _NI, R_DRENYOU2,
|
||||||
0x01, _SA, R_FZKMEISI,
|
0x01, _SA, R_FZKMEISHI,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char keiyou10[] = {
|
static unsigned char keiyou10[] = {
|
||||||
0x80, R_KGOKAN,
|
0x80, R_KGOKAN,
|
||||||
|
|
@ -761,7 +707,7 @@ static unsigned char keiyou10[] = {
|
||||||
0x01, _KI, R_KRENTAI,
|
0x01, _KI, R_KRENTAI,
|
||||||
0x01, _KU, R_KRENYOU,
|
0x01, _KU, R_KRENYOU,
|
||||||
0x02, _KE, _RE, R_KATEI2,
|
0x02, _KE, _RE, R_KATEI2,
|
||||||
0x01, _GE, R_DMEISI,
|
0x01, _GE, R_DMEISHI,
|
||||||
0x11, _DA, R_DSHUUSI1,
|
0x11, _DA, R_DSHUUSI1,
|
||||||
0x21, _XTU, R_ONBIN1,
|
0x21, _XTU, R_ONBIN1,
|
||||||
0x22, _RO, _U, R_DAROU,
|
0x22, _RO, _U, R_DAROU,
|
||||||
|
|
@ -772,8 +718,8 @@ static unsigned char keiyou10[] = {
|
||||||
0x21, _RU, R_DRENTAI3,
|
0x21, _RU, R_DRENTAI3,
|
||||||
0x21, _RE, R_KAMEI,
|
0x21, _RE, R_KAMEI,
|
||||||
0x11, _NI, R_DRENYOU2,
|
0x11, _NI, R_DRENYOU2,
|
||||||
0x01, _SA, R_FZKMEISI,
|
0x01, _SA, R_FZKMEISHI,
|
||||||
0x01, _ME, R_DMEISI,
|
0x01, _ME, R_DMEISHI,
|
||||||
0x11, _DA, R_DSHUUSI1,
|
0x11, _DA, R_DSHUUSI1,
|
||||||
0x21, _XTU, R_ONBIN1,
|
0x21, _XTU, R_ONBIN1,
|
||||||
0x22, _RO, _U, R_DAROU,
|
0x22, _RO, _U, R_DAROU,
|
||||||
|
|
@ -784,8 +730,7 @@ static unsigned char keiyou10[] = {
|
||||||
0x21, _RU, R_DRENTAI3,
|
0x21, _RU, R_DRENTAI3,
|
||||||
0x21, _RE, R_KAMEI,
|
0x21, _RE, R_KAMEI,
|
||||||
0x11, _NI, R_DRENYOU2,
|
0x11, _NI, R_DRENYOU2,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char keiyou11[] = {
|
static unsigned char keiyou11[] = {
|
||||||
0x80, R_KGOKAN,
|
0x80, R_KGOKAN,
|
||||||
|
|
@ -795,9 +740,9 @@ static unsigned char keiyou11[] = {
|
||||||
0x01, _KI, R_KRENTAI,
|
0x01, _KI, R_KRENTAI,
|
||||||
0x01, _KU, R_KRENYOU,
|
0x01, _KU, R_KRENYOU,
|
||||||
0x02, _KE, _RE, R_KATEI2,
|
0x02, _KE, _RE, R_KATEI2,
|
||||||
0x01, _SA, R_FZKMEISI,
|
0x01, _SA, R_FZKMEISHI,
|
||||||
0x01, _MI, R_FZKMEISI,
|
0x01, _MI, R_FZKMEISHI,
|
||||||
0x01, _ME, R_DMEISI,
|
0x01, _ME, R_DMEISHI,
|
||||||
0x11, _DA, R_DSHUUSI1,
|
0x11, _DA, R_DSHUUSI1,
|
||||||
0x21, _XTU, R_ONBIN1,
|
0x21, _XTU, R_ONBIN1,
|
||||||
0x22, _RO, _U, R_DAROU,
|
0x22, _RO, _U, R_DAROU,
|
||||||
|
|
@ -808,8 +753,7 @@ static unsigned char keiyou11[] = {
|
||||||
0x21, _RU, R_DRENTAI3,
|
0x21, _RU, R_DRENTAI3,
|
||||||
0x21, _RE, R_KAMEI,
|
0x21, _RE, R_KAMEI,
|
||||||
0x11, _NI, R_DRENYOU2,
|
0x11, _NI, R_DRENYOU2,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char keidou1[] = {
|
static unsigned char keidou1[] = {
|
||||||
0x80, R_DGOKAN,
|
0x80, R_DGOKAN,
|
||||||
|
|
@ -823,20 +767,18 @@ static unsigned char keidou1[] = {
|
||||||
0x11, _RU, R_DRENTAI3,
|
0x11, _RU, R_DRENTAI3,
|
||||||
0x11, _RE, R_KAMEI,
|
0x11, _RE, R_KAMEI,
|
||||||
0x01, _NI, R_DRENYOU2,
|
0x01, _NI, R_DRENYOU2,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char keidou2[] = {
|
static unsigned char keidou2[] = {
|
||||||
0x80, R_DGOKAN,
|
0x80, R_DGOKAN,
|
||||||
0x02, _TA, _RU, R_DRENTAI2,
|
0x02, _TA, _RU, R_DRENTAI2,
|
||||||
0x11, _RE, R_KATEI2,
|
0x11, _RE, R_KATEI2,
|
||||||
0x01, _TO, R_DRENYOU3,
|
0x01, _TO, R_DRENYOU3,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char keidou4[] = {
|
static unsigned char keidou4[] = {
|
||||||
0x80, R_DGOKAN,
|
0x80, R_DGOKAN,
|
||||||
0x01, _SA, R_FZKMEISI,
|
0x01, _SA, R_FZKMEISHI,
|
||||||
0x01, _DA, R_DSHUUSI1,
|
0x01, _DA, R_DSHUUSI1,
|
||||||
0x11, _XTU, R_ONBIN1,
|
0x11, _XTU, R_ONBIN1,
|
||||||
0x12, _RO, _U, R_DAROU,
|
0x12, _RO, _U, R_DAROU,
|
||||||
|
|
@ -847,8 +789,7 @@ static unsigned char keidou4[] = {
|
||||||
0x11, _RU, R_DRENTAI3,
|
0x11, _RU, R_DRENTAI3,
|
||||||
0x11, _RE, R_KAMEI,
|
0x11, _RE, R_KAMEI,
|
||||||
0x01, _NI, R_DRENYOU2,
|
0x01, _NI, R_DRENYOU2,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char keidou9[] = {
|
static unsigned char keidou9[] = {
|
||||||
0x80, R_DGOKAN,
|
0x80, R_DGOKAN,
|
||||||
|
|
@ -864,11 +805,10 @@ static unsigned char keidou9[] = {
|
||||||
0x01, _NI, R_DRENYOU2,
|
0x01, _NI, R_DRENYOU2,
|
||||||
0x01, _NO, R_CUT,
|
0x01, _NO, R_CUT,
|
||||||
0x12, _KO, _TO, R_KOTO,
|
0x12, _KO, _TO, R_KOTO,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char sahenmeisi1[] = {
|
static unsigned char sahenmeisi1[] = {
|
||||||
0x00, R_SMEISI1,
|
0x00, R_SMEISHI1,
|
||||||
0x01, _SA, R_MIZEN1,
|
0x01, _SA, R_MIZEN1,
|
||||||
0x01, _SI, R_SI1,
|
0x01, _SI, R_SI1,
|
||||||
0x11, _RO, R_MEIREI1,
|
0x11, _RO, R_MEIREI1,
|
||||||
|
|
@ -877,11 +817,10 @@ static unsigned char sahenmeisi1[] = {
|
||||||
0x11, _RE, R_KATEI2,
|
0x11, _RE, R_KATEI2,
|
||||||
0x01, _SE, R_MIZEN2,
|
0x01, _SE, R_MIZEN2,
|
||||||
0x11, _YO, R_MEIREI2,
|
0x11, _YO, R_MEIREI2,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char sahenmeisi2[] = {
|
static unsigned char sahenmeisi2[] = {
|
||||||
0x00, R_SMEISI1,
|
0x00, R_SMEISHI1,
|
||||||
0x01, _SA, R_MIZEN1,
|
0x01, _SA, R_MIZEN1,
|
||||||
0x01, _SI, R_SI1,
|
0x01, _SI, R_SI1,
|
||||||
0x11, _RO, R_MEIREI1,
|
0x11, _RO, R_MEIREI1,
|
||||||
|
|
@ -890,12 +829,11 @@ static unsigned char sahenmeisi2[] = {
|
||||||
0x11, _RE, R_KATEI2,
|
0x11, _RE, R_KATEI2,
|
||||||
0x01, _SE, R_MIZEN2,
|
0x01, _SE, R_MIZEN2,
|
||||||
0x11, _YO, R_MEIREI2,
|
0x11, _YO, R_MEIREI2,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char keidoumeisi[] = {
|
static unsigned char keidoumeisi[] = {
|
||||||
0x00, R_DMEISI,
|
0x00, R_DMEISHI,
|
||||||
0x01, _SA, R_FZKMEISI,
|
0x01, _SA, R_FZKMEISHI,
|
||||||
0x01, _DA, R_DSHUUSI1,
|
0x01, _DA, R_DSHUUSI1,
|
||||||
0x11, _XTU, R_ONBIN1,
|
0x11, _XTU, R_ONBIN1,
|
||||||
0x12, _RO, _U, R_DAROU,
|
0x12, _RO, _U, R_DAROU,
|
||||||
|
|
@ -906,8 +844,7 @@ static unsigned char keidoumeisi[] = {
|
||||||
0x11, _RU, R_DRENTAI3,
|
0x11, _RU, R_DRENTAI3,
|
||||||
0x11, _RE, R_KAMEI,
|
0x11, _RE, R_KAMEI,
|
||||||
0x01, _NI, R_DRENYOU2,
|
0x01, _NI, R_DRENYOU2,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char keiyoustb[] = {
|
static unsigned char keiyoustb[] = {
|
||||||
0x00, R_KSTB,
|
0x00, R_KSTB,
|
||||||
|
|
@ -917,28 +854,25 @@ static unsigned char keiyoustb[] = {
|
||||||
0x01, _KI, R_KRENTAI,
|
0x01, _KI, R_KRENTAI,
|
||||||
0x01, _KU, R_KRENYOU,
|
0x01, _KU, R_KRENYOU,
|
||||||
0x02, _KE, _RE, R_KATEI2,
|
0x02, _KE, _RE, R_KATEI2,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char ichistb[] = {
|
static unsigned char ichistb[] = {
|
||||||
0x00, R_ICHISETUBI,
|
0x00, R_ICHISETSUBI,
|
||||||
0x01, _YO, R_MEIREI2,
|
0x01, _YO, R_MEIREI2,
|
||||||
0x01, _RU, R_SHUUSI,
|
0x01, _RU, R_SHUUSI,
|
||||||
0x01, _RE, R_KATEI2,
|
0x01, _RE, R_KATEI2,
|
||||||
0x01, _RO, R_MEIREI1,
|
0x01, _RO, R_MEIREI1,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char fukusi2[] = {
|
static unsigned char fukusi2[] = {
|
||||||
0x00, R_FUKUSI,
|
0x00, R_FUKUSHI,
|
||||||
0x01, _TO, R_F_FUKUSI,
|
0x01, _TO, R_F_FUKUSHI,
|
||||||
0x11, _SI, R_SI1,
|
0x11, _SI, R_SI1,
|
||||||
0x11, _HA, R_F_FUKUSI,
|
0x11, _HA, R_F_FUKUSHI,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char fukusi3[] = {
|
static unsigned char fukusi3[] = {
|
||||||
0x00, R_FUKUSI,
|
0x00, R_FUKUSHI,
|
||||||
0x01, _SA, R_MIZEN1,
|
0x01, _SA, R_MIZEN1,
|
||||||
0x01, _SI, R_SI1,
|
0x01, _SI, R_SI1,
|
||||||
0x11, _RO, R_MEIREI1,
|
0x11, _RO, R_MEIREI1,
|
||||||
|
|
@ -947,14 +881,13 @@ static unsigned char fukusi3[] = {
|
||||||
0x11, _RE, R_KATEI2,
|
0x11, _RE, R_KATEI2,
|
||||||
0x01, _SE, R_MIZEN2,
|
0x01, _SE, R_MIZEN2,
|
||||||
0x11, _YO, R_MEIREI2,
|
0x11, _YO, R_MEIREI2,
|
||||||
0x01, _TO, R_F_FUKUSI,
|
0x01, _TO, R_F_FUKUSHI,
|
||||||
0x11, _SI, R_SI1,
|
0x11, _SI, R_SI1,
|
||||||
0x11, _HA, R_F_FUKUSI,
|
0x11, _HA, R_F_FUKUSHI,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char fukusi4[] = {
|
static unsigned char fukusi4[] = {
|
||||||
0x00, R_FUKUSI,
|
0x00, R_FUKUSHI,
|
||||||
0x01, _SA, R_MIZEN1,
|
0x01, _SA, R_MIZEN1,
|
||||||
0x01, _SI, R_SI1,
|
0x01, _SI, R_SI1,
|
||||||
0x11, _RO, R_MEIREI1,
|
0x11, _RO, R_MEIREI1,
|
||||||
|
|
@ -963,43 +896,38 @@ static unsigned char fukusi4[] = {
|
||||||
0x11, _RE, R_KATEI2,
|
0x11, _RE, R_KATEI2,
|
||||||
0x01, _SE, R_MIZEN2,
|
0x01, _SE, R_MIZEN2,
|
||||||
0x11, _YO, R_MEIREI2,
|
0x11, _YO, R_MEIREI2,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char fukusi5[] = {
|
static unsigned char fukusi5[] = {
|
||||||
0x00, R_FUKUSI,
|
0x00, R_FUKUSHI,
|
||||||
0x01, _NI, R_F_FUKUSI,
|
0x01, _NI, R_F_FUKUSHI,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char fukusi6[] = {
|
static unsigned char fukusi6[] = {
|
||||||
0x00, R_FUKUSI,
|
0x00, R_FUKUSHI,
|
||||||
0x01, _MO, R_F_FUKUSI,
|
0x01, _MO, R_F_FUKUSHI,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char fukusi7[] = {
|
static unsigned char fukusi7[] = {
|
||||||
0x00, R_FUKUSI,
|
0x00, R_FUKUSHI,
|
||||||
0x01, _NO, R_F_FUKUSI,
|
0x01, _NO, R_F_FUKUSHI,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char fukusi8[] = {
|
static unsigned char fukusi8[] = {
|
||||||
0x00, R_FUKUSI,
|
0x00, R_FUKUSHI,
|
||||||
0x01, _DA, R_DSHUUSI1,
|
0x01, _DA, R_DSHUUSI1,
|
||||||
0x11, _XTU, R_ONBIN1,
|
0x11, _XTU, R_ONBIN1,
|
||||||
0x02, _DE, _SI, R_DESHI,
|
0x02, _DE, _SI, R_DESHI,
|
||||||
0x21, _XYO, R_SHO,
|
0x21, _XYO, R_SHO,
|
||||||
0x31, _U, R_DESHOU,
|
0x31, _U, R_DESHOU,
|
||||||
0x11, _SU, R_DESU,
|
0x11, _SU, R_DESU,
|
||||||
0x01, _TO, R_F_FUKUSI,
|
0x01, _TO, R_F_FUKUSHI,
|
||||||
0x11, _SI, R_SI1,
|
0x11, _SI, R_SI1,
|
||||||
0x11, _HA, R_F_FUKUSI,
|
0x11, _HA, R_F_FUKUSHI,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
static unsigned char fukusi9[] = {
|
static unsigned char fukusi9[] = {
|
||||||
0x00, R_FUKUSI,
|
0x00, R_FUKUSHI,
|
||||||
0x01, _SA, R_MIZEN1,
|
0x01, _SA, R_MIZEN1,
|
||||||
0x01, _SI, R_SI1,
|
0x01, _SI, R_SI1,
|
||||||
0x11, _RO, R_MEIREI1,
|
0x11, _RO, R_MEIREI1,
|
||||||
|
|
@ -1014,14 +942,13 @@ static unsigned char fukusi9[] = {
|
||||||
0x21, _XYO, R_SHO,
|
0x21, _XYO, R_SHO,
|
||||||
0x31, _U, R_DESHOU,
|
0x31, _U, R_DESHOU,
|
||||||
0x11, _SU, R_DESU,
|
0x11, _SU, R_DESU,
|
||||||
0x01, _TO, R_F_FUKUSI,
|
0x01, _TO, R_F_FUKUSHI,
|
||||||
0x11, _SI, R_SI1,
|
0x11, _SI, R_SI1,
|
||||||
0x11, _HA, R_F_FUKUSI,
|
0x11, _HA, R_F_FUKUSHI,
|
||||||
0x01, _NO, R_F_FUKUSI,
|
0x01, _NO, R_F_FUKUSHI,
|
||||||
0xff
|
0xff};
|
||||||
};
|
|
||||||
|
|
||||||
unsigned char *conjadr[] = {
|
unsigned char* conjadr[] = {
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
|
|
@ -1241,5 +1168,4 @@ unsigned char *conjadr[] = {
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0
|
0};
|
||||||
};
|
|
||||||
|
|
|
||||||
44
const.h
44
const.h
|
|
@ -76,8 +76,8 @@
|
||||||
#define ERROR -1
|
#define ERROR -1
|
||||||
|
|
||||||
#ifndef FALSE
|
#ifndef FALSE
|
||||||
# define TRUE -1
|
#define TRUE -1
|
||||||
# define FALSE (!TRUE)
|
#define FALSE (!TRUE)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define MATCH 0
|
#define MATCH 0
|
||||||
|
|
@ -90,7 +90,7 @@
|
||||||
#define AD_NotUserDict 0x0001
|
#define AD_NotUserDict 0x0001
|
||||||
#define AD_BadYomi 0x0002
|
#define AD_BadYomi 0x0002
|
||||||
#define AD_BadKanji 0x0004
|
#define AD_BadKanji 0x0004
|
||||||
#define AD_BadHinsi 0x0008
|
#define AD_BadHinshi 0x0008
|
||||||
|
|
||||||
#define AD_ArExist 0x0010
|
#define AD_ArExist 0x0010
|
||||||
#define AD_OvflwDouBlk 0x0020
|
#define AD_OvflwDouBlk 0x0020
|
||||||
|
|
@ -99,12 +99,12 @@
|
||||||
#define AD_OvflwIndex 0x0100
|
#define AD_OvflwIndex 0x0100
|
||||||
|
|
||||||
#define AD_NoMidasi 0x0010
|
#define AD_NoMidasi 0x0010
|
||||||
#define AD_NoHinsi 0x0020
|
#define AD_NoHinshi 0x0020
|
||||||
#define AD_NoKanji 0x0040
|
#define AD_NoKanji 0x0040
|
||||||
|
|
||||||
#define C_WAKACHI 0x00
|
#define C_WAKACHI 0x00
|
||||||
#define C_MINASI 0x01
|
#define C_MINASI 0x01
|
||||||
#define C_BUNSETU 0x02
|
#define C_BUNSETSU 0x02
|
||||||
#define C_DICT 0x03
|
#define C_DICT 0x03
|
||||||
#define C_N_ARABIA 0x04
|
#define C_N_ARABIA 0x04
|
||||||
#define C_N_ARACMA 0x05
|
#define C_N_ARACMA 0x05
|
||||||
|
|
@ -134,8 +134,8 @@
|
||||||
#define K_DOUSHI 1
|
#define K_DOUSHI 1
|
||||||
#define K_YOUGEN 2
|
#define K_YOUGEN 2
|
||||||
#define K_TAIGEN 3
|
#define K_TAIGEN 3
|
||||||
#define K_FUKUSI 4
|
#define K_FUKUSHI 4
|
||||||
#define K_RENTAISI 5
|
#define K_RENTAISHI 5
|
||||||
#define K_SONOTA 6
|
#define K_SONOTA 6
|
||||||
|
|
||||||
#define EUC_a1 (unsigned char)0xa1
|
#define EUC_a1 (unsigned char)0xa1
|
||||||
|
|
@ -187,7 +187,7 @@
|
||||||
#define SETTOU_KIGOU 4
|
#define SETTOU_KIGOU 4
|
||||||
|
|
||||||
#define NumKetaLength 16
|
#define NumKetaLength 16
|
||||||
#define NumWordBuf ((NumKetaLength+3)/4)
|
#define NumWordBuf ((NumKetaLength + 3) / 4)
|
||||||
|
|
||||||
#define MainSegmentLength 2048
|
#define MainSegmentLength 2048
|
||||||
#define MainIndexLength 2048
|
#define MainIndexLength 2048
|
||||||
|
|
@ -195,7 +195,7 @@
|
||||||
|
|
||||||
#define MaxYomiLength 32
|
#define MaxYomiLength 32
|
||||||
#define MaxKanjiLength 32
|
#define MaxKanjiLength 32
|
||||||
#define MaxHinsiNumber 16
|
#define MaxHinshiNumber 16
|
||||||
#define MaxAtrNumber 16
|
#define MaxAtrNumber 16
|
||||||
#define MaxJosiNumber 16
|
#define MaxJosiNumber 16
|
||||||
|
|
||||||
|
|
@ -205,20 +205,20 @@
|
||||||
#define DouonBlkSizeNumber 3
|
#define DouonBlkSizeNumber 3
|
||||||
|
|
||||||
#define DouonBlkTerm 0xff
|
#define DouonBlkTerm 0xff
|
||||||
#define HinsiBlkTerm 0xff
|
#define HinshiBlkTerm 0xff
|
||||||
|
|
||||||
#define NormalKanjiMask 0x7f
|
#define NormalKanjiMask 0x7f
|
||||||
#define SS3Kanji 0x0080
|
#define SS3Kanji 0x0080
|
||||||
#define ZenHiraAssyuku 0x80
|
#define ZenHiraAsshuku 0x80
|
||||||
#define OffsetAssyuku 0x90
|
#define OffsetAsshuku 0x90
|
||||||
#define ZenKataAssyuku 0xa0
|
#define ZenKataAsshuku 0xa0
|
||||||
#define AiAttribute 0xb0
|
#define AiAttribute 0xb0
|
||||||
#define KanjiAssyuku 0xc0
|
#define KanjiAsshuku 0xc0
|
||||||
#define LeadingHankaku 0xd0
|
#define LeadingHankaku 0xd0
|
||||||
#define KanjiStrEnd 0x00
|
#define KanjiStrEnd 0x00
|
||||||
#define IsAssyuku 0x80
|
#define IsAsshuku 0x80
|
||||||
#define AssukuUse2byte 0x90
|
#define AssukuUse2byte 0x90
|
||||||
#define KnjAssyukuMask 0x0f
|
#define KnjAsshukuMask 0x0f
|
||||||
#define KanjiCodeMask 0x0f
|
#define KanjiCodeMask 0x0f
|
||||||
#define KanjiModeMask 0xf0
|
#define KanjiModeMask 0xf0
|
||||||
#define AtrMsKanjiOfs 0xc0c0
|
#define AtrMsKanjiOfs 0xc0c0
|
||||||
|
|
@ -229,29 +229,29 @@
|
||||||
#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 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 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 TooLongKanji "\264\301\273\372\312\270\273\372\316\363\244\254\304\271\244\271\244\256\244\336\244\271"
|
||||||
#define TooLongHinsi "\311\312\273\354\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 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 TooLongJosi "\275\365\273\354\312\270\273\372\316\363\244\254\260\333\276\357\244\307\244\271"
|
||||||
#define BadHinsi "\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 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 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 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 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 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 TooManyAtr "\302\260\300\255\244\316\277\364\244\254\302\277\244\271\244\256\244\336\244\271"
|
||||||
#define TooManyHinsi "\311\312\273\354\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 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 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 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 HinsiTankan cnvhinsi("\303\261\264\301")
|
#define HinshiTankan cnvhinshi("\303\261\264\301")
|
||||||
|
|
||||||
#define DIVLIST 1
|
#define DIVLIST 1
|
||||||
#define ASSYUKUREC 2
|
#define ASSHUKUREC 2
|
||||||
#define STRING 3
|
#define STRING 3
|
||||||
#define HINDOREC 4
|
#define HINDOREC 4
|
||||||
#define OFFSETREC 5
|
#define OFFSETREC 5
|
||||||
#define KANJIREC 6
|
#define KANJIREC 6
|
||||||
#define HINSIREC 7
|
#define HINSHIREC 7
|
||||||
#define DOUONREC 8
|
#define DOUONREC 8
|
||||||
|
|
||||||
#endif /* SJ3_CONST_H_ */
|
#endif /* SJ3_CONST_H_ */
|
||||||
|
|
|
||||||
337
conv.c
337
conv.c
|
|
@ -27,14 +27,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: conv.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:03:11 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include "wchar16.h"
|
#include "wchar16.h"
|
||||||
#include "select.h"
|
#include "select.h"
|
||||||
|
|
@ -42,150 +34,182 @@
|
||||||
#include "inkey.h"
|
#include "inkey.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
|
|
||||||
#define MSEC 300
|
#define MSEC 300
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int keyvalue;
|
int keyvalue;
|
||||||
|
|
||||||
char *funckey[] = {
|
char* funckey[] = {
|
||||||
"\033OH", "\033OP", "\033OQ",
|
"\033OH",
|
||||||
"\033OR", "\033OS", "\033OT",
|
"\033OP",
|
||||||
"\033OU", "\033OV", "\033OW",
|
"\033OQ",
|
||||||
"\033OX", "\033OY", "\033OZ",
|
"\033OR",
|
||||||
"\033[C", "\033OC", "\033[D",
|
"\033OS",
|
||||||
"\033OD", "\033[A", "\033OA",
|
"\033OT",
|
||||||
"\033[B", "\033OB", "\033[H",
|
"\033OU",
|
||||||
"\033[4~", "\033[11~", "\033[8~",
|
"\033OV",
|
||||||
"\033[12~", "\033[13~", "\033[9~",
|
"\033OW",
|
||||||
"\033[14~", "\033[15~", "\033[17~",
|
"\033OX",
|
||||||
"\033[18~", "\033[19~", "\033[20~",
|
"\033OY",
|
||||||
"\033[21~", "\033[7~",
|
"\033OZ",
|
||||||
};
|
"\033[C",
|
||||||
|
"\033OC",
|
||||||
|
"\033[D",
|
||||||
|
"\033OD",
|
||||||
|
"\033[A",
|
||||||
|
"\033OA",
|
||||||
|
"\033[B",
|
||||||
|
"\033OB",
|
||||||
|
"\033[H",
|
||||||
|
"\033[4~",
|
||||||
|
"\033[11~",
|
||||||
|
"\033[8~",
|
||||||
|
"\033[12~",
|
||||||
|
"\033[13~",
|
||||||
|
"\033[9~",
|
||||||
|
"\033[14~",
|
||||||
|
"\033[15~",
|
||||||
|
"\033[17~",
|
||||||
|
"\033[18~",
|
||||||
|
"\033[19~",
|
||||||
|
"\033[20~",
|
||||||
|
"\033[21~",
|
||||||
|
"\033[7~",
|
||||||
|
};
|
||||||
|
|
||||||
int funcvalue[] = {
|
int funcvalue[] = {
|
||||||
KEY_CONV, KEY_HENKAN, KEY_MUHENKAN,
|
KEY_CONV,
|
||||||
KEY_ETC, KEY_KETTEI, KEY_CODE,
|
KEY_HENKAN,
|
||||||
KEY_HALPHA, KEY_ZALPHA, KEY_HKATA,
|
KEY_MUHENKAN,
|
||||||
KEY_ZKATA, KEY_ZHIRA, KEY_OTHER,
|
KEY_ETC,
|
||||||
KEY_RIGHT, KEY_RIGHT, KEY_LEFT,
|
KEY_KETTEI,
|
||||||
KEY_LEFT, KEY_UP, KEY_UP,
|
KEY_CODE,
|
||||||
KEY_DOWN, KEY_DOWN, KEY_CONV,
|
KEY_HALPHA,
|
||||||
KEY_HENKAN, KEY_HENKAN, KEY_MUHENKAN,
|
KEY_ZALPHA,
|
||||||
KEY_MUHENKAN, KEY_ETC, KEY_KETTEI,
|
KEY_HKATA,
|
||||||
KEY_KETTEI, KEY_CODE, KEY_HALPHA,
|
KEY_ZKATA,
|
||||||
KEY_ZALPHA, KEY_HKATA, KEY_ZKATA,
|
KEY_ZHIRA,
|
||||||
KEY_ZHIRA, KEY_CONV,
|
KEY_OTHER,
|
||||||
};
|
KEY_RIGHT,
|
||||||
|
KEY_RIGHT,
|
||||||
int keynumber = sizeof(funckey)/sizeof(char*);
|
KEY_LEFT,
|
||||||
|
KEY_LEFT,
|
||||||
|
KEY_UP,
|
||||||
|
KEY_UP,
|
||||||
|
KEY_DOWN,
|
||||||
|
KEY_DOWN,
|
||||||
|
KEY_CONV,
|
||||||
|
KEY_HENKAN,
|
||||||
|
KEY_HENKAN,
|
||||||
|
KEY_MUHENKAN,
|
||||||
|
KEY_MUHENKAN,
|
||||||
|
KEY_ETC,
|
||||||
|
KEY_KETTEI,
|
||||||
|
KEY_KETTEI,
|
||||||
|
KEY_CODE,
|
||||||
|
KEY_HALPHA,
|
||||||
|
KEY_ZALPHA,
|
||||||
|
KEY_HKATA,
|
||||||
|
KEY_ZKATA,
|
||||||
|
KEY_ZHIRA,
|
||||||
|
KEY_CONV,
|
||||||
|
};
|
||||||
|
|
||||||
|
int keynumber = sizeof(funckey) / sizeof(char*);
|
||||||
|
|
||||||
extern int Direct;
|
extern int Direct;
|
||||||
extern int master;
|
extern int master;
|
||||||
extern wchar16_t Ukey[UKEYNUM][SEQLEN+1];
|
extern wchar16_t Ukey[UKEYNUM][SEQLEN + 1];
|
||||||
extern int Uvalue[];
|
extern int Uvalue[];
|
||||||
extern int Unumber;
|
extern int Unumber;
|
||||||
|
|
||||||
|
convert_stat() {
|
||||||
|
stat_init();
|
||||||
convert_stat ()
|
stat_conv();
|
||||||
{
|
|
||||||
stat_init ();
|
|
||||||
stat_conv ();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
inputprocess ()
|
inputprocess() {
|
||||||
{
|
|
||||||
int c;
|
int c;
|
||||||
wchar16_t obuf[2];
|
wchar16_t obuf[2];
|
||||||
|
|
||||||
if (Direct) {
|
if(Direct) {
|
||||||
set_guide_line (KEY_CONV);
|
set_guide_line(KEY_CONV);
|
||||||
convert_stat ();
|
convert_stat();
|
||||||
}
|
}
|
||||||
set_guide_line (KEY_NORMAL);
|
set_guide_line(KEY_NORMAL);
|
||||||
print_guide_line ();
|
print_guide_line();
|
||||||
for (;;) {
|
for(;;) {
|
||||||
if ((c = inkey ()) == EOF)
|
if((c = inkey()) == EOF)
|
||||||
continue;
|
continue;
|
||||||
switch (keyvalue) {
|
switch(keyvalue) {
|
||||||
case KEY_NORMAL:
|
case KEY_NORMAL:
|
||||||
obuf[0] = c;
|
obuf[0] = c;
|
||||||
obuf[1] = 0;
|
obuf[1] = 0;
|
||||||
SJ_write (obuf, 1);
|
SJ_write(obuf, 1);
|
||||||
break;
|
break;
|
||||||
case KEY_CONV:
|
case KEY_CONV:
|
||||||
set_guide_line (KEY_CONV);
|
set_guide_line(KEY_CONV);
|
||||||
convert_stat ();
|
convert_stat();
|
||||||
set_guide_line (KEY_NORMAL);
|
set_guide_line(KEY_NORMAL);
|
||||||
print_guide_line ();
|
print_guide_line();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
write_pseq (0);
|
write_pseq(0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
wchar16_t ibuf[KEYBUFSIZ];
|
wchar16_t ibuf[KEYBUFSIZ];
|
||||||
wchar16_t pars_seq[KEYBUFSIZ];
|
wchar16_t pars_seq[KEYBUFSIZ];
|
||||||
int buf_count = 0;
|
int buf_count = 0;
|
||||||
int pars_n;
|
int pars_n;
|
||||||
static int escape = 0;
|
static int escape = 0;
|
||||||
|
|
||||||
inkey ()
|
inkey() {
|
||||||
{
|
Conversion* cv;
|
||||||
Conversion *cv;
|
|
||||||
int i, j;
|
int i, j;
|
||||||
wchar16_t c;
|
wchar16_t c;
|
||||||
|
|
||||||
cv = current_conversion;
|
cv = current_conversion;
|
||||||
keyvalue = KEY_NORMAL;
|
keyvalue = KEY_NORMAL;
|
||||||
pars_n = 0;
|
pars_n = 0;
|
||||||
if (buf_count) {
|
if(buf_count) {
|
||||||
if (escape && cv->Cflag)
|
if(escape && cv->Cflag)
|
||||||
master_flush ();
|
master_flush();
|
||||||
c = *ibuf;
|
c = *ibuf;
|
||||||
}
|
} else {
|
||||||
else {
|
if((c = SJ_getchar()) == (wchar16_t)EOF)
|
||||||
if ((c = SJ_getchar ()) == (wchar16_t) EOF)
|
|
||||||
|
|
||||||
return ((short) c);
|
return ((short)c);
|
||||||
*ibuf = c;
|
*ibuf = c;
|
||||||
buf_count = 1;
|
buf_count = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(*ibuf == ESC) {
|
||||||
if (*ibuf == ESC) {
|
keyvalue = sequence(ibuf, &buf_count);
|
||||||
keyvalue = sequence (ibuf, &buf_count);
|
|
||||||
escape = 1;
|
escape = 1;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
escape = 0;
|
escape = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (keyvalue == KEY_NORMAL)
|
if(keyvalue == KEY_NORMAL)
|
||||||
keyvalue = parse_command (ibuf, &buf_count);
|
keyvalue = parse_command(ibuf, &buf_count);
|
||||||
|
|
||||||
if (keyvalue == KEY_NORMAL) {
|
if(keyvalue == KEY_NORMAL) {
|
||||||
c = *ibuf;
|
c = *ibuf;
|
||||||
for (i=1 ; i < buf_count ; i++)
|
for(i = 1; i < buf_count; i++)
|
||||||
ibuf[i - 1] = ibuf[i];
|
ibuf[i - 1] = ibuf[i];
|
||||||
buf_count--;
|
buf_count--;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (buf_count > KEYBUFLIM) {
|
if(buf_count > KEYBUFLIM) {
|
||||||
for (i = buf_count - 1; i >= 0 ; i --) {
|
for(i = buf_count - 1; i >= 0; i--) {
|
||||||
if (ibuf[i] == ESC) {
|
if(ibuf[i] == ESC) {
|
||||||
|
|
||||||
for (j = i ; j < buf_count ; j ++)
|
for(j = i; j < buf_count; j++)
|
||||||
ibuf[j-i] = ibuf[j];
|
ibuf[j - i] = ibuf[j];
|
||||||
buf_count -= i;
|
buf_count -= i;
|
||||||
return(c);
|
return (c);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -194,43 +218,40 @@ inkey ()
|
||||||
return (c);
|
return (c);
|
||||||
}
|
}
|
||||||
|
|
||||||
sequence (buf, count)
|
sequence(buf, count)
|
||||||
wchar16_t *buf;
|
wchar16_t* buf;
|
||||||
int *count;
|
int* count;
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int n;
|
int n;
|
||||||
SELECT_FD ifds;
|
SELECT_FD ifds;
|
||||||
struct timeval t;
|
struct timeval t;
|
||||||
wchar16_t *s;
|
wchar16_t* s;
|
||||||
int value;
|
int value;
|
||||||
|
|
||||||
|
if(*count > 1 && (value = parse_escape(buf, count, 1)) != KEY_MORE)
|
||||||
if (*count > 1 && (value = parse_escape (buf, count, 1)) != KEY_MORE)
|
|
||||||
return (value);
|
return (value);
|
||||||
|
|
||||||
s = buf + *count;
|
s = buf + *count;
|
||||||
for (;;) {
|
for(;;) {
|
||||||
t.tv_sec = 0;
|
t.tv_sec = 0;
|
||||||
t.tv_usec = UsecWeight (0);
|
t.tv_usec = UsecWeight(0);
|
||||||
FD_ZERO (&ifds);
|
FD_ZERO(&ifds);
|
||||||
FD_SET (STDIN, &ifds);
|
FD_SET(STDIN, &ifds);
|
||||||
if (select (STDIN + 1, &ifds, 0, 0, &t) <= 0) {
|
if(select(STDIN + 1, &ifds, 0, 0, &t) <= 0) {
|
||||||
if (errno == EINTR) {
|
if(errno == EINTR) {
|
||||||
errno = 0;
|
errno = 0;
|
||||||
continue;
|
continue;
|
||||||
} else {
|
} else {
|
||||||
return (parse_escape (buf, count, 0));
|
return (parse_escape(buf, count, 0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ((n = SJ_read (s, KEYBUFLIM)) <= 0) {
|
if((n = SJ_read(s, KEYBUFLIM)) <= 0) {
|
||||||
return (parse_escape (buf, *count, 0));
|
return (parse_escape(buf, *count, 0));
|
||||||
}
|
}
|
||||||
s += n;
|
s += n;
|
||||||
*count += n;
|
*count += n;
|
||||||
if ((value = parse_escape (buf, count, 1)) == KEY_MORE)
|
if((value = parse_escape(buf, count, 1)) == KEY_MORE)
|
||||||
continue;
|
continue;
|
||||||
else {
|
else {
|
||||||
return (value);
|
return (value);
|
||||||
|
|
@ -238,11 +259,9 @@ int *count;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
parse_escape(s, count, more)
|
||||||
|
wchar16_t* s;
|
||||||
parse_escape (s, count, more)
|
int* count;
|
||||||
wchar16_t *s;
|
|
||||||
int *count;
|
|
||||||
int more;
|
int more;
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
|
|
@ -251,81 +270,65 @@ int more;
|
||||||
|
|
||||||
possible = 0;
|
possible = 0;
|
||||||
|
|
||||||
|
for(i = 0; i < Unumber; i++) {
|
||||||
|
|
||||||
|
for(j = 0; j < *count; j++) {
|
||||||
for (i = 0 ; i < Unumber ; i ++) {
|
if(s[j] != Ukey[i][j])
|
||||||
|
|
||||||
|
|
||||||
for (j=0 ; j < *count ; j++) {
|
|
||||||
if (s[j] != Ukey[i][j])
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(j == wslen(&Ukey[i][0])) {
|
||||||
|
|
||||||
if (j == wslen (&Ukey[i][0])) {
|
Strncpy(pars_seq, s, j);
|
||||||
|
pars_seq[j] = (wchar16_t)'\0';
|
||||||
|
|
||||||
Strncpy (pars_seq, s, j);
|
|
||||||
pars_seq[j] = (wchar16_t) '\0';
|
|
||||||
pars_n = j;
|
pars_n = j;
|
||||||
|
|
||||||
|
|
||||||
*count -= j;
|
*count -= j;
|
||||||
|
|
||||||
|
if(*count > 0) {
|
||||||
if (*count > 0) {
|
Strncpy(temp, &s[j], *count);
|
||||||
Strncpy (temp, &s[j], *count);
|
temp[*count] = (wchar16_t)'\0';
|
||||||
temp[*count] = (wchar16_t) '\0';
|
|
||||||
wscpy(s, temp);
|
wscpy(s, temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
return (Uvalue[i]);
|
return (Uvalue[i]);
|
||||||
}
|
} else if(j == *count)
|
||||||
else if (j == *count)
|
|
||||||
possible = 1;
|
possible = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for(i = 0; i < keynumber; i++) {
|
||||||
|
|
||||||
|
for(j = 0; j < *count; j++) {
|
||||||
for (i = 0 ; i < keynumber ; i ++) {
|
if(s[j] != (unsigned char)funckey[i][j])
|
||||||
|
|
||||||
|
|
||||||
for (j = 0 ; j < *count ; j ++) {
|
|
||||||
if (s[j] != (unsigned char)funckey[i][j])
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(j == strlen(funckey[i])) {
|
||||||
|
|
||||||
if (j == strlen (funckey[i])) {
|
Strncpy(pars_seq, s, j);
|
||||||
|
pars_seq[j] = (wchar16_t)'\0';
|
||||||
|
|
||||||
Strncpy (pars_seq, s, j);
|
|
||||||
pars_seq[j] = (wchar16_t) '\0';
|
|
||||||
pars_n = j;
|
pars_n = j;
|
||||||
|
|
||||||
|
|
||||||
*count -= j;
|
*count -= j;
|
||||||
|
|
||||||
|
if(*count > 0) {
|
||||||
if (*count > 0) {
|
Strncpy(temp, &s[j], *count);
|
||||||
Strncpy (temp, &s[j], *count);
|
temp[*count] = (wchar16_t)'\0';
|
||||||
temp[*count] = (wchar16_t) '\0';
|
wscpy(s, temp);
|
||||||
wscpy (s, temp);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return (funcvalue[i]);
|
return (funcvalue[i]);
|
||||||
}
|
} else if(j == *count)
|
||||||
else if (j == *count)
|
|
||||||
possible = 1;
|
possible = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (*count == 1)
|
if(*count == 1)
|
||||||
return (KEY_NORMAL);
|
return (KEY_NORMAL);
|
||||||
else if (more && possible)
|
else if(more && possible)
|
||||||
return (KEY_MORE);
|
return (KEY_MORE);
|
||||||
else {
|
else {
|
||||||
Strncpy (pars_seq, s, *count);
|
Strncpy(pars_seq, s, *count);
|
||||||
pars_seq[*count] = (wchar16_t) '\0';
|
pars_seq[*count] = (wchar16_t)'\0';
|
||||||
pars_n = *count;
|
pars_n = *count;
|
||||||
*count = 0;
|
*count = 0;
|
||||||
*s = '\0';
|
*s = '\0';
|
||||||
|
|
@ -333,40 +336,36 @@ int more;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
write_pseq (mod)
|
write_pseq(mod) int mod;
|
||||||
int mod;
|
|
||||||
{
|
{
|
||||||
|
|
||||||
|
if(mod == 3) {
|
||||||
if (mod == 3) {
|
if(pars_n > 0) {
|
||||||
if (pars_n > 0) {
|
|
||||||
pars_n = 0;
|
pars_n = 0;
|
||||||
return (*pars_seq);
|
return (*pars_seq);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (mod == 2) {
|
if(mod == 2) {
|
||||||
if (pars_n == 1) {
|
if(pars_n == 1) {
|
||||||
pars_n = 0;
|
pars_n = 0;
|
||||||
return (*pars_seq);
|
return (*pars_seq);
|
||||||
}
|
}
|
||||||
pars_n = 0;
|
pars_n = 0;
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
if (mod == 1) {
|
if(mod == 1) {
|
||||||
if (pars_n == 1) {
|
if(pars_n == 1) {
|
||||||
pars_n = 0;
|
pars_n = 0;
|
||||||
return (*pars_seq);
|
return (*pars_seq);
|
||||||
}
|
} else if(IsGoto(*pars_seq)) {
|
||||||
else if (IsGoto (*pars_seq)) {
|
Strncpy(&ibuf[buf_count], &pars_seq[1], pars_n - 1);
|
||||||
Strncpy (&ibuf[buf_count], &pars_seq[1], pars_n - 1);
|
|
||||||
buf_count += pars_n - 1;
|
buf_count += pars_n - 1;
|
||||||
pars_n = 0;
|
pars_n = 0;
|
||||||
return (*pars_seq);
|
return (*pars_seq);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (pars_n > 0)
|
if(pars_n > 0)
|
||||||
SJ_through (pars_seq, pars_n);
|
SJ_through(pars_seq, pars_n);
|
||||||
pars_n = 0;
|
pars_n = 0;
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
21
conversion.h
21
conversion.h
|
|
@ -27,22 +27,14 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: conversion.h,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:03:43 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include "sj2.h"
|
#include "sj2.h"
|
||||||
#include "sj3libsj3.h"
|
#include "sj3libsj3.h"
|
||||||
#include "henkan.h"
|
#include "henkan.h"
|
||||||
|
|
||||||
typedef struct bunsetu_sj3 Bunsetu;
|
typedef struct bunsetsu_sj3 Bunsetsu;
|
||||||
|
|
||||||
typedef struct _Conversion {
|
typedef struct _Conversion {
|
||||||
unsigned short out_mode[BUFFLENGTH*2];
|
unsigned short out_mode[BUFFLENGTH * 2];
|
||||||
|
|
||||||
unsigned short Plen[BUFFLENGTH];
|
unsigned short Plen[BUFFLENGTH];
|
||||||
unsigned short OrgPlen[BUFFLENGTH];
|
unsigned short OrgPlen[BUFFLENGTH];
|
||||||
|
|
@ -76,13 +68,13 @@ typedef struct _Conversion {
|
||||||
short CurBun;
|
short CurBun;
|
||||||
short PreBun;
|
short PreBun;
|
||||||
|
|
||||||
Bunsetu Bun[BUFFLENGTH];
|
Bunsetsu Bun[BUFFLENGTH];
|
||||||
|
|
||||||
wchar16_t out_buf[BUFFLENGTH * 2];
|
wchar16_t out_buf[BUFFLENGTH * 2];
|
||||||
unsigned char in_mode[BUFFLENGTH * 2];
|
unsigned char in_mode[BUFFLENGTH * 2];
|
||||||
wchar16_t *span_p[BUFFLENGTH];
|
wchar16_t* span_p[BUFFLENGTH];
|
||||||
wchar16_t *Ppoint[BUFFLENGTH];
|
wchar16_t* Ppoint[BUFFLENGTH];
|
||||||
wchar16_t *Epoint[BUFFLENGTH];
|
wchar16_t* Epoint[BUFFLENGTH];
|
||||||
wchar16_t Halpha[BUFFLENGTH];
|
wchar16_t Halpha[BUFFLENGTH];
|
||||||
unsigned char kettei[BUFFLENGTH];
|
unsigned char kettei[BUFFLENGTH];
|
||||||
unsigned char Pkettei[BUFFLENGTH];
|
unsigned char Pkettei[BUFFLENGTH];
|
||||||
|
|
@ -104,7 +96,6 @@ typedef struct _Conversion {
|
||||||
unsigned char wrap;
|
unsigned char wrap;
|
||||||
} Conversion;
|
} Conversion;
|
||||||
|
|
||||||
|
|
||||||
wchar16_t osave_buf[BUFFLENGTH * 2];
|
wchar16_t osave_buf[BUFFLENGTH * 2];
|
||||||
unsigned short osave_mode[BUFFLENGTH * 2];
|
unsigned short osave_mode[BUFFLENGTH * 2];
|
||||||
unsigned short isave_mode[BUFFLENGTH * 2];
|
unsigned short isave_mode[BUFFLENGTH * 2];
|
||||||
|
|
|
||||||
30
cvtclknj.c
30
cvtclknj.c
|
|
@ -27,45 +27,25 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: cvtclknj.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:01:38 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include "sj_kcnv.h"
|
#include "sj_kcnv.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void cvtkouho(), setstyrec();
|
void cvtkouho(), setstyrec();
|
||||||
|
|
||||||
|
void cvtclknj() {
|
||||||
|
KHREC* krec;
|
||||||
void cvtclknj()
|
|
||||||
{
|
|
||||||
KHREC *krec;
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
if(!selectid) selectid = khcount;
|
||||||
|
|
||||||
|
|
||||||
if (!selectid) selectid = khcount;
|
|
||||||
|
|
||||||
i = khcount;
|
i = khcount;
|
||||||
krec = kouhotbl;
|
krec = kouhotbl;
|
||||||
|
|
||||||
while (i--) {
|
while(i--) {
|
||||||
if ((int)krec -> rank == (int)selectid) break;
|
if((int)krec->rank == (int)selectid) break;
|
||||||
krec++;
|
krec++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
setstyrec(krec);
|
setstyrec(krec);
|
||||||
|
|
||||||
|
|
||||||
cvtkouho(krec);
|
cvtkouho(krec);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
132
cvtdict.c
132
cvtdict.c
|
|
@ -27,58 +27,41 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: cvtdict.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:01:40 $
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include "sj_euc.h"
|
#include "sj_euc.h"
|
||||||
#include "sj_kcnv.h"
|
#include "sj_kcnv.h"
|
||||||
#include "kanakan.h"
|
#include "kanakan.h"
|
||||||
|
|
||||||
|
void cvtdict(KHREC* krec, CLREC* clrec, int flg) {
|
||||||
|
|
||||||
void
|
|
||||||
cvtdict(KHREC *krec, CLREC *clrec, int flg)
|
|
||||||
{
|
|
||||||
TypeDicOfs ofs;
|
TypeDicOfs ofs;
|
||||||
unsigned char *yptr;
|
unsigned char* yptr;
|
||||||
int jlen;
|
int jlen;
|
||||||
int stblen;
|
int stblen;
|
||||||
int sttlen;
|
int sttlen;
|
||||||
unsigned char *fptr;
|
unsigned char* fptr;
|
||||||
int cllen;
|
int cllen;
|
||||||
JREC *jrec;
|
JREC* jrec;
|
||||||
int i, j;
|
int i, j;
|
||||||
|
|
||||||
|
ofs = krec->offs;
|
||||||
ofs = krec -> offs;
|
jrec = clrec->jnode;
|
||||||
jrec = clrec -> jnode;
|
cllen = clrec->cllen;
|
||||||
cllen = clrec -> cllen;
|
|
||||||
|
|
||||||
yptr = inputyomi;
|
yptr = inputyomi;
|
||||||
|
|
||||||
|
jlen = jrec->jlen;
|
||||||
|
|
||||||
jlen = jrec -> jlen;
|
if((i = jrec->sttofs) != 0) {
|
||||||
|
|
||||||
|
if(i == SETTOU_KIGOU) {
|
||||||
if ((i = jrec -> sttofs) != 0) {
|
|
||||||
|
|
||||||
if (i == SETTOU_KIGOU) {
|
|
||||||
sttlen = 1;
|
sttlen = 1;
|
||||||
fptr = yptr;
|
fptr = yptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
else {
|
else {
|
||||||
fptr = Settou_ptr(i);
|
fptr = Settou_ptr(i);
|
||||||
sttlen = SttYomiLen(fptr);
|
sttlen = SttYomiLen(fptr);
|
||||||
fptr++;
|
fptr++;
|
||||||
if (!krec -> sttkj) fptr += 2;
|
if(!krec->sttkj) fptr += 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
*kanjitmp++ = *fptr++;
|
*kanjitmp++ = *fptr++;
|
||||||
|
|
@ -87,21 +70,17 @@ cvtdict(KHREC *krec, CLREC *clrec, int flg)
|
||||||
yptr += sttlen * 2;
|
yptr += sttlen * 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
else
|
else
|
||||||
sttlen = 0;
|
sttlen = 0;
|
||||||
|
|
||||||
|
if(flg) {
|
||||||
if (flg) {
|
|
||||||
|
|
||||||
(*Cvtnum_func[krec->mode - 1])(ystart + sttlen, yptr, jrec);
|
(*Cvtnum_func[krec->mode - 1])(ystart + sttlen, yptr, jrec);
|
||||||
|
|
||||||
|
yptr += (i = jrec->numlen) * 2;
|
||||||
yptr += (i = jrec -> numlen) * 2;
|
|
||||||
jlen -= i;
|
jlen -= i;
|
||||||
|
|
||||||
|
if(jrec->stbofs) {
|
||||||
if (jrec -> stbofs) {
|
|
||||||
*kanjitmp++ = *yptr++;
|
*kanjitmp++ = *yptr++;
|
||||||
*kanjitmp++ = *yptr++;
|
*kanjitmp++ = *yptr++;
|
||||||
jlen--;
|
jlen--;
|
||||||
|
|
@ -110,71 +89,60 @@ cvtdict(KHREC *krec, CLREC *clrec, int flg)
|
||||||
stblen = 0;
|
stblen = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
else if((i = jrec->stbofs) && (fptr = getstb(jrec->hinshi))) {
|
||||||
else if ((i = jrec -> stbofs) && (fptr = getstb(jrec -> hinsi))) {
|
|
||||||
fptr += i - 1;
|
fptr += i - 1;
|
||||||
stblen = StbYomiLen(fptr);
|
stblen = StbYomiLen(fptr);
|
||||||
jlen -= stblen;
|
jlen -= stblen;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
else {
|
else {
|
||||||
stblen = 0;
|
stblen = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(ofs) {
|
||||||
if (ofs) {
|
if(seldict(jrec->dicid)) {
|
||||||
if (seldict(jrec -> dicid)) {
|
(*curdict->getdic)(curdict, jrec->jseg);
|
||||||
(*curdict->getdic)(curdict, jrec -> jseg);
|
|
||||||
get_askknj();
|
get_askknj();
|
||||||
kanjitmp +=
|
kanjitmp +=
|
||||||
getkanji(yptr, jlen, dicbuf + ofs, kanjitmp);
|
getkanji(yptr, jlen, dicbuf + ofs, kanjitmp);
|
||||||
yptr += jlen * 2;
|
yptr += jlen * 2;
|
||||||
}
|
} else {
|
||||||
else {
|
while(jlen-- > 0) {
|
||||||
while (jlen-- > 0) {
|
for(i = 0; i < euc_codesize(*yptr); i++)
|
||||||
for ( i = 0; i < euc_codesize(*yptr); i++)
|
|
||||||
*kanjitmp++ = yptr[i];
|
*kanjitmp++ = yptr[i];
|
||||||
yptr += euc_codesize(*yptr);
|
yptr += euc_codesize(*yptr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(stblen) {
|
||||||
if (stblen) {
|
|
||||||
i = StbKnjLen(fptr);
|
i = StbKnjLen(fptr);
|
||||||
fptr += stblen + 2;
|
fptr += stblen + 2;
|
||||||
while (i-- > 0) *kanjitmp++ = *fptr++;
|
while(i-- > 0) *kanjitmp++ = *fptr++;
|
||||||
yptr += stblen * 2;
|
yptr += stblen * 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
i = cllen - (jrec->jlen);
|
||||||
i = cllen - (jrec -> jlen);
|
while(i-- > 0) {
|
||||||
while (i-- > 0) {
|
for(j = 0; j < euc_codesize(*yptr); j++)
|
||||||
for ( j = 0; j < euc_codesize(*yptr); j++)
|
|
||||||
*kanjitmp++ = yptr[j];
|
*kanjitmp++ = yptr[j];
|
||||||
yptr += euc_codesize(*yptr);
|
yptr += euc_codesize(*yptr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void cvtminasi(int len) {
|
||||||
|
unsigned char* ptr;
|
||||||
void
|
|
||||||
cvtminasi(int len)
|
|
||||||
{
|
|
||||||
unsigned char *ptr;
|
|
||||||
|
|
||||||
ptr = inputyomi;
|
ptr = inputyomi;
|
||||||
|
|
||||||
while (len-- > 0) {
|
while(len-- > 0) {
|
||||||
|
|
||||||
|
if(isknj1(*ptr)) {
|
||||||
if (isknj1(*ptr)) {
|
|
||||||
*kanjitmp++ = *ptr++;
|
*kanjitmp++ = *ptr++;
|
||||||
*kanjitmp++ = *ptr++;
|
*kanjitmp++ = *ptr++;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (*ptr == SS3) {
|
else if(*ptr == SS3) {
|
||||||
*kanjitmp++ = *ptr++;
|
*kanjitmp++ = *ptr++;
|
||||||
*kanjitmp++ = *ptr++;
|
*kanjitmp++ = *ptr++;
|
||||||
*kanjitmp++ = *ptr++;
|
*kanjitmp++ = *ptr++;
|
||||||
|
|
@ -184,40 +152,32 @@ cvtminasi(int len)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void cvtwakachi(CLREC* clrec) {
|
||||||
|
|
||||||
void
|
|
||||||
cvtwakachi(CLREC *clrec)
|
|
||||||
{
|
|
||||||
int jlen;
|
int jlen;
|
||||||
unsigned char *ym;
|
unsigned char* ym;
|
||||||
int cnt;
|
int cnt;
|
||||||
unsigned char ch;
|
unsigned char ch;
|
||||||
|
|
||||||
ym = inputyomi;
|
ym = inputyomi;
|
||||||
|
|
||||||
|
cnt = jlen = clrec->jnode->jlen;
|
||||||
|
while(cnt-- > 0) {
|
||||||
|
if(isknj1(*ym)) {
|
||||||
|
|
||||||
cnt = jlen = clrec -> jnode -> jlen;
|
if(*ym == 0xa4) {
|
||||||
while (cnt-- > 0) {
|
|
||||||
if (isknj1(*ym)) {
|
|
||||||
|
|
||||||
if (*ym == 0xa4) {
|
|
||||||
ch = *++ym;
|
ch = *++ym;
|
||||||
if (0xa1 <= ch && ch <= 0xf3) {
|
if(0xa1 <= ch && ch <= 0xf3) {
|
||||||
*kanjitmp++ = 0xa5;
|
*kanjitmp++ = 0xa5;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
*kanjitmp++ = 0xa4;
|
*kanjitmp++ = 0xa4;
|
||||||
}
|
}
|
||||||
*kanjitmp++ = ch;
|
*kanjitmp++ = ch;
|
||||||
ym++;
|
ym++;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
*kanjitmp++ = *ym++;
|
*kanjitmp++ = *ym++;
|
||||||
*kanjitmp++ = *ym++;
|
*kanjitmp++ = *ym++;
|
||||||
}
|
}
|
||||||
}
|
} else if(*ym == SS3) {
|
||||||
else if (*ym == SS3) {
|
|
||||||
*kanjitmp++ = *ym++;
|
*kanjitmp++ = *ym++;
|
||||||
*kanjitmp++ = *ym++;
|
*kanjitmp++ = *ym++;
|
||||||
*kanjitmp++ = *ym++;
|
*kanjitmp++ = *ym++;
|
||||||
|
|
@ -226,17 +186,15 @@ cvtwakachi(CLREC *clrec)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cnt = clrec->cllen - jlen;
|
||||||
|
while(cnt-- > 0) {
|
||||||
|
|
||||||
cnt = clrec -> cllen - jlen;
|
if(isknj1(*ym)) {
|
||||||
while (cnt-- > 0) {
|
|
||||||
|
|
||||||
|
|
||||||
if (isknj1(*ym)) {
|
|
||||||
*kanjitmp++ = *ym++;
|
*kanjitmp++ = *ym++;
|
||||||
*kanjitmp++ = *ym++;
|
*kanjitmp++ = *ym++;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (*ym == SS3) {
|
else if(*ym == SS3) {
|
||||||
*kanjitmp++ = *ym++;
|
*kanjitmp++ = *ym++;
|
||||||
*kanjitmp++ = *ym++;
|
*kanjitmp++ = *ym++;
|
||||||
*kanjitmp++ = *ym++;
|
*kanjitmp++ = *ym++;
|
||||||
|
|
|
||||||
138
cvtkanji.c
138
cvtkanji.c
|
|
@ -27,103 +27,74 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: cvtkanji.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:01:41 $
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "sj_kcnv.h"
|
#include "sj_kcnv.h"
|
||||||
#include "kanakan.h"
|
#include "kanakan.h"
|
||||||
|
|
||||||
|
|
||||||
void mkknjmax();
|
void mkknjmax();
|
||||||
void mvmemi(), free_clall();
|
void mvmemi(), free_clall();
|
||||||
void free_jall();
|
void free_jall();
|
||||||
|
|
||||||
|
void cvtphknj(void) {
|
||||||
|
|
||||||
void
|
|
||||||
cvtphknj (void)
|
|
||||||
{
|
|
||||||
int i, j;
|
int i, j;
|
||||||
CLREC *clrec;
|
CLREC* clrec;
|
||||||
CLREC *clkp;
|
CLREC* clkp;
|
||||||
|
|
||||||
if (!kanjilen) goto not_enough_memory;
|
if(!kanjilen) goto not_enough_memory;
|
||||||
|
|
||||||
khcount = 0;
|
khcount = 0;
|
||||||
clkp = NULL;
|
clkp = NULL;
|
||||||
stdytop = NULL;
|
stdytop = NULL;
|
||||||
|
|
||||||
clrec = clt1st;
|
clrec = clt1st;
|
||||||
while (clrec) {
|
while(clrec) {
|
||||||
if (ph_khtbl(clrec)) clkp = clrec;
|
if(ph_khtbl(clrec)) clkp = clrec;
|
||||||
clrec = clrec -> clsort;
|
clrec = clrec->clsort;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(clkp && stdytop) {
|
||||||
|
|
||||||
if (clkp && stdytop) {
|
if(stdytop->nmflg)
|
||||||
|
ph_setkouho(clkp, (TypeDicOfs)0, (STDYIN*)0);
|
||||||
if (stdytop -> nmflg)
|
|
||||||
ph_setkouho(clkp, (TypeDicOfs)0, (STDYIN *)0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
kouhotbl[0].rank = 1;
|
kouhotbl[0].rank = 1;
|
||||||
|
|
||||||
|
|
||||||
kanjitmp = kanjibuf + 1;
|
kanjitmp = kanjibuf + 1;
|
||||||
|
|
||||||
|
|
||||||
setstyrec(kouhotbl);
|
setstyrec(kouhotbl);
|
||||||
|
|
||||||
|
|
||||||
cvtkouho(kouhotbl);
|
cvtkouho(kouhotbl);
|
||||||
|
|
||||||
|
|
||||||
i = kanjitmp - kanjibuf;
|
i = kanjitmp - kanjibuf;
|
||||||
if (i < kanjilen) {
|
if(i < kanjilen) {
|
||||||
|
|
||||||
kanjilen -= i;
|
kanjilen -= i;
|
||||||
|
|
||||||
|
ystart += clt1st->cllen;
|
||||||
|
|
||||||
ystart += clt1st -> cllen;
|
j = hzstrlen(inputyomi, (int)clt1st->cllen);
|
||||||
|
|
||||||
j = hzstrlen(inputyomi, (int)clt1st -> cllen);
|
|
||||||
kanjibuf[0] = (unsigned char)j;
|
kanjibuf[0] = (unsigned char)j;
|
||||||
|
|
||||||
|
|
||||||
inputyomi += j;
|
inputyomi += j;
|
||||||
|
|
||||||
|
|
||||||
memcpy(kanjibuf, kanjipos, i);
|
memcpy(kanjibuf, kanjipos, i);
|
||||||
kanjipos += i;
|
kanjipos += i;
|
||||||
}
|
} else
|
||||||
else
|
|
||||||
kanjilen = 0;
|
kanjilen = 0;
|
||||||
|
|
||||||
not_enough_memory:
|
not_enough_memory:
|
||||||
|
|
||||||
|
|
||||||
free_clall(clt1st);
|
free_clall(clt1st);
|
||||||
free_jall (jrt1st);
|
free_jall(jrt1st);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void cvtkouho(KHREC* krec) {
|
||||||
|
CLREC* clrec;
|
||||||
|
|
||||||
|
clrec = krec->clrec;
|
||||||
|
|
||||||
void
|
switch(clrec->jnode->class) {
|
||||||
cvtkouho (KHREC *krec)
|
|
||||||
{
|
|
||||||
CLREC *clrec;
|
|
||||||
|
|
||||||
clrec = krec -> clrec;
|
|
||||||
|
|
||||||
|
|
||||||
switch (clrec -> jnode -> class) {
|
|
||||||
case C_DICT:
|
case C_DICT:
|
||||||
cvtdict(krec, clrec, FALSE);
|
cvtdict(krec, clrec, FALSE);
|
||||||
break;
|
break;
|
||||||
|
|
@ -141,73 +112,62 @@ cvtkouho (KHREC *krec)
|
||||||
cvtdict(krec, clrec, TRUE);
|
cvtdict(krec, clrec, TRUE);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case C_BUNSETU :
|
case C_BUNSETSU:
|
||||||
case C_MINASI :
|
case C_MINASI:
|
||||||
cvtminasi((int)clrec -> cllen);
|
cvtminasi((int)clrec->cllen);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case C_WAKACHI :
|
case C_WAKACHI:
|
||||||
cvtwakachi(clrec);
|
cvtwakachi(clrec);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
*kanjitmp++ = 0;
|
*kanjitmp++ = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void setstyrec(KHREC* krec) {
|
||||||
|
JREC* jrec;
|
||||||
void
|
KHREC* kptr;
|
||||||
setstyrec (KHREC *krec)
|
|
||||||
{
|
|
||||||
JREC *jrec;
|
|
||||||
KHREC *kptr;
|
|
||||||
int ii;
|
int ii;
|
||||||
unsigned char *fptr;
|
unsigned char* fptr;
|
||||||
STDYOUT stdy;
|
STDYOUT stdy;
|
||||||
|
|
||||||
jrec = krec -> clrec -> jnode;
|
jrec = krec->clrec->jnode;
|
||||||
|
|
||||||
|
if(krec->mode && !krec->offs) {
|
||||||
|
|
||||||
if (krec -> mode && !krec -> offs) {
|
for(ii = khcount, kptr = kouhotbl; ii--; kptr++)
|
||||||
|
if(kptr->rank == 1) break;
|
||||||
|
|
||||||
for (ii = khcount, kptr = kouhotbl ; ii--; kptr++)
|
stdy.stdy1.offset = kptr->offs;
|
||||||
if (kptr -> rank == 1) break;
|
stdy.stdy1.seg = kptr->clrec->jnode->jseg;
|
||||||
|
stdy.stdy1.styno = kptr->styno;
|
||||||
|
stdy.stdy1.dicid = kptr->clrec->jnode->dicid;
|
||||||
stdy.stdy1.offset = kptr -> offs;
|
|
||||||
stdy.stdy1.seg = kptr -> clrec -> jnode -> jseg;
|
|
||||||
stdy.stdy1.styno = kptr -> styno;
|
|
||||||
stdy.stdy1.dicid = kptr -> clrec -> jnode -> dicid;
|
|
||||||
stdy.stdy1.nmflg = 1;
|
stdy.stdy1.nmflg = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
else {
|
else {
|
||||||
stdy.stdy1.offset = krec -> offs;
|
stdy.stdy1.offset = krec->offs;
|
||||||
stdy.stdy1.seg = jrec -> jseg;
|
stdy.stdy1.seg = jrec->jseg;
|
||||||
stdy.stdy1.styno = krec -> styno;
|
stdy.stdy1.styno = krec->styno;
|
||||||
stdy.stdy1.dicid = jrec -> dicid;
|
stdy.stdy1.dicid = jrec->dicid;
|
||||||
stdy.stdy1.nmflg = 0;
|
stdy.stdy1.nmflg = 0;
|
||||||
}
|
}
|
||||||
stdy.stdy1.sttkj = krec -> sttkj;
|
stdy.stdy1.sttkj = krec->sttkj;
|
||||||
stdy.stdy1.ka_kj = krec -> ka_kj;
|
stdy.stdy1.ka_kj = krec->ka_kj;
|
||||||
stdy.hinshi = jrec -> hinsi;
|
stdy.hinshi = jrec->hinshi;
|
||||||
stdy.len = jrec -> jlen;
|
stdy.len = jrec->jlen;
|
||||||
stdy.sttfg = krec -> sttfg;
|
stdy.sttfg = krec->sttfg;
|
||||||
stdy.ka_fg = krec -> ka_fg;
|
stdy.ka_fg = krec->ka_fg;
|
||||||
|
|
||||||
|
if(jrec->stbofs && (fptr = getstb(jrec->hinshi)) != NULL)
|
||||||
|
stdy.len -= StbYomiLen(fptr + jrec->stbofs - 1);
|
||||||
|
|
||||||
if (jrec -> stbofs && (fptr = getstb(jrec -> hinsi)) != NULL)
|
if((fptr = Settou_ptr(jrec->sttofs)) != NULL)
|
||||||
stdy.len -= StbYomiLen(fptr + jrec -> stbofs - 1);
|
|
||||||
|
|
||||||
|
|
||||||
if ((fptr = Settou_ptr(jrec -> sttofs)) != NULL)
|
|
||||||
stdy.sttlen = SttYomiLen(fptr);
|
stdy.sttlen = SttYomiLen(fptr);
|
||||||
else
|
else
|
||||||
stdy.sttlen = 0;
|
stdy.sttlen = 0;
|
||||||
|
|
||||||
|
memcpy((unsigned char*)&stdy, kanjitmp, sizeof(STDYOUT));
|
||||||
memcpy((unsigned char *)&stdy, kanjitmp, sizeof(STDYOUT));
|
|
||||||
kanjitmp += sizeof(STDYOUT);
|
kanjitmp += sizeof(STDYOUT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
120
deldic.c
120
deldic.c
|
|
@ -27,34 +27,21 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: deldic.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:01:42 $
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "sj_kcnv.h"
|
#include "sj_kcnv.h"
|
||||||
#include "kanakan.h"
|
#include "kanakan.h"
|
||||||
|
|
||||||
|
|
||||||
void mvmemi();
|
void mvmemi();
|
||||||
void mkidxtbl();
|
void mkidxtbl();
|
||||||
|
|
||||||
|
|
||||||
static int del_douon(TypeDicSeg seg, unsigned char* ptr, TypeDicOfs ofs);
|
static int del_douon(TypeDicSeg seg, unsigned char* ptr, TypeDicOfs ofs);
|
||||||
static int del_segment(TypeDicSeg seg);
|
static int del_segment(TypeDicSeg seg);
|
||||||
static void del_uidx(TypeDicSeg seg);
|
static void del_uidx(TypeDicSeg seg);
|
||||||
static void del_stdy(TypeDicSeg seg, TypeDicOfs ofs, int size);
|
static void del_stdy(TypeDicSeg seg, TypeDicOfs ofs, int size);
|
||||||
|
|
||||||
|
|
||||||
unsigned int
|
unsigned int
|
||||||
deldic(unsigned char* yomi, unsigned char* kanji, TypeGram hinsi)
|
deldic(unsigned char* yomi, unsigned char* kanji, TypeGram hinshi) {
|
||||||
{
|
|
||||||
unsigned char yptr[MaxWdYomiLen + 1];
|
unsigned char yptr[MaxWdYomiLen + 1];
|
||||||
unsigned char kptr[MaxWdKanjiLen + 1];
|
unsigned char kptr[MaxWdKanjiLen + 1];
|
||||||
unsigned int err;
|
unsigned int err;
|
||||||
|
|
@ -69,10 +56,10 @@ deldic(unsigned char* yomi, unsigned char* kanji, TypeGram hinsi)
|
||||||
unsigned char *stp, *edp;
|
unsigned char *stp, *edp;
|
||||||
int size, len;
|
int size, len;
|
||||||
|
|
||||||
if ((err = addel_arg(yomi, kanji, hinsi, yptr, sizeof(yptr))) != 0)
|
if((err = addel_arg(yomi, kanji, hinshi, yptr, sizeof(yptr))) != 0)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
if ((curdict -> maxunit) == 0) return AD_NotUserDict;
|
if((curdict->maxunit) == 0) return AD_NotUserDict;
|
||||||
|
|
||||||
knjlen = cvtknj(yomi, kanji, kptr);
|
knjlen = cvtknj(yomi, kanji, kptr);
|
||||||
|
|
||||||
|
|
@ -82,32 +69,29 @@ deldic(unsigned char* yomi, unsigned char* kanji, TypeGram hinsi)
|
||||||
useg = srchidx((TypeDicSeg)DicSegBase, cnvlen);
|
useg = srchidx((TypeDicSeg)DicSegBase, cnvlen);
|
||||||
(*curdict->getdic)(curdict, useg);
|
(*curdict->getdic)(curdict, useg);
|
||||||
|
|
||||||
if ((dblknum = srchkana(&p1, &samlen)) == 0) return AD_NoMidasi;
|
if((dblknum = srchkana(&p1, &samlen)) == 0) return AD_NoMidasi;
|
||||||
|
|
||||||
if ((hblknum = srchgram(p1, &p2, hinsi)) == 0) return AD_NoHinsi;
|
if((hblknum = srchgram(p1, &p2, hinshi)) == 0) return AD_NoHinshi;
|
||||||
|
|
||||||
p3 = p2;
|
p3 = p2;
|
||||||
kblknum = srchkanji(&p3, kptr, knjlen);
|
kblknum = srchkanji(&p3, kptr, knjlen);
|
||||||
if (*p3 == HinsiBlkTerm) return AD_NoKanji;
|
if(*p3 == HinshiBlkTerm) return AD_NoKanji;
|
||||||
ofs = p3 - dicbuf;
|
ofs = p3 - dicbuf;
|
||||||
|
|
||||||
edp = skipkstr(p3);
|
edp = skipkstr(p3);
|
||||||
|
|
||||||
if (kblknum == 1) {
|
if(kblknum == 1) {
|
||||||
if (hblknum == 1) {
|
if(hblknum == 1) {
|
||||||
if (dblknum == 1) {
|
if(dblknum == 1) {
|
||||||
return del_segment(useg);
|
return del_segment(useg);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return del_douon(useg, p1, ofs);
|
return del_douon(useg, p1, ofs);
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
stp = p2;
|
stp = p2;
|
||||||
edp++;
|
edp++;
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
stp = p3;
|
stp = p3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -129,29 +113,25 @@ deldic(unsigned char* yomi, unsigned char* kanji, TypeGram hinsi)
|
||||||
return AD_Done;
|
return AD_Done;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
del_douon(TypeDicSeg seg, unsigned char* ptr, TypeDicOfs ofs)
|
del_douon(TypeDicSeg seg, unsigned char* ptr, TypeDicOfs ofs) {
|
||||||
{
|
|
||||||
unsigned char *nxt, *p1, *p2;
|
unsigned char *nxt, *p1, *p2;
|
||||||
int size;
|
int size;
|
||||||
int nlen, plen, len;
|
int nlen, plen, len;
|
||||||
|
|
||||||
nxt = getntag(ptr);
|
nxt = getntag(ptr);
|
||||||
|
|
||||||
if (segend(nxt)) {
|
if(segend(nxt)) {
|
||||||
size = nxt - ptr;
|
size = nxt - ptr;
|
||||||
|
|
||||||
memset(ptr, DicSegTerm, dicbuf + curdict->seglen - nxt);
|
memset(ptr, DicSegTerm, dicbuf + curdict->seglen - nxt);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
size = getsize(nxt);
|
size = getsize(nxt);
|
||||||
nlen = getnlen(nxt);
|
nlen = getnlen(nxt);
|
||||||
plen = getplen(nxt);
|
plen = getplen(nxt);
|
||||||
|
|
||||||
if (ptr == segtop()) {
|
if(ptr == segtop()) {
|
||||||
if (nlen + plen > (unsigned int) count_uidx()
|
if(nlen + plen > (unsigned int)count_uidx() + strlen(get_idxptr(seg)))
|
||||||
+ strlen(get_idxptr(seg)))
|
|
||||||
return AD_OvflwIndex;
|
return AD_OvflwIndex;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -167,7 +147,7 @@ del_douon(TypeDicSeg seg, unsigned char* ptr, TypeDicOfs ofs)
|
||||||
size = p1 - p2;
|
size = p1 - p2;
|
||||||
memset(dicbuf + curdict->seglen - size, DicSegTerm, size);
|
memset(dicbuf + curdict->seglen - size, DicSegTerm, size);
|
||||||
|
|
||||||
if (ptr == segtop()) {
|
if(ptr == segtop()) {
|
||||||
chg_uidx(seg, ptr + DouonBlkSizeNumber, nlen + len);
|
chg_uidx(seg, ptr + DouonBlkSizeNumber, nlen + len);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -179,24 +159,21 @@ del_douon(TypeDicSeg seg, unsigned char* ptr, TypeDicOfs ofs)
|
||||||
return AD_Done;
|
return AD_Done;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
del_segment(TypeDicSeg seg)
|
del_segment(TypeDicSeg seg) {
|
||||||
{
|
|
||||||
int i;
|
int i;
|
||||||
STDYIN *styp;
|
STDYIN* styp;
|
||||||
TypeDicID dicid;
|
TypeDicID dicid;
|
||||||
TypeStyNum stdynum;
|
TypeStyNum stdynum;
|
||||||
TypeDicSeg sg;
|
TypeDicSeg sg;
|
||||||
|
|
||||||
if (curdict->segunit > 1) {
|
if(curdict->segunit > 1) {
|
||||||
for (sg = seg + 1 ; sg < curdict->segunit ; sg++) {
|
for(sg = seg + 1; sg < curdict->segunit; sg++) {
|
||||||
(*curdict->getdic)(curdict, sg);
|
(*curdict->getdic)(curdict, sg);
|
||||||
(*curdict->putdic)(curdict, sg - 1);
|
(*curdict->putdic)(curdict, sg - 1);
|
||||||
}
|
}
|
||||||
curdict->segunit--;
|
curdict->segunit--;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
memset(dicbuf, DicSegTerm, (int)curdict->seglen);
|
memset(dicbuf, DicSegTerm, (int)curdict->seglen);
|
||||||
dicbuf[0] = 0;
|
dicbuf[0] = 0;
|
||||||
(*curdict->putdic)(curdict, DicSegBase);
|
(*curdict->putdic)(curdict, DicSegBase);
|
||||||
|
|
@ -206,17 +183,17 @@ del_segment(TypeDicSeg seg)
|
||||||
|
|
||||||
del_uidx(seg);
|
del_uidx(seg);
|
||||||
|
|
||||||
if (StudyExist()) {
|
if(StudyExist()) {
|
||||||
dicid = curdict->dicid;
|
dicid = curdict->dicid;
|
||||||
for (i = 0, styp = StudyDict ; i < StudyCount ; ) {
|
for(i = 0, styp = StudyDict; i < StudyCount;) {
|
||||||
if (styp -> dicid != dicid)
|
if(styp->dicid != dicid)
|
||||||
;
|
;
|
||||||
else if (styp -> seg > seg)
|
else if(styp->seg > seg)
|
||||||
styp -> seg -= 1;
|
styp->seg -= 1;
|
||||||
else if (styp -> seg < seg)
|
else if(styp->seg < seg)
|
||||||
;
|
;
|
||||||
else {
|
else {
|
||||||
stdynum = styp -> styno;
|
stdynum = styp->styno;
|
||||||
StudyCount--;
|
StudyCount--;
|
||||||
mvmemi((unsigned char*)(styp + 1),
|
mvmemi((unsigned char*)(styp + 1),
|
||||||
(unsigned char*)styp,
|
(unsigned char*)styp,
|
||||||
|
|
@ -227,8 +204,8 @@ del_segment(TypeDicSeg seg)
|
||||||
i++;
|
i++;
|
||||||
styp++;
|
styp++;
|
||||||
}
|
}
|
||||||
for (i = 0, styp = StudyDict ; i < StudyCount ; i++, styp++)
|
for(i = 0, styp = StudyDict; i < StudyCount; i++, styp++)
|
||||||
if (styp -> styno > stdynum) styp -> styno -= 1;
|
if(styp->styno > stdynum) styp->styno -= 1;
|
||||||
|
|
||||||
putstydic();
|
putstydic();
|
||||||
}
|
}
|
||||||
|
|
@ -236,16 +213,13 @@ del_segment(TypeDicSeg seg)
|
||||||
return AD_Done;
|
return AD_Done;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
del_uidx(TypeDicSeg seg)
|
del_uidx(TypeDicSeg seg) {
|
||||||
{
|
|
||||||
unsigned char *p, *q;
|
unsigned char *p, *q;
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
p = get_idxptr(seg);
|
p = get_idxptr(seg);
|
||||||
for (q = p ; *q++; )
|
for(q = p; *q++;);
|
||||||
;
|
|
||||||
|
|
||||||
mvmemi(q, p, idxbuf + curdict->idxlen - q);
|
mvmemi(q, p, idxbuf + curdict->idxlen - q);
|
||||||
|
|
||||||
|
|
@ -257,29 +231,27 @@ del_uidx(TypeDicSeg seg)
|
||||||
mkidxtbl(curdict);
|
mkidxtbl(curdict);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
del_stdy(TypeDicSeg seg, TypeDicOfs ofs, int size)
|
del_stdy(TypeDicSeg seg, TypeDicOfs ofs, int size) {
|
||||||
{
|
|
||||||
int i;
|
int i;
|
||||||
TypeStyNum stdynum;
|
TypeStyNum stdynum;
|
||||||
STDYIN *stdy;
|
STDYIN* stdy;
|
||||||
TypeDicID dicid;
|
TypeDicID dicid;
|
||||||
|
|
||||||
if (StudyExist()) {
|
if(StudyExist()) {
|
||||||
|
|
||||||
stdynum = 0;
|
stdynum = 0;
|
||||||
dicid = curdict->dicid;
|
dicid = curdict->dicid;
|
||||||
for (i = 0, stdy = StudyDict ; i < StudyCount ; ) {
|
for(i = 0, stdy = StudyDict; i < StudyCount;) {
|
||||||
if (stdy -> dicid != dicid)
|
if(stdy->dicid != dicid)
|
||||||
;
|
;
|
||||||
else if (stdy -> seg != seg)
|
else if(stdy->seg != seg)
|
||||||
;
|
;
|
||||||
else if (stdy -> offset > ofs)
|
else if(stdy->offset > ofs)
|
||||||
stdy -> offset -= size;
|
stdy->offset -= size;
|
||||||
|
|
||||||
else if (stdy -> offset == ofs) {
|
else if(stdy->offset == ofs) {
|
||||||
stdynum = stdy -> styno;
|
stdynum = stdy->styno;
|
||||||
StudyCount--;
|
StudyCount--;
|
||||||
mvmemi((unsigned char*)(stdy + 1),
|
mvmemi((unsigned char*)(stdy + 1),
|
||||||
(unsigned char*)stdy,
|
(unsigned char*)stdy,
|
||||||
|
|
@ -290,8 +262,8 @@ del_stdy(TypeDicSeg seg, TypeDicOfs ofs, int size)
|
||||||
i++;
|
i++;
|
||||||
stdy++;
|
stdy++;
|
||||||
}
|
}
|
||||||
for (i = 0, stdy = StudyDict ; i < StudyCount ; i++, stdy++)
|
for(i = 0, stdy = StudyDict; i < StudyCount; i++, stdy++)
|
||||||
if (stdy -> styno > stdynum) (stdy -> styno)--;
|
if(stdy->styno > stdynum) (stdy->styno)--;
|
||||||
|
|
||||||
putstydic();
|
putstydic();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
43
dict.c
43
dict.c
|
|
@ -27,60 +27,45 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: dict.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:01:45 $
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include "sj_euc.h"
|
#include "sj_euc.h"
|
||||||
#include "sj_kcnv.h"
|
#include "sj_kcnv.h"
|
||||||
#include "kanakan.h"
|
#include "kanakan.h"
|
||||||
|
|
||||||
|
void get_askknj(void) {
|
||||||
void
|
unsigned char* p;
|
||||||
get_askknj(void)
|
unsigned char* q;
|
||||||
{
|
unsigned char* r;
|
||||||
unsigned char *p;
|
|
||||||
unsigned char *q;
|
|
||||||
unsigned char *r;
|
|
||||||
int i = 0, csize;
|
int i = 0, csize;
|
||||||
int flg;
|
int flg;
|
||||||
|
|
||||||
p = q = dicbuf;
|
p = q = dicbuf;
|
||||||
q += *p++;
|
q += *p++;
|
||||||
|
|
||||||
while (p < q) {
|
while(p < q) {
|
||||||
askknj[i] = p;
|
askknj[i] = p;
|
||||||
r = NULL;
|
r = NULL;
|
||||||
flg = TRUE;
|
flg = TRUE;
|
||||||
do {
|
do {
|
||||||
csize = codesize(*p);
|
csize = codesize(*p);
|
||||||
if (p[csize] == KanjiStrEnd) flg = FALSE;
|
if(p[csize] == KanjiStrEnd) flg = FALSE;
|
||||||
|
|
||||||
if (!r && (*p != AiAttribute))
|
if(!r && (*p != AiAttribute))
|
||||||
r = p;
|
r = p;
|
||||||
|
|
||||||
p += csize;
|
p += csize;
|
||||||
} while (flg);
|
} while(flg);
|
||||||
|
|
||||||
p++;
|
p++;
|
||||||
askknj_k[i++] = r;
|
askknj_k[i++] = r;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int seldict(TypeDicID id) {
|
||||||
|
DICTL* dp;
|
||||||
|
|
||||||
int
|
for(dp = dictlist; dp; dp = dp->next) {
|
||||||
seldict(TypeDicID id)
|
if((curdict = dp->dict)->dicid == id)
|
||||||
{
|
|
||||||
DICTL *dp;
|
|
||||||
|
|
||||||
for (dp = dictlist ; dp ; dp = dp -> next) {
|
|
||||||
if ((curdict = dp -> dict) -> dicid == id)
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
curdict = NULL;
|
curdict = NULL;
|
||||||
|
|
@ -88,10 +73,8 @@ seldict(TypeDicID id)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
unsigned char*
|
unsigned char*
|
||||||
get_idxptr(TypeDicSeg seg)
|
get_idxptr(TypeDicSeg seg) {
|
||||||
{
|
|
||||||
(*curdict->getofs)(curdict);
|
(*curdict->getofs)(curdict);
|
||||||
(*curdict->getidx)(curdict);
|
(*curdict->getidx)(curdict);
|
||||||
|
|
||||||
|
|
|
||||||
38
dictdisp.c
38
dictdisp.c
|
|
@ -27,66 +27,56 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: dictdisp.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:03:34 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
|
||||||
void
|
void
|
||||||
dictdisp(output)
|
dictdisp(output) char* output;
|
||||||
char *output;
|
|
||||||
{
|
{
|
||||||
unsigned char buf[BUFSIZ];
|
unsigned char buf[BUFSIZ];
|
||||||
unsigned char *p;
|
unsigned char* p;
|
||||||
FILE *fp;
|
FILE* fp;
|
||||||
int flg;
|
int flg;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (output && *output) {
|
if(output && *output) {
|
||||||
fp = fopen(output, "w");
|
fp = fopen(output, "w");
|
||||||
if (!fp) {
|
if(!fp) {
|
||||||
error_out("%s \244\254\245\252\241\274\245\327\245\363\244\307\244\255\244\336\244\273\244\363", output);
|
error_out("%s \244\254\245\252\241\274\245\327\245\363\244\307\244\255\244\336\244\273\244\363", output);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
} else
|
||||||
else
|
|
||||||
fp = stdout;
|
fp = stdout;
|
||||||
|
|
||||||
flg = sj3_getdict_mb(buf);
|
flg = sj3_getdict_mb(buf);
|
||||||
while (flg == 0) {
|
while(flg == 0) {
|
||||||
p = buf;
|
p = buf;
|
||||||
printout_mb(fp, p);
|
printout_mb(fp, p);
|
||||||
i = strlen(p);
|
i = strlen(p);
|
||||||
if (i < 24)
|
if(i < 24)
|
||||||
while (i < 24) {
|
while(i < 24) {
|
||||||
printout_mb(fp, "\t");
|
printout_mb(fp, "\t");
|
||||||
i += 8;
|
i += 8;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
printout_mb(fp, " ");
|
printout_mb(fp, " ");
|
||||||
while (*p++) ;
|
while(*p++);
|
||||||
printout_mb(fp, p);
|
printout_mb(fp, p);
|
||||||
i = strlen(p);
|
i = strlen(p);
|
||||||
if (i < 24)
|
if(i < 24)
|
||||||
while (i < 24) {
|
while(i < 24) {
|
||||||
printout_mb(fp, "\t");
|
printout_mb(fp, "\t");
|
||||||
i += 8;
|
i += 8;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
printout_mb(fp, " ");
|
printout_mb(fp, " ");
|
||||||
while (*p++) ;
|
while(*p++);
|
||||||
printout(fp, hns2str(*p));
|
printout(fp, hns2str(*p));
|
||||||
printout_mb(fp, ":\n");
|
printout_mb(fp, ":\n");
|
||||||
|
|
||||||
flg = sj3_nextdict_mb(buf);
|
flg = sj3_nextdict_mb(buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fp != stdout) fclose(fp);
|
if(fp != stdout) fclose(fp);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
100
dictmake.c
100
dictmake.c
|
|
@ -27,15 +27,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: dictmake.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:03:35 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include "sj_sysvdef.h"
|
#include "sj_sysvdef.h"
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#ifdef SVR4
|
#ifdef SVR4
|
||||||
|
|
@ -55,34 +46,33 @@ extern int force_flag;
|
||||||
extern int verbose_flag;
|
extern int verbose_flag;
|
||||||
extern int _sys_code;
|
extern int _sys_code;
|
||||||
|
|
||||||
static void touroku(y, k, h)
|
static void touroku(y, k, h) char *y, *k, *h;
|
||||||
char *y, *k, *h;
|
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
int grm;
|
int grm;
|
||||||
unsigned char buf[BUFSIZ], *hp;
|
unsigned char buf[BUFSIZ], *hp;
|
||||||
|
|
||||||
if (_sys_code == SYS_SJIS) {
|
if(_sys_code == SYS_SJIS) {
|
||||||
(void) sjistoeuc(buf, BUFSIZ, h, strlen(h)+1);
|
(void)sjistoeuc(buf, BUFSIZ, h, strlen(h) + 1);
|
||||||
hp = buf;
|
hp = buf;
|
||||||
} else {
|
} else {
|
||||||
hp = (unsigned char *) h;
|
hp = (unsigned char*)h;
|
||||||
}
|
}
|
||||||
if (!(grm = str2hns(hp))) {
|
if(!(grm = str2hns(hp))) {
|
||||||
error_out("\311\312\273\354\312\270\273\372\316\363\244\362\262\341\244\303\244\306\244\244\244\336\244\271 %s:%s:%s", y, k, h);
|
error_out("\311\312\273\354\312\270\273\372\316\363\244\362\262\341\244\303\244\306\244\244\244\336\244\271 %s:%s:%s", y, k, h);
|
||||||
if (force_flag) return;
|
if(force_flag) return;
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
err = sj3_touroku_mb(y, k, grm);
|
err = sj3_touroku_mb(y, k, grm);
|
||||||
|
|
||||||
switch (err) {
|
switch(err) {
|
||||||
case -1:
|
case -1:
|
||||||
error_out("\245\265\241\274\245\320\244\254\315\356\244\301\244\336\244\267\244\277");
|
error_out("\245\265\241\274\245\320\244\254\315\356\244\301\244\336\244\267\244\277");
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|
||||||
case 0:
|
case 0:
|
||||||
if (verbose_flag)
|
if(verbose_flag)
|
||||||
normal_out("%s:%s:%s \244\362\305\320\317\277\244\267\244\336\244\267\244\277\n", y, k, h);
|
normal_out("%s:%s:%s \244\362\305\320\317\277\244\267\244\336\244\267\244\277\n", y, k, h);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -95,7 +85,7 @@ char *y, *k, *h;
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|
||||||
case SJ3_WORD_EXIST:
|
case SJ3_WORD_EXIST:
|
||||||
if (verbose_flag)
|
if(verbose_flag)
|
||||||
normal_out("%s:%s:%s \244\317\305\320\317\277\244\265\244\354\244\306\244\244\244\336\244\271\n", y, k, h);
|
normal_out("%s:%s:%s \244\317\305\320\317\277\244\265\244\354\244\306\244\244\244\336\244\271\n", y, k, h);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -105,22 +95,22 @@ char *y, *k, *h;
|
||||||
|
|
||||||
case SJ3_DICT_FULL:
|
case SJ3_DICT_FULL:
|
||||||
error_out("\244\263\244\354\260\312\276\345\274\255\275\361\244\362\302\347\244\255\244\257\244\307\244\255\244\336\244\273\244\363 %s:%s:%s", y, k, h);
|
error_out("\244\263\244\354\260\312\276\345\274\255\275\361\244\362\302\347\244\255\244\257\244\307\244\255\244\336\244\273\244\363 %s:%s:%s", y, k, h);
|
||||||
if (force_flag) break;
|
if(force_flag) break;
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|
||||||
case SJ3_BAD_YOMI_STR:
|
case SJ3_BAD_YOMI_STR:
|
||||||
error_out("\305\320\317\277\244\307\244\255\244\312\244\244\306\311\244\337\244\307\244\271 %s", y);
|
error_out("\305\320\317\277\244\307\244\255\244\312\244\244\306\311\244\337\244\307\244\271 %s", y);
|
||||||
if (force_flag) break;
|
if(force_flag) break;
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|
||||||
case SJ3_BAD_KANJI_STR:
|
case SJ3_BAD_KANJI_STR:
|
||||||
error_out("\305\320\317\277\244\307\244\255\244\312\244\244\264\301\273\372\244\307\244\271 %s:%s", y, k);
|
error_out("\305\320\317\277\244\307\244\255\244\312\244\244\264\301\273\372\244\307\244\271 %s:%s", y, k);
|
||||||
if (force_flag) break;
|
if(force_flag) break;
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|
||||||
case SJ3_BAD_HINSI_CODE:
|
case SJ3_BAD_HINSHI_CODE:
|
||||||
error_out("\305\320\317\277\244\307\244\255\244\312\244\244\311\312\273\354\244\307\244\271 %s:%s:%s", y, k, h);
|
error_out("\305\320\317\277\244\307\244\255\244\312\244\244\311\312\273\354\244\307\244\271 %s:%s:%s", y, k, h);
|
||||||
if (force_flag) break;
|
if(force_flag) break;
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|
||||||
case SJ3_INDEX_FULL:
|
case SJ3_INDEX_FULL:
|
||||||
|
|
@ -135,88 +125,86 @@ char *y, *k, *h;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
dictmake(input)
|
dictmake(input) char* input;
|
||||||
char *input;
|
|
||||||
{
|
{
|
||||||
unsigned char buf[BUFSIZ];
|
unsigned char buf[BUFSIZ];
|
||||||
FILE *fp;
|
FILE* fp;
|
||||||
unsigned char *p;
|
unsigned char* p;
|
||||||
unsigned char *yom, *knj, *grm;
|
unsigned char *yom, *knj, *grm;
|
||||||
int c;
|
int c;
|
||||||
int flg;
|
int flg;
|
||||||
static char *FormatErrorString = "\245\325\245\251\241\274\245\336\245\303\245\310\245\250\245\351\241\274:%s";
|
static char* FormatErrorString = "\245\325\245\251\241\274\245\336\245\303\245\310\245\250\245\351\241\274:%s";
|
||||||
|
|
||||||
if (input && *input) {
|
if(input && *input) {
|
||||||
fp = fopen(input, "r");
|
fp = fopen(input, "r");
|
||||||
if (!fp) {
|
if(!fp) {
|
||||||
error_out("%s \244\254\245\252\241\274\245\327\245\363\244\307\244\255\244\336\244\273\244\363", input);
|
error_out("%s \244\254\245\252\241\274\245\327\245\363\244\307\244\255\244\336\244\273\244\363", input);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
} else
|
||||||
else
|
|
||||||
fp = stdin;
|
fp = stdin;
|
||||||
|
|
||||||
while (fgets((char *)buf, sizeof(buf), fp)) {
|
while(fgets((char*)buf, sizeof(buf), fp)) {
|
||||||
if ((p = (unsigned char *)strchr((char *)buf, '\n')))
|
if((p = (unsigned char*)strchr((char*)buf, '\n')))
|
||||||
*p = '\0';
|
*p = '\0';
|
||||||
else {
|
else {
|
||||||
do {
|
do {
|
||||||
c = fgetc(fp);
|
c = fgetc(fp);
|
||||||
} while (c != '\n' && c != EOF);
|
} while(c != '\n' && c != EOF);
|
||||||
}
|
}
|
||||||
|
|
||||||
yom = buf;
|
yom = buf;
|
||||||
while (IsBlank(*yom)) yom++;
|
while(IsBlank(*yom)) yom++;
|
||||||
if (IsEOL(*yom)) {
|
if(IsEOL(*yom)) {
|
||||||
error_out(FormatErrorString, buf);
|
error_out(FormatErrorString, buf);
|
||||||
if (force_flag) continue;
|
if(force_flag) continue;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
knj = yom;
|
knj = yom;
|
||||||
while (!IsEOL(*knj) && !IsBlank(*knj)) knj++;
|
while(!IsEOL(*knj) && !IsBlank(*knj)) knj++;
|
||||||
if (IsEOL(*knj)) {
|
if(IsEOL(*knj)) {
|
||||||
error_out(FormatErrorString, buf);
|
error_out(FormatErrorString, buf);
|
||||||
if (force_flag) continue;
|
if(force_flag) continue;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
*knj++ = '\0';
|
*knj++ = '\0';
|
||||||
while (IsBlank(*knj)) knj++;
|
while(IsBlank(*knj)) knj++;
|
||||||
if (IsEOL(*knj)) {
|
if(IsEOL(*knj)) {
|
||||||
error_out(FormatErrorString, buf);
|
error_out(FormatErrorString, buf);
|
||||||
if (force_flag) continue;
|
if(force_flag) continue;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
grm = knj;
|
grm = knj;
|
||||||
while (!IsEOL(*grm) && !IsBlank(*grm)) grm++;
|
while(!IsEOL(*grm) && !IsBlank(*grm)) grm++;
|
||||||
if (IsEOL(*grm)) {
|
if(IsEOL(*grm)) {
|
||||||
error_out(FormatErrorString, buf);
|
error_out(FormatErrorString, buf);
|
||||||
if (force_flag) continue;
|
if(force_flag) continue;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
*grm++ = '\0';
|
*grm++ = '\0';
|
||||||
while (IsBlank(*grm)) grm++;
|
while(IsBlank(*grm)) grm++;
|
||||||
if (IsEOL(*grm)) {
|
if(IsEOL(*grm)) {
|
||||||
error_out(FormatErrorString, buf);
|
error_out(FormatErrorString, buf);
|
||||||
if (force_flag) continue;
|
if(force_flag) continue;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
flg = -1;
|
flg = -1;
|
||||||
while (*grm && flg) {
|
while(*grm && flg) {
|
||||||
p = grm;
|
p = grm;
|
||||||
while (!IsEOL(*p) && !IsBlank(*p) && (*p != ':')) p++;
|
while(!IsEOL(*p) && !IsBlank(*p) && (*p != ':')) p++;
|
||||||
if (IsEOL(*p))
|
if(IsEOL(*p))
|
||||||
flg = 0;
|
flg = 0;
|
||||||
else
|
else
|
||||||
*p++ = '\0';
|
*p++ = '\0';
|
||||||
|
|
||||||
touroku(yom, knj, grm);
|
touroku(yom, knj, grm);
|
||||||
|
|
||||||
if (flg) {
|
if(flg) {
|
||||||
grm = p;
|
grm = p;
|
||||||
while (IsBlank(*grm)) grm++;
|
while(IsBlank(*grm)) grm++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
101
dicttool.h
101
dicttool.h
|
|
@ -39,77 +39,76 @@
|
||||||
#include "sj_struct2.h"
|
#include "sj_struct2.h"
|
||||||
|
|
||||||
/* char.c */
|
/* char.c */
|
||||||
int cnvyomi (int code);
|
int cnvyomi(int code);
|
||||||
int h2kcode (int code);
|
int h2kcode(int code);
|
||||||
int codesize (unsigned char code);
|
int codesize(unsigned char code);
|
||||||
void output_knj (FILE* fp, unsigned char* p, int l);
|
void output_knj(FILE* fp, unsigned char* p, int l);
|
||||||
void output_str (FILE* fp, char* p);
|
void output_str(FILE* fp, char* p);
|
||||||
void output_int (FILE* fp, int* p);
|
void output_int(FILE* fp, int* p);
|
||||||
void output_yomi (FILE* fp, unsigned char* p);
|
void output_yomi(FILE* fp, unsigned char* p);
|
||||||
|
|
||||||
/* cnvhinsi.c */
|
/* cnvhinshi.c */
|
||||||
int cnvhinsi (unsigned char *buf);
|
int cnvhinshi(unsigned char* buf);
|
||||||
|
|
||||||
/* file.c */
|
/* file.c */
|
||||||
FILE* Fopen (char* filename, char* type);
|
FILE* Fopen(char* filename, char* type);
|
||||||
void Fclose (FILE* fp);
|
void Fclose(FILE* fp);
|
||||||
int Fseek (FILE* fp, long ofs, int ptr);
|
int Fseek(FILE* fp, long ofs, int ptr);
|
||||||
long Ftell (FILE* fp);
|
long Ftell(FILE* fp);
|
||||||
off_t Fsize (char* filename);
|
off_t Fsize(char* filename);
|
||||||
int Fread (char* p, int s, int n, FILE* fp);
|
int Fread(char* p, int s, int n, FILE* fp);
|
||||||
int Fwrite (char* p, int s, int n, FILE* fp);
|
int Fwrite(char* p, int s, int n, FILE* fp);
|
||||||
int Fgetc (FILE* fp);
|
int Fgetc(FILE* fp);
|
||||||
void Fflush (FILE* fp);
|
void Fflush(FILE* fp);
|
||||||
|
|
||||||
/* hindo.c */
|
/* hindo.c */
|
||||||
int check_hindo (unsigned char* ptr, int len);
|
int check_hindo(unsigned char* ptr, int len);
|
||||||
void knjhnd_set (unsigned char* p, int l);
|
void knjhnd_set(unsigned char* p, int l);
|
||||||
void knjhnd_reset (unsigned char* p, int l);
|
void knjhnd_reset(unsigned char* p, int l);
|
||||||
int decide_knjask (void);
|
int decide_knjask(void);
|
||||||
void clear_hindo (void);
|
void clear_hindo(void);
|
||||||
void clear_assyuku (void);
|
void clear_asshuku(void);
|
||||||
|
|
||||||
/* knjcvt.c */
|
/* knjcvt.c */
|
||||||
unsigned char* knjofscvt (unsigned char* ptr, int len, int* ret);
|
unsigned char* knjofscvt(unsigned char* ptr, int len, int* ret);
|
||||||
unsigned char* knjcvt (unsigned char* ptr, int len, int* ret);
|
unsigned char* knjcvt(unsigned char* ptr, int len, int* ret);
|
||||||
|
|
||||||
/* makedict.c */
|
/* makedict.c */
|
||||||
void parse (int argc, char** argv);
|
void parse(int argc, char** argv);
|
||||||
void usage (char* name);
|
void usage(char* name);
|
||||||
int getch (void);
|
int getch(void);
|
||||||
void mark_file (FILE* out);
|
void mark_file(FILE* out);
|
||||||
|
|
||||||
/* makelist.c */
|
/* makelist.c */
|
||||||
void clear_list (void);
|
void clear_list(void);
|
||||||
void flush_douon (void);
|
void flush_douon(void);
|
||||||
void makelist (int* yomi, int* kanji, int hinsi, int* atr);
|
void makelist(int* yomi, int* kanji, int hinshi, int* atr);
|
||||||
|
|
||||||
/* makeseg.c */
|
/* makeseg.c */
|
||||||
size_t make_knjstr (unsigned char* src, int len, unsigned char* dst);
|
size_t make_knjstr(unsigned char* src, int len, unsigned char* dst);
|
||||||
void makeseg (void);
|
void makeseg(void);
|
||||||
void makehead (unsigned char* dict_name);
|
void makehead(unsigned char* dict_name);
|
||||||
|
|
||||||
/* memory.c */
|
/* memory.c */
|
||||||
void* Malloc (size_t size);
|
void* Malloc(size_t size);
|
||||||
void* Zalloc (size_t size);
|
void* Zalloc(size_t size);
|
||||||
void Free (void *p);
|
void Free(void* p);
|
||||||
|
|
||||||
/* offset.c */
|
/* offset.c */
|
||||||
void set_ofsrec (unsigned char* ptr, int len, int ofs);
|
void set_ofsrec(unsigned char* ptr, int len, int ofs);
|
||||||
int isknjexist (unsigned char* knj, int len);
|
int isknjexist(unsigned char* knj, int len);
|
||||||
void clear_ofsrec (void);
|
void clear_ofsrec(void);
|
||||||
OffsetRec* real_ofsrec (unsigned char* ptr);
|
OffsetRec* real_ofsrec(unsigned char* ptr);
|
||||||
|
|
||||||
/* readline.c */
|
/* readline.c */
|
||||||
int* readline (void);
|
int* readline(void);
|
||||||
void setline (void (*func)(int*, int*, int, int*));
|
void setline(void (*func)(int*, int*, int, int*));
|
||||||
|
|
||||||
/* string.c */
|
/* string.c */
|
||||||
int bubun_str (unsigned char* p1, int l1, unsigned char* p2, int l2);
|
int bubun_str(unsigned char* p1, int l1, unsigned char* p2, int l2);
|
||||||
int overlap_str (unsigned char *p1, int l1, unsigned char* p2, int l2);
|
int overlap_str(unsigned char* p1, int l1, unsigned char* p2, int l2);
|
||||||
int top_strcmp (int* src, int* dst);
|
int top_strcmp(int* src, int* dst);
|
||||||
int last_strcmp (int* src, int* dst);
|
int last_strcmp(int* src, int* dst);
|
||||||
int string_cmp (unsigned char* p1, int l1, unsigned char* p2, int l2);
|
int string_cmp(unsigned char* p1, int l1, unsigned char* p2, int l2);
|
||||||
|
|
||||||
#endif /* _DICTTOOL_H_ */
|
#endif /* _DICTTOOL_H_ */
|
||||||
|
|
||||||
|
|
|
||||||
378
display.c
378
display.c
|
|
@ -27,14 +27,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: display.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:03:12 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include "sj_sysvdef.h"
|
#include "sj_sysvdef.h"
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
@ -45,256 +37,226 @@ char bp[TCBUFSIZE];
|
||||||
char bpwork[AREASIZE];
|
char bpwork[AREASIZE];
|
||||||
char cmove[SHORTLENGTH];
|
char cmove[SHORTLENGTH];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
extern int master;
|
extern int master;
|
||||||
extern int vflag;
|
extern int vflag;
|
||||||
extern char term_name[];
|
extern char term_name[];
|
||||||
|
|
||||||
int status_line;
|
int status_line;
|
||||||
char *CM,*US,*UE,*SO,*SE,*CE,*CS,*BEL,*RP,*AP,*TS,*FS,*DS,*I2;
|
char * CM, *US, *UE, *SO, *SE, *CE, *CS, *BEL, *RP, *AP, *TS, *FS, *DS, *I2;
|
||||||
char *SC,*RC,*SR,*DO;
|
char * SC, *RC, *SR, *DO;
|
||||||
static int keyboard = OTHER_KB;
|
static int keyboard = OTHER_KB;
|
||||||
|
|
||||||
|
checkterm() {
|
||||||
|
char * kb, *area, *tgetstr(), *tmp;
|
||||||
checkterm ()
|
|
||||||
{
|
|
||||||
char *kb, *area, *tgetstr (), *tmp;
|
|
||||||
int val;
|
int val;
|
||||||
Conversion *cv;
|
Conversion* cv;
|
||||||
|
|
||||||
cv = current_conversion;
|
cv = current_conversion;
|
||||||
|
|
||||||
val = tgetent (bp, term_name);
|
val = tgetent(bp, term_name);
|
||||||
if (val == -1) {
|
if(val == -1) {
|
||||||
aprintf ("Can't open termcap file\n\r");
|
aprintf("Can't open termcap file\n\r");
|
||||||
done3 ();
|
done3();
|
||||||
} else if (val == 0) {
|
} else if(val == 0) {
|
||||||
aprintf ("No termcap entry for %s\n\r",term_name);
|
aprintf("No termcap entry for %s\n\r", term_name);
|
||||||
done3 ();
|
done3();
|
||||||
}
|
}
|
||||||
if ((val = tgetnum("co")) < 0) {
|
if((val = tgetnum("co")) < 0) {
|
||||||
cv-> column = 0;
|
cv->column = 0;
|
||||||
} else {
|
} else {
|
||||||
cv-> column = val;
|
cv->column = val;
|
||||||
}
|
}
|
||||||
if ((val = tgetnum("li")) < 0) {
|
if((val = tgetnum("li")) < 0) {
|
||||||
cv->line = 0;
|
cv->line = 0;
|
||||||
} else {
|
} else {
|
||||||
cv->line = val;
|
cv->line = val;
|
||||||
}
|
}
|
||||||
if (tmp = getenv("ROWS")) {
|
if(tmp = getenv("ROWS")) {
|
||||||
(void) sscanf(tmp, "%d", &val);
|
(void)sscanf(tmp, "%d", &val);
|
||||||
cv->line = val;
|
cv->line = val;
|
||||||
}
|
}
|
||||||
if (tmp = getenv("COLUMNS")) {
|
if(tmp = getenv("COLUMNS")) {
|
||||||
(void) sscanf(tmp, "%d", &val);
|
(void)sscanf(tmp, "%d", &val);
|
||||||
cv->column = val;
|
cv->column = val;
|
||||||
}
|
}
|
||||||
area = bpwork;
|
area = bpwork;
|
||||||
|
|
||||||
if ((CM = tgetstr ("cm", &area)) == (char *)NULL) {
|
if((CM = tgetstr("cm", &area)) == (char*)NULL) {
|
||||||
aprintf ("No termcap 'cm'\n\r");
|
aprintf("No termcap 'cm'\n\r");
|
||||||
done3 ();
|
done3();
|
||||||
}
|
}
|
||||||
US = tgetstr ("us", &area);
|
US = tgetstr("us", &area);
|
||||||
UE = tgetstr ("ue", &area);
|
UE = tgetstr("ue", &area);
|
||||||
SO = tgetstr ("so", &area);
|
SO = tgetstr("so", &area);
|
||||||
SE = tgetstr ("se", &area);
|
SE = tgetstr("se", &area);
|
||||||
CE = tgetstr ("ce", &area);
|
CE = tgetstr("ce", &area);
|
||||||
if ((SC = tgetstr ("sc", &area)) == NULL)
|
if((SC = tgetstr("sc", &area)) == NULL)
|
||||||
SC = "\0337";
|
SC = "\0337";
|
||||||
if ((RC = tgetstr ("rc", &area)) == NULL)
|
if((RC = tgetstr("rc", &area)) == NULL)
|
||||||
RC = "\0338";
|
RC = "\0338";
|
||||||
if ((SR = tgetstr ("sr", &area)) == NULL)
|
if((SR = tgetstr("sr", &area)) == NULL)
|
||||||
SR = "\033M";
|
SR = "\033M";
|
||||||
if ((DO = tgetstr ("do", &area)) == NULL)
|
if((DO = tgetstr("do", &area)) == NULL)
|
||||||
DO = "\033E";
|
DO = "\033E";
|
||||||
if ((CS = tgetstr ("cs", &area)) == NULL)
|
if((CS = tgetstr("cs", &area)) == NULL)
|
||||||
CS = "\033[%i%d;%dr";
|
CS = "\033[%i%d;%dr";
|
||||||
if ((BEL = tgetstr ("bl", &area)) == NULL) {
|
if((BEL = tgetstr("bl", &area)) == NULL) {
|
||||||
BEL = "\007";
|
BEL = "\007";
|
||||||
}
|
}
|
||||||
if ((RP = tgetstr ("RP", &area)) == NULL) {
|
if((RP = tgetstr("RP", &area)) == NULL) {
|
||||||
RP = "\033[6n";
|
RP = "\033[6n";
|
||||||
}
|
}
|
||||||
if ((AP = tgetstr ("AP", &area)) == NULL) {
|
if((AP = tgetstr("AP", &area)) == NULL) {
|
||||||
AP = "\033[%d;%dR";
|
AP = "\033[%d;%dR";
|
||||||
}
|
}
|
||||||
if ((status_line = tgetflag("hs")) && tgetflag("es")) {
|
if((status_line = tgetflag("hs")) && tgetflag("es")) {
|
||||||
TS = tgetstr ("ts", &area);
|
TS = tgetstr("ts", &area);
|
||||||
FS = tgetstr ("fs", &area);
|
FS = tgetstr("fs", &area);
|
||||||
DS = tgetstr ("ds", &area);
|
DS = tgetstr("ds", &area);
|
||||||
#ifdef SVR4
|
#ifdef SVR4
|
||||||
I2 = tgetstr ("i1", &area);
|
I2 = tgetstr("i1", &area);
|
||||||
#else
|
#else
|
||||||
I2 = tgetstr ("i2", &area);
|
I2 = tgetstr("i2", &area);
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
status_line = 0;
|
status_line = 0;
|
||||||
}
|
}
|
||||||
#ifdef SVR4
|
#ifdef SVR4
|
||||||
|
|
||||||
|
if(strstr(term_name, "news") != NULL) {
|
||||||
if (strstr(term_name, "news") != NULL) {
|
|
||||||
keyboard = NEWS_KB;
|
keyboard = NEWS_KB;
|
||||||
set_news();
|
set_news();
|
||||||
} else
|
} else
|
||||||
keyboard = OTHER_KB;
|
keyboard = OTHER_KB;
|
||||||
#else
|
#else
|
||||||
|
|
||||||
kb = tgetstr ("KB", &area);
|
kb = tgetstr("KB", &area);
|
||||||
if (kb == (char *)NULL || *kb == '\0')
|
if(kb == (char*)NULL || *kb == '\0')
|
||||||
keyboard = OTHER_KB;
|
keyboard = OTHER_KB;
|
||||||
else if (strcmp (kb, "news") == 0) {
|
else if(strcmp(kb, "news") == 0) {
|
||||||
keyboard = NEWS_KB;
|
keyboard = NEWS_KB;
|
||||||
set_news();
|
set_news();
|
||||||
} else
|
} else
|
||||||
keyboard = OTHER_KB;
|
keyboard = OTHER_KB;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
strcpy (cmove, CM);
|
strcpy(cmove, CM);
|
||||||
}
|
}
|
||||||
|
|
||||||
void outc(c)
|
void outc(c) char c;
|
||||||
char c;
|
|
||||||
{
|
{
|
||||||
putchar (c);
|
putchar(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
void erroutc(c)
|
void erroutc(c) {
|
||||||
{
|
fputc(c, stderr);
|
||||||
fputc (c, stderr);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
start_guideline ()
|
start_guideline() {
|
||||||
{
|
if(status_line && I2)
|
||||||
if (status_line && I2)
|
|
||||||
tputs(I2, 1, erroutc);
|
tputs(I2, 1, erroutc);
|
||||||
}
|
}
|
||||||
|
|
||||||
end_guideline ()
|
end_guideline() {
|
||||||
{
|
if(status_line) {
|
||||||
if (status_line) {
|
|
||||||
tputs(DS, 1, outc);
|
tputs(DS, 1, outc);
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
put_space (n)
|
put_space(n) int n;
|
||||||
int n;
|
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0 ; i < n ; i ++)
|
for(i = 0; i < n; i++)
|
||||||
putchar (' ');
|
putchar(' ');
|
||||||
}
|
}
|
||||||
|
|
||||||
Backspace ()
|
Backspace() {
|
||||||
{
|
putchar(BS);
|
||||||
putchar (BS);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
master_flush ()
|
master_flush() {
|
||||||
{
|
|
||||||
SELECT_FD ifds;
|
SELECT_FD ifds;
|
||||||
int nc;
|
int nc;
|
||||||
struct timeval t;
|
struct timeval t;
|
||||||
|
|
||||||
do {
|
do {
|
||||||
cont:
|
cont:
|
||||||
t.tv_sec = 0;
|
t.tv_sec = 0;
|
||||||
t.tv_usec = UsecWeight (1);
|
t.tv_usec = UsecWeight(1);
|
||||||
FD_ZERO (&ifds);
|
FD_ZERO(&ifds);
|
||||||
FD_SET (STDIN, &ifds);
|
FD_SET(STDIN, &ifds);
|
||||||
FD_SET (master, &ifds);
|
FD_SET(master, &ifds);
|
||||||
if (select (master + 1, &ifds, 0, 0, &t) > 0) {
|
if(select(master + 1, &ifds, 0, 0, &t) > 0) {
|
||||||
if (FD_ISSET (STDIN, &ifds))
|
if(FD_ISSET(STDIN, &ifds))
|
||||||
if (ThroughIntr ())
|
if(ThroughIntr())
|
||||||
return 1;
|
return 1;
|
||||||
if (FD_ISSET (master, &ifds))
|
if(FD_ISSET(master, &ifds))
|
||||||
output_master ();
|
output_master();
|
||||||
} else if (errno == EINTR) {
|
} else if(errno == EINTR) {
|
||||||
errno = 0;
|
errno = 0;
|
||||||
goto cont;
|
goto cont;
|
||||||
}
|
}
|
||||||
if (ioctl (master, TIOCOUTQ, &nc) < 0)
|
if(ioctl(master, TIOCOUTQ, &nc) < 0)
|
||||||
return (1);
|
return (1);
|
||||||
} while (nc > 0);
|
} while(nc > 0);
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
ThroughIntr ()
|
ThroughIntr() {
|
||||||
{
|
|
||||||
wchar16_t s[2];
|
wchar16_t s[2];
|
||||||
|
|
||||||
SJ_read (s, 1);
|
SJ_read(s, 1);
|
||||||
s[1] = '\0';
|
s[1] = '\0';
|
||||||
if (isintr (*s)) {
|
if(isintr(*s)) {
|
||||||
master_out (s, 1);
|
master_out(s, 1);
|
||||||
return (1);
|
return (1);
|
||||||
}
|
} else {
|
||||||
else {
|
unget_inkey2(s, 1);
|
||||||
unget_inkey2 (s, 1);
|
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
under_in ()
|
under_in() {
|
||||||
{
|
|
||||||
tputs(US, 1, outc);
|
tputs(US, 1, outc);
|
||||||
}
|
}
|
||||||
|
|
||||||
under_out ()
|
under_out() {
|
||||||
{
|
|
||||||
tputs(UE, 1, outc);
|
tputs(UE, 1, outc);
|
||||||
}
|
}
|
||||||
|
|
||||||
reverse_in ()
|
reverse_in() {
|
||||||
{
|
|
||||||
tputs(SO, 1, outc);
|
tputs(SO, 1, outc);
|
||||||
}
|
}
|
||||||
|
|
||||||
reverse_out ()
|
reverse_out() {
|
||||||
{
|
|
||||||
tputs(SE, 1, outc);
|
tputs(SE, 1, outc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
beep() {
|
||||||
|
|
||||||
beep ()
|
|
||||||
{
|
|
||||||
tputs(BEL, 1, outc);
|
tputs(BEL, 1, outc);
|
||||||
Flush ();
|
Flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CursorSet(row, col) unsigned short row, col;
|
||||||
|
|
||||||
CursorSet (row, col)
|
|
||||||
unsigned short row, col;
|
|
||||||
{
|
{
|
||||||
tputs(tgoto(CM, col - 1, row - 1), 1, outc);
|
tputs(tgoto(CM, col - 1, row - 1), 1, outc);
|
||||||
Flush ();
|
Flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RegionSet(row1, row2) int row1, row2;
|
||||||
|
|
||||||
RegionSet (row1, row2)
|
|
||||||
int row1, row2;
|
|
||||||
{
|
{
|
||||||
|
|
||||||
|
tputs(SC, 1, outc);
|
||||||
|
tputs(tgoto(CS, row2, row1 - 1), 1, outc);
|
||||||
tputs (SC, 1, outc);
|
tputs(RC, 1, outc);
|
||||||
tputs (tgoto (CS, row2, row1 - 1), 1, outc);
|
tputs(DO, 1, outc);
|
||||||
tputs (RC, 1, outc);
|
tputs(SR, 1, outc);
|
||||||
tputs (DO, 1, outc);
|
tputs(SC, 1, outc);
|
||||||
tputs (SR, 1, outc);
|
tputs(tgoto(CS, row2 - 1, row1 - 1), 1, outc);
|
||||||
tputs (SC, 1, outc);
|
tputs(RC, 1, outc);
|
||||||
tputs (tgoto (CS, row2 - 1, row1 - 1), 1, outc);
|
Flush();
|
||||||
tputs (RC, 1, outc);
|
|
||||||
Flush ();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#define SUCC 0
|
#define SUCC 0
|
||||||
|
|
@ -303,8 +265,7 @@ int row1, row2;
|
||||||
|
|
||||||
int master_flush_flag = 1;
|
int master_flush_flag = 1;
|
||||||
|
|
||||||
CursorRead (row, col)
|
CursorRead(row, col) unsigned short* row, *col;
|
||||||
unsigned short *row, *col;
|
|
||||||
{
|
{
|
||||||
|
|
||||||
int count;
|
int count;
|
||||||
|
|
@ -312,45 +273,41 @@ unsigned short *row, *col;
|
||||||
|
|
||||||
row2 = col2 = 0;
|
row2 = col2 = 0;
|
||||||
count = 0;
|
count = 0;
|
||||||
for (;;) {
|
for(;;) {
|
||||||
if (++count > CRLIMIT) {
|
if(++count > CRLIMIT) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
tputs(RP, 1, outc);
|
tputs(RP, 1, outc);
|
||||||
fflush (stdout);
|
fflush(stdout);
|
||||||
if (CRP (&row1, &col1) == FAIL)
|
if(CRP(&row1, &col1) == FAIL)
|
||||||
continue;
|
continue;
|
||||||
if (master_flush_flag)
|
if(master_flush_flag)
|
||||||
master_flush ();
|
master_flush();
|
||||||
tputs(RP, 1, outc);
|
tputs(RP, 1, outc);
|
||||||
fflush (stdout);
|
fflush(stdout);
|
||||||
if (CRP (&row2, &col2) == FAIL)
|
if(CRP(&row2, &col2) == FAIL)
|
||||||
continue;
|
continue;
|
||||||
if (row1 == row2 && col1 == col2)
|
if(row1 == row2 && col1 == col2)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
*row = row2;
|
*row = row2;
|
||||||
*col = col2;
|
*col = col2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define CRPLIM 4
|
#define CRPLIM 4
|
||||||
#define BACKLIM 16
|
#define BACKLIM 16
|
||||||
#define MARKER '%'
|
#define MARKER '%'
|
||||||
#define SEPARA ';'
|
#define SEPARA ';'
|
||||||
|
|
||||||
CRP (row, col)
|
CRP(row, col)
|
||||||
int *row, *col;
|
int *row, *col;
|
||||||
{
|
{
|
||||||
char *sa, *sd;
|
char * sa, *sd;
|
||||||
int c;
|
int c;
|
||||||
char Rchar[4], Cchar[4];
|
char Rchar[4], Cchar[4];
|
||||||
wchar16_t Back[BACKLIM];
|
wchar16_t Back[BACKLIM];
|
||||||
int Back_count, count;
|
int Back_count, count;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
count = 0;
|
count = 0;
|
||||||
Back_count = 0;
|
Back_count = 0;
|
||||||
c = '\0';
|
c = '\0';
|
||||||
|
|
@ -358,138 +315,121 @@ top:
|
||||||
sa = AP;
|
sa = AP;
|
||||||
sd = Rchar;
|
sd = Rchar;
|
||||||
|
|
||||||
if (++count > CRPLIM)
|
if(++count > CRPLIM)
|
||||||
return (FAIL);
|
return (FAIL);
|
||||||
|
|
||||||
if (Back_count) {
|
if(Back_count) {
|
||||||
unget_inkey2 (Back, Back_count);
|
unget_inkey2(Back, Back_count);
|
||||||
Back_count = 0;
|
Back_count = 0;
|
||||||
}
|
}
|
||||||
while ((c != ESC) && ((c = CRI ()) != ESC) && Back_count < BACKLIM)
|
while((c != ESC) && ((c = CRI()) != ESC) && Back_count < BACKLIM)
|
||||||
Back[Back_count++] = c;
|
Back[Back_count++] = c;
|
||||||
if (Back_count) {
|
if(Back_count) {
|
||||||
unget_inkey2 (Back, Back_count);
|
unget_inkey2(Back, Back_count);
|
||||||
Back_count = 0;
|
Back_count = 0;
|
||||||
}
|
}
|
||||||
Back[Back_count++] = c;
|
Back[Back_count++] = c;
|
||||||
|
|
||||||
sa ++;
|
sa++;
|
||||||
while (*sa != '\0') {
|
while(*sa != '\0') {
|
||||||
if (*sa == MARKER) {
|
if(*sa == MARKER) {
|
||||||
sa += 2;
|
sa += 2;
|
||||||
|
|
||||||
while (c = CRI ()) {
|
while(c = CRI()) {
|
||||||
if (c == ESC)
|
if(c == ESC)
|
||||||
goto top;
|
goto top;
|
||||||
Back[Back_count++] = c;
|
Back[Back_count++] = c;
|
||||||
if (isdigit (c)) {
|
if(isdigit(c)) {
|
||||||
*(sd ++) = c;
|
*(sd++) = c;
|
||||||
*sd = '\0';
|
*sd = '\0';
|
||||||
}
|
} else if(c == *sa)
|
||||||
else if (c == *sa)
|
|
||||||
break;
|
break;
|
||||||
else
|
else
|
||||||
goto top;
|
goto top;
|
||||||
}
|
}
|
||||||
if (c == SEPARA)
|
if(c == SEPARA)
|
||||||
sd = Cchar;
|
sd = Cchar;
|
||||||
}
|
} else {
|
||||||
else {
|
c = CRI();
|
||||||
c = CRI ();
|
if(c == ESC)
|
||||||
if (c == ESC)
|
|
||||||
goto top;
|
goto top;
|
||||||
Back[Back_count++] = c;
|
Back[Back_count++] = c;
|
||||||
if (c != *sa)
|
if(c != *sa)
|
||||||
goto top;
|
goto top;
|
||||||
}
|
}
|
||||||
sa ++;
|
sa++;
|
||||||
}
|
}
|
||||||
*row = atoi (Rchar);
|
*row = atoi(Rchar);
|
||||||
*col = atoi (Cchar);
|
*col = atoi(Cchar);
|
||||||
|
|
||||||
return (SUCC);
|
return (SUCC);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unget_inkey2(s, n)
|
||||||
|
wchar16_t* s;
|
||||||
unget_inkey2 (s, n)
|
|
||||||
wchar16_t *s;
|
|
||||||
int n;
|
int n;
|
||||||
{
|
{
|
||||||
extern wchar16_t ibuf[];
|
extern wchar16_t ibuf[];
|
||||||
extern int buf_count;
|
extern int buf_count;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (buf_count < KEYBUFSIZ - n) {
|
if(buf_count < KEYBUFSIZ - n) {
|
||||||
for (i = 0 ; i < n ; i ++)
|
for(i = 0; i < n; i++)
|
||||||
ibuf[buf_count ++] = *(s ++);
|
ibuf[buf_count++] = *(s++);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
unget_key (c)
|
unget_key(c) int c;
|
||||||
int c;
|
|
||||||
{
|
{
|
||||||
wchar16_t tmp[2];
|
wchar16_t tmp[2];
|
||||||
|
|
||||||
tmp[0] = c;
|
tmp[0] = c;
|
||||||
unget_inkey2 (tmp, 1);
|
unget_inkey2(tmp, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CRI() {
|
||||||
|
|
||||||
CRI ()
|
|
||||||
{
|
|
||||||
wchar16_t c;
|
wchar16_t c;
|
||||||
|
|
||||||
SJ_read (&c, 1);
|
SJ_read(&c, 1);
|
||||||
return (c);
|
return (c);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Clear_EOL() {
|
||||||
|
|
||||||
Clear_EOL ()
|
|
||||||
{
|
|
||||||
reverse_out();
|
reverse_out();
|
||||||
tputs(CE, 1, outc);
|
tputs(CE, 1, outc);
|
||||||
}
|
}
|
||||||
|
|
||||||
StartGuide (row, col)
|
StartGuide(row, col) unsigned short* row, *col;
|
||||||
unsigned short *row, *col;
|
|
||||||
{
|
{
|
||||||
Conversion *cv;
|
Conversion* cv;
|
||||||
|
|
||||||
cv = current_conversion;
|
cv = current_conversion;
|
||||||
master_flush_flag = 0;
|
master_flush_flag = 0;
|
||||||
if (status_line) {
|
if(status_line) {
|
||||||
tputs (tgoto (TS, 0, 0), 1, outc);
|
tputs(tgoto(TS, 0, 0), 1, outc);
|
||||||
|
} else {
|
||||||
|
CursorRead(row, col);
|
||||||
|
CursorSet(cv->line + 1, 0);
|
||||||
}
|
}
|
||||||
else {
|
Flush();
|
||||||
CursorRead (row, col);
|
|
||||||
CursorSet (cv->line + 1, 0);
|
|
||||||
}
|
|
||||||
Flush ();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
EndGuide (row, col)
|
EndGuide(row, col) unsigned short row, col;
|
||||||
unsigned short row, col;
|
|
||||||
{
|
{
|
||||||
if (status_line) {
|
if(status_line) {
|
||||||
tputs (FS, 1, outc);
|
tputs(FS, 1, outc);
|
||||||
|
} else {
|
||||||
|
CursorSet(row, col);
|
||||||
}
|
}
|
||||||
else {
|
Flush();
|
||||||
CursorSet (row, col);
|
|
||||||
}
|
|
||||||
Flush ();
|
|
||||||
master_flush_flag = 1;
|
master_flush_flag = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
Flush ()
|
Flush() {
|
||||||
{
|
fflush(stdout);
|
||||||
fflush (stdout);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Cscroll ()
|
Cscroll() {
|
||||||
{
|
|
||||||
|
|
||||||
return (1);
|
return (1);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
387
douon.c
387
douon.c
|
|
@ -27,14 +27,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: douon.c,v $
|
|
||||||
* $SonyRevision: 1.2 $
|
|
||||||
* $SonyDate: 1996/02/23 11:04:02 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "key.h"
|
#include "key.h"
|
||||||
#include "wchar16.h"
|
#include "wchar16.h"
|
||||||
|
|
@ -45,88 +37,80 @@ static int Dpoint;
|
||||||
static struct douon_sj3 HenkanDouon[DOUON_N];
|
static struct douon_sj3 HenkanDouon[DOUON_N];
|
||||||
static wchar16_t Dkanji[BUFFLENGTH * 2];
|
static wchar16_t Dkanji[BUFFLENGTH * 2];
|
||||||
|
|
||||||
void go_gakusyuu();
|
void go_gakushuu();
|
||||||
|
|
||||||
SJ_getdouon (s, d, n, choice, reconv)
|
SJ_getdouon(s, d, n, choice, reconv)
|
||||||
wchar16_t *s;
|
wchar16_t* s;
|
||||||
struct douon_sj3 *d;
|
struct douon_sj3* d;
|
||||||
int n;
|
int n;
|
||||||
int choice;
|
int choice;
|
||||||
int reconv;
|
int reconv;
|
||||||
{
|
{
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
Dcount = SJ2_getdouon (s, d, n, choice, reconv);
|
Dcount = SJ2_getdouon(s, d, n, choice, reconv);
|
||||||
|
|
||||||
|
if(Dcount < 0 && !dconnect(1))
|
||||||
|
Dcount = SJ2_getdouon(s, d, n, choice, reconv);
|
||||||
|
|
||||||
if (Dcount < 0 && !dconnect(1))
|
if(Dcount <= 0) {
|
||||||
Dcount = SJ2_getdouon (s, d, n, choice, reconv);
|
|
||||||
|
|
||||||
if (Dcount <= 0) {
|
|
||||||
Dcount = 1;
|
Dcount = 1;
|
||||||
len = wslen (s);
|
len = wslen(s);
|
||||||
Strncpy ((char *)d[0].ddata, s, len);
|
Strncpy((char*)d[0].ddata, s, len);
|
||||||
d[0].dlen = wcbyte(s);
|
d[0].dlen = wcbyte(s);
|
||||||
d[0].wlen = len;
|
d[0].wlen = len;
|
||||||
return(0);
|
return (0);
|
||||||
} else
|
} else
|
||||||
return(1);
|
return (1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
exec_douon() {
|
||||||
|
Conversion* cv;
|
||||||
exec_douon ()
|
|
||||||
{
|
|
||||||
Conversion *cv;
|
|
||||||
int val;
|
int val;
|
||||||
|
|
||||||
cv = GetConversion ();
|
cv = GetConversion();
|
||||||
if (cv->CurBun == -1) {
|
if(cv->CurBun == -1) {
|
||||||
cv->CurBun = 0;
|
cv->CurBun = 0;
|
||||||
Rdisp ();
|
Rdisp();
|
||||||
}
|
}
|
||||||
cv->PreBun = cv->CurBun;
|
cv->PreBun = cv->CurBun;
|
||||||
if (cv->Bkettei[cv->CurBun] & Bmuhenkan)
|
if(cv->Bkettei[cv->CurBun] & Bmuhenkan)
|
||||||
val = Sdouon (2);
|
val = Sdouon(2);
|
||||||
else
|
else
|
||||||
val = Sdouon (1);
|
val = Sdouon(1);
|
||||||
if (!val)
|
if(!val)
|
||||||
Rdisp ();
|
Rdisp();
|
||||||
}
|
}
|
||||||
|
|
||||||
wrap_douon (back)
|
wrap_douon(back) int back;
|
||||||
int back;
|
|
||||||
{
|
{
|
||||||
Conversion *cv;
|
Conversion* cv;
|
||||||
int val;
|
int val;
|
||||||
|
|
||||||
cv = current_conversion;
|
cv = current_conversion;
|
||||||
if (cv->CurBun == -1) {
|
if(cv->CurBun == -1) {
|
||||||
cv->CurBun = 0;
|
cv->CurBun = 0;
|
||||||
Rdisp ();
|
Rdisp();
|
||||||
}
|
}
|
||||||
cv->PreBun = cv->CurBun;
|
cv->PreBun = cv->CurBun;
|
||||||
if (cv->Dflag == cv->CurBun)
|
if(cv->Dflag == cv->CurBun)
|
||||||
val = Rdouon (back);
|
val = Rdouon(back);
|
||||||
else {
|
else {
|
||||||
val = Sdouon (2);
|
val = Sdouon(2);
|
||||||
cv->Dflag = cv->CurBun;
|
cv->Dflag = cv->CurBun;
|
||||||
}
|
}
|
||||||
if (!val)
|
if(!val)
|
||||||
Rdisp ();
|
Rdisp();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Cdouon(yomi, gnum)
|
||||||
|
wchar16_t* yomi;
|
||||||
Cdouon (yomi, gnum)
|
|
||||||
wchar16_t *yomi;
|
|
||||||
int gnum;
|
int gnum;
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
int i, j;
|
int i, j;
|
||||||
int len;
|
int len;
|
||||||
wchar16_t *s;
|
wchar16_t* s;
|
||||||
int dispnum;
|
int dispnum;
|
||||||
int num;
|
int num;
|
||||||
int displen;
|
int displen;
|
||||||
|
|
@ -134,187 +118,176 @@ int gnum;
|
||||||
char tmp[BUFFLENGTH], tmp2[BUFFLENGTH * 2];
|
char tmp[BUFFLENGTH], tmp2[BUFFLENGTH * 2];
|
||||||
wchar16_t wtmp[BUFFLENGTH], wtmp2[BUFFLENGTH * 2];
|
wchar16_t wtmp[BUFFLENGTH], wtmp2[BUFFLENGTH * 2];
|
||||||
|
|
||||||
int gakusyuu;
|
int gakushuu;
|
||||||
unsigned short row, col;
|
unsigned short row, col;
|
||||||
Conversion *cv;
|
Conversion* cv;
|
||||||
|
|
||||||
cv = current_conversion;
|
cv = current_conversion;
|
||||||
|
|
||||||
gakusyuu = SJ_getdouon (yomi, HenkanDouon, gnum, 0, 0);
|
gakushuu = SJ_getdouon(yomi, HenkanDouon, gnum, 0, 0);
|
||||||
|
|
||||||
dispnum = DNUM;
|
dispnum = DNUM;
|
||||||
if (dispnum > Dcount)
|
if(dispnum > Dcount)
|
||||||
j = Dcount;
|
j = Dcount;
|
||||||
else
|
else
|
||||||
j = dispnum;
|
j = dispnum;
|
||||||
len = 0;
|
len = 0;
|
||||||
for (i = 0 ; i < j ; i ++)
|
for(i = 0; i < j; i++)
|
||||||
len += HenkanDouon[i].dlen;
|
len += HenkanDouon[i].dlen;
|
||||||
len /= j;
|
len /= j;
|
||||||
if (len < 1)
|
if(len < 1)
|
||||||
len = 1;
|
len = 1;
|
||||||
len += 6;
|
len += 6;
|
||||||
sprintf (tmp, "%d/%d ", Dcount, Dcount);
|
sprintf(tmp, "%d/%d ", Dcount, Dcount);
|
||||||
displen = cv->column - strlen (tmp) - 1;
|
displen = cv->column - strlen(tmp) - 1;
|
||||||
if (displen < 1)
|
if(displen < 1)
|
||||||
displen = 1;
|
displen = 1;
|
||||||
num = displen / len;
|
num = displen / len;
|
||||||
if (num < 1)
|
if(num < 1)
|
||||||
num = 1;
|
num = 1;
|
||||||
if (num < dispnum && num > 0)
|
if(num < dispnum && num > 0)
|
||||||
dispnum = num;
|
dispnum = num;
|
||||||
|
|
||||||
for (i = 0 ; ; ) {
|
for(i = 0;;) {
|
||||||
if (i >= Dcount)
|
if(i >= Dcount)
|
||||||
i = 0;
|
i = 0;
|
||||||
StartGuide (&row, &col);
|
StartGuide(&row, &col);
|
||||||
Clear_EOL ();
|
Clear_EOL();
|
||||||
base = i;
|
base = i;
|
||||||
|
|
||||||
sprintf (tmp, "%d/%d", i + 1, Dcount);
|
sprintf(tmp, "%d/%d", i + 1, Dcount);
|
||||||
(void) mbstowcs(wtmp, tmp, BUFFLENGTH);
|
(void)mbstowcs(wtmp, tmp, BUFFLENGTH);
|
||||||
printR (wtmp);
|
printR(wtmp);
|
||||||
put_space (1);
|
put_space(1);
|
||||||
|
|
||||||
for (j = 0 ; j < dispnum ; j ++, i ++) {
|
for(j = 0; j < dispnum; j++, i++) {
|
||||||
if (i >= Dcount)
|
if(i >= Dcount)
|
||||||
break;
|
break;
|
||||||
len = HenkanDouon[i].dlen;
|
len = HenkanDouon[i].dlen;
|
||||||
|
|
||||||
if (len > displen)
|
if(len > displen)
|
||||||
len = displen;
|
len = displen;
|
||||||
|
|
||||||
s = (wchar16_t *)HenkanDouon[i].ddata;
|
s = (wchar16_t*)HenkanDouon[i].ddata;
|
||||||
Strncpy (wtmp, s, HenkanDouon[i].wlen);
|
Strncpy(wtmp, s, HenkanDouon[i].wlen);
|
||||||
wtmp[HenkanDouon[i].wlen] = '\0';
|
wtmp[HenkanDouon[i].wlen] = '\0';
|
||||||
(void) wcstombs(tmp, wtmp, BUFFLENGTH);
|
(void)wcstombs(tmp, wtmp, BUFFLENGTH);
|
||||||
sprintf (tmp2, "[%d] %s ", j+1, tmp);
|
sprintf(tmp2, "[%d] %s ", j + 1, tmp);
|
||||||
(void) mbstowcs(wtmp2, tmp2, BUFFLENGTH);
|
(void)mbstowcs(wtmp2, tmp2, BUFFLENGTH);
|
||||||
SJ_print (wtmp2);
|
SJ_print(wtmp2);
|
||||||
}
|
}
|
||||||
|
|
||||||
EndGuide (row, col);
|
EndGuide(row, col);
|
||||||
Flush ();
|
Flush();
|
||||||
num = Dselect (j);
|
num = Dselect(j);
|
||||||
|
|
||||||
|
if(num == 0)
|
||||||
if (num == 0)
|
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
else if(num == -1) {
|
||||||
else if (num == -1) {
|
if((i >= Dcount) && ((Dcount % dispnum) != 0))
|
||||||
if ((i >= Dcount) && ((Dcount % dispnum) != 0))
|
|
||||||
i = Dcount - (Dcount % dispnum);
|
i = Dcount - (Dcount % dispnum);
|
||||||
else
|
else
|
||||||
i -= dispnum;
|
i -= dispnum;
|
||||||
i -= dispnum;
|
i -= dispnum;
|
||||||
if (i < 0) {
|
if(i < 0) {
|
||||||
if (Dcount > dispnum) {
|
if(Dcount > dispnum) {
|
||||||
if ((Dcount % dispnum) == 0)
|
if((Dcount % dispnum) == 0)
|
||||||
i = Dcount - dispnum;
|
i = Dcount - dispnum;
|
||||||
else
|
else
|
||||||
i = Dcount - (Dcount % dispnum);
|
i = Dcount - (Dcount % dispnum);
|
||||||
}
|
} else
|
||||||
else
|
|
||||||
i = 0;
|
i = 0;
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
else if(num > j) {
|
||||||
else if (num > j) {
|
disp_mode();
|
||||||
disp_mode ();
|
|
||||||
return (FALSE);
|
return (FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
disp_mode ();
|
disp_mode();
|
||||||
|
|
||||||
Dpoint = base + num - 1;
|
Dpoint = base + num - 1;
|
||||||
len = HenkanDouon[Dpoint].dlen;
|
len = HenkanDouon[Dpoint].dlen;
|
||||||
s = (wchar16_t *)HenkanDouon[Dpoint].ddata;
|
s = (wchar16_t*)HenkanDouon[Dpoint].ddata;
|
||||||
Strncpy (Dkanji, s, HenkanDouon[Dpoint].wlen);
|
Strncpy(Dkanji, s, HenkanDouon[Dpoint].wlen);
|
||||||
Dkanji[HenkanDouon[Dpoint].wlen] = '\0';
|
Dkanji[HenkanDouon[Dpoint].wlen] = '\0';
|
||||||
if (HenkanDouon[Dpoint].valid)
|
if(HenkanDouon[Dpoint].valid)
|
||||||
PushGD (gnum, &HenkanDouon[Dpoint].dcid);
|
PushGD(gnum, &HenkanDouon[Dpoint].dcid);
|
||||||
|
|
||||||
if (gakusyuu)
|
if(gakushuu)
|
||||||
if (HenkanDouon[Dpoint].valid)
|
if(HenkanDouon[Dpoint].valid)
|
||||||
SJ2_study (&HenkanDouon[Dpoint].dcid);
|
SJ2_study(&HenkanDouon[Dpoint].dcid);
|
||||||
else
|
else
|
||||||
SJ2_toroku(yomi, HenkanDouon[Dpoint].ddata, SJ3_H_NRMNOUN);
|
SJ2_toroku(yomi, HenkanDouon[Dpoint].ddata, SJ3_H_NRMNOUN);
|
||||||
|
|
||||||
return (TRUE);
|
return (TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
Dselect (lim)
|
Dselect(lim) int lim;
|
||||||
int lim;
|
|
||||||
{
|
{
|
||||||
extern int keyvalue;
|
extern int keyvalue;
|
||||||
int c, num;
|
int c, num;
|
||||||
char s[2];
|
char s[2];
|
||||||
|
|
||||||
SaveConversion ();
|
SaveConversion();
|
||||||
while ((c = inkey ()) != EOF) {
|
while((c = inkey()) != EOF) {
|
||||||
if (AnotherConversion ()) {
|
if(AnotherConversion()) {
|
||||||
unget_key (c);
|
unget_key(c);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (keyvalue == KEY_KETTEI)
|
if(keyvalue == KEY_KETTEI)
|
||||||
break;
|
break;
|
||||||
else if (keyvalue == KEY_HENKAN || keyvalue == KEY_RIGHT)
|
else if(keyvalue == KEY_HENKAN || keyvalue == KEY_RIGHT)
|
||||||
return (0);
|
return (0);
|
||||||
else if (c == ' ')
|
else if(c == ' ')
|
||||||
return (0);
|
return (0);
|
||||||
else if (keyvalue == KEY_MUHENKAN || keyvalue == KEY_LEFT
|
else if(keyvalue == KEY_MUHENKAN || keyvalue == KEY_LEFT || is_bsdel(c))
|
||||||
|| is_bsdel (c))
|
|
||||||
return (-1);
|
return (-1);
|
||||||
else if (WcIsASCII(c) && isdigit (WcLowByte(c))) {
|
else if(WcIsASCII(c) && isdigit(WcLowByte(c))) {
|
||||||
*s = c;
|
*s = c;
|
||||||
s[1] = '\0';
|
s[1] = '\0';
|
||||||
num = atoi (s);
|
num = atoi(s);
|
||||||
if (num > 0 && num <= lim)
|
if(num > 0 && num <= lim)
|
||||||
return (num);
|
return (num);
|
||||||
}
|
} else if(keyvalue != KEY_NORMAL)
|
||||||
else if (keyvalue != KEY_NORMAL)
|
|
||||||
break;
|
break;
|
||||||
else if (keyvalue == KEY_NORMAL && IsESC (c))
|
else if(keyvalue == KEY_NORMAL && IsESC(c))
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return (lim + 1);
|
return (lim + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Gdouon(yomi, num, choice, reconv)
|
||||||
Gdouon (yomi, num, choice, reconv)
|
wchar16_t* yomi;
|
||||||
wchar16_t *yomi;
|
|
||||||
int num;
|
int num;
|
||||||
int choice;
|
int choice;
|
||||||
int reconv;
|
int reconv;
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
int len;
|
int len;
|
||||||
wchar16_t *s;
|
wchar16_t* s;
|
||||||
|
|
||||||
SJ_getdouon (yomi, HenkanDouon, num, choice, reconv);
|
SJ_getdouon(yomi, HenkanDouon, num, choice, reconv);
|
||||||
|
|
||||||
Dpoint = 0;
|
Dpoint = 0;
|
||||||
len = HenkanDouon[Dpoint].wlen;
|
len = HenkanDouon[Dpoint].wlen;
|
||||||
s = (wchar16_t *)HenkanDouon[Dpoint].ddata;
|
s = (wchar16_t*)HenkanDouon[Dpoint].ddata;
|
||||||
Strncpy (Dkanji, s, len);
|
Strncpy(Dkanji, s, len);
|
||||||
Dkanji[len] = '\0';
|
Dkanji[len] = '\0';
|
||||||
if (HenkanDouon[Dpoint].valid)
|
if(HenkanDouon[Dpoint].valid)
|
||||||
PushGD (num, &HenkanDouon[Dpoint].dcid);
|
PushGD(num, &HenkanDouon[Dpoint].dcid);
|
||||||
}
|
}
|
||||||
|
|
||||||
Sdouon (Choice)
|
Sdouon(Choice) int Choice;
|
||||||
int Choice;
|
|
||||||
{
|
{
|
||||||
Conversion *cv;
|
Conversion* cv;
|
||||||
int i, j;
|
int i, j;
|
||||||
int len;
|
int len;
|
||||||
wchar16_t yomi[BUFFLENGTH * 2];
|
wchar16_t yomi[BUFFLENGTH * 2];
|
||||||
|
|
@ -322,209 +295,193 @@ int Choice;
|
||||||
|
|
||||||
cv = current_conversion;
|
cv = current_conversion;
|
||||||
count = 0;
|
count = 0;
|
||||||
if (Choice == 0)
|
if(Choice == 0)
|
||||||
i = cv->PreBun;
|
i = cv->PreBun;
|
||||||
else
|
else
|
||||||
i = cv->CurBun;
|
i = cv->CurBun;
|
||||||
top:
|
top:
|
||||||
if ((len = load_bun(i, yomi, MODE_ZHIRA)) <= 0) {
|
if((len = load_bun(i, yomi, MODE_ZHIRA)) <= 0) {
|
||||||
cv->Bkettei[i] |= Bmuhenkan;
|
cv->Bkettei[i] |= Bmuhenkan;
|
||||||
cv->Bkettei[i] &= ~Bhenkan;
|
cv->Bkettei[i] &= ~Bhenkan;
|
||||||
cv->Pkettei[i] = MODE_ZHIRA;
|
cv->Pkettei[i] = MODE_ZHIRA;
|
||||||
*Dkanji = '\0';
|
*Dkanji = '\0';
|
||||||
goto null;
|
goto null;
|
||||||
}
|
} else if(len > DLEN) {
|
||||||
else if (len > DLEN) {
|
|
||||||
cv->Bkettei[i] |= Bmuhenkan;
|
cv->Bkettei[i] |= Bmuhenkan;
|
||||||
cv->Bkettei[i] &= ~Bhenkan;
|
cv->Bkettei[i] &= ~Bhenkan;
|
||||||
*Dkanji = '\0';
|
*Dkanji = '\0';
|
||||||
goto null;
|
goto null;
|
||||||
}
|
} else if(Choice == 0 && (cv->Bkettei[i] & Bmuhenkan)) {
|
||||||
else if (Choice == 0 && (cv->Bkettei[i] & Bmuhenkan)) {
|
|
||||||
goto tail;
|
goto tail;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
cv->Bkettei[i] |= Bhenkan;
|
cv->Bkettei[i] |= Bhenkan;
|
||||||
cv->Bkettei[i] &= ~Bmuhenkan;
|
cv->Bkettei[i] &= ~Bmuhenkan;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Choice == 1) {
|
if(Choice == 1) {
|
||||||
if (Cdouon (yomi, i) == FALSE)
|
if(Cdouon(yomi, i) == FALSE)
|
||||||
return (1);
|
return (1);
|
||||||
cv->Pkettei[i] = MODE_ZHIRA;
|
cv->Pkettei[i] = MODE_ZHIRA;
|
||||||
}
|
} else if(Choice == 2) {
|
||||||
else if (Choice == 2) {
|
Gdouon(yomi, i, 0, 0);
|
||||||
Gdouon (yomi, i, 0, 0);
|
} else if(Choice == 3)
|
||||||
}
|
Gdouon(yomi, i, count, 1);
|
||||||
else if (Choice == 3)
|
|
||||||
Gdouon (yomi, i, count, 1);
|
|
||||||
else
|
else
|
||||||
Gdouon (yomi, i, count, 0);
|
Gdouon(yomi, i, count, 0);
|
||||||
null:
|
null:
|
||||||
len = wslen (Dkanji);
|
len = wslen(Dkanji);
|
||||||
|
|
||||||
if (!(cv->Bkettei[i] & Bedit)) {
|
if(!(cv->Bkettei[i] & Bedit)) {
|
||||||
if (cv->Enum >= MAXENUM)
|
if(cv->Enum >= MAXENUM)
|
||||||
return (1);
|
return (1);
|
||||||
j = cv->Enum ++;
|
j = cv->Enum++;
|
||||||
cv->Edit[i] = j;
|
cv->Edit[i] = j;
|
||||||
cv->Epoint[j] = &(cv->Ebuff[cv->e_point]);
|
cv->Epoint[j] = &(cv->Ebuff[cv->e_point]);
|
||||||
cv->e_point += DLEN;
|
cv->e_point += DLEN;
|
||||||
}
|
} else
|
||||||
else
|
|
||||||
j = cv->Edit[i];
|
j = cv->Edit[i];
|
||||||
if (0 < len && len <= DLEN) {
|
if(0 < len && len <= DLEN) {
|
||||||
cv->Bkettei[i] |= Bedit;
|
cv->Bkettei[i] |= Bedit;
|
||||||
cv->Pkettei[i] = MODE_ZHIRA;
|
cv->Pkettei[i] = MODE_ZHIRA;
|
||||||
}
|
}
|
||||||
cv->Elen[j] = len;
|
cv->Elen[j] = len;
|
||||||
wscpy (cv->Epoint[j], Dkanji);
|
wscpy(cv->Epoint[j], Dkanji);
|
||||||
|
|
||||||
tail:
|
tail:
|
||||||
if (Choice == 0 && i != cv->CurBun) {
|
if(Choice == 0 && i != cv->CurBun) {
|
||||||
i = cv->CurBun;
|
i = cv->CurBun;
|
||||||
goto top;
|
goto top;
|
||||||
}
|
}
|
||||||
if (cv->PreBun == cv->Bnum)
|
if(cv->PreBun == cv->Bnum)
|
||||||
cv->Bkettei[cv->Bnum] = Bend;
|
cv->Bkettei[cv->Bnum] = Bend;
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Rdouon(back) int back;
|
||||||
|
|
||||||
Rdouon (back)
|
|
||||||
int back;
|
|
||||||
{
|
{
|
||||||
Conversion *cv;
|
Conversion* cv;
|
||||||
int i, j;
|
int i, j;
|
||||||
int len;
|
int len;
|
||||||
wchar16_t *s;
|
wchar16_t* s;
|
||||||
|
|
||||||
cv = current_conversion;
|
cv = current_conversion;
|
||||||
if (Dcount > 0) {
|
if(Dcount > 0) {
|
||||||
if (back) {
|
if(back) {
|
||||||
Dpoint --;
|
Dpoint--;
|
||||||
if (Dpoint < 0)
|
if(Dpoint < 0)
|
||||||
Dpoint = Dcount - 1;
|
Dpoint = Dcount - 1;
|
||||||
}
|
} else {
|
||||||
else {
|
Dpoint++;
|
||||||
Dpoint ++;
|
if(Dpoint >= Dcount)
|
||||||
if (Dpoint >= Dcount)
|
|
||||||
Dpoint = 0;
|
Dpoint = 0;
|
||||||
}
|
}
|
||||||
len = HenkanDouon[Dpoint].wlen;
|
len = HenkanDouon[Dpoint].wlen;
|
||||||
s = (wchar16_t *)HenkanDouon[Dpoint].ddata;
|
s = (wchar16_t*)HenkanDouon[Dpoint].ddata;
|
||||||
Strncpy (Dkanji, s, len);
|
Strncpy(Dkanji, s, len);
|
||||||
Dkanji[len] = '\0';
|
Dkanji[len] = '\0';
|
||||||
|
|
||||||
i = cv->CurBun;
|
i = cv->CurBun;
|
||||||
j = cv->Edit[i];
|
j = cv->Edit[i];
|
||||||
cv->Elen[j] = len;
|
cv->Elen[j] = len;
|
||||||
wscpy (cv->Epoint[j], Dkanji);
|
wscpy(cv->Epoint[j], Dkanji);
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
return (1);
|
return (1);
|
||||||
}
|
}
|
||||||
|
|
||||||
Bkanji (kanji)
|
Bkanji(kanji)
|
||||||
wchar16_t *kanji;
|
wchar16_t* kanji;
|
||||||
{
|
{
|
||||||
Conversion *cv;
|
Conversion* cv;
|
||||||
int i;
|
int i;
|
||||||
int plen, len;
|
int plen, len;
|
||||||
wchar16_t *s;
|
wchar16_t* s;
|
||||||
|
|
||||||
cv = current_conversion;
|
cv = current_conversion;
|
||||||
s = kanji;
|
s = kanji;
|
||||||
*s = '\0';
|
*s = '\0';
|
||||||
plen = 0;
|
plen = 0;
|
||||||
for (i = 0 ; i < cv->Bnum ; i ++) {
|
for(i = 0; i < cv->Bnum; i++) {
|
||||||
if ((len = Bstr (i, s)) <= 0)
|
if((len = Bstr(i, s)) <= 0)
|
||||||
continue;
|
continue;
|
||||||
s += len;
|
s += len;
|
||||||
plen += len;
|
plen += len;
|
||||||
}
|
}
|
||||||
return(plen);
|
return (plen);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct studyrec Gdata[BUFFLENGTH];
|
struct studyrec Gdata[BUFFLENGTH];
|
||||||
|
|
||||||
PushGD (num, wordid)
|
PushGD(num, wordid) int num;
|
||||||
int num;
|
struct studyrec* wordid;
|
||||||
struct studyrec *wordid;
|
|
||||||
{
|
{
|
||||||
Gdata[num] = *wordid;
|
Gdata[num] = *wordid;
|
||||||
}
|
}
|
||||||
|
|
||||||
cl_gakusyuu ()
|
cl_gakushuu() {
|
||||||
{
|
Conversion* cv;
|
||||||
Conversion *cv;
|
|
||||||
int i, j;
|
int i, j;
|
||||||
int o_point, n_point;
|
int o_point, n_point;
|
||||||
|
|
||||||
cv = current_conversion;
|
cv = current_conversion;
|
||||||
for (i = 0 ; i < cv->Bnum ; i ++) {
|
for(i = 0; i < cv->Bnum; i++) {
|
||||||
if (cv->OrgPlen[i] != cv->Plen[i]) {
|
if(cv->OrgPlen[i] != cv->Plen[i]) {
|
||||||
o_point = n_point = 0;
|
o_point = n_point = 0;
|
||||||
j = i;
|
j = i;
|
||||||
while (j < cv->Bnum) {
|
while(j < cv->Bnum) {
|
||||||
o_point += cv->OrgPlen[j];
|
o_point += cv->OrgPlen[j];
|
||||||
n_point += cv->Plen[j];
|
n_point += cv->Plen[j];
|
||||||
j ++;
|
j++;
|
||||||
if (o_point == n_point)
|
if(o_point == n_point)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
j--;
|
j--;
|
||||||
check_and_gakusyuu (i, j);
|
check_and_gakushuu(i, j);
|
||||||
i = j;
|
i = j;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
check_and_gakusyuu (m, n)
|
check_and_gakushuu(m, n) int m, n;
|
||||||
int m, n;
|
|
||||||
{
|
{
|
||||||
Conversion *cv;
|
Conversion* cv;
|
||||||
int i, j;
|
int i, j;
|
||||||
|
|
||||||
cv = current_conversion;
|
cv = current_conversion;
|
||||||
i = m;
|
i = m;
|
||||||
j = i + 1;
|
j = i + 1;
|
||||||
while (j <= n && j < cv->Bnum) {
|
while(j <= n && j < cv->Bnum) {
|
||||||
if (cv->Bkettei[i] & Bedit && !(cv->Bkettei[i] & Bmuhenkan))
|
if(cv->Bkettei[i] & Bedit && !(cv->Bkettei[i] & Bmuhenkan))
|
||||||
go_gakusyuu (i);
|
go_gakushuu(i);
|
||||||
i ++;
|
i++;
|
||||||
j ++;
|
j++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
go_gakusyuu (n)
|
go_gakushuu(n) int n;
|
||||||
int n;
|
|
||||||
{
|
{
|
||||||
Conversion *cv;
|
Conversion* cv;
|
||||||
int i, j;
|
int i, j;
|
||||||
wchar16_t yomi1[BUFFLENGTH], yomi2[BUFFLENGTH];
|
wchar16_t yomi1[BUFFLENGTH], yomi2[BUFFLENGTH];
|
||||||
struct studyrec *gdatap;
|
struct studyrec* gdatap;
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
cv = current_conversion;
|
cv = current_conversion;
|
||||||
i = n;
|
i = n;
|
||||||
j = i + 1;
|
j = i + 1;
|
||||||
|
|
||||||
if (cv->Pedited[i] == 1 || cv->Pedited[j] == 1)
|
if(cv->Pedited[i] == 1 || cv->Pedited[j] == 1)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if((len = load_bun(i, yomi1, MODE_ZHIRA)) <= 0 && len > DLEN)
|
||||||
if ((len = load_bun(i, yomi1, MODE_ZHIRA)) <= 0 && len > DLEN)
|
|
||||||
return;
|
return;
|
||||||
if ((len = load_bun(j, yomi2, MODE_ZHIRA)) > DLEN)
|
if((len = load_bun(j, yomi2, MODE_ZHIRA)) > DLEN)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if(len <= 0)
|
||||||
if (len <= 0)
|
|
||||||
gdatap = NULL;
|
gdatap = NULL;
|
||||||
else
|
else
|
||||||
gdatap = &Gdata[j];
|
gdatap = &Gdata[j];
|
||||||
SJ2_clstudy (yomi1, yomi2, gdatap);
|
SJ2_clstudy(yomi1, yomi2, gdatap);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
103
error.c
103
error.c
|
|
@ -27,17 +27,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: error.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:02:51 $
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
@ -49,39 +38,31 @@ extern char program_name[];
|
||||||
extern int debug_level;
|
extern int debug_level;
|
||||||
extern int client_fd;
|
extern int client_fd;
|
||||||
|
|
||||||
static char *tty_name = "/dev/tty";
|
static char* tty_name = "/dev/tty";
|
||||||
static FILE *errfp = NULL;
|
static FILE* errfp = NULL;
|
||||||
static FILE *logfp = NULL;
|
static FILE* logfp = NULL;
|
||||||
static FILE *dbgfp = NULL;
|
static FILE* dbgfp = NULL;
|
||||||
|
|
||||||
|
int open_error(void) {
|
||||||
int
|
extern char* error_file;
|
||||||
open_error(void)
|
|
||||||
{
|
|
||||||
extern char *error_file;
|
|
||||||
int flg = 0;
|
int flg = 0;
|
||||||
|
|
||||||
if (error_file && *error_file) {
|
if(error_file && *error_file) {
|
||||||
if (!strcmp(error_file, tty_name)) {
|
if(!strcmp(error_file, tty_name)) {
|
||||||
errfp = stderr;
|
errfp = stderr;
|
||||||
flg = -1;
|
flg = -1;
|
||||||
}
|
} else if(!(errfp = fopen(error_file, "a")))
|
||||||
else if (!(errfp = fopen(error_file, "a")))
|
|
||||||
fprintf(stderr, "Can't open \"%s\"\r\n", error_file);
|
fprintf(stderr, "Can't open \"%s\"\r\n", error_file);
|
||||||
}
|
} else
|
||||||
else
|
|
||||||
errfp = NULL;
|
errfp = NULL;
|
||||||
|
|
||||||
return flg;
|
return flg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void error_out(char* s, int p1, int p2, int p3, int p4, int p5) {
|
||||||
void
|
|
||||||
error_out(char* s, int p1, int p2, int p3, int p4, int p5)
|
|
||||||
{
|
|
||||||
char tmp[BUFSIZ];
|
char tmp[BUFSIZ];
|
||||||
|
|
||||||
if (errfp) {
|
if(errfp) {
|
||||||
sprintf(tmp, s, p1, p2, p3, p4, p5);
|
sprintf(tmp, s, p1, p2, p3, p4, p5);
|
||||||
fprintf(errfp, "%s: %s\r\n", program_name, tmp);
|
fprintf(errfp, "%s: %s\r\n", program_name, tmp);
|
||||||
fflush(errfp);
|
fflush(errfp);
|
||||||
|
|
@ -89,89 +70,69 @@ error_out(char* s, int p1, int p2, int p3, int p4, int p5)
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void warning_out(char* s, int p1, int p2, int p3, int p4, int p5) {
|
||||||
void
|
|
||||||
warning_out(char* s, int p1, int p2, int p3, int p4, int p5)
|
|
||||||
{
|
|
||||||
char tmp[BUFSIZ];
|
char tmp[BUFSIZ];
|
||||||
|
|
||||||
if (errfp) {
|
if(errfp) {
|
||||||
sprintf(tmp, s, p1, p2, p3, p4);
|
sprintf(tmp, s, p1, p2, p3, p4);
|
||||||
fprintf(errfp, "%s: warning: %s\r\n", program_name, tmp);
|
fprintf(errfp, "%s: warning: %s\r\n", program_name, tmp);
|
||||||
fflush(errfp);
|
fflush(errfp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int open_log(void) {
|
||||||
int
|
extern char* log_file;
|
||||||
open_log(void)
|
|
||||||
{
|
|
||||||
extern char *log_file;
|
|
||||||
int flg = 0;
|
int flg = 0;
|
||||||
|
|
||||||
if (log_file && *log_file) {
|
if(log_file && *log_file) {
|
||||||
if (!strcmp(log_file, tty_name)) {
|
if(!strcmp(log_file, tty_name)) {
|
||||||
logfp = stderr;
|
logfp = stderr;
|
||||||
flg = -1;
|
flg = -1;
|
||||||
}
|
} else
|
||||||
else
|
|
||||||
logfp = fopen(log_file, "a");
|
logfp = fopen(log_file, "a");
|
||||||
if (logfp) {
|
if(logfp) {
|
||||||
time_t t;
|
time_t t;
|
||||||
|
|
||||||
time(&t);
|
time(&t);
|
||||||
fprintf(logfp, "%s: log started at %s\r",
|
fprintf(logfp, "%s: log started at %s\r",
|
||||||
program_name, ctime(&t));
|
program_name, ctime(&t));
|
||||||
fflush(logfp);
|
fflush(logfp);
|
||||||
}
|
} else
|
||||||
else
|
|
||||||
fprintf(stderr, "Can't open \"%s\"\r\n", log_file);
|
fprintf(stderr, "Can't open \"%s\"\r\n", log_file);
|
||||||
}
|
} else
|
||||||
else
|
|
||||||
logfp = NULL;
|
logfp = NULL;
|
||||||
|
|
||||||
return flg;
|
return flg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void logging_out(char* s, int p1, int p2, int p3, int p4, int p5) {
|
||||||
void
|
|
||||||
logging_out(char* s, int p1, int p2, int p3, int p4, int p5)
|
|
||||||
{
|
|
||||||
char tmp[BUFSIZ];
|
char tmp[BUFSIZ];
|
||||||
|
|
||||||
if (logfp) {
|
if(logfp) {
|
||||||
sprintf(tmp, s, p1, p2, p3, p4, p5);
|
sprintf(tmp, s, p1, p2, p3, p4, p5);
|
||||||
fprintf(logfp, "%s\r\n", tmp);
|
fprintf(logfp, "%s\r\n", tmp);
|
||||||
fflush(logfp);
|
fflush(logfp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int open_debug(void) {
|
||||||
int
|
extern char* debug_file;
|
||||||
open_debug(void)
|
|
||||||
{
|
|
||||||
extern char *debug_file;
|
|
||||||
int flg = 0;
|
int flg = 0;
|
||||||
|
|
||||||
if (debug_file && *debug_file) {
|
if(debug_file && *debug_file) {
|
||||||
if (!strcmp(debug_file, tty_name)) {
|
if(!strcmp(debug_file, tty_name)) {
|
||||||
dbgfp = stderr;
|
dbgfp = stderr;
|
||||||
flg = -1;
|
flg = -1;
|
||||||
}
|
} else if(!(dbgfp = fopen(debug_file, "a")))
|
||||||
else if (!(dbgfp = fopen(debug_file, "a")))
|
|
||||||
fprintf(stderr, "Can't open \"%s\"\r\n", debug_file);
|
fprintf(stderr, "Can't open \"%s\"\r\n", debug_file);
|
||||||
}
|
} else
|
||||||
else
|
|
||||||
dbgfp = NULL;
|
dbgfp = NULL;
|
||||||
|
|
||||||
return flg;
|
return flg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void debug_out(int lvl, char* s, int p1, int p2, int p3, int p4, int p5) {
|
||||||
void
|
if(lvl <= debug_level && dbgfp) {
|
||||||
debug_out(int lvl, char* s, int p1, int p2, int p3, int p4, int p5)
|
|
||||||
{
|
|
||||||
if (lvl <= debug_level && dbgfp) {
|
|
||||||
fprintf(dbgfp, s, p1, p2, p3, p4, p5);
|
fprintf(dbgfp, s, p1, p2, p3, p4, p5);
|
||||||
fflush(dbgfp);
|
fflush(dbgfp);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
332
etc.c
332
etc.c
|
|
@ -27,147 +27,136 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: etc.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:03:15 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "key.h"
|
#include "key.h"
|
||||||
|
|
||||||
extern int keyvalue;
|
extern int keyvalue;
|
||||||
static char rehname[SHORTLENGTH * 2];
|
static char rehname[SHORTLENGTH * 2];
|
||||||
extern char *cur_serv;
|
extern char* cur_serv;
|
||||||
static int dcflag = 0;
|
static int dcflag = 0;
|
||||||
|
|
||||||
void disp_version();
|
void disp_version();
|
||||||
|
|
||||||
exec_etc (key)
|
exec_etc(key) int key;
|
||||||
int key;
|
|
||||||
{
|
{
|
||||||
unsigned short row, col;
|
unsigned short row, col;
|
||||||
int inc;
|
int inc;
|
||||||
int chbun;
|
int chbun;
|
||||||
int edited;
|
int edited;
|
||||||
int etckey;
|
int etckey;
|
||||||
Conversion *cv;
|
Conversion* cv;
|
||||||
|
|
||||||
cv = GetConversion ();
|
cv = GetConversion();
|
||||||
|
|
||||||
edited = 0;
|
edited = 0;
|
||||||
chbun = 0;
|
chbun = 0;
|
||||||
StartGuide (&row, &col);
|
StartGuide(&row, &col);
|
||||||
if (key == KEY_ETC) {
|
if(key == KEY_ETC) {
|
||||||
printR (WCGEtc);
|
printR(WCGEtc);
|
||||||
if (cv->column >= MINCOL)
|
if(cv->column >= MINCOL)
|
||||||
spaceR (WCGetc);
|
spaceR(WCGetc);
|
||||||
Clear_EOL ();
|
Clear_EOL();
|
||||||
EndGuide (row, col);
|
EndGuide(row, col);
|
||||||
SaveConversion ();
|
SaveConversion();
|
||||||
inc = inkey ();
|
inc = inkey();
|
||||||
if (AnotherConversion ())
|
if(AnotherConversion())
|
||||||
return(KEY_NORMAL);
|
return (KEY_NORMAL);
|
||||||
cv = GetConversion ();
|
cv = GetConversion();
|
||||||
etckey = etc_map (keyvalue);
|
etckey = etc_map(keyvalue);
|
||||||
}
|
} else {
|
||||||
else {
|
EndGuide(row, col);
|
||||||
EndGuide (row, col);
|
|
||||||
etckey = key;
|
etckey = key;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (etckey) {
|
switch(etckey) {
|
||||||
case KEY_NORMAL:
|
case KEY_NORMAL:
|
||||||
normal:
|
normal:
|
||||||
switch (inc) {
|
switch(inc) {
|
||||||
case 'h':
|
case 'h':
|
||||||
helplevel ();
|
helplevel();
|
||||||
break;
|
break;
|
||||||
case 't':
|
case 't':
|
||||||
if (!IsCflag ())
|
if(!IsCflag())
|
||||||
chbun = exec_toroku ();
|
chbun = exec_toroku();
|
||||||
break;
|
break;
|
||||||
case 's':
|
case 's':
|
||||||
if (!IsCflag ())
|
if(!IsCflag())
|
||||||
chbun = exec_syoukyo ();
|
chbun = exec_shoukyo();
|
||||||
break;
|
break;
|
||||||
case 'v':
|
case 'v':
|
||||||
case 'd':
|
case 'd':
|
||||||
disp_version (inc);
|
disp_version(inc);
|
||||||
break;
|
break;
|
||||||
case 'w':
|
case 'w':
|
||||||
change_weight ();
|
change_weight();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case KEY_HELP:
|
case KEY_HELP:
|
||||||
helplevel ();
|
helplevel();
|
||||||
break;
|
break;
|
||||||
case KEY_TOROKU:
|
case KEY_TOROKU:
|
||||||
if (!IsCflag ())
|
if(!IsCflag())
|
||||||
chbun = exec_toroku ();
|
chbun = exec_toroku();
|
||||||
break;
|
break;
|
||||||
case KEY_SYOUKYO:
|
case KEY_SHOUKYO:
|
||||||
if (!IsCflag ())
|
if(!IsCflag())
|
||||||
chbun = exec_syoukyo ();
|
chbun = exec_shoukyo();
|
||||||
break;
|
break;
|
||||||
case KEY_SJRC:
|
case KEY_SJRC:
|
||||||
if (IsCflag ())
|
if(IsCflag())
|
||||||
exec_sjrc ();
|
exec_sjrc();
|
||||||
break;
|
break;
|
||||||
case KEY_EDIT:
|
case KEY_EDIT:
|
||||||
if (IsHenkan ()) {
|
if(IsHenkan()) {
|
||||||
if (cv->CurBun < 0) {
|
if(cv->CurBun < 0) {
|
||||||
cv->CurBun = 0;
|
cv->CurBun = 0;
|
||||||
Bdisp (1);
|
Bdisp(1);
|
||||||
}
|
}
|
||||||
edited = exec_edit ();
|
edited = exec_edit();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case KEY_RECONNECT:
|
case KEY_RECONNECT:
|
||||||
if (reconnect() && IsHenkan()) {
|
if(reconnect() && IsHenkan()) {
|
||||||
EndGuide (row, col);
|
EndGuide(row, col);
|
||||||
Clear_EOL();
|
Clear_EOL();
|
||||||
Ccheck();
|
Ccheck();
|
||||||
Cclear(1);
|
Cclear(1);
|
||||||
ResetHenkan();
|
ResetHenkan();
|
||||||
vprintU(cv->out_buf, 1);
|
vprintU(cv->out_buf, 1);
|
||||||
cv->Kanji = 0;
|
cv->Kanji = 0;
|
||||||
return(KEY_NORMAL);
|
return (KEY_NORMAL);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case KEY_ETC:
|
case KEY_ETC:
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if ((inc = write_pseq (2)) != 0)
|
if((inc = write_pseq(2)) != 0)
|
||||||
goto normal;
|
goto normal;
|
||||||
return(etckey);
|
return (etckey);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
EndGuide (row, col);
|
EndGuide(row, col);
|
||||||
if (edited) {
|
if(edited) {
|
||||||
if (!Sdouon (3))
|
if(!Sdouon(3))
|
||||||
Rdisp ();
|
Rdisp();
|
||||||
}
|
}
|
||||||
if (chbun)
|
if(chbun)
|
||||||
Ssbun(1);
|
Ssbun(1);
|
||||||
return(KEY_NORMAL);
|
return (KEY_NORMAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
Ssbun(flag)
|
Ssbun(flag) int flag;
|
||||||
int flag;
|
|
||||||
{
|
{
|
||||||
Conversion *cv;
|
Conversion* cv;
|
||||||
static short ScurBun, SpreBun;
|
static short ScurBun, SpreBun;
|
||||||
|
|
||||||
cv = GetConversion();
|
cv = GetConversion();
|
||||||
if (flag) {
|
if(flag) {
|
||||||
if (cv->CurBun != ScurBun || cv->PreBun != SpreBun) {
|
if(cv->CurBun != ScurBun || cv->PreBun != SpreBun) {
|
||||||
cv->CurBun = ScurBun;
|
cv->CurBun = ScurBun;
|
||||||
cv->PreBun = SpreBun;
|
cv->PreBun = SpreBun;
|
||||||
Bdisp();
|
Bdisp();
|
||||||
|
|
@ -178,25 +167,24 @@ int flag;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
etc_map (key)
|
etc_map(key) int key;
|
||||||
int key;
|
|
||||||
{
|
{
|
||||||
extern int u_etckeys;
|
extern int u_etckeys;
|
||||||
extern int Uetckey[], Uetcval[];
|
extern int Uetckey[], Uetcval[];
|
||||||
int i;
|
int i;
|
||||||
int val;
|
int val;
|
||||||
|
|
||||||
for (i = 0 ; i < u_etckeys ; i ++) {
|
for(i = 0; i < u_etckeys; i++) {
|
||||||
if (key == Uetckey[i])
|
if(key == Uetckey[i])
|
||||||
return (Uetcval[i]);
|
return (Uetcval[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (key) {
|
switch(key) {
|
||||||
case KEY_HENKAN:
|
case KEY_HENKAN:
|
||||||
val = KEY_TOROKU;
|
val = KEY_TOROKU;
|
||||||
break;
|
break;
|
||||||
case KEY_MUHENKAN:
|
case KEY_MUHENKAN:
|
||||||
val = KEY_SYOUKYO;
|
val = KEY_SHOUKYO;
|
||||||
break;
|
break;
|
||||||
case KEY_ETC:
|
case KEY_ETC:
|
||||||
val = KEY_HELP;
|
val = KEY_HELP;
|
||||||
|
|
@ -217,141 +205,127 @@ int key;
|
||||||
return (val);
|
return (val);
|
||||||
}
|
}
|
||||||
|
|
||||||
helplevel ()
|
helplevel() {
|
||||||
{
|
|
||||||
wchar16_t wtmp[BUFFLENGTH];
|
wchar16_t wtmp[BUFFLENGTH];
|
||||||
unsigned char mtmp[BUFFLENGTH];
|
unsigned char mtmp[BUFFLENGTH];
|
||||||
unsigned char tmp[BUFFLENGTH];
|
unsigned char tmp[BUFFLENGTH];
|
||||||
Conversion *cv;
|
Conversion* cv;
|
||||||
|
|
||||||
cv = GetConversion ();
|
cv = GetConversion();
|
||||||
|
|
||||||
if (Hlevel == 1 && cv->column >= MINCOL) {
|
if(Hlevel == 1 && cv->column >= MINCOL) {
|
||||||
HHlevel = 2;
|
HHlevel = 2;
|
||||||
Hlevel = 2;
|
Hlevel = 2;
|
||||||
(void) wcstombs((char *)mtmp, WCMHelp, BUFFLENGTH);
|
(void)wcstombs((char*)mtmp, WCMHelp, BUFFLENGTH);
|
||||||
sprintf ((char *)tmp, (char *)mtmp, "on");
|
sprintf((char*)tmp, (char*)mtmp, "on");
|
||||||
(void) mbstowcs(wtmp, (char *)tmp, BUFFLENGTH);
|
(void)mbstowcs(wtmp, (char*)tmp, BUFFLENGTH);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
HHlevel = 1;
|
HHlevel = 1;
|
||||||
Hlevel = 1;
|
Hlevel = 1;
|
||||||
(void) wcstombs((char *)mtmp, WCMHelp, BUFFLENGTH);
|
(void)wcstombs((char*)mtmp, WCMHelp, BUFFLENGTH);
|
||||||
sprintf ((char *)tmp, (char *)mtmp, "off");
|
sprintf((char*)tmp, (char*)mtmp, "off");
|
||||||
(void) mbstowcs(wtmp, (char *)tmp, BUFFLENGTH);
|
(void)mbstowcs(wtmp, (char*)tmp, BUFFLENGTH);
|
||||||
}
|
}
|
||||||
guide_print_pause (WCGHelp, wtmp);
|
guide_print_pause(WCGHelp, wtmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
disp_version (c)
|
disp_version(c) int c;
|
||||||
int c;
|
|
||||||
{
|
{
|
||||||
extern char *Version, *Copyright, *Date;
|
extern char *Version, *Copyright, *Date;
|
||||||
char tmp[BUFFLENGTH];
|
char tmp[BUFFLENGTH];
|
||||||
|
|
||||||
wchar16_t wtmp[BUFFLENGTH];
|
wchar16_t wtmp[BUFFLENGTH];
|
||||||
|
|
||||||
if (c == 'v')
|
if(c == 'v')
|
||||||
sprintf (tmp, "%s, %s ", Version, Copyright);
|
sprintf(tmp, "%s, %s ", Version, Copyright);
|
||||||
else if (c == 'd')
|
else if(c == 'd')
|
||||||
sprintf (tmp, "%s ", Date);
|
sprintf(tmp, "%s ", Date);
|
||||||
else
|
else
|
||||||
return;
|
return;
|
||||||
(void) mbstowcs(wtmp, tmp, BUFFLENGTH);
|
(void)mbstowcs(wtmp, tmp, BUFFLENGTH);
|
||||||
guide_print_pause (0, wtmp);
|
guide_print_pause(0, wtmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
exec_sjrc ()
|
exec_sjrc() {
|
||||||
{
|
|
||||||
extern char RCfile[];
|
extern char RCfile[];
|
||||||
char tmp[BUFFLENGTH];
|
char tmp[BUFFLENGTH];
|
||||||
unsigned char SUCCorFAIL[BUFFLENGTH];
|
unsigned char SUCCorFAIL[BUFFLENGTH];
|
||||||
wchar16_t wtmp[BUFFLENGTH];
|
wchar16_t wtmp[BUFFLENGTH];
|
||||||
|
|
||||||
|
if(*RCfile == (char)NULL) {
|
||||||
if (*RCfile == (char)NULL) {
|
|
||||||
getsjrc();
|
getsjrc();
|
||||||
if (*RCfile == (char)NULL)
|
if(*RCfile == (char)NULL) {
|
||||||
{
|
(void)wcstombs((char*)SUCCorFAIL, WCNOTHsjrc, BUFFLENGTH);
|
||||||
(void) wcstombs((char *)SUCCorFAIL, WCNOTHsjrc, BUFFLENGTH);
|
sprintf((char*)tmp, (char*)SUCCorFAIL);
|
||||||
sprintf((char *)tmp, (char *)SUCCorFAIL);
|
(void)mbstowcs(wtmp, tmp, BUFFLENGTH);
|
||||||
(void) mbstowcs(wtmp, tmp, BUFFLENGTH);
|
} else {
|
||||||
}
|
(void)wcstombs((char*)SUCCorFAIL, WCSUCCsjrc, BUFFLENGTH);
|
||||||
else
|
sprintf(tmp, "%s %s ", RCfile, SUCCorFAIL);
|
||||||
{
|
(void)mbstowcs(wtmp, tmp, BUFFLENGTH);
|
||||||
(void) wcstombs((char *)SUCCorFAIL, WCSUCCsjrc, BUFFLENGTH);
|
|
||||||
sprintf (tmp, "%s %s ", RCfile, SUCCorFAIL);
|
|
||||||
(void) mbstowcs(wtmp, tmp, BUFFLENGTH);
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (setrc () == TRUE)
|
if(setrc() == TRUE) {
|
||||||
{
|
(void)wcstombs((char*)SUCCorFAIL, WCSUCCsjrc, BUFFLENGTH);
|
||||||
(void) wcstombs((char *)SUCCorFAIL, WCSUCCsjrc, BUFFLENGTH);
|
|
||||||
} else {
|
} else {
|
||||||
(void) wcstombs((char *)SUCCorFAIL, WCFAILsjrc, BUFFLENGTH);
|
(void)wcstombs((char*)SUCCorFAIL, WCFAILsjrc, BUFFLENGTH);
|
||||||
}
|
}
|
||||||
sprintf (tmp, "%s %s ", RCfile, SUCCorFAIL);
|
sprintf(tmp, "%s %s ", RCfile, SUCCorFAIL);
|
||||||
(void) mbstowcs(wtmp, tmp, BUFFLENGTH);
|
(void)mbstowcs(wtmp, tmp, BUFFLENGTH);
|
||||||
}
|
}
|
||||||
guide_print_pause (0, wtmp);
|
guide_print_pause(0, wtmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int weight = 3;
|
static int weight = 3;
|
||||||
static int seed = 100000;
|
static int seed = 100000;
|
||||||
|
|
||||||
change_weight ()
|
change_weight() {
|
||||||
{
|
|
||||||
int c;
|
int c;
|
||||||
char s[2];
|
char s[2];
|
||||||
char tmp[BUFFLENGTH];
|
char tmp[BUFFLENGTH];
|
||||||
unsigned char mtmp[BUFFLENGTH];
|
unsigned char mtmp[BUFFLENGTH];
|
||||||
wchar16_t wtmp[BUFFLENGTH];
|
wchar16_t wtmp[BUFFLENGTH];
|
||||||
|
|
||||||
(void) wcstombs((char *)mtmp, WCWeight_mes, BUFFLENGTH);
|
(void)wcstombs((char*)mtmp, WCWeight_mes, BUFFLENGTH);
|
||||||
sprintf(tmp, (char *)mtmp, weight);
|
sprintf(tmp, (char*)mtmp, weight);
|
||||||
(void) mbstowcs(wtmp, tmp, BUFFLENGTH);
|
(void)mbstowcs(wtmp, tmp, BUFFLENGTH);
|
||||||
c = guide_print_pause (0, wtmp);
|
c = guide_print_pause(0, wtmp);
|
||||||
|
|
||||||
if (isdigit (c) && (c != '0')) {
|
if(isdigit(c) && (c != '0')) {
|
||||||
s[0] = c;
|
s[0] = c;
|
||||||
s[1] = '\0';
|
s[1] = '\0';
|
||||||
weight = atoi (s);
|
weight = atoi(s);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
UsecWeight (sw)
|
UsecWeight(sw) int sw;
|
||||||
int sw;
|
|
||||||
{
|
{
|
||||||
|
|
||||||
|
if(sw)
|
||||||
if (sw)
|
|
||||||
return (seed);
|
return (seed);
|
||||||
else
|
else
|
||||||
return (seed * weight);
|
return (seed * weight);
|
||||||
}
|
}
|
||||||
|
|
||||||
dconnect(aflag)
|
dconnect(aflag) int aflag;
|
||||||
int aflag;
|
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
char tmp[BUFFLENGTH];
|
char tmp[BUFFLENGTH];
|
||||||
wchar16_t wtmp[BUFFLENGTH];
|
wchar16_t wtmp[BUFFLENGTH];
|
||||||
unsigned char dtmp[BUFFLENGTH];
|
unsigned char dtmp[BUFFLENGTH];
|
||||||
|
|
||||||
if (!dcflag) {
|
if(!dcflag) {
|
||||||
(void) wcstombs((char *)dtmp, WCDiscon, BUFFLENGTH);
|
(void)wcstombs((char*)dtmp, WCDiscon, BUFFLENGTH);
|
||||||
sprintf(tmp, (char *)dtmp, cur_serv);
|
sprintf(tmp, (char*)dtmp, cur_serv);
|
||||||
beep();
|
beep();
|
||||||
(void) mbstowcs(wtmp, tmp, BUFFLENGTH);
|
(void)mbstowcs(wtmp, tmp, BUFFLENGTH);
|
||||||
guide_print_pause (0, wtmp);
|
guide_print_pause(0, wtmp);
|
||||||
|
|
||||||
|
if(aflag && keyvalue == KEY_HENKAN) {
|
||||||
if (aflag && keyvalue == KEY_HENKAN) {
|
if((err = sj3_autocon()) == 0) {
|
||||||
if ((err = sj3_autocon()) == 0) {
|
(void)wcstombs((char*)dtmp, WCRserv_OK, BUFFLENGTH);
|
||||||
(void) wcstombs((char *)dtmp, WCRserv_OK, BUFFLENGTH);
|
sprintf(tmp, (char*)dtmp, cur_serv);
|
||||||
sprintf(tmp, (char *)dtmp, cur_serv);
|
(void)mbstowcs(wtmp, (char*)tmp, BUFFLENGTH);
|
||||||
(void) mbstowcs(wtmp, (char *)tmp, BUFFLENGTH);
|
|
||||||
guide_print_pause(0, wtmp);
|
guide_print_pause(0, wtmp);
|
||||||
} else {
|
} else {
|
||||||
guide_print_pause(WCSpace, WCNconnect);
|
guide_print_pause(WCSpace, WCNconnect);
|
||||||
|
|
@ -361,22 +335,19 @@ int aflag;
|
||||||
dcflag = 1;
|
dcflag = 1;
|
||||||
disp_mode();
|
disp_mode();
|
||||||
}
|
}
|
||||||
return(dcflag);
|
return (dcflag);
|
||||||
}
|
}
|
||||||
|
|
||||||
set_dcflag(flag)
|
set_dcflag(flag) int flag;
|
||||||
int flag;
|
|
||||||
{
|
{
|
||||||
dcflag = flag;
|
dcflag = flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
IsDcflag()
|
IsDcflag() {
|
||||||
{
|
return (dcflag);
|
||||||
return(dcflag);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
reconnect ()
|
reconnect() {
|
||||||
{
|
|
||||||
int inc, err;
|
int inc, err;
|
||||||
char tmp[BUFFLENGTH], *hp;
|
char tmp[BUFFLENGTH], *hp;
|
||||||
char newserv[SHORTLENGTH * 2], *nsp;
|
char newserv[SHORTLENGTH * 2], *nsp;
|
||||||
|
|
@ -389,28 +360,28 @@ reconnect ()
|
||||||
SaveConversion();
|
SaveConversion();
|
||||||
TopGuide();
|
TopGuide();
|
||||||
printR(WCGrcon);
|
printR(WCGrcon);
|
||||||
(void) wcstombs((char *)rtmp, WCRserv, BUFFLENGTH);
|
(void)wcstombs((char*)rtmp, WCRserv, BUFFLENGTH);
|
||||||
sprintf(tmp, (char *)rtmp, newserv);
|
sprintf(tmp, (char*)rtmp, newserv);
|
||||||
(void) mbstowcs(wtmp, tmp, BUFFLENGTH);
|
(void)mbstowcs(wtmp, tmp, BUFFLENGTH);
|
||||||
SJ_print (wtmp);
|
SJ_print(wtmp);
|
||||||
Clear_EOL();
|
Clear_EOL();
|
||||||
Flush();
|
Flush();
|
||||||
nsp = newserv;
|
nsp = newserv;
|
||||||
while ((inc = inkey()) != EOF) {
|
while((inc = inkey()) != EOF) {
|
||||||
if (AnotherConversion()) {
|
if(AnotherConversion()) {
|
||||||
unget_key(inc);
|
unget_key(inc);
|
||||||
return(0);
|
return (0);
|
||||||
}
|
}
|
||||||
if (keyvalue != KEY_NORMAL && keyvalue != KEY_FLUSH)
|
if(keyvalue != KEY_NORMAL && keyvalue != KEY_FLUSH)
|
||||||
return(0);
|
return (0);
|
||||||
if (inc == '\n' || inc == '\r' || IsESC(inc))
|
if(inc == '\n' || inc == '\r' || IsESC(inc))
|
||||||
break;
|
break;
|
||||||
if (is_bs (inc) && nsp > newserv) {
|
if(is_bs(inc) && nsp > newserv) {
|
||||||
nsp--;
|
nsp--;
|
||||||
*nsp = '\0';
|
*nsp = '\0';
|
||||||
backspace(1);
|
backspace(1);
|
||||||
Flush();
|
Flush();
|
||||||
} else if (isgraph(inc) &&
|
} else if(isgraph(inc) &&
|
||||||
nsp < &newserv[SHORTLENGTH * 2 - 1]) {
|
nsp < &newserv[SHORTLENGTH * 2 - 1]) {
|
||||||
*nsp++ = inc;
|
*nsp++ = inc;
|
||||||
printf("%c", inc);
|
printf("%c", inc);
|
||||||
|
|
@ -418,26 +389,26 @@ reconnect ()
|
||||||
} else
|
} else
|
||||||
beep();
|
beep();
|
||||||
}
|
}
|
||||||
if (nsp > newserv) {
|
if(nsp > newserv) {
|
||||||
*nsp = '\0';
|
*nsp = '\0';
|
||||||
strcpy(rehname, newserv);
|
strcpy(rehname, newserv);
|
||||||
cur_serv = rehname;
|
cur_serv = rehname;
|
||||||
} else if (newserv[0] == '\0') {
|
} else if(newserv[0] == '\0') {
|
||||||
strncpy(newserv, cur_serv, SHORTLENGTH * 2 - 1);
|
strncpy(newserv, cur_serv, SHORTLENGTH * 2 - 1);
|
||||||
newserv[SHORTLENGTH * 2 - 1] = '\0';
|
newserv[SHORTLENGTH * 2 - 1] = '\0';
|
||||||
}
|
}
|
||||||
if ((err = SJ2_reconnect()) == 0) {
|
if((err = SJ2_reconnect()) == 0) {
|
||||||
TopGuide();
|
TopGuide();
|
||||||
printR(WCGrcon);
|
printR(WCGrcon);
|
||||||
(void) wcstombs((char *)rtmp, WCRserv_OK, BUFFLENGTH);
|
(void)wcstombs((char*)rtmp, WCRserv_OK, BUFFLENGTH);
|
||||||
sprintf(tmp, (char *)rtmp, newserv);
|
sprintf(tmp, (char*)rtmp, newserv);
|
||||||
(void) mbstowcs(wtmp, tmp, BUFFLENGTH);
|
(void)mbstowcs(wtmp, tmp, BUFFLENGTH);
|
||||||
SJ_print(wtmp);
|
SJ_print(wtmp);
|
||||||
Clear_EOL();
|
Clear_EOL();
|
||||||
Flush();
|
Flush();
|
||||||
set_dcflag(0);
|
set_dcflag(0);
|
||||||
inc = inkey();
|
inc = inkey();
|
||||||
if (AnotherConversion ())
|
if(AnotherConversion())
|
||||||
unget_key(inc);
|
unget_key(inc);
|
||||||
break;
|
break;
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -450,33 +421,32 @@ reconnect ()
|
||||||
Backspace();
|
Backspace();
|
||||||
Flush();
|
Flush();
|
||||||
inc = inkey();
|
inc = inkey();
|
||||||
if (AnotherConversion()) {
|
if(AnotherConversion()) {
|
||||||
unget_key(inc);
|
unget_key(inc);
|
||||||
set_dcflag(1);
|
set_dcflag(1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (inc == 'n' || inc == 'N' || inc == EOF) {
|
if(inc == 'n' || inc == 'N' || inc == EOF) {
|
||||||
set_dcflag(1);
|
set_dcflag(1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return(1);
|
return (1);
|
||||||
}
|
}
|
||||||
|
|
||||||
guide_print_pause (s1, s2)
|
guide_print_pause(s1, s2)
|
||||||
wchar16_t *s1, *s2;
|
wchar16_t* s1,
|
||||||
|
*s2;
|
||||||
{
|
{
|
||||||
int c;
|
int c;
|
||||||
|
|
||||||
guide_print (s1, s2);
|
guide_print(s1, s2);
|
||||||
SaveConversion ();
|
SaveConversion();
|
||||||
c = inkey ();
|
c = inkey();
|
||||||
if (AnotherConversion ()) {
|
if(AnotherConversion()) {
|
||||||
unget_key (c);
|
unget_key(c);
|
||||||
return (EOF);
|
return (EOF);
|
||||||
}
|
}
|
||||||
return (c);
|
return (c);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
641
eucmessage.c
641
eucmessage.c
|
|
@ -27,264 +27,233 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: eucmessage.c,v $
|
|
||||||
* $SonyRevision: 1.2 $
|
|
||||||
* $SonyDate: 1994/12/09 11:27:08 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include "wchar16.h"
|
#include "wchar16.h"
|
||||||
#include <locale.h>
|
#include <locale.h>
|
||||||
#include "kctype.h"
|
#include "kctype.h"
|
||||||
#include "sj3libsj3.h"
|
#include "sj3libsj3.h"
|
||||||
#include "sj2.h"
|
#include "sj2.h"
|
||||||
|
|
||||||
unsigned char *EucMessages[] = {
|
unsigned char* EucMessages[] = {
|
||||||
(unsigned char *)"\243\323\243\312\243\263\241\241\241\241\241\241\241\241\241\241\241\241\241\241",
|
(unsigned char*)"\243\323\243\312\243\263\241\241\241\241\241\241\241\241\241\241\241\241\241\241",
|
||||||
|
|
||||||
(unsigned char *)"Buffer\241\241\241\241",
|
(unsigned char*)"Buffer\241\241\241\241",
|
||||||
(unsigned char *)"Unbuffer\241\241",
|
(unsigned char*)"Unbuffer\241\241",
|
||||||
|
|
||||||
(unsigned char *)"\301\264\244\322\244\351\244\254\244\312",
|
(unsigned char*)"\301\264\244\322\244\351\244\254\244\312",
|
||||||
(unsigned char *)"\301\264\245\253\245\277\245\253\245\312",
|
(unsigned char*)"\301\264\245\253\245\277\245\253\245\312",
|
||||||
(unsigned char *)"\310\276\245\253\245\277\245\253\245\312",
|
(unsigned char*)"\310\276\245\253\245\277\245\253\245\312",
|
||||||
(unsigned char *)"\301\264\245\242\245\353\245\325\245\241",
|
(unsigned char*)"\301\264\245\242\245\353\245\325\245\241",
|
||||||
(unsigned char *)"\310\276\245\242\245\353\245\325\245\241",
|
(unsigned char*)"\310\276\245\242\245\353\245\325\245\241",
|
||||||
|
|
||||||
|
(unsigned char*)" \312\321\264\271 \314\265\312\321 etc. \267\350\304\352 code \310\276\245\242 \301\264\245\242 \310\276\245\253 \301\264\245\253 \244\253\244\312",
|
||||||
|
(unsigned char*)"\244\275\244\316\302\276\241\241\241\241\241\241\241\241\241\241\241\241\241\241",
|
||||||
|
|
||||||
(unsigned char *)" \312\321\264\271 \314\265\312\321 etc. \267\350\304\352 code \310\276\245\242 \301\264\245\242 \310\276\245\253 \301\264\245\253 \244\253\244\312",
|
(unsigned char*)" \305\320\317\277 \276\303\265\356 Help sjrc \312\324\275\270 \272\306\300\334 \241\241\241\241 \241\241\241\241 \241\241\241\241 \241\241\241\241",
|
||||||
(unsigned char *)"\244\275\244\316\302\276\241\241\241\241\241\241\241\241\241\241\241\241\241\241",
|
|
||||||
|
|
||||||
(unsigned char *)" \305\320\317\277 \276\303\265\356 Help sjrc \312\324\275\270 \272\306\300\334 \241\241\241\241 \241\241\241\241 \241\241\241\241 \241\241\241\241",
|
(unsigned char*)"Help\241\241Mode",
|
||||||
|
(unsigned char*)" \245\254\245\244\245\311\241\246\245\351\245\244\245\363 %s \244\313\244\312\244\352\244\336\244\267\244\277 ",
|
||||||
|
|
||||||
(unsigned char *)"Help\241\241Mode",
|
(unsigned char*)"ShiftJIS\241\241",
|
||||||
(unsigned char *)" \245\254\245\244\245\311\241\246\245\351\245\244\245\363 %s \244\313\244\312\244\352\244\336\244\267\244\277 ",
|
(unsigned char*)"\241\241\243\305\243\325\243\303\241\241",
|
||||||
|
(unsigned char*)"\243\305\243\325\243\303\312\344\275\365",
|
||||||
|
(unsigned char*)"\241\241\243\312\243\311\243\323\241\241",
|
||||||
|
(unsigned char*)"\243\312\243\311\243\323\312\344\275\365",
|
||||||
|
(unsigned char*)"\241\241\241\241\266\350\305\300\241\241",
|
||||||
|
(unsigned char*)"\266\350\305\300\241\241\312\344\275\365",
|
||||||
|
|
||||||
|
(unsigned char*)"\305\320\317\277",
|
||||||
|
(unsigned char*)" \310\317\260\317\244\362\273\330\304\352\244\267\244\306\244\257\244\300\244\265\244\244 ",
|
||||||
|
(unsigned char*)" \264\301\273\372 [%s] : \306\311\244\337\306\376\316\317 ",
|
||||||
|
(unsigned char*)" \264\301\273\372 [%s] : \306\311\244\337 [%s] : \311\312\273\354 [%s] (y/n)? ",
|
||||||
|
(unsigned char*)" \264\301\273\372 [%s] : \306\311\244\337 [%s] (y/n)? ",
|
||||||
|
(unsigned char*)" \312\270\313\241\276\360\312\363 : 1.\314\276\273\354 2.\314\276\273\372 3.\314\276\301\260 4.\303\317\314\276 5.\245\265\312\321\306\260\273\354",
|
||||||
|
(unsigned char*)" \305\320\317\277\244\267\244\336\244\267\244\277 ",
|
||||||
|
(unsigned char*)" \306\311\244\337\306\376\316\317 ",
|
||||||
|
(unsigned char*)" 1",
|
||||||
|
(unsigned char*)"y",
|
||||||
|
(unsigned char*)" \306\261\260\354\244\316\303\261\270\354\244\254\244\271\244\307\244\313\302\270\272\337\244\267\244\306\244\244\244\336\244\271",
|
||||||
|
(unsigned char*)" \244\263\244\316\306\311\244\337\312\270\273\372\316\363\244\307\244\317\305\320\317\277\244\307\244\255\244\336\244\273\244\363",
|
||||||
|
(unsigned char*)" \244\263\244\316\264\301\273\372\312\270\273\372\316\363\244\307\244\317\305\320\317\277\244\307\244\255\244\336\244\273\244\363",
|
||||||
|
(unsigned char*)" \244\263\244\354\260\312\276\345\306\261\244\270\306\311\244\337\244\307\244\317\305\320\317\277\244\307\244\255\244\336\244\273\244\363",
|
||||||
|
(unsigned char*)" \244\263\244\354\260\312\276\345\245\346\241\274\245\266\274\255\275\361\244\313\244\317\305\320\317\277\244\307\244\255\244\336\244\273\244\363",
|
||||||
|
(unsigned char*)" \245\346\241\274\245\266\274\255\275\361\244\254\245\355\245\303\245\257\244\265\244\354\244\306\244\244\244\336\244\271",
|
||||||
|
(unsigned char*)" \245\267\245\271\245\306\245\340\245\250\245\351\241\274\244\307\305\320\317\277\244\307\244\255\244\336\244\273\244\363",
|
||||||
|
(unsigned char*)",",
|
||||||
|
|
||||||
|
(unsigned char*)"\276\303\265\356",
|
||||||
|
(unsigned char*)" \264\301\273\372 [%s] : \306\311\244\337 [%s] : \311\312\273\354 [%s]\244\362\276\303\265\356\244\267\244\336\244\267\244\277 ",
|
||||||
|
(unsigned char*)" \273\330\304\352\244\265\244\354\244\277\306\311\244\337\241\246\264\301\273\372\244\317\305\320\317\277\244\265\244\354\244\306\244\244\244\336\244\273\244\363",
|
||||||
|
(unsigned char*)" \245\346\241\274\245\266\274\255\275\361\244\254\245\355\245\303\245\257\244\265\244\354\244\306\244\244\244\336\244\271",
|
||||||
|
(unsigned char*)" \244\263\244\316\306\311\244\337\312\270\273\372\316\363\244\317\276\303\265\356\244\307\244\255\244\336\244\273\244\363",
|
||||||
|
(unsigned char*)" \244\263\244\316\264\301\273\372\312\270\273\372\316\363\244\317\276\303\265\356\244\307\244\255\244\336\244\273\244\363",
|
||||||
|
(unsigned char*)" \245\267\245\271\245\306\245\340\245\250\245\351\241\274\244\307\276\303\265\356\244\307\244\255\244\336\244\273\244\363",
|
||||||
|
|
||||||
(unsigned char *)"ShiftJIS\241\241",
|
(unsigned char*)"\244\362\306\311\244\337\271\376\244\337\244\336\244\267\244\277",
|
||||||
(unsigned char *)"\241\241\243\305\243\325\243\303\241\241",
|
(unsigned char*)"\244\362\306\311\244\337\271\376\244\341\244\336\244\273\244\363\244\307\244\267\244\277",
|
||||||
(unsigned char *)"\243\305\243\325\243\303\312\344\275\365",
|
(unsigned char*)"\245\273\245\303\245\310\245\242\245\303\245\327\245\325\245\241\245\244\245\353\244\254\244\242\244\352\244\336\244\273\244\363 ",
|
||||||
(unsigned char *)"\241\241\243\312\243\311\243\323\241\241",
|
|
||||||
(unsigned char *)"\243\312\243\311\243\323\312\344\275\365",
|
|
||||||
(unsigned char *)"\241\241\241\241\266\350\305\300\241\241",
|
|
||||||
(unsigned char *)"\266\350\305\300\241\241\312\344\275\365",
|
|
||||||
|
|
||||||
|
(unsigned char*)"Change weight (1-9) current weight %d ",
|
||||||
|
|
||||||
|
(unsigned char*)"\272\306\300\334\302\263 ",
|
||||||
|
(unsigned char*)" \245\265\241\274\245\320\314\276 [%s] \244\362\273\330\304\352\244\267\244\306\244\257\244\300\244\265\244\244 ",
|
||||||
|
(unsigned char*)" \245\265\241\274\245\320 [%s] \244\313\300\334\302\263\244\267\244\336\244\267\244\277 ",
|
||||||
|
(unsigned char*)"\245\265\241\274\245\320 [%s] \244\310\244\316\300\334\302\263\244\254\300\332\244\354\244\336\244\267\244\277",
|
||||||
|
|
||||||
(unsigned char *)"\305\320\317\277",
|
(unsigned char*)" ",
|
||||||
(unsigned char *)" \310\317\260\317\244\362\273\330\304\352\244\267\244\306\244\257\244\300\244\265\244\244 ",
|
(unsigned char*)" ",
|
||||||
(unsigned char *)" \264\301\273\372 [%s] : \306\311\244\337\306\376\316\317 ",
|
(unsigned char*)" \302\263\244\261\244\336\244\271\244\253? y",
|
||||||
(unsigned char *)" \264\301\273\372 [%s] : \306\311\244\337 [%s] : \311\312\273\354 [%s] (y/n)? ",
|
|
||||||
(unsigned char *)" \264\301\273\372 [%s] : \306\311\244\337 [%s] (y/n)? ",
|
|
||||||
(unsigned char *)" \312\270\313\241\276\360\312\363 : 1.\314\276\273\354 2.\314\276\273\372 3.\314\276\301\260 4.\303\317\314\276 5.\245\265\312\321\306\260\273\354",
|
|
||||||
(unsigned char *)" \305\320\317\277\244\267\244\336\244\267\244\277 ",
|
|
||||||
(unsigned char *)" \306\311\244\337\306\376\316\317 ",
|
|
||||||
(unsigned char *)" 1",
|
|
||||||
(unsigned char *)"y",
|
|
||||||
(unsigned char *)" \306\261\260\354\244\316\303\261\270\354\244\254\244\271\244\307\244\313\302\270\272\337\244\267\244\306\244\244\244\336\244\271",
|
|
||||||
(unsigned char *)" \244\263\244\316\306\311\244\337\312\270\273\372\316\363\244\307\244\317\305\320\317\277\244\307\244\255\244\336\244\273\244\363",
|
|
||||||
(unsigned char *)" \244\263\244\316\264\301\273\372\312\270\273\372\316\363\244\307\244\317\305\320\317\277\244\307\244\255\244\336\244\273\244\363",
|
|
||||||
(unsigned char *)" \244\263\244\354\260\312\276\345\306\261\244\270\306\311\244\337\244\307\244\317\305\320\317\277\244\307\244\255\244\336\244\273\244\363",
|
|
||||||
(unsigned char *)" \244\263\244\354\260\312\276\345\245\346\241\274\245\266\274\255\275\361\244\313\244\317\305\320\317\277\244\307\244\255\244\336\244\273\244\363",
|
|
||||||
(unsigned char *)" \245\346\241\274\245\266\274\255\275\361\244\254\245\355\245\303\245\257\244\265\244\354\244\306\244\244\244\336\244\271",
|
|
||||||
(unsigned char *)" \245\267\245\271\245\306\245\340\245\250\245\351\241\274\244\307\305\320\317\277\244\307\244\255\244\336\244\273\244\363",
|
|
||||||
(unsigned char *)",",
|
|
||||||
|
|
||||||
|
(unsigned char*)"\245\265\241\274\245\320\241\274\244\254\273\340\244\313\244\336\244\267\244\277\241\243",
|
||||||
|
(unsigned char*)"\245\265\241\274\245\320\241\274\244\313\300\334\302\263\272\321\244\307\244\271\241\243",
|
||||||
|
(unsigned char*)"\245\265\241\274\245\320\241\274\244\330\244\316\300\334\302\263\244\313\274\272\307\324\244\267\244\336\244\267\244\277\241\243",
|
||||||
|
(unsigned char*)"\245\341\245\244\245\363\274\255\275\361\245\325\245\241\245\244\245\353\244\362\245\252\241\274\245\327\245\363\244\307\244\255\244\336\244\273\244\363\241\243",
|
||||||
|
(unsigned char*)"\245\346\241\274\245\266\241\246\245\307\245\243\245\354\245\257\245\310\245\352\244\316\272\356\300\256\244\313\274\272\307\324\244\267\244\336\244\267\244\277\241\243",
|
||||||
|
(unsigned char*)"\245\346\241\274\245\266\274\255\275\361\245\325\245\241\245\244\245\353\244\316\300\270\300\256\244\313\274\272\307\324\244\267\244\336\244\267\244\277\241\243",
|
||||||
|
(unsigned char*)"\245\346\241\274\245\266\274\255\275\361\245\325\245\241\245\244\245\353\244\362\245\252\241\274\245\327\245\363\244\307\244\255\244\336\244\273\244\363\241\243",
|
||||||
|
(unsigned char*)"\263\330\275\254\245\325\245\241\245\244\245\353\244\316\300\270\300\256\244\313\274\272\307\324\244\267\244\336\244\267\244\277\241\243",
|
||||||
|
(unsigned char*)"\263\330\275\254\245\325\245\241\245\244\245\353\244\362\245\252\241\274\245\327\245\363\244\307\244\255\244\336\244\273\244\363\241\243",
|
||||||
|
|
||||||
(unsigned char *)"\276\303\265\356",
|
(unsigned char*)"\312\324\275\270 ",
|
||||||
(unsigned char *)" \264\301\273\372 [%s] : \306\311\244\337 [%s] : \311\312\273\354 [%s]\244\362\276\303\265\356\244\267\244\336\244\267\244\277 ",
|
(unsigned char*)"\243\323\243\312\243\263\241\241\241\241\241\241\241\241\241\241\241\241\241\241",
|
||||||
(unsigned char *)" \273\330\304\352\244\265\244\354\244\277\306\311\244\337\241\246\264\301\273\372\244\317\305\320\317\277\244\265\244\354\244\306\244\244\244\336\244\273\244\363",
|
|
||||||
(unsigned char *)" \245\346\241\274\245\266\274\255\275\361\244\254\245\355\245\303\245\257\244\265\244\354\244\306\244\244\244\336\244\271",
|
|
||||||
(unsigned char *)" \244\263\244\316\306\311\244\337\312\270\273\372\316\363\244\317\276\303\265\356\244\307\244\255\244\336\244\273\244\363",
|
|
||||||
(unsigned char *)" \244\263\244\316\264\301\273\372\312\270\273\372\316\363\244\317\276\303\265\356\244\307\244\255\244\336\244\273\244\363",
|
|
||||||
(unsigned char *)" \245\267\245\271\245\306\245\340\245\250\245\351\241\274\244\307\276\303\265\356\244\307\244\255\244\336\244\273\244\363",
|
|
||||||
|
|
||||||
|
(unsigned char*)" \312\324\275\270\312\270\273\372\316\363\244\254\304\271\244\271\244\256\244\336\244\271",
|
||||||
|
(unsigned char*)"$$",
|
||||||
|
|
||||||
|
(unsigned char*)"on",
|
||||||
|
(unsigned char*)"off",
|
||||||
|
|
||||||
(unsigned char *)"\244\362\306\311\244\337\271\376\244\337\244\336\244\267\244\277",
|
(unsigned char*)"\314\276\273\354",
|
||||||
(unsigned char *)"\244\362\306\311\244\337\271\376\244\341\244\336\244\273\244\363\244\307\244\267\244\277",
|
(unsigned char*)"\314\276\273\372",
|
||||||
(unsigned char *)"\245\273\245\303\245\310\245\242\245\303\245\327\245\325\245\241\245\244\245\353\244\254\244\242\244\352\244\336\244\273\244\363 ",
|
(unsigned char*)"\314\276\301\260",
|
||||||
|
(unsigned char*)"\303\317\314\276",
|
||||||
|
(unsigned char*)"\245\265\312\321\306\260\273\354",
|
||||||
|
|
||||||
|
(unsigned char*)"",
|
||||||
|
(unsigned char*)"F1",
|
||||||
|
(unsigned char*)"F2",
|
||||||
|
(unsigned char*)"F3",
|
||||||
|
(unsigned char*)"F4",
|
||||||
|
(unsigned char*)"F5",
|
||||||
|
(unsigned char*)"F6",
|
||||||
|
(unsigned char*)"F7",
|
||||||
|
(unsigned char*)"F8",
|
||||||
|
(unsigned char*)"F9",
|
||||||
|
(unsigned char*)"F10",
|
||||||
|
(unsigned char*)"F11",
|
||||||
|
(unsigned char*)"F12",
|
||||||
|
(unsigned char*)"F13",
|
||||||
|
(unsigned char*)"F14",
|
||||||
|
(unsigned char*)"F15",
|
||||||
|
(unsigned char*)"F16",
|
||||||
|
(unsigned char*)"F17",
|
||||||
|
(unsigned char*)"F18",
|
||||||
|
(unsigned char*)"F19",
|
||||||
|
(unsigned char*)"F20",
|
||||||
|
(unsigned char*)"Select",
|
||||||
|
(unsigned char*)"Kanji",
|
||||||
|
(unsigned char*)"Cancel",
|
||||||
|
(unsigned char*)"Execute",
|
||||||
|
(unsigned char*)"Up",
|
||||||
|
(unsigned char*)"Down",
|
||||||
|
(unsigned char*)"Right",
|
||||||
|
(unsigned char*)"Left",
|
||||||
|
|
||||||
(unsigned char *)"Change weight (1-9) current weight %d ",
|
(unsigned char*)"start",
|
||||||
|
(unsigned char*)"henkan",
|
||||||
|
(unsigned char*)"muhen",
|
||||||
|
(unsigned char*)"kettei",
|
||||||
|
(unsigned char*)"hira",
|
||||||
|
(unsigned char*)"halpha",
|
||||||
|
(unsigned char*)"zalpha",
|
||||||
|
(unsigned char*)"hkata",
|
||||||
|
(unsigned char*)"zkata",
|
||||||
|
(unsigned char*)"code",
|
||||||
|
(unsigned char*)"etc",
|
||||||
|
(unsigned char*)"right",
|
||||||
|
(unsigned char*)"left",
|
||||||
|
(unsigned char*)"kaku",
|
||||||
|
(unsigned char*)"shuku",
|
||||||
|
(unsigned char*)"edit",
|
||||||
|
(unsigned char*)"toggle",
|
||||||
|
(unsigned char*)"wrapback",
|
||||||
|
(unsigned char*)"wrap",
|
||||||
|
(unsigned char*)"sjrc",
|
||||||
|
(unsigned char*)"buffer",
|
||||||
|
(unsigned char*)"toroku",
|
||||||
|
(unsigned char*)"shoukyo",
|
||||||
|
(unsigned char*)"help",
|
||||||
|
(unsigned char*)"ha-kettei",
|
||||||
|
(unsigned char*)"flush",
|
||||||
|
(unsigned char*)"debug",
|
||||||
|
(unsigned char*)"cancel",
|
||||||
|
(unsigned char*)"saihenkan",
|
||||||
|
(unsigned char*)"ignore",
|
||||||
|
(unsigned char*)"top",
|
||||||
|
(unsigned char*)"end",
|
||||||
|
(unsigned char*)"reconnect",
|
||||||
|
(unsigned char*)"kill",
|
||||||
|
|
||||||
|
(unsigned char*)"key",
|
||||||
|
(unsigned char*)"escape",
|
||||||
|
(unsigned char*)"sjxkey",
|
||||||
|
(unsigned char*)"etckey",
|
||||||
|
(unsigned char*)"intr",
|
||||||
|
(unsigned char*)"bskey",
|
||||||
|
(unsigned char*)"delkey",
|
||||||
|
(unsigned char*)"setnormal",
|
||||||
|
(unsigned char*)"throughnext",
|
||||||
|
(unsigned char*)"initialmode",
|
||||||
|
(unsigned char*)"helpmode",
|
||||||
|
(unsigned char*)"defaultcode",
|
||||||
|
(unsigned char*)"muhenkanmode",
|
||||||
|
(unsigned char*)"muhenkaninedit",
|
||||||
|
(unsigned char*)"muhenkantoggle",
|
||||||
|
(unsigned char*)"guide",
|
||||||
|
(unsigned char*)"forkshell",
|
||||||
|
(unsigned char*)"execshell",
|
||||||
|
(unsigned char*)"dictionary",
|
||||||
|
(unsigned char*)"userdic",
|
||||||
|
(unsigned char*)"maindic",
|
||||||
|
(unsigned char*)"romaji",
|
||||||
|
(unsigned char*)"bstudy",
|
||||||
|
(unsigned char*)"silent",
|
||||||
|
(unsigned char*)"flushafterconversion",
|
||||||
|
(unsigned char*)"rkerrbell",
|
||||||
|
(unsigned char*)"server",
|
||||||
|
|
||||||
|
(unsigned char*)"shiftjis",
|
||||||
|
(unsigned char*)"sjis",
|
||||||
|
(unsigned char*)"euc",
|
||||||
|
(unsigned char*)"euc2",
|
||||||
|
(unsigned char*)"jis",
|
||||||
|
(unsigned char*)"jis2",
|
||||||
|
(unsigned char*)"kuten",
|
||||||
|
(unsigned char*)"kuten2",
|
||||||
|
|
||||||
(unsigned char *)"\272\306\300\334\302\263 ",
|
(unsigned char*)"buff",
|
||||||
(unsigned char *)" \245\265\241\274\245\320\314\276 [%s] \244\362\273\330\304\352\244\267\244\306\244\257\244\300\244\265\244\244 ",
|
(unsigned char*)"unbuff",
|
||||||
(unsigned char *)" \245\265\241\274\245\320 [%s] \244\313\300\334\302\263\244\267\244\336\244\267\244\277 ",
|
(unsigned char*)"direct",
|
||||||
(unsigned char *)"\245\265\241\274\245\320 [%s] \244\310\244\316\300\334\302\263\244\254\300\332\244\354\244\336\244\267\244\277",
|
|
||||||
|
|
||||||
(unsigned char *)" ",
|
(unsigned char*)"sj2",
|
||||||
(unsigned char *)" ",
|
(unsigned char*)"shift",
|
||||||
(unsigned char *)" \302\263\244\261\244\336\244\271\244\253? y",
|
|
||||||
|
|
||||||
|
(unsigned char*)"function",
|
||||||
|
|
||||||
(unsigned char *)"\245\265\241\274\245\320\241\274\244\254\273\340\244\313\244\336\244\267\244\277\241\243",
|
(unsigned char*)"unbuffer",
|
||||||
(unsigned char *)"\245\265\241\274\245\320\241\274\244\313\300\334\302\263\272\321\244\307\244\271\241\243",
|
(unsigned char*)"funcetc"
|
||||||
(unsigned char *)"\245\265\241\274\245\320\241\274\244\330\244\316\300\334\302\263\244\313\274\272\307\324\244\267\244\336\244\267\244\277\241\243",
|
|
||||||
(unsigned char *)"\245\341\245\244\245\363\274\255\275\361\245\325\245\241\245\244\245\353\244\362\245\252\241\274\245\327\245\363\244\307\244\255\244\336\244\273\244\363\241\243",
|
|
||||||
(unsigned char *)"\245\346\241\274\245\266\241\246\245\307\245\243\245\354\245\257\245\310\245\352\244\316\272\356\300\256\244\313\274\272\307\324\244\267\244\336\244\267\244\277\241\243",
|
|
||||||
(unsigned char *)"\245\346\241\274\245\266\274\255\275\361\245\325\245\241\245\244\245\353\244\316\300\270\300\256\244\313\274\272\307\324\244\267\244\336\244\267\244\277\241\243",
|
|
||||||
(unsigned char *)"\245\346\241\274\245\266\274\255\275\361\245\325\245\241\245\244\245\353\244\362\245\252\241\274\245\327\245\363\244\307\244\255\244\336\244\273\244\363\241\243",
|
|
||||||
(unsigned char *)"\263\330\275\254\245\325\245\241\245\244\245\353\244\316\300\270\300\256\244\313\274\272\307\324\244\267\244\336\244\267\244\277\241\243",
|
|
||||||
(unsigned char *)"\263\330\275\254\245\325\245\241\245\244\245\353\244\362\245\252\241\274\245\327\245\363\244\307\244\255\244\336\244\273\244\363\241\243",
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(unsigned char *)"\312\324\275\270 ",
|
|
||||||
(unsigned char *)"\243\323\243\312\243\263\241\241\241\241\241\241\241\241\241\241\241\241\241\241",
|
|
||||||
|
|
||||||
(unsigned char *)" \312\324\275\270\312\270\273\372\316\363\244\254\304\271\244\271\244\256\244\336\244\271",
|
|
||||||
(unsigned char *)"$$",
|
|
||||||
|
|
||||||
|
|
||||||
(unsigned char *)"on",
|
|
||||||
(unsigned char *)"off",
|
|
||||||
|
|
||||||
|
|
||||||
(unsigned char *)"\314\276\273\354",
|
|
||||||
(unsigned char *)"\314\276\273\372",
|
|
||||||
(unsigned char *)"\314\276\301\260",
|
|
||||||
(unsigned char *)"\303\317\314\276",
|
|
||||||
(unsigned char *)"\245\265\312\321\306\260\273\354",
|
|
||||||
|
|
||||||
|
|
||||||
(unsigned char *)"",
|
|
||||||
(unsigned char *)"F1",
|
|
||||||
(unsigned char *)"F2",
|
|
||||||
(unsigned char *)"F3",
|
|
||||||
(unsigned char *)"F4",
|
|
||||||
(unsigned char *)"F5",
|
|
||||||
(unsigned char *)"F6",
|
|
||||||
(unsigned char *)"F7",
|
|
||||||
(unsigned char *)"F8",
|
|
||||||
(unsigned char *)"F9",
|
|
||||||
(unsigned char *)"F10",
|
|
||||||
(unsigned char *)"F11",
|
|
||||||
(unsigned char *)"F12",
|
|
||||||
(unsigned char *)"F13",
|
|
||||||
(unsigned char *)"F14",
|
|
||||||
(unsigned char *)"F15",
|
|
||||||
(unsigned char *)"F16",
|
|
||||||
(unsigned char *)"F17",
|
|
||||||
(unsigned char *)"F18",
|
|
||||||
(unsigned char *)"F19",
|
|
||||||
(unsigned char *)"F20",
|
|
||||||
(unsigned char *)"Select",
|
|
||||||
(unsigned char *)"Kanji",
|
|
||||||
(unsigned char *)"Cancel",
|
|
||||||
(unsigned char *)"Execute",
|
|
||||||
(unsigned char *)"Up",
|
|
||||||
(unsigned char *)"Down",
|
|
||||||
(unsigned char *)"Right",
|
|
||||||
(unsigned char *)"Left",
|
|
||||||
|
|
||||||
(unsigned char *)"start",
|
|
||||||
(unsigned char *)"henkan",
|
|
||||||
(unsigned char *)"muhen",
|
|
||||||
(unsigned char *)"kettei",
|
|
||||||
(unsigned char *)"hira",
|
|
||||||
(unsigned char *)"halpha",
|
|
||||||
(unsigned char *)"zalpha",
|
|
||||||
(unsigned char *)"hkata",
|
|
||||||
(unsigned char *)"zkata",
|
|
||||||
(unsigned char *)"code",
|
|
||||||
(unsigned char *)"etc",
|
|
||||||
(unsigned char *)"right",
|
|
||||||
(unsigned char *)"left",
|
|
||||||
(unsigned char *)"kaku",
|
|
||||||
(unsigned char *)"syuku",
|
|
||||||
(unsigned char *)"edit",
|
|
||||||
(unsigned char *)"toggle",
|
|
||||||
(unsigned char *)"wrapback",
|
|
||||||
(unsigned char *)"wrap",
|
|
||||||
(unsigned char *)"sjrc",
|
|
||||||
(unsigned char *)"buffer",
|
|
||||||
(unsigned char *)"toroku",
|
|
||||||
(unsigned char *)"syoukyo",
|
|
||||||
(unsigned char *)"help",
|
|
||||||
(unsigned char *)"ha-kettei",
|
|
||||||
(unsigned char *)"flush",
|
|
||||||
(unsigned char *)"debug",
|
|
||||||
(unsigned char *)"cancel",
|
|
||||||
(unsigned char *)"saihenkan",
|
|
||||||
(unsigned char *)"ignore",
|
|
||||||
(unsigned char *)"top",
|
|
||||||
(unsigned char *)"end",
|
|
||||||
(unsigned char *)"reconnect",
|
|
||||||
(unsigned char *)"kill",
|
|
||||||
|
|
||||||
|
|
||||||
(unsigned char *)"key",
|
|
||||||
(unsigned char *)"escape",
|
|
||||||
(unsigned char *)"sjxkey",
|
|
||||||
(unsigned char *)"etckey",
|
|
||||||
(unsigned char *)"intr",
|
|
||||||
(unsigned char *)"bskey",
|
|
||||||
(unsigned char *)"delkey",
|
|
||||||
(unsigned char *)"setnormal",
|
|
||||||
(unsigned char *)"throughnext",
|
|
||||||
(unsigned char *)"initialmode",
|
|
||||||
(unsigned char *)"helpmode",
|
|
||||||
(unsigned char *)"defaultcode",
|
|
||||||
(unsigned char *)"muhenkanmode",
|
|
||||||
(unsigned char *)"muhenkaninedit",
|
|
||||||
(unsigned char *)"muhenkantoggle",
|
|
||||||
(unsigned char *)"guide",
|
|
||||||
(unsigned char *)"forkshell",
|
|
||||||
(unsigned char *)"execshell",
|
|
||||||
(unsigned char *)"dictionary",
|
|
||||||
(unsigned char *)"userdic",
|
|
||||||
(unsigned char *)"maindic",
|
|
||||||
(unsigned char *)"romaji",
|
|
||||||
(unsigned char *)"bstudy",
|
|
||||||
(unsigned char *)"silent",
|
|
||||||
(unsigned char *)"flushafterconversion",
|
|
||||||
(unsigned char *)"rkerrbell",
|
|
||||||
(unsigned char *)"server",
|
|
||||||
|
|
||||||
(unsigned char *)"shiftjis",
|
|
||||||
(unsigned char *)"sjis",
|
|
||||||
(unsigned char *)"euc",
|
|
||||||
(unsigned char *)"euc2",
|
|
||||||
(unsigned char *)"jis",
|
|
||||||
(unsigned char *)"jis2",
|
|
||||||
(unsigned char *)"kuten",
|
|
||||||
(unsigned char *)"kuten2",
|
|
||||||
|
|
||||||
(unsigned char *)"buff",
|
|
||||||
(unsigned char *)"unbuff",
|
|
||||||
(unsigned char *)"direct",
|
|
||||||
|
|
||||||
(unsigned char *)"sj2",
|
|
||||||
(unsigned char *)"shift",
|
|
||||||
|
|
||||||
(unsigned char *)"function",
|
|
||||||
|
|
||||||
(unsigned char *)"unbuffer",
|
|
||||||
(unsigned char *)"funcetc"
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#define CURMESSAGES 182
|
#define CURMESSAGES 182
|
||||||
wchar16_t *WcMessages[CURMESSAGES];
|
wchar16_t* WcMessages[CURMESSAGES];
|
||||||
|
|
||||||
#define CURWCVTKEY 29
|
#define CURWCVTKEY 29
|
||||||
struct wcvtkey wcvtkeytbl[CURWCVTKEY];
|
struct wcvtkey wcvtkeytbl[CURWCVTKEY];
|
||||||
|
|
||||||
|
int init_wcvtkey() {
|
||||||
|
|
||||||
int
|
|
||||||
init_wcvtkey()
|
|
||||||
{
|
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
||||||
for (i = 0; i < CURWCVTKEY; i++) {
|
for(i = 0; i < CURWCVTKEY; i++) {
|
||||||
wcvtkeytbl[i].key_seq[0] = 0;
|
wcvtkeytbl[i].key_seq[0] = 0;
|
||||||
}
|
}
|
||||||
wcvtkeytbl[0].key_word = WCF1;
|
wcvtkeytbl[0].key_word = WCF1;
|
||||||
|
|
@ -318,42 +287,61 @@ init_wcvtkey()
|
||||||
wcvtkeytbl[28].key_word = NULL;
|
wcvtkeytbl[28].key_word = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
wchar16_t *comstr[KEY_OTHER];
|
wchar16_t* comstr[KEY_OTHER];
|
||||||
|
|
||||||
|
int init_comstr() {
|
||||||
|
comstr[0] = WCStart;
|
||||||
int
|
comstr[1] = WCHenkan;
|
||||||
init_comstr()
|
comstr[2] = WCMuhen;
|
||||||
{
|
comstr[3] = WCKettei;
|
||||||
comstr[0] = WCStart; comstr[1] = WCHenkan; comstr[2] = WCMuhen;
|
comstr[4] = WCHira;
|
||||||
comstr[3] = WCKettei; comstr[4] = WCHira; comstr[5] = WCHalpha;
|
comstr[5] = WCHalpha;
|
||||||
comstr[6] = WCZalpha; comstr[7] = WCHkata; comstr[8] = WCZkata;
|
comstr[6] = WCZalpha;
|
||||||
comstr[9] = WCCode; comstr[10] = WCEtc; comstr[11] = WCRightl;
|
comstr[7] = WCHkata;
|
||||||
comstr[12] = WCLeftl; comstr[13] = WCKaku; comstr[14] = WCSyuku;
|
comstr[8] = WCZkata;
|
||||||
comstr[15] = WCEdit; comstr[16] = WCToggle; comstr[17] = WCWrapback;
|
comstr[9] = WCCode;
|
||||||
comstr[18] = WCWrap; comstr[19] = WCSjrc; comstr[20] = WCBuffer;
|
comstr[10] = WCEtc;
|
||||||
comstr[21] = WCToroku; comstr[22] = WCSyoukyo; comstr[23] = WCHelp;
|
comstr[11] = WCRightl;
|
||||||
comstr[24] = WCHaKettei; comstr[25] = WCFlush; comstr[26] = WCDebug;
|
comstr[12] = WCLeftl;
|
||||||
comstr[27] = WCCancell; comstr[28] = WCSaihenkan; comstr[29] = WCIgnore;
|
comstr[13] = WCKaku;
|
||||||
comstr[30] = WCTop; comstr[31] = WCEnd; comstr[32] = WCReconnect;
|
comstr[14] = WCSyuku;
|
||||||
comstr[33] = WCKill; comstr[34] = WCKara;
|
comstr[15] = WCEdit;
|
||||||
|
comstr[16] = WCToggle;
|
||||||
|
comstr[17] = WCWrapback;
|
||||||
|
comstr[18] = WCWrap;
|
||||||
|
comstr[19] = WCSjrc;
|
||||||
|
comstr[20] = WCBuffer;
|
||||||
|
comstr[21] = WCToroku;
|
||||||
|
comstr[22] = WCShoukyo;
|
||||||
|
comstr[23] = WCHelp;
|
||||||
|
comstr[24] = WCHaKettei;
|
||||||
|
comstr[25] = WCFlush;
|
||||||
|
comstr[26] = WCDebug;
|
||||||
|
comstr[27] = WCCancell;
|
||||||
|
comstr[28] = WCSaihenkan;
|
||||||
|
comstr[29] = WCIgnore;
|
||||||
|
comstr[30] = WCTop;
|
||||||
|
comstr[31] = WCEnd;
|
||||||
|
comstr[32] = WCReconnect;
|
||||||
|
comstr[33] = WCKill;
|
||||||
|
comstr[34] = WCKara;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct valtbl hin_val[5];
|
struct valtbl hin_val[5];
|
||||||
|
|
||||||
|
int init_hin_val() {
|
||||||
|
hin_val[0].keyword = WCMeishi;
|
||||||
int
|
hin_val[0].ivalue = SJ3_H_NRMNOUN;
|
||||||
init_hin_val()
|
hin_val[1].keyword = WCMyouji;
|
||||||
{
|
hin_val[1].ivalue = SJ3_H_LNAME;
|
||||||
hin_val[0].keyword = WCMeishi; hin_val[0].ivalue = SJ3_H_NRMNOUN;
|
hin_val[2].keyword = WCNamae;
|
||||||
hin_val[1].keyword = WCMyouji; hin_val[1].ivalue = SJ3_H_LNAME;
|
hin_val[2].ivalue = SJ3_H_FNAME;
|
||||||
hin_val[2].keyword = WCNamae; hin_val[2].ivalue = SJ3_H_FNAME;
|
hin_val[3].keyword = WCTimei;
|
||||||
hin_val[3].keyword = WCTimei; hin_val[3].ivalue = SJ3_H_LOCNAME;
|
hin_val[3].ivalue = SJ3_H_LOCNAME;
|
||||||
hin_val[4].keyword = WCSahen; hin_val[4].ivalue = SJ3_H_SILVERB;
|
hin_val[4].keyword = WCSahen;
|
||||||
|
hin_val[4].ivalue = SJ3_H_SILVERB;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
extern int set_func(), set_etckeys(), set_intr(),
|
extern int set_func(), set_etckeys(), set_intr(),
|
||||||
set_delkey(), set_goto(), set_trap(), set_init_mode(),
|
set_delkey(), set_goto(), set_trap(), set_init_mode(),
|
||||||
set_helpmenu(), set_defcode(), set_muhenkan(), set_muedit(),
|
set_helpmenu(), set_defcode(), set_muhenkan(), set_muedit(),
|
||||||
|
|
@ -363,73 +351,95 @@ extern int set_func(), set_etckeys(), set_intr(),
|
||||||
#define CURFUNCS 29
|
#define CURFUNCS 29
|
||||||
struct functbl funcs[CURFUNCS];
|
struct functbl funcs[CURFUNCS];
|
||||||
|
|
||||||
|
int init_funcs() {
|
||||||
|
funcs[0].keyword = WCKey;
|
||||||
int
|
funcs[0].func = set_func;
|
||||||
init_funcs()
|
funcs[1].keyword = WCEscape;
|
||||||
{
|
funcs[1].func = set_func;
|
||||||
funcs[0].keyword = WCKey; funcs[0].func = set_func;
|
funcs[2].keyword = WCEtckey;
|
||||||
funcs[1].keyword = WCEscape; funcs[1].func = set_func;
|
funcs[2].func = set_etckeys;
|
||||||
funcs[2].keyword = WCEtckey; funcs[2].func = set_etckeys;
|
funcs[3].keyword = WCIntr;
|
||||||
funcs[3].keyword = WCIntr; funcs[3].func = set_intr;
|
funcs[3].func = set_intr;
|
||||||
funcs[4].keyword = WCDelkey; funcs[4].func = set_delkey;
|
funcs[4].keyword = WCDelkey;
|
||||||
funcs[5].keyword = WCSetnormal; funcs[5].func = set_goto;
|
funcs[4].func = set_delkey;
|
||||||
funcs[6].keyword = WCThroughnext; funcs[6].func = set_trap;
|
funcs[5].keyword = WCSetnormal;
|
||||||
funcs[7].keyword = WCInitialmode; funcs[7].func = set_init_mode;
|
funcs[5].func = set_goto;
|
||||||
funcs[8].keyword = WCHelpmode; funcs[8].func = set_helpmenu;
|
funcs[6].keyword = WCThroughnext;
|
||||||
funcs[9].keyword = WCDefaultcode; funcs[9].func = set_defcode;
|
funcs[6].func = set_trap;
|
||||||
funcs[10].keyword = WCMuhenkanmode; funcs[10].func = set_muhenkan;
|
funcs[7].keyword = WCInitialmode;
|
||||||
funcs[11].keyword = WCMuhenkaninedit; funcs[11].func = set_muedit;
|
funcs[7].func = set_init_mode;
|
||||||
funcs[12].keyword = WCMuhenkantoggle; funcs[12].func = set_m_toggle;
|
funcs[8].keyword = WCHelpmode;
|
||||||
funcs[13].keyword = WCGuide; funcs[13].func = set_guide;
|
funcs[8].func = set_helpmenu;
|
||||||
funcs[14].keyword = WCForkshell; funcs[14].func = set_forkshell;
|
funcs[9].keyword = WCDefaultcode;
|
||||||
funcs[15].keyword = WCExecshell; funcs[15].func = set_forkshell;
|
funcs[9].func = set_defcode;
|
||||||
funcs[16].keyword = WCBstudy; funcs[16].func = set_bstudy;
|
funcs[10].keyword = WCMuhenkanmode;
|
||||||
funcs[17].keyword = WCSilent; funcs[17].func = set_silent;
|
funcs[10].func = set_muhenkan;
|
||||||
funcs[18].keyword = WCFlushafterconversion; funcs[18].func = set_flush_conversion;
|
funcs[11].keyword = WCMuhenkaninedit;
|
||||||
funcs[19].keyword = WCRkerrbell; funcs[19].func = set_rkebell;
|
funcs[11].func = set_muedit;
|
||||||
funcs[20].keyword = WCServer; funcs[20].func = set_server;
|
funcs[12].keyword = WCMuhenkantoggle;
|
||||||
funcs[21].keyword = WCDictionary; funcs[21].func = set_dict;
|
funcs[12].func = set_m_toggle;
|
||||||
funcs[22].keyword = NULL; funcs[22].func = NULL;
|
funcs[13].keyword = WCGuide;
|
||||||
|
funcs[13].func = set_guide;
|
||||||
|
funcs[14].keyword = WCForkshell;
|
||||||
|
funcs[14].func = set_forkshell;
|
||||||
|
funcs[15].keyword = WCExecshell;
|
||||||
|
funcs[15].func = set_forkshell;
|
||||||
|
funcs[16].keyword = WCBstudy;
|
||||||
|
funcs[16].func = set_bstudy;
|
||||||
|
funcs[17].keyword = WCSilent;
|
||||||
|
funcs[17].func = set_silent;
|
||||||
|
funcs[18].keyword = WCFlushafterconversion;
|
||||||
|
funcs[18].func = set_flush_conversion;
|
||||||
|
funcs[19].keyword = WCRkerrbell;
|
||||||
|
funcs[19].func = set_rkebell;
|
||||||
|
funcs[20].keyword = WCServer;
|
||||||
|
funcs[20].func = set_server;
|
||||||
|
funcs[21].keyword = WCDictionary;
|
||||||
|
funcs[21].func = set_dict;
|
||||||
|
funcs[22].keyword = NULL;
|
||||||
|
funcs[22].func = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct valtbl mode_val[5];
|
struct valtbl mode_val[5];
|
||||||
|
|
||||||
|
int init_mode_val() {
|
||||||
|
mode_val[0].keyword = WCHalpha;
|
||||||
int
|
mode_val[0].ivalue = MODE_HALPHA;
|
||||||
init_mode_val()
|
mode_val[1].keyword = WCZalpha;
|
||||||
{
|
mode_val[1].ivalue = MODE_ZALPHA;
|
||||||
mode_val[0].keyword = WCHalpha; mode_val[0].ivalue = MODE_HALPHA;
|
mode_val[2].keyword = WCHkata;
|
||||||
mode_val[1].keyword = WCZalpha; mode_val[1].ivalue = MODE_ZALPHA;
|
mode_val[2].ivalue = MODE_HKATA;
|
||||||
mode_val[2].keyword = WCHkata; mode_val[2].ivalue = MODE_HKATA;
|
mode_val[3].keyword = WCZkata;
|
||||||
mode_val[3].keyword = WCZkata; mode_val[3].ivalue = MODE_ZKATA;
|
mode_val[3].ivalue = MODE_ZKATA;
|
||||||
mode_val[4].keyword = WCHira; mode_val[4].ivalue = MODE_ZHIRA;
|
mode_val[4].keyword = WCHira;
|
||||||
|
mode_val[4].ivalue = MODE_ZHIRA;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct valtbl code_val[8];
|
struct valtbl code_val[8];
|
||||||
|
|
||||||
|
int init_code_val() {
|
||||||
|
code_val[0].keyword = WCShiftjis;
|
||||||
int
|
code_val[0].ivalue = CODE_SJIS;
|
||||||
init_code_val()
|
code_val[1].keyword = WCSjis;
|
||||||
{
|
code_val[1].ivalue = CODE_SJIS;
|
||||||
code_val[0].keyword = WCShiftjis; code_val[0].ivalue = CODE_SJIS;
|
code_val[2].keyword = WCEuc;
|
||||||
code_val[1].keyword = WCSjis; code_val[1].ivalue = CODE_SJIS;
|
code_val[2].ivalue = CODE_EUC;
|
||||||
code_val[2].keyword = WCEuc; code_val[2].ivalue = CODE_EUC;
|
code_val[3].keyword = WCEuc2;
|
||||||
code_val[3].keyword = WCEuc2; code_val[3].ivalue = CODE_EUC2;
|
code_val[3].ivalue = CODE_EUC2;
|
||||||
code_val[4].keyword = WCJis; code_val[4].ivalue = CODE_JIS;
|
code_val[4].keyword = WCJis;
|
||||||
code_val[5].keyword = WCJis2; code_val[5].ivalue = CODE_JIS2;
|
code_val[4].ivalue = CODE_JIS;
|
||||||
code_val[6].keyword = WCKuten; code_val[6].ivalue = CODE_KUTEN;
|
code_val[5].keyword = WCJis2;
|
||||||
code_val[7].keyword = WCKuten2; code_val[7].ivalue = CODE_KUTEN2;
|
code_val[5].ivalue = CODE_JIS2;
|
||||||
|
code_val[6].keyword = WCKuten;
|
||||||
|
code_val[6].ivalue = CODE_KUTEN;
|
||||||
|
code_val[7].keyword = WCKuten2;
|
||||||
|
code_val[7].ivalue = CODE_KUTEN2;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int init_messages() {
|
||||||
init_messages()
|
|
||||||
{
|
|
||||||
#define LOCALELEN 20
|
#define LOCALELEN 20
|
||||||
char cur_loc[LOCALELEN];
|
char cur_loc[LOCALELEN];
|
||||||
char *loc;
|
char* loc;
|
||||||
short message_len[CURMESSAGES];
|
short message_len[CURMESSAGES];
|
||||||
int ret;
|
int ret;
|
||||||
int i;
|
int i;
|
||||||
|
|
@ -437,30 +447,30 @@ init_messages()
|
||||||
int saved_locale = 0;
|
int saved_locale = 0;
|
||||||
extern int current_locale;
|
extern int current_locale;
|
||||||
|
|
||||||
if (current_locale != LC_CTYPE_EUC) {
|
if(current_locale != LC_CTYPE_EUC) {
|
||||||
saved_locale = current_locale;
|
saved_locale = current_locale;
|
||||||
current_locale = LC_CTYPE_EUC;
|
current_locale = LC_CTYPE_EUC;
|
||||||
#ifdef __sony_news
|
#ifdef __sony_news
|
||||||
strncpy((char *)cur_loc, setlocale(LC_CTYPE, NULL), LOCALELEN);
|
strncpy((char*)cur_loc, setlocale(LC_CTYPE, NULL), LOCALELEN);
|
||||||
loc = setlocale(LC_CTYPE, "ja_JP.EUC");
|
loc = setlocale(LC_CTYPE, "ja_JP.EUC");
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
for (i = 0; i < CURMESSAGES; i++) {
|
for(i = 0; i < CURMESSAGES; i++) {
|
||||||
message_len[i] = jstrlen((char *)EucMessages[i]) + 1;
|
message_len[i] = jstrlen((char*)EucMessages[i]) + 1;
|
||||||
all_len += message_len[i];
|
all_len += message_len[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
WcMessages[0] = (wchar16_t *) malloc(all_len * sizeof(wchar16_t));
|
WcMessages[0] = (wchar16_t*)malloc(all_len * sizeof(wchar16_t));
|
||||||
if (WcMessages[0] == NULL)
|
if(WcMessages[0] == NULL)
|
||||||
goto Fail;
|
goto Fail;
|
||||||
|
|
||||||
ret = (int) mbstowcs(WcMessages[0], (char *)EucMessages[0], message_len[0]);
|
ret = (int)mbstowcs(WcMessages[0], (char*)EucMessages[0], message_len[0]);
|
||||||
if (ret < -1)
|
if(ret < -1)
|
||||||
goto Fail;
|
goto Fail;
|
||||||
for (i = 1; i < CURMESSAGES; i++) {
|
for(i = 1; i < CURMESSAGES; i++) {
|
||||||
WcMessages[i] = WcMessages[i-1] + message_len[i-1];
|
WcMessages[i] = WcMessages[i - 1] + message_len[i - 1];
|
||||||
ret = mbstowcs(WcMessages[i], (char *)EucMessages[i], message_len[i]);
|
ret = mbstowcs(WcMessages[i], (char*)EucMessages[i], message_len[i]);
|
||||||
if (ret < -1)
|
if(ret < -1)
|
||||||
goto Fail;
|
goto Fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -471,7 +481,7 @@ init_messages()
|
||||||
init_mode_val();
|
init_mode_val();
|
||||||
init_code_val();
|
init_code_val();
|
||||||
|
|
||||||
if (saved_locale) {
|
if(saved_locale) {
|
||||||
current_locale = saved_locale;
|
current_locale = saved_locale;
|
||||||
#ifdef __sony_news
|
#ifdef __sony_news
|
||||||
setlocale(LC_CTYPE, cur_loc);
|
setlocale(LC_CTYPE, cur_loc);
|
||||||
|
|
@ -479,7 +489,7 @@ init_messages()
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
Fail:
|
Fail:
|
||||||
if (saved_locale) {
|
if(saved_locale) {
|
||||||
current_locale = saved_locale;
|
current_locale = saved_locale;
|
||||||
#ifdef __sony_news
|
#ifdef __sony_news
|
||||||
setlocale(LC_CTYPE, cur_loc);
|
setlocale(LC_CTYPE, cur_loc);
|
||||||
|
|
@ -487,4 +497,3 @@ Fail:
|
||||||
}
|
}
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
99
file.c
99
file.c
|
|
@ -27,13 +27,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: file.c,v $
|
|
||||||
* $SonyRevision: 1.2 $
|
|
||||||
* $SonyDate: 1995/02/03 07:38:32 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
@ -42,122 +35,104 @@
|
||||||
#include "dicttool.h"
|
#include "dicttool.h"
|
||||||
|
|
||||||
typedef struct filelist {
|
typedef struct filelist {
|
||||||
FILE *fp;
|
FILE* fp;
|
||||||
char *fname;
|
char* fname;
|
||||||
struct filelist *next;
|
struct filelist* next;
|
||||||
} FileList;
|
} FileList;
|
||||||
|
|
||||||
static FileList *flist = NULL;
|
static FileList* flist = NULL;
|
||||||
|
|
||||||
static char*
|
static char*
|
||||||
get_fname(FILE* fp)
|
get_fname(FILE* fp) {
|
||||||
{
|
FileList* p;
|
||||||
FileList *p;
|
|
||||||
|
|
||||||
for (p = flist ; p ; p = p -> next)
|
for(p = flist; p; p = p->next)
|
||||||
if (p -> fp == fp) return p -> fname;
|
if(p->fp == fp) return p->fname;
|
||||||
return "some file";
|
return "some file";
|
||||||
}
|
}
|
||||||
|
|
||||||
FILE*
|
FILE* Fopen(char* filename, char* type) {
|
||||||
Fopen(char* filename, char* type)
|
FILE* fp;
|
||||||
{
|
FileList* fl;
|
||||||
FILE *fp;
|
|
||||||
FileList *fl;
|
|
||||||
|
|
||||||
if (!(fp = fopen(filename, type))) {
|
if(!(fp = fopen(filename, type))) {
|
||||||
fprintf(stderr, "Can't open %s mode \"%s\"\n", filename, type);
|
fprintf(stderr, "Can't open %s mode \"%s\"\n", filename, type);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
fl = (FileList *)Malloc(sizeof(*fl));
|
fl = (FileList*)Malloc(sizeof(*fl));
|
||||||
fl -> fname = Malloc(strlen(filename) + 1);
|
fl->fname = Malloc(strlen(filename) + 1);
|
||||||
strcpy(fl -> fname, filename);
|
strcpy(fl->fname, filename);
|
||||||
fl -> fp = fp;
|
fl->fp = fp;
|
||||||
fl -> next = flist;
|
fl->next = flist;
|
||||||
|
|
||||||
return fp;
|
return fp;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void Fclose(FILE* fp) {
|
||||||
Fclose(FILE* fp)
|
|
||||||
{
|
|
||||||
FileList *p, *q;
|
FileList *p, *q;
|
||||||
|
|
||||||
if (fclose(fp) == EOF) {
|
if(fclose(fp) == EOF) {
|
||||||
fprintf(stderr, "Close error in %s\n", get_fname(fp));
|
fprintf(stderr, "Close error in %s\n", get_fname(fp));
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (p = flist, q = NULL ; p ; q = p, p = p -> next) {
|
for(p = flist, q = NULL; p; q = p, p = p->next) {
|
||||||
if (p -> fp == fp) {
|
if(p->fp == fp) {
|
||||||
if (q)
|
if(q)
|
||||||
q -> next = p -> next;
|
q->next = p->next;
|
||||||
else
|
else
|
||||||
flist = p -> next;
|
flist = p->next;
|
||||||
free(p -> fname);
|
free(p->fname);
|
||||||
free(p);
|
free(p);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int Fseek(FILE* fp, long ofs, int ptr) {
|
||||||
Fseek(FILE* fp, long ofs, int ptr)
|
if(fseek(fp, ofs, ptr) == 0) return 0;
|
||||||
{
|
|
||||||
if (fseek(fp, ofs, ptr) == 0) return 0;
|
|
||||||
|
|
||||||
fprintf(stderr, "Seek error in %s\n", get_fname(fp));
|
fprintf(stderr, "Seek error in %s\n", get_fname(fp));
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
long
|
long Ftell(FILE* fp) {
|
||||||
Ftell(FILE* fp)
|
|
||||||
{
|
|
||||||
return ftell(fp);
|
return ftell(fp);
|
||||||
}
|
}
|
||||||
|
|
||||||
off_t /* XXX: just looked in FreeBSD's sys/stat.h, need to check SUS spec. */
|
off_t /* XXX: just looked in FreeBSD's sys/stat.h, need to check SUS spec. */
|
||||||
Fsize(char* filename)
|
Fsize(char* filename) {
|
||||||
{
|
|
||||||
struct stat buf;
|
struct stat buf;
|
||||||
|
|
||||||
#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__DragonFly__)
|
#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__DragonFly__)
|
||||||
if (stat(filename, &buf) == 0) return (long)buf.st_size;
|
if(stat(filename, &buf) == 0) return (long)buf.st_size;
|
||||||
#else
|
#else
|
||||||
if (stat(filename, &buf) == 0) return buf.st_size;
|
if(stat(filename, &buf) == 0) return buf.st_size;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
fprintf(stderr, "Stat error in %s\n", filename);
|
fprintf(stderr, "Stat error in %s\n", filename);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int Fread(char* p, int s, int n, FILE* fp) {
|
||||||
Fread(char* p, int s, int n, FILE* fp)
|
if(fread(p, s, n, fp) == n) return n;
|
||||||
{
|
|
||||||
if (fread(p, s, n, fp) == n) return n;
|
|
||||||
|
|
||||||
fprintf(stderr, "Read error in %s\n", get_fname(fp));
|
fprintf(stderr, "Read error in %s\n", get_fname(fp));
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int Fwrite(char* p, int s, int n, FILE* fp) {
|
||||||
Fwrite(char* p, int s, int n, FILE* fp)
|
if(fwrite(p, s, n, fp) == n) return n;
|
||||||
{
|
|
||||||
if (fwrite(p, s, n, fp) == n) return n;
|
|
||||||
|
|
||||||
fprintf(stderr, "Write error in %s\n", get_fname(fp));
|
fprintf(stderr, "Write error in %s\n", get_fname(fp));
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int Fgetc(FILE* fp) {
|
||||||
Fgetc(FILE* fp)
|
|
||||||
{
|
|
||||||
return fgetc(fp);
|
return fgetc(fp);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void Fflush(FILE* fp) {
|
||||||
Fflush(FILE* fp)
|
|
||||||
{
|
|
||||||
fflush(fp);
|
fflush(fp);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
2
format.sh
Executable file
2
format.sh
Executable file
|
|
@ -0,0 +1,2 @@
|
||||||
|
#!/bin/sh
|
||||||
|
clang-format --verbose -i *.c *.h
|
||||||
242
funckey.c
242
funckey.c
|
|
@ -27,15 +27,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: funckey.c,v $
|
|
||||||
* $SonyRevision: 1.3 $
|
|
||||||
* $SonyDate: 1997/01/23 11:20:53 $
|
|
||||||
*
|
|
||||||
* $Id: funckey.c,v 1.3 2004/07/04 08:38:33 hiroo Exp $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "wchar16.h"
|
#include "wchar16.h"
|
||||||
#include "sj2.h"
|
#include "sj2.h"
|
||||||
|
|
@ -44,39 +35,38 @@
|
||||||
#include "sj3.h"
|
#include "sj3.h"
|
||||||
|
|
||||||
struct cvtkey {
|
struct cvtkey {
|
||||||
char *key_word;
|
char* key_word;
|
||||||
char key_seq[SEQLEN];
|
char key_seq[SEQLEN];
|
||||||
} cvtkeytbl[] = {
|
} cvtkeytbl[] = {
|
||||||
{ "F1", "" },
|
{"F1", ""},
|
||||||
{ "F2", "" },
|
{"F2", ""},
|
||||||
{ "F3", "" },
|
{"F3", ""},
|
||||||
{ "F4", "" },
|
{"F4", ""},
|
||||||
{ "F5", "" },
|
{"F5", ""},
|
||||||
{ "F6", "" },
|
{"F6", ""},
|
||||||
{ "F7", "" },
|
{"F7", ""},
|
||||||
{ "F8", "" },
|
{"F8", ""},
|
||||||
{ "F9", "" },
|
{"F9", ""},
|
||||||
{ "F10", "" },
|
{"F10", ""},
|
||||||
{ "F11", "" },
|
{"F11", ""},
|
||||||
{ "F12", "" },
|
{"F12", ""},
|
||||||
{ "F13", "" },
|
{"F13", ""},
|
||||||
{ "F14", "" },
|
{"F14", ""},
|
||||||
{ "F15", "" },
|
{"F15", ""},
|
||||||
{ "F16", "" },
|
{"F16", ""},
|
||||||
{ "F17", "" },
|
{"F17", ""},
|
||||||
{ "F18", "" },
|
{"F18", ""},
|
||||||
{ "F19", "" },
|
{"F19", ""},
|
||||||
{ "F20", "" },
|
{"F20", ""},
|
||||||
{ "Select", "" },
|
{"Select", ""},
|
||||||
{ "Kanji", "" },
|
{"Kanji", ""},
|
||||||
{ "Cancel", "" },
|
{"Cancel", ""},
|
||||||
{ "Execute", "" },
|
{"Execute", ""},
|
||||||
{ "Up", "" },
|
{"Up", ""},
|
||||||
{ "Down", "" },
|
{"Down", ""},
|
||||||
{ "Right", "" },
|
{"Right", ""},
|
||||||
{ "Left", "" },
|
{"Left", ""},
|
||||||
{ NULL, "" }
|
{NULL, ""}};
|
||||||
};
|
|
||||||
|
|
||||||
extern struct wcvtkey wcvtkeytbl[];
|
extern struct wcvtkey wcvtkeytbl[];
|
||||||
|
|
||||||
|
|
@ -93,8 +83,7 @@ int u_etckeys = 0;
|
||||||
int Uetckey[ETCKEYS];
|
int Uetckey[ETCKEYS];
|
||||||
int Uetcval[ETCKEYS];
|
int Uetcval[ETCKEYS];
|
||||||
|
|
||||||
|
extern wchar16_t* comstr[];
|
||||||
extern wchar16_t *comstr[];
|
|
||||||
|
|
||||||
int comstrvalue[KEY_OTHER] = {
|
int comstrvalue[KEY_OTHER] = {
|
||||||
KEY_CONV, KEY_HENKAN, KEY_MUHENKAN,
|
KEY_CONV, KEY_HENKAN, KEY_MUHENKAN,
|
||||||
|
|
@ -104,26 +93,22 @@ int comstrvalue[KEY_OTHER] = {
|
||||||
KEY_LEFT, KEY_UP, KEY_DOWN,
|
KEY_LEFT, KEY_UP, KEY_DOWN,
|
||||||
KEY_EDIT, KEY_TOGGLE, KEY_WRAPBACK,
|
KEY_EDIT, KEY_TOGGLE, KEY_WRAPBACK,
|
||||||
KEY_WRAP, KEY_SJRC, KEY_BUFFER,
|
KEY_WRAP, KEY_SJRC, KEY_BUFFER,
|
||||||
KEY_TOROKU, KEY_SYOUKYO, KEY_HELP,
|
KEY_TOROKU, KEY_SHOUKYO, KEY_HELP,
|
||||||
KEY_HA_KET, KEY_FLUSH, KEY_DEBUG,
|
KEY_HA_KET, KEY_FLUSH, KEY_DEBUG,
|
||||||
KEY_CANCEL, KEY_RECONV, KEY_IGNORE,
|
KEY_CANCEL, KEY_RECONV, KEY_IGNORE,
|
||||||
KEY_TOP, KEY_END, KEY_RECONNECT,
|
KEY_TOP, KEY_END, KEY_RECONNECT,
|
||||||
KEY_KILL,
|
KEY_KILL,
|
||||||
KEY_OTHER
|
KEY_OTHER};
|
||||||
};
|
|
||||||
|
|
||||||
|
void mk_cvtkey(char* term) {
|
||||||
void
|
char* p;
|
||||||
mk_cvtkey(char* term)
|
|
||||||
{
|
|
||||||
char *p;
|
|
||||||
char line[MAXLINE], rstr[16];
|
char line[MAXLINE], rstr[16];
|
||||||
FILE *fd;
|
FILE* fd;
|
||||||
char cvtkey_file[LONGLENGTH];
|
char cvtkey_file[LONGLENGTH];
|
||||||
struct cvtkey *ckeyp;
|
struct cvtkey* ckeyp;
|
||||||
struct wcvtkey *wckeyp;
|
struct wcvtkey* wckeyp;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Change a default value.
|
* Change a default value.
|
||||||
* Patched by Hidekazu Kuroki(hidekazu@cs.titech.ac.jp) 1996/8/10
|
* Patched by Hidekazu Kuroki(hidekazu@cs.titech.ac.jp) 1996/8/10
|
||||||
*/
|
*/
|
||||||
|
|
@ -133,19 +118,19 @@ mk_cvtkey(char* term)
|
||||||
*p = '\0';
|
*p = '\0';
|
||||||
strcat(cvtkey_file, line);
|
strcat(cvtkey_file, line);
|
||||||
|
|
||||||
if ((fd = fopen(cvtkey_file, "r")) != NULL) {
|
if((fd = fopen(cvtkey_file, "r")) != NULL) {
|
||||||
while ((p = fgets(line, MAXLINE, fd)) != NULL) {
|
while((p = fgets(line, MAXLINE, fd)) != NULL) {
|
||||||
if (*p == '#' ||*p == '\n' ||*p == '\0')
|
if(*p == '#' || *p == '\n' || *p == '\0')
|
||||||
continue;
|
continue;
|
||||||
if ((p = getkey2(p, rstr)) == NULL)
|
if((p = getkey2(p, rstr)) == NULL)
|
||||||
continue;
|
continue;
|
||||||
ckeyp = cvtkeytbl;
|
ckeyp = cvtkeytbl;
|
||||||
wckeyp = wcvtkeytbl;
|
wckeyp = wcvtkeytbl;
|
||||||
while(ckeyp->key_word != NULL) {
|
while(ckeyp->key_word != NULL) {
|
||||||
if (strcmp(ckeyp->key_word, rstr) == 0) {
|
if(strcmp(ckeyp->key_word, rstr) == 0) {
|
||||||
p = getkey2(p, ckeyp->key_seq);
|
p = getkey2(p, ckeyp->key_seq);
|
||||||
|
|
||||||
(void) mbstowcs(wckeyp->key_seq,
|
(void)mbstowcs(wckeyp->key_seq,
|
||||||
ckeyp->key_seq, SEQLEN);
|
ckeyp->key_seq, SEQLEN);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -157,57 +142,49 @@ mk_cvtkey(char* term)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
char *
|
char* getkey2(char* istr, char* ostr) {
|
||||||
getkey2(char* istr, char* ostr)
|
char* p;
|
||||||
{
|
|
||||||
char *p;
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
while (*istr == ' ' || *istr == '\t')
|
while(*istr == ' ' || *istr == '\t')
|
||||||
istr++;
|
istr++;
|
||||||
|
|
||||||
p = istr;
|
p = istr;
|
||||||
i = 0;
|
i = 0;
|
||||||
while (*p != ' ' && *p != '\t' && *p != '\n' && *p != '\0') {
|
while(*p != ' ' && *p != '\t' && *p != '\n' && *p != '\0') {
|
||||||
*ostr++ = *p;
|
*ostr++ = *p;
|
||||||
if (++i > SEQLEN) {
|
if(++i > SEQLEN) {
|
||||||
i = 0;
|
i = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
p++;
|
p++;
|
||||||
}
|
}
|
||||||
*ostr = '\0';
|
*ostr = '\0';
|
||||||
if (i > 0)
|
if(i > 0)
|
||||||
return(p);
|
return (p);
|
||||||
return(NULL);
|
return (NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void clear_ukeys(void) {
|
||||||
void
|
|
||||||
clear_ukeys (void)
|
|
||||||
{
|
|
||||||
Unumber = 0;
|
Unumber = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void set_func(struct wordent word[]) {
|
||||||
void
|
|
||||||
set_func (struct wordent word[])
|
|
||||||
{
|
|
||||||
int i, num;
|
int i, num;
|
||||||
wchar16_t *p, *s;
|
wchar16_t * p, *s;
|
||||||
struct wcvtkey *ckeyp;
|
struct wcvtkey* ckeyp;
|
||||||
|
|
||||||
if (Unumber >= UKEYNUM)
|
if(Unumber >= UKEYNUM)
|
||||||
return;
|
return;
|
||||||
for (i = 0 ; i < KEY_OTHER && *comstr[i] != '\0' ; i ++) {
|
for(i = 0; i < KEY_OTHER && *comstr[i] != '\0'; i++) {
|
||||||
if (match (word[1].word_str, comstr[i])) {
|
if(match(word[1].word_str, comstr[i])) {
|
||||||
p = word[2].word_str;
|
p = word[2].word_str;
|
||||||
if (iswupper(*p)) {
|
if(iswupper(*p)) {
|
||||||
ckeyp = wcvtkeytbl;
|
ckeyp = wcvtkeytbl;
|
||||||
while(ckeyp->key_word != NULL) {
|
while(ckeyp->key_word != NULL) {
|
||||||
if (wscmp(p, ckeyp->key_word) == 0) {
|
if(wscmp(p, ckeyp->key_word) == 0) {
|
||||||
p = ckeyp->key_seq;
|
p = ckeyp->key_seq;
|
||||||
if (*p == '\0')
|
if(*p == '\0')
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -215,11 +192,11 @@ set_func (struct wordent word[])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
s = Ukey[Unumber];
|
s = Ukey[Unumber];
|
||||||
if ((num = eval_keys (p, s)) > 1) {
|
if((num = eval_keys(p, s)) > 1) {
|
||||||
if (Unumber < UKEYNUM)
|
if(Unumber < UKEYNUM)
|
||||||
Uvalue[Unumber++] = comstrvalue[i];
|
Uvalue[Unumber++] = comstrvalue[i];
|
||||||
} else if (num >= 0) {
|
} else if(num >= 0) {
|
||||||
if (comnumber < COMNUM) {
|
if(comnumber < COMNUM) {
|
||||||
comkey[comnumber] = *s;
|
comkey[comnumber] = *s;
|
||||||
comvalue[comnumber++] = comstrvalue[i];
|
comvalue[comnumber++] = comstrvalue[i];
|
||||||
}
|
}
|
||||||
|
|
@ -229,119 +206,99 @@ set_func (struct wordent word[])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
wchar16_t
|
wchar16_t
|
||||||
eval_keys (wchar16_t* s, wchar16_t* p)
|
eval_keys(wchar16_t* s, wchar16_t* p) {
|
||||||
{
|
|
||||||
wchar16_t c, i;
|
wchar16_t c, i;
|
||||||
|
|
||||||
if (wslen (s) > SEQLEN)
|
if(wslen(s) > SEQLEN)
|
||||||
return (-1);
|
return (-1);
|
||||||
i = 0;
|
i = 0;
|
||||||
while ((c = *(s ++)) != '\0') {
|
while((c = *(s++)) != '\0') {
|
||||||
if (c == '^') {
|
if(c == '^') {
|
||||||
c = *(s ++);
|
c = *(s++);
|
||||||
if ('@' <= c && c <= '_')
|
if('@' <= c && c <= '_')
|
||||||
c = c - '@';
|
c = c - '@';
|
||||||
else if (c == '?')
|
else if(c == '?')
|
||||||
c = DEL;
|
c = DEL;
|
||||||
else
|
else
|
||||||
c = *(--s);
|
c = *(--s);
|
||||||
}
|
}
|
||||||
i++;
|
i++;
|
||||||
*(p ++) = c;
|
*(p++) = c;
|
||||||
}
|
}
|
||||||
*p = '\0';
|
*p = '\0';
|
||||||
return (i);
|
return (i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void clear_key(void) {
|
||||||
void
|
clear_commkeys();
|
||||||
clear_key (void)
|
clear_etckeys();
|
||||||
{
|
clear_ukeys();
|
||||||
clear_commkeys ();
|
|
||||||
clear_etckeys ();
|
|
||||||
clear_ukeys ();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void clear_commkeys(void) {
|
||||||
void
|
|
||||||
clear_commkeys (void)
|
|
||||||
{
|
|
||||||
comnumber = 0;
|
comnumber = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int eval_key(wchar16_t* s) {
|
||||||
eval_key (wchar16_t* s)
|
|
||||||
{
|
|
||||||
wchar16_t c;
|
wchar16_t c;
|
||||||
|
|
||||||
c = *s;
|
c = *s;
|
||||||
|
|
||||||
|
if(c == '^') {
|
||||||
if (c == '^') {
|
|
||||||
c = s[1];
|
c = s[1];
|
||||||
if ('@' <= c && c <= '_')
|
if('@' <= c && c <= '_')
|
||||||
return (c - '@');
|
return (c - '@');
|
||||||
else if (c == '?')
|
else if(c == '?')
|
||||||
return (DEL);
|
return (DEL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
else if(c <= '~')
|
||||||
else if (c <= '~')
|
|
||||||
return (c);
|
return (c);
|
||||||
|
|
||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void clear_etckeys(void) {
|
||||||
void
|
|
||||||
clear_etckeys (void)
|
|
||||||
{
|
|
||||||
u_etckeys = 0;
|
u_etckeys = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int set_etckeys(struct wordent word[]) {
|
||||||
int
|
|
||||||
set_etckeys (struct wordent word[])
|
|
||||||
{
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (u_etckeys >= ETCKEYS)
|
if(u_etckeys >= ETCKEYS)
|
||||||
return (1);
|
return (1);
|
||||||
for (i = 0 ; i < KEY_OTHER && *comstr[i] != '\0' ; i ++) {
|
for(i = 0; i < KEY_OTHER && *comstr[i] != '\0'; i++) {
|
||||||
if (match (word[1].word_str, comstr[i])) {
|
if(match(word[1].word_str, comstr[i])) {
|
||||||
Uetcval[u_etckeys] = comstrvalue[i];
|
Uetcval[u_etckeys] = comstrvalue[i];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (i >= KEY_OTHER)
|
if(i >= KEY_OTHER)
|
||||||
return (1);
|
return (1);
|
||||||
for (i = 0 ; i < KEY_OTHER && *comstr[i] != '\0' ; i ++) {
|
for(i = 0; i < KEY_OTHER && *comstr[i] != '\0'; i++) {
|
||||||
if (match (word[2].word_str, comstr[i])) {
|
if(match(word[2].word_str, comstr[i])) {
|
||||||
Uetckey[u_etckeys] = comstrvalue[i];
|
Uetckey[u_etckeys] = comstrvalue[i];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (i >= KEY_OTHER)
|
if(i >= KEY_OTHER)
|
||||||
return (1);
|
return (1);
|
||||||
u_etckeys ++;
|
u_etckeys++;
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
wchar16_t
|
wchar16_t
|
||||||
parse_command (wchar16_t* s, int* count)
|
parse_command(wchar16_t* s, int* count) {
|
||||||
{
|
|
||||||
extern wchar16_t pars_seq[];
|
extern wchar16_t pars_seq[];
|
||||||
extern int pars_n;
|
extern int pars_n;
|
||||||
int i, j;
|
int i, j;
|
||||||
wchar16_t c;
|
wchar16_t c;
|
||||||
|
|
||||||
c = *s;
|
c = *s;
|
||||||
for (i = 0; i < comnumber ; i ++) {
|
for(i = 0; i < comnumber; i++) {
|
||||||
if (c == comkey[i]) {
|
if(c == comkey[i]) {
|
||||||
for (j = 1 ; j < *count ; j ++)
|
for(j = 1; j < *count; j++)
|
||||||
s[j - 1] = s[j];
|
s[j - 1] = s[j];
|
||||||
(*count)--;
|
(*count)--;
|
||||||
*pars_seq = c;
|
*pars_seq = c;
|
||||||
|
|
@ -352,4 +309,3 @@ parse_command (wchar16_t* s, int* count)
|
||||||
}
|
}
|
||||||
return (KEY_NORMAL);
|
return (KEY_NORMAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
26
functbl.c
26
functbl.c
|
|
@ -27,52 +27,36 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: functbl.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:01:46 $
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include "sj_rename.h"
|
#include "sj_rename.h"
|
||||||
#include "sj_func.h"
|
#include "sj_func.h"
|
||||||
#include "kanakan.h"
|
#include "kanakan.h"
|
||||||
|
|
||||||
|
|
||||||
VFuncNT cvtnum_func[] = {
|
VFuncNT cvtnum_func[] = {
|
||||||
num_type00, num_type01, num_type02, num_type03,
|
num_type00, num_type01, num_type02, num_type03,
|
||||||
num_type04, num_type05, num_type06, num_type07,
|
num_type04, num_type05, num_type06, num_type07,
|
||||||
num_type08, num_type09, num_type10, num_type11,
|
num_type08, num_type09, num_type10, num_type11,
|
||||||
num_type12, num_type13, num_type14
|
num_type12, num_type13, num_type14};
|
||||||
};
|
|
||||||
|
|
||||||
UCPFuncGK getkan_func[] = {
|
UCPFuncGK getkan_func[] = {
|
||||||
getkan_norm, getkan_norm, getkan_hira, getkan_kata,
|
getkan_norm, getkan_norm, getkan_hira, getkan_kata,
|
||||||
getkan_knj, getkan_ofs, getkan_norm, getkan_none,
|
getkan_knj, getkan_ofs, getkan_norm, getkan_none,
|
||||||
getkan_norm, getkan_norm, getkan_hira, getkan_kata,
|
getkan_norm, getkan_norm, getkan_hira, getkan_kata,
|
||||||
getkan_knj, getkan_ofs, getkan_norm, getkan_none
|
getkan_knj, getkan_ofs, getkan_norm, getkan_none};
|
||||||
};
|
|
||||||
|
|
||||||
IFuncSetj setjrec_func[] = {
|
IFuncSetj setjrec_func[] = {
|
||||||
setj_norm2, setj_norm2, setj_norm1, setj_norm1,
|
setj_norm2, setj_norm2, setj_norm1, setj_norm1,
|
||||||
setj_knj, setj_ofs, setj_norm2, setj_atrb,
|
setj_knj, setj_ofs, setj_norm2, setj_atrb,
|
||||||
setj_norm2, setj_norm2, setj_norm1, setj_norm1,
|
setj_norm2, setj_norm2, setj_norm1, setj_norm1,
|
||||||
setj_knj, setj_ofs, setj_norm2, setj_atrb
|
setj_knj, setj_ofs, setj_norm2, setj_atrb};
|
||||||
};
|
|
||||||
|
|
||||||
IFuncHira hiraknj_func[] = {
|
IFuncHira hiraknj_func[] = {
|
||||||
hiraknj_hira, hiraknj_norm, hiraknj_hask, hiraknj_kask,
|
hiraknj_hira, hiraknj_norm, hiraknj_hask, hiraknj_kask,
|
||||||
hiraknj_knj, hiraknj_ofs, hiraknj_norm, hiraknj_atrb,
|
hiraknj_knj, hiraknj_ofs, hiraknj_norm, hiraknj_atrb,
|
||||||
hiraknj_hira, hiraknj_norm, hiraknj_hask, hiraknj_kask,
|
hiraknj_hira, hiraknj_norm, hiraknj_hask, hiraknj_kask,
|
||||||
hiraknj_knj, hiraknj_ofs, hiraknj_norm, hiraknj_atrb
|
hiraknj_knj, hiraknj_ofs, hiraknj_norm, hiraknj_atrb};
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
UCPFuncMK makekan_func[] = {
|
UCPFuncMK makekan_func[] = {
|
||||||
makekan_norm, makekan_norm, makekan_1byte, makekan_1byte,
|
makekan_norm, makekan_norm, makekan_1byte, makekan_1byte,
|
||||||
makekan_knj, makekan_ofs, makekan_norm, makekan_none,
|
makekan_knj, makekan_ofs, makekan_norm, makekan_none,
|
||||||
makekan_norm, makekan_norm, makekan_1byte, makekan_1byte,
|
makekan_norm, makekan_norm, makekan_1byte, makekan_1byte,
|
||||||
makekan_knj, makekan_ofs, makekan_norm, makekan_none
|
makekan_knj, makekan_ofs, makekan_norm, makekan_none};
|
||||||
};
|
|
||||||
|
|
|
||||||
221
fuzoku.c
221
fuzoku.c
|
|
@ -27,61 +27,42 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: fuzoku.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:01:47 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include "sj_kcnv.h"
|
#include "sj_kcnv.h"
|
||||||
#include "sj_hinsi.h"
|
#include "sj_hinshi.h"
|
||||||
#include "sj_right.h"
|
#include "sj_right.h"
|
||||||
#include "sj_yomi.h"
|
#include "sj_yomi.h"
|
||||||
|
|
||||||
|
CLREC* argclrec();
|
||||||
|
|
||||||
CLREC *argclrec();
|
|
||||||
int terminate();
|
int terminate();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int fzkstrcmp(yptr, fzkp, saml)
|
static int fzkstrcmp(yptr, fzkp, saml)
|
||||||
unsigned char *yptr;
|
unsigned char* yptr;
|
||||||
unsigned char *fzkp;
|
unsigned char* fzkp;
|
||||||
int *saml;
|
int* saml;
|
||||||
{
|
{
|
||||||
int asklen, nkrlen;
|
int asklen, nkrlen;
|
||||||
|
|
||||||
asklen = FzkAskLen(fzkp);
|
asklen = FzkAskLen(fzkp);
|
||||||
|
|
||||||
|
if(*saml < asklen) return CONT;
|
||||||
|
|
||||||
if (*saml < asklen) return CONT;
|
if(*saml > asklen) return OVER;
|
||||||
|
|
||||||
|
|
||||||
if (*saml > asklen) return OVER;
|
|
||||||
|
|
||||||
|
|
||||||
nkrlen = FzkNkrLen(fzkp);
|
nkrlen = FzkNkrLen(fzkp);
|
||||||
|
|
||||||
|
|
||||||
yptr += asklen;
|
yptr += asklen;
|
||||||
fzkp ++;
|
fzkp++;
|
||||||
|
|
||||||
|
while(nkrlen--) {
|
||||||
while (nkrlen--) {
|
if(*yptr > *fzkp)
|
||||||
if (*yptr > *fzkp)
|
|
||||||
return CONT;
|
return CONT;
|
||||||
|
|
||||||
else if (*yptr < *fzkp) {
|
else if(*yptr < *fzkp) {
|
||||||
if (!*yptr) return PARTLY;
|
if(!*yptr) return PARTLY;
|
||||||
return OVER;
|
return OVER;
|
||||||
}
|
}
|
||||||
|
|
||||||
else{
|
else {
|
||||||
yptr++;
|
yptr++;
|
||||||
fzkp++;
|
fzkp++;
|
||||||
(*saml)++;
|
(*saml)++;
|
||||||
|
|
@ -91,106 +72,96 @@ int *saml;
|
||||||
return MATCH;
|
return MATCH;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void setclrec(jrec, yptr, right)
|
void setclrec(jrec, yptr, right)
|
||||||
JREC *jrec;
|
JREC* jrec;
|
||||||
unsigned char *yptr;
|
unsigned char* yptr;
|
||||||
TypeCnct right;
|
TypeCnct right;
|
||||||
{
|
{
|
||||||
CLREC *new;
|
CLREC* new;
|
||||||
TypeGram hinsi;
|
TypeGram hinshi;
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
|
if(!(len = yptr - cnvstart)) return;
|
||||||
|
|
||||||
if (!(len = yptr - cnvstart)) return;
|
if(len > MaxClInputLen) return;
|
||||||
|
|
||||||
|
if(!(new = argclrec(len))) return;
|
||||||
|
|
||||||
if (len > MaxClInputLen) return;
|
new->jnode = jrec;
|
||||||
|
new->gobiln = gobilen;
|
||||||
|
new->right = right;
|
||||||
|
new->fzk_ka = fzk_ka_flg;
|
||||||
|
(jrec->count)++;
|
||||||
|
|
||||||
|
hinshi = jrec->hinshi;
|
||||||
|
|
||||||
if (!(new = argclrec(len))) return;
|
if(hinshi >= DO_SAHEN && hinshi <= SP_KA_ONB)
|
||||||
|
new->kubun = K_DOUSHI;
|
||||||
|
|
||||||
|
else if((hinshi >= KEIYOUSHI_1 && hinshi <= KE_DOUSHI_9) ||
|
||||||
new -> jnode = jrec;
|
(hinshi == SP_KEIYOUSHI)) {
|
||||||
new -> gobiln = gobilen;
|
if(right == R_FZKMEISHI)
|
||||||
new -> right = right;
|
new->kubun = K_TAIGEN;
|
||||||
new -> fzk_ka = fzk_ka_flg;
|
|
||||||
(jrec -> count)++;
|
|
||||||
|
|
||||||
|
|
||||||
hinsi = jrec -> hinsi;
|
|
||||||
|
|
||||||
if (hinsi >= DO_SAHEN && hinsi <= SP_KA_ONB)
|
|
||||||
new -> kubun = K_DOUSHI;
|
|
||||||
|
|
||||||
else if ((hinsi >= KEIYOUSI_1 && hinsi <= KE_DOUSI_9) ||
|
|
||||||
(hinsi == SP_KEIYOUSI)){
|
|
||||||
if(right == R_FZKMEISI)
|
|
||||||
new -> kubun = K_TAIGEN;
|
|
||||||
else
|
else
|
||||||
new -> kubun = K_YOUGEN;
|
new->kubun = K_YOUGEN;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (hinsi == RENTAISI)
|
else if(hinshi == RENTAISHI)
|
||||||
new -> kubun = K_RENTAISI;
|
new->kubun = K_RENTAISHI;
|
||||||
|
|
||||||
else if ((hinsi >= FUKUSI_1 && hinsi <= FUKUSI_9) ||
|
else if((hinshi >= FUKUSHI_1 && hinshi <= FUKUSHI_9) ||
|
||||||
(hinsi == SP_FUKUSI))
|
(hinshi == SP_FUKUSHI))
|
||||||
new -> kubun = K_FUKUSI;
|
new->kubun = K_FUKUSHI;
|
||||||
|
|
||||||
else if (hinsi == SETUZOKU || hinsi==KANDOUSI ||
|
else if(hinshi == SETSUZOKU || hinshi == KANDOUSHI ||
|
||||||
hinsi == TANKANJI || hinsi==AISATU)
|
hinshi == TANKANJI || hinshi == AISATSU)
|
||||||
new -> kubun = K_SONOTA;
|
new->kubun = K_SONOTA;
|
||||||
|
|
||||||
else if (gobilen) {
|
else if(gobilen) {
|
||||||
if (hinsi >= MEISI_5 && hinsi <= MEISI_7)
|
if(hinshi >= MEISHI_5 && hinshi <= MEISHI_7)
|
||||||
new -> kubun = K_DOUSHI;
|
new->kubun = K_DOUSHI;
|
||||||
|
|
||||||
else if (hinsi == D_MEISI_4)
|
else if(hinshi == D_MEISHI_4)
|
||||||
new -> kubun = K_DOUSHI;
|
new->kubun = K_DOUSHI;
|
||||||
|
|
||||||
else if (hinsi == SETUBI_7 || hinsi == SETUBI_8)
|
else if(hinshi == SETSUBI_7 || hinshi == SETSUBI_8)
|
||||||
new -> kubun = K_DOUSHI;
|
new->kubun = K_DOUSHI;
|
||||||
|
|
||||||
|
else if(hinshi == D_MEISHI_5)
|
||||||
|
new->kubun = K_YOUGEN;
|
||||||
|
|
||||||
else if (hinsi == D_MEISI_5)
|
else if(hinshi == SETSUBI_5 || hinshi == SETSUBI_6)
|
||||||
new -> kubun = K_YOUGEN;
|
new->kubun = K_YOUGEN;
|
||||||
|
|
||||||
else if (hinsi == SETUBI_5 || hinsi == SETUBI_6)
|
|
||||||
new -> kubun = K_YOUGEN;
|
|
||||||
else
|
else
|
||||||
new -> kubun = K_TAIGEN;
|
new->kubun = K_TAIGEN;
|
||||||
}
|
} else if(hinshi >= MEISHI_5 && hinshi <= MEISHI_7) {
|
||||||
else if (hinsi >= MEISI_5 && hinsi <= MEISI_7) {
|
if(right >= R_I && right <= R_ITADAKE)
|
||||||
if (right >= R_I && right <= R_ITADAKE)
|
new->kubun = K_DOUSHI;
|
||||||
new -> kubun = K_DOUSHI;
|
|
||||||
|
|
||||||
else if (right >= R_DESHI && right <= R_TAI)
|
else if(right >= R_DESHI && right <= R_TAI)
|
||||||
new -> kubun = K_DOUSHI;
|
new->kubun = K_DOUSHI;
|
||||||
|
|
||||||
else if (right >= R_NAI && right <= R_MEIREI2)
|
else if(right >= R_NAI && right <= R_MEIREI2)
|
||||||
new -> kubun = K_DOUSHI;
|
new->kubun = K_DOUSHI;
|
||||||
|
|
||||||
else if (right == R_TE2 || right == R_TERU)
|
else if(right == R_TE2 || right == R_TERU)
|
||||||
new -> kubun = K_DOUSHI;
|
new->kubun = K_DOUSHI;
|
||||||
else
|
else
|
||||||
new -> kubun = K_TAIGEN;
|
new->kubun = K_TAIGEN;
|
||||||
}
|
} else
|
||||||
else
|
new->kubun = K_TAIGEN;
|
||||||
new -> kubun = K_TAIGEN;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int fzkcnct(right, left)
|
static int fzkcnct(right, left)
|
||||||
TypeCnct right;
|
TypeCnct right;
|
||||||
TypeCnct left;
|
TypeCnct left;
|
||||||
{
|
{
|
||||||
unsigned char *cncttbl;
|
unsigned char* cncttbl;
|
||||||
|
|
||||||
if (right && left) {
|
if(right && left) {
|
||||||
cncttbl = Rigtadr(right);
|
cncttbl = Rigtadr(right);
|
||||||
left--;
|
left--;
|
||||||
if (cncttbl[left >> 3] << (left & 0x07) & 0x80)
|
if(cncttbl[left >> 3] << (left & 0x07) & 0x80)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -198,94 +169,92 @@ TypeCnct left;
|
||||||
}
|
}
|
||||||
|
|
||||||
void srchfzk(jrec, yptr, right, level)
|
void srchfzk(jrec, yptr, right, level)
|
||||||
JREC *jrec;
|
JREC* jrec;
|
||||||
unsigned char *yptr;
|
unsigned char* yptr;
|
||||||
TypeCnct right;
|
TypeCnct right;
|
||||||
int level;
|
int level;
|
||||||
{
|
{
|
||||||
unsigned char *fzk;
|
unsigned char* fzk;
|
||||||
int len = 0;
|
int len = 0;
|
||||||
int cmp;
|
int cmp;
|
||||||
unsigned char *next;
|
unsigned char* next;
|
||||||
FREC *fzkrec;
|
FREC* fzkrec;
|
||||||
int i;
|
int i;
|
||||||
int nlen;
|
int nlen;
|
||||||
TypeCnct rt;
|
TypeCnct rt;
|
||||||
|
|
||||||
if ((level >= MAXFLVL) && !(Chrtbl[*yptr] & FZK_KGU)) return;
|
if((level >= MAXFLVL) && !(Chrtbl[*yptr] & FZK_KGU)) return;
|
||||||
|
|
||||||
if (terminate(right, yptr) && Chrtbl[*yptr] & FZK_KGU){
|
if(terminate(right, yptr) && Chrtbl[*yptr] & FZK_KGU) {
|
||||||
if (!level) fzk_ka_flg = 0;
|
if(!level) fzk_ka_flg = 0;
|
||||||
yptr++;
|
yptr++;
|
||||||
while (Chrtbl[*yptr] & FZK_KGU) yptr++;
|
while(Chrtbl[*yptr] & FZK_KGU) yptr++;
|
||||||
setclrec(jrec, yptr, (TypeCnct)R_FZKKGU);
|
setclrec(jrec, yptr, (TypeCnct)R_FZKKGU);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (right == R_CUT) return;
|
if(right == R_CUT) return;
|
||||||
|
|
||||||
if (!*yptr) return;
|
if(!*yptr) return;
|
||||||
|
|
||||||
if (!(*yptr >= _XA && *yptr <= _NN)) return;
|
if(!(*yptr >= _XA && *yptr <= _NN)) return;
|
||||||
|
|
||||||
fzkrec = fzktbl;
|
fzkrec = fzktbl;
|
||||||
|
|
||||||
for (i = fzkcount ; i ; i--, fzkrec++) {
|
for(i = fzkcount; i; i--, fzkrec++) {
|
||||||
|
|
||||||
if (yptr != fzkrec -> yomip) continue;
|
if(yptr != fzkrec->yomip) continue;
|
||||||
|
|
||||||
fzk = fzkrec -> fzkp;
|
fzk = fzkrec->fzkp;
|
||||||
|
|
||||||
len = FzkAskLen(fzk) + (nlen = FzkNkrLen(fzk)) + 1;
|
len = FzkAskLen(fzk) + (nlen = FzkNkrLen(fzk)) + 1;
|
||||||
|
|
||||||
if (!fzkcnct(right, (TypeCnct)FzkLeft(fzk))) continue;
|
if(!fzkcnct(right, (TypeCnct)FzkLeft(fzk))) continue;
|
||||||
|
|
||||||
if (!level) fzk_ka_flg = FzkStrKa(fzk);
|
if(!level) fzk_ka_flg = FzkStrKa(fzk);
|
||||||
|
|
||||||
next = yptr + len;
|
next = yptr + len;
|
||||||
|
|
||||||
if (terminate(rt = FzkRight(fzk), next)) {
|
if(terminate(rt = FzkRight(fzk), next)) {
|
||||||
setclrec(jrec, next, rt);
|
setclrec(jrec, next, rt);
|
||||||
}
|
}
|
||||||
|
|
||||||
srchfzk(jrec, next, rt, level + 1);
|
srchfzk(jrec, next, rt, level + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (len) return;
|
if(len) return;
|
||||||
|
|
||||||
|
if(!(fzk = Fzkadr(*yptr - _XA))) return;
|
||||||
if (!(fzk = Fzkadr(*yptr - _XA))) return;
|
|
||||||
|
|
||||||
yptr++;
|
yptr++;
|
||||||
|
|
||||||
for ( ; *fzk != FZKEND ; fzk += nlen + (i ? 4 : 3)) {
|
for(; *fzk != FZKEND; fzk += nlen + (i ? 4 : 3)) {
|
||||||
|
|
||||||
nlen = FzkNkrLen(fzk);
|
nlen = FzkNkrLen(fzk);
|
||||||
i = FzkHasCode(fzk);
|
i = FzkHasCode(fzk);
|
||||||
|
|
||||||
cmp = fzkstrcmp(yptr, fzk, &len);
|
cmp = fzkstrcmp(yptr, fzk, &len);
|
||||||
|
|
||||||
if (cmp == OVER)
|
if(cmp == OVER)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
else if (cmp == PARTLY)
|
else if(cmp == PARTLY)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
else if ((cmp != MATCH) || isdpnd(*(yptr + len)))
|
else if((cmp != MATCH) || isdpnd(*(yptr + len)))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
|
||||||
fzktbl[fzkcount].yomip = yptr - 1;
|
fzktbl[fzkcount].yomip = yptr - 1;
|
||||||
fzktbl[fzkcount].fzkp = fzk;
|
fzktbl[fzkcount].fzkp = fzk;
|
||||||
fzkcount++;
|
fzkcount++;
|
||||||
|
|
||||||
if (!fzkcnct(right, (TypeCnct)FzkLeft(fzk))) continue;
|
if(!fzkcnct(right, (TypeCnct)FzkLeft(fzk))) continue;
|
||||||
|
|
||||||
if (!level) fzk_ka_flg = FzkStrKa(fzk);
|
if(!level) fzk_ka_flg = FzkStrKa(fzk);
|
||||||
|
|
||||||
next = yptr + len;
|
next = yptr + len;
|
||||||
|
|
||||||
if (terminate(rt = FzkRight(fzk), next)) {
|
if(terminate(rt = FzkRight(fzk), next)) {
|
||||||
setclrec(jrec, next, rt);
|
setclrec(jrec, next, rt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
138
getkanji.c
138
getkanji.c
|
|
@ -27,53 +27,36 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: getkanji.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:01:49 $
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include "sj_euc.h"
|
#include "sj_euc.h"
|
||||||
#include "sj_kcnv.h"
|
#include "sj_kcnv.h"
|
||||||
#include "kanakan.h"
|
#include "kanakan.h"
|
||||||
|
|
||||||
|
|
||||||
static unsigned char*
|
static unsigned char*
|
||||||
code2kanji(unsigned char* s, unsigned char* d, unsigned char* ym, int yl, int flg);
|
code2kanji(unsigned char* s, unsigned char* d, unsigned char* ym, int yl, int flg);
|
||||||
|
|
||||||
unsigned char*
|
unsigned char*
|
||||||
getkan_none(unsigned char* s, unsigned char* d, unsigned char* ym, int yl, int flg)
|
getkan_none(unsigned char* s, unsigned char* d, unsigned char* ym, int yl, int flg) {
|
||||||
{
|
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
unsigned char*
|
unsigned char*
|
||||||
getkan_hira(unsigned char* s, unsigned char* d, unsigned char* ym, int yl, int flg)
|
getkan_hira(unsigned char* s, unsigned char* d, unsigned char* ym, int yl, int flg) {
|
||||||
{
|
|
||||||
int cnt, csize;
|
int cnt, csize;
|
||||||
|
|
||||||
csize = codesize(*s);
|
csize = codesize(*s);
|
||||||
|
|
||||||
cnt = (*s & KanjiCodeMask) + 1;
|
cnt = (*s & KanjiCodeMask) + 1;
|
||||||
|
|
||||||
|
if(flg && (s[csize] == KanjiStrEnd)) ym += (yl - cnt) * 2;
|
||||||
if (flg && (s[csize] == KanjiStrEnd)) ym += (yl - cnt) * 2;
|
|
||||||
|
|
||||||
|
|
||||||
cnt *= 2;
|
cnt *= 2;
|
||||||
while (cnt-- > 0) *d++ = *ym++;
|
while(cnt-- > 0) *d++ = *ym++;
|
||||||
|
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
unsigned char*
|
unsigned char*
|
||||||
getkan_kata(unsigned char* s, unsigned char* d, unsigned char* ym, int yl, int flg)
|
getkan_kata(unsigned char* s, unsigned char* d, unsigned char* ym, int yl, int flg) {
|
||||||
{
|
|
||||||
int cnt, csize;
|
int cnt, csize;
|
||||||
unsigned char ch;
|
unsigned char ch;
|
||||||
|
|
||||||
|
|
@ -81,24 +64,20 @@ getkan_kata(unsigned char* s, unsigned char* d, unsigned char* ym, int yl, int f
|
||||||
|
|
||||||
cnt = (*s & KanjiCodeMask) + 1;
|
cnt = (*s & KanjiCodeMask) + 1;
|
||||||
|
|
||||||
|
if(flg && (s[csize] == KanjiStrEnd)) ym += (yl - cnt) * 2;
|
||||||
|
|
||||||
if (flg && (s[csize] == KanjiStrEnd)) ym += (yl - cnt) * 2;
|
while(cnt-- > 0) {
|
||||||
|
|
||||||
|
if(*ym == 0xa4) {
|
||||||
while (cnt-- > 0) {
|
|
||||||
|
|
||||||
if (*ym == 0xa4) {
|
|
||||||
ch = *++ym;
|
ch = *++ym;
|
||||||
if (0xa1 <= ch && ch <= 0xf3) {
|
if(0xa1 <= ch && ch <= 0xf3) {
|
||||||
*d++ = 0xa5;
|
*d++ = 0xa5;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
*d++ = 0xa4;
|
*d++ = 0xa4;
|
||||||
}
|
}
|
||||||
*d++ = ch;
|
*d++ = ch;
|
||||||
ym++;
|
ym++;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
*d++ = *ym++;
|
*d++ = *ym++;
|
||||||
*d++ = *ym++;
|
*d++ = *ym++;
|
||||||
}
|
}
|
||||||
|
|
@ -107,32 +86,26 @@ getkan_kata(unsigned char* s, unsigned char* d, unsigned char* ym, int yl, int f
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
unsigned char*
|
unsigned char*
|
||||||
getkan_knj(unsigned char* s, unsigned char* d, unsigned char* ym, int yl, int flg)
|
getkan_knj(unsigned char* s, unsigned char* d, unsigned char* ym, int yl, int flg) {
|
||||||
{
|
|
||||||
|
|
||||||
return code2kanji(askknj[*s & KnjAssyukuMask], d, ym, yl, flg);
|
return code2kanji(askknj[*s & KnjAsshukuMask], d, ym, yl, flg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
unsigned char*
|
unsigned char*
|
||||||
getkan_ofs(unsigned char* s, unsigned char* d, unsigned char* ym, int yl, int flg)
|
getkan_ofs(unsigned char* s, unsigned char* d, unsigned char* ym, int yl, int flg) {
|
||||||
{
|
|
||||||
|
|
||||||
return code2kanji(dicbuf + ((*s & KanjiCodeMask) << 8) + *(s + 1),
|
return code2kanji(dicbuf + ((*s & KanjiCodeMask) << 8) + *(s + 1),
|
||||||
d, ym, yl, flg);
|
d, ym, yl, flg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
unsigned char*
|
unsigned char*
|
||||||
getkan_norm(unsigned char* s, unsigned char* d, unsigned char* ym, int yl, int flg)
|
getkan_norm(unsigned char* s, unsigned char* d, unsigned char* ym, int yl, int flg) {
|
||||||
{
|
|
||||||
unsigned char c;
|
unsigned char c;
|
||||||
|
|
||||||
if (*s != 0) {
|
if(*s != 0) {
|
||||||
c = s[1];
|
c = s[1];
|
||||||
if (c & 0x80)
|
if(c & 0x80)
|
||||||
*d++ = SS3;
|
*d++ = SS3;
|
||||||
*d++ = *s | 0x80;
|
*d++ = *s | 0x80;
|
||||||
*d++ = c | 0x80;
|
*d++ = c | 0x80;
|
||||||
|
|
@ -142,72 +115,79 @@ getkan_norm(unsigned char* s, unsigned char* d, unsigned char* ym, int yl, int f
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
unsigned char*
|
unsigned char*
|
||||||
getkan_ascii(unsigned char* s, unsigned char* d, unsigned char* ym, int yl, int flg)
|
getkan_ascii(unsigned char* s, unsigned char* d, unsigned char* ym, int yl, int flg) {
|
||||||
{
|
|
||||||
unsigned char c;
|
unsigned char c;
|
||||||
|
|
||||||
c = s[1];
|
c = s[1];
|
||||||
if (c & 0x80)
|
if(c & 0x80)
|
||||||
*d++ = SS2;
|
*d++ = SS2;
|
||||||
*d++ = c;
|
*d++ = c;
|
||||||
|
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static unsigned char*
|
static unsigned char*
|
||||||
code2kanji(unsigned char* s, unsigned char* d, unsigned char* ym, int yl, int flg)
|
code2kanji(unsigned char* s, unsigned char* d, unsigned char* ym, int yl, int flg) {
|
||||||
{
|
|
||||||
int csize;
|
int csize;
|
||||||
|
|
||||||
for ( ; ; ) {
|
for(;;) {
|
||||||
csize = codesize(*s);
|
csize = codesize(*s);
|
||||||
if (s[csize] == KanjiStrEnd) {
|
if(s[csize] == KanjiStrEnd) {
|
||||||
switch(*s & KanjiModeMask) {
|
switch(*s & KanjiModeMask) {
|
||||||
case ZenHiraAssyuku:
|
case ZenHiraAsshuku:
|
||||||
d = getkan_hira(s, d, ym, yl, flg); break;
|
d = getkan_hira(s, d, ym, yl, flg);
|
||||||
|
break;
|
||||||
|
|
||||||
case ZenKataAssyuku:
|
case ZenKataAsshuku:
|
||||||
d = getkan_kata(s, d, ym, yl, flg); break;
|
d = getkan_kata(s, d, ym, yl, flg);
|
||||||
|
break;
|
||||||
|
|
||||||
case OffsetAssyuku:
|
case OffsetAsshuku:
|
||||||
d = getkan_ofs(s, d, ym, yl, flg); break;
|
d = getkan_ofs(s, d, ym, yl, flg);
|
||||||
|
break;
|
||||||
|
|
||||||
case AiAttribute:
|
case AiAttribute:
|
||||||
d = getkan_none(s, d, ym, yl, flg); break;
|
d = getkan_none(s, d, ym, yl, flg);
|
||||||
|
break;
|
||||||
|
|
||||||
case LeadingHankaku:
|
case LeadingHankaku:
|
||||||
d = getkan_ascii(s, d, ym, yl, flg); break;
|
d = getkan_ascii(s, d, ym, yl, flg);
|
||||||
|
break;
|
||||||
|
|
||||||
case KanjiAssyuku:
|
case KanjiAsshuku:
|
||||||
d = getkan_knj(s, d, ym, yl, flg); break;
|
d = getkan_knj(s, d, ym, yl, flg);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
d = getkan_norm(s, d, ym, yl, flg);
|
d = getkan_norm(s, d, ym, yl, flg);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
} else
|
||||||
else
|
|
||||||
switch(*s & KanjiModeMask) {
|
switch(*s & KanjiModeMask) {
|
||||||
case ZenHiraAssyuku:
|
case ZenHiraAsshuku:
|
||||||
d = getkan_hira(s, d, ym, yl, FALSE); break;
|
d = getkan_hira(s, d, ym, yl, FALSE);
|
||||||
|
break;
|
||||||
|
|
||||||
case ZenKataAssyuku:
|
case ZenKataAsshuku:
|
||||||
d = getkan_kata(s, d, ym, yl, FALSE); break;
|
d = getkan_kata(s, d, ym, yl, FALSE);
|
||||||
|
break;
|
||||||
|
|
||||||
case OffsetAssyuku:
|
case OffsetAsshuku:
|
||||||
d = getkan_ofs(s, d, ym, yl, FALSE); break;
|
d = getkan_ofs(s, d, ym, yl, FALSE);
|
||||||
|
break;
|
||||||
|
|
||||||
case AiAttribute:
|
case AiAttribute:
|
||||||
d = getkan_none(s, d, ym, yl, FALSE); break;
|
d = getkan_none(s, d, ym, yl, FALSE);
|
||||||
|
break;
|
||||||
|
|
||||||
case LeadingHankaku:
|
case LeadingHankaku:
|
||||||
d = getkan_ascii(s, d, ym, yl, FALSE); break;
|
d = getkan_ascii(s, d, ym, yl, FALSE);
|
||||||
|
break;
|
||||||
|
|
||||||
case KanjiAssyuku:
|
case KanjiAsshuku:
|
||||||
d = getkan_knj(s, d, ym, yl, FALSE); break;
|
d = getkan_knj(s, d, ym, yl, FALSE);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
d = getkan_norm(s, d, ym, yl, FALSE);
|
d = getkan_norm(s, d, ym, yl, FALSE);
|
||||||
|
|
@ -219,14 +199,10 @@ code2kanji(unsigned char* s, unsigned char* d, unsigned char* ym, int yl, int fl
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int getkanji(unsigned char* ym, int yl, unsigned char* ptr, unsigned char* buf) {
|
||||||
int
|
unsigned char* q;
|
||||||
getkanji(unsigned char* ym, int yl, unsigned char* ptr, unsigned char* buf)
|
|
||||||
{
|
|
||||||
unsigned char *q;
|
|
||||||
|
|
||||||
q = code2kanji(ptr, buf, ym, yl, TRUE);
|
q = code2kanji(ptr, buf, ym, yl, TRUE);
|
||||||
|
|
||||||
return q - buf;
|
return q - buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
117
getrank.c
117
getrank.c
|
|
@ -27,123 +27,94 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: getrank.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:01:50 $
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include "sj_kcnv.h"
|
#include "sj_kcnv.h"
|
||||||
#include "kanakan.h"
|
#include "kanakan.h"
|
||||||
|
|
||||||
|
static void setstynum(void);
|
||||||
|
static void setnspr(KHREC* kptr, STDYIN* sptr);
|
||||||
|
static void regetrank(void);
|
||||||
|
|
||||||
static void setstynum (void);
|
void getrank(void) {
|
||||||
static void setnspr (KHREC *kptr, STDYIN *sptr);
|
|
||||||
static void regetrank (void);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
getrank (void)
|
|
||||||
{
|
|
||||||
trank = nrank = 1;
|
trank = nrank = 1;
|
||||||
|
|
||||||
setstynum();
|
setstynum();
|
||||||
regetrank();
|
regetrank();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
setstynum (void)
|
setstynum(void) {
|
||||||
{
|
KHREC* kptr;
|
||||||
KHREC *kptr;
|
STDYIN* sptr;
|
||||||
STDYIN *sptr;
|
|
||||||
int count;
|
int count;
|
||||||
|
|
||||||
for (kptr = kouhotbl, count = khcount ; count-- ; kptr++) {
|
for(kptr = kouhotbl, count = khcount; count--; kptr++) {
|
||||||
sptr = srchstdy(kptr -> clrec -> jnode -> jseg, kptr -> offs,
|
sptr = srchstdy(kptr->clrec->jnode->jseg, kptr->offs,
|
||||||
kptr -> clrec -> jnode -> dicid);
|
kptr->clrec->jnode->dicid);
|
||||||
if (!sptr) continue;
|
if(!sptr) continue;
|
||||||
setnspr(kptr, sptr);
|
setnspr(kptr, sptr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
setnspr (KHREC *kptr, STDYIN *sptr)
|
setnspr(KHREC* kptr, STDYIN* sptr) {
|
||||||
{
|
KHREC* ptr;
|
||||||
KHREC *ptr;
|
|
||||||
int keepnm;
|
int keepnm;
|
||||||
TypeStyNum styno;
|
TypeStyNum styno;
|
||||||
|
|
||||||
styno = kptr -> styno = sptr -> styno;
|
styno = kptr->styno = sptr->styno;
|
||||||
keepnm = trank;
|
keepnm = trank;
|
||||||
|
|
||||||
for (ptr = kouhotbl ; ptr < kptr ; ptr++) {
|
for(ptr = kouhotbl; ptr < kptr; ptr++) {
|
||||||
if (styno < ptr -> styno) {
|
if(styno < ptr->styno) {
|
||||||
ptr -> rank++;
|
ptr->rank++;
|
||||||
|
keepnm--;
|
||||||
|
} else if(styno == ptr->styno) {
|
||||||
|
if(kptr->sttfg && kptr->ka_fg) {
|
||||||
|
if((sptr->sttkj == kptr->sttkj) &&
|
||||||
|
(sptr->ka_kj == kptr->ka_kj)) {
|
||||||
|
ptr->rank++;
|
||||||
keepnm--;
|
keepnm--;
|
||||||
}
|
}
|
||||||
else if (styno == ptr -> styno) {
|
} else if(kptr->sttfg) {
|
||||||
if (kptr -> sttfg && kptr -> ka_fg) {
|
if(sptr->sttkj == kptr->sttkj) {
|
||||||
if ((sptr -> sttkj == kptr -> sttkj) &&
|
ptr->rank++;
|
||||||
(sptr -> ka_kj == kptr -> ka_kj)) {
|
|
||||||
ptr -> rank++;
|
|
||||||
keepnm--;
|
keepnm--;
|
||||||
}
|
}
|
||||||
}
|
} else if(kptr->ka_fg) {
|
||||||
else if (kptr -> sttfg) {
|
if(sptr->ka_kj == kptr->ka_kj) {
|
||||||
if (sptr -> sttkj == kptr -> sttkj) {
|
ptr->rank++;
|
||||||
ptr -> rank++;
|
|
||||||
keepnm--;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (kptr -> ka_fg) {
|
|
||||||
if (sptr -> ka_kj == kptr -> ka_kj) {
|
|
||||||
ptr -> rank++;
|
|
||||||
keepnm--;
|
keepnm--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
kptr -> rank = (unsigned char)keepnm;
|
kptr->rank = (unsigned char)keepnm;
|
||||||
trank++;
|
trank++;
|
||||||
if (keepnm <= nrank) nrank++;
|
if(keepnm <= nrank) nrank++;
|
||||||
if (sptr -> nmflg && (nrank > keepnm)) nrank = keepnm;
|
if(sptr->nmflg && (nrank > keepnm)) nrank = keepnm;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
regetrank (void)
|
regetrank(void) {
|
||||||
{
|
KHREC* kptr;
|
||||||
KHREC *kptr;
|
|
||||||
int count;
|
int count;
|
||||||
int tmp;
|
int tmp;
|
||||||
|
|
||||||
if (nrank < trank) {
|
if(nrank < trank) {
|
||||||
tmp = nrank;
|
tmp = nrank;
|
||||||
trank += nkhcount;
|
trank += nkhcount;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
nkhcount = tmp = 0;
|
nkhcount = tmp = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (count = khcount, kptr = kouhotbl ; count-- ; kptr++) {
|
for(count = khcount, kptr = kouhotbl; count--; kptr++) {
|
||||||
if (!(kptr -> rank)) {
|
if(!(kptr->rank)) {
|
||||||
if (tmp && kptr -> mode && !(kptr -> offs)) {
|
if(tmp && kptr->mode && !(kptr->offs)) {
|
||||||
kptr -> rank = (unsigned char)tmp++;
|
kptr->rank = (unsigned char)tmp++;
|
||||||
}
|
} else
|
||||||
else
|
kptr->rank = (unsigned char)trank++;
|
||||||
kptr -> rank = (unsigned char)trank++;
|
} else if((short)kptr->rank >= nrank)
|
||||||
}
|
kptr->rank += (unsigned char)nkhcount;
|
||||||
else if ((short)kptr -> rank >= nrank)
|
|
||||||
kptr -> rank += (unsigned char)nkhcount;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
19
global.c
19
global.c
|
|
@ -27,32 +27,25 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: global.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:00:35 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include "sj_struct2.h"
|
#include "sj_struct2.h"
|
||||||
|
|
||||||
DouonRec *douon_ptr = NULL;
|
DouonRec* douon_ptr = NULL;
|
||||||
int douon_num = 0;
|
int douon_num = 0;
|
||||||
int yomi_len = 0;
|
int yomi_len = 0;
|
||||||
int hinsi_num = 0;
|
int hinshi_num = 0;
|
||||||
int kanji_len = 0;
|
int kanji_len = 0;
|
||||||
|
|
||||||
HindoRec *hindo[MaxHindoNumber];
|
HindoRec* hindo[MaxHindoNumber];
|
||||||
int hindo_num = 0;
|
int hindo_num = 0;
|
||||||
|
|
||||||
OffsetRec *ofsrec[MaxOffsetNumber];
|
OffsetRec* ofsrec[MaxOffsetNumber];
|
||||||
int ofsrec_num = 0;
|
int ofsrec_num = 0;
|
||||||
|
|
||||||
AssyukuRec *assyuku = NULL;
|
AsshukuRec* asshuku = NULL;
|
||||||
|
|
||||||
HindoRec *askknj[MaxKnjAskNumber];
|
HindoRec* askknj[MaxKnjAskNumber];
|
||||||
int askknj_num = 0;
|
int askknj_num = 0;
|
||||||
|
|
||||||
int kanji_num = 0;
|
int kanji_num = 0;
|
||||||
|
|
|
||||||
14
global2.c
14
global2.c
|
|
@ -27,13 +27,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: global.c,v $
|
|
||||||
* $SonyRevision: 1.2 $
|
|
||||||
* $SonyDate: 1994/12/09 11:27:06 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
@ -46,11 +39,10 @@
|
||||||
#include "sj_typedef.h"
|
#include "sj_typedef.h"
|
||||||
#include "sj_var.h"
|
#include "sj_var.h"
|
||||||
|
|
||||||
Global *global_work_base;
|
Global* global_work_base;
|
||||||
|
|
||||||
Global *work_base;
|
Global* work_base;
|
||||||
|
|
||||||
STDY *stdy_base;
|
STDY* stdy_base;
|
||||||
|
|
||||||
int serv_errno;
|
int serv_errno;
|
||||||
|
|
||||||
|
|
|
||||||
14
henkan.h
14
henkan.h
|
|
@ -27,14 +27,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: henkan.h,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:03:43 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define ObjEnd 0
|
#define ObjEnd 0
|
||||||
#define ObjHenkan 1
|
#define ObjHenkan 1
|
||||||
#define ObjMuhenkan 2
|
#define ObjMuhenkan 2
|
||||||
|
|
@ -45,6 +37,6 @@
|
||||||
#define Bedit 4
|
#define Bedit 4
|
||||||
#define BEDIT 8
|
#define BEDIT 8
|
||||||
|
|
||||||
#define DLEN (DOUONLEN*2)
|
#define DLEN (DOUONLEN * 2)
|
||||||
#define EDITLEN (BUFFLENGTH*DLEN)
|
#define EDITLEN (BUFFLENGTH * DLEN)
|
||||||
#define MAXENUM (EDITLEN/DLEN)
|
#define MAXENUM (EDITLEN / DLEN)
|
||||||
|
|
|
||||||
500
hindo.c
500
hindo.c
|
|
@ -27,323 +27,260 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: hindo.c,v $
|
|
||||||
* $SonyRevision: 1.2 $
|
|
||||||
* $SonyDate: 1994/08/17 01:50:26 $
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include "sj_struct.h"
|
#include "sj_struct.h"
|
||||||
#include "dicttool.h"
|
#include "dicttool.h"
|
||||||
|
|
||||||
extern HindoRec *hindo[];
|
extern HindoRec* hindo[];
|
||||||
extern int hindo_num;
|
extern int hindo_num;
|
||||||
extern AssyukuRec *assyuku;
|
extern AsshukuRec* asshuku;
|
||||||
extern HindoRec *askknj[];
|
extern HindoRec* askknj[];
|
||||||
extern int askknj_num;
|
extern int askknj_num;
|
||||||
extern int kanji_num;
|
extern int kanji_num;
|
||||||
|
|
||||||
|
int check_hindo(unsigned char* ptr, int len) {
|
||||||
int
|
|
||||||
check_hindo(unsigned char* ptr, int len)
|
|
||||||
{
|
|
||||||
int low, high, mid;
|
int low, high, mid;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
if(hindo_num <= 0) return 0;
|
||||||
|
|
||||||
if (hindo_num <= 0) return 0;
|
low = 0;
|
||||||
|
high = hindo_num - 1;
|
||||||
|
while(low <= high) {
|
||||||
low = 0; high = hindo_num - 1;
|
|
||||||
while (low <= high) {
|
|
||||||
mid = (low + high) / 2;
|
mid = (low + high) / 2;
|
||||||
i = string_cmp(hindo[mid]->kptr, hindo[mid]->klen, ptr, len);
|
i = string_cmp(hindo[mid]->kptr, hindo[mid]->klen, ptr, len);
|
||||||
if (i > 0)
|
if(i > 0)
|
||||||
high = mid - 1;
|
high = mid - 1;
|
||||||
else if (i < 0)
|
else if(i < 0)
|
||||||
low = ++mid;
|
low = ++mid;
|
||||||
else
|
else
|
||||||
return(hindo[mid]->exist + hindo[mid]->hindo);
|
return (hindo[mid]->exist + hindo[mid]->hindo);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static AsshukuRec*
|
||||||
|
makeasshuku(int num) {
|
||||||
|
AsshukuRec* arec;
|
||||||
|
|
||||||
|
arec = (AsshukuRec*)Malloc(sizeof(AsshukuRec));
|
||||||
static AssyukuRec*
|
if(!arec) {
|
||||||
makeassyuku (int num)
|
|
||||||
{
|
|
||||||
AssyukuRec *arec;
|
|
||||||
|
|
||||||
|
|
||||||
arec = (AssyukuRec *)Malloc(sizeof(AssyukuRec));
|
|
||||||
if (!arec) {
|
|
||||||
fprintf(stderr, "\245\341\245\342\245\352\244\254\302\255\244\352\244\336\244\273\244\363\n");
|
fprintf(stderr, "\245\341\245\342\245\352\244\254\302\255\244\352\244\336\244\273\244\363\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
arec->len = num;
|
||||||
arec -> len = num;
|
arec->nrec = NULL;
|
||||||
arec -> nrec = NULL;
|
arec->anext = NULL;
|
||||||
arec -> anext = NULL;
|
|
||||||
|
|
||||||
return arec;
|
return arec;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
assyuku_len(HindoRec* hrec)
|
asshuku_len(HindoRec* hrec) {
|
||||||
{
|
|
||||||
int org;
|
int org;
|
||||||
int old;
|
int old;
|
||||||
int new;
|
int new;
|
||||||
OffsetRec *p;
|
OffsetRec* p;
|
||||||
|
|
||||||
|
if(((*(hrec->kptr) & KanjiModeMask) == OffsetAsshuku) &&
|
||||||
if (((*(hrec->kptr) & KanjiModeMask) == OffsetAssyuku) &&
|
|
||||||
(hrec->klen == 2)) {
|
(hrec->klen == 2)) {
|
||||||
|
|
||||||
p = real_ofsrec(hrec -> kptr);
|
p = real_ofsrec(hrec->kptr);
|
||||||
|
|
||||||
|
|
||||||
org = check_hindo(p -> kptr, p -> klen);
|
|
||||||
|
|
||||||
|
|
||||||
|
org = check_hindo(p->kptr, p->klen);
|
||||||
|
|
||||||
old = p->klen * org + 2 * (hrec->exist + hrec->hindo);
|
old = p->klen * org + 2 * (hrec->exist + hrec->hindo);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
new = p->klen + (hrec->exist + hrec->hindo + org);
|
new = p->klen + (hrec->exist + hrec->hindo + org);
|
||||||
}
|
}
|
||||||
|
|
||||||
else {
|
else {
|
||||||
|
|
||||||
old = hrec -> klen * (hrec -> exist + hrec -> hindo);
|
old = hrec->klen * (hrec->exist + hrec->hindo);
|
||||||
|
|
||||||
|
new = hrec->klen + (hrec->exist + hrec->hindo);
|
||||||
new = hrec -> klen + (hrec -> exist + hrec -> hindo);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return (old - new);
|
return (old - new);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
set_assyuku(HindoRec* hrec)
|
set_asshuku(HindoRec* hrec) {
|
||||||
{
|
AsshukuRec* arec;
|
||||||
AssyukuRec *arec;
|
AsshukuRec* aprev;
|
||||||
AssyukuRec *aprev;
|
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
|
len = asshuku_len(hrec);
|
||||||
|
|
||||||
len = assyuku_len(hrec);
|
if(len <= 0) return;
|
||||||
|
|
||||||
|
arec = asshuku;
|
||||||
|
aprev = NULL;
|
||||||
|
while(arec) {
|
||||||
|
|
||||||
if (len <= 0) return;
|
if(arec->len == len) {
|
||||||
|
|
||||||
|
hrec->arec = arec;
|
||||||
arec = assyuku; aprev = NULL;
|
hrec->anext = arec->nrec;
|
||||||
while (arec) {
|
arec->nrec = hrec;
|
||||||
|
|
||||||
if (arec -> len == len) {
|
|
||||||
|
|
||||||
hrec -> arec = arec;
|
|
||||||
hrec -> anext = arec -> nrec;
|
|
||||||
arec -> nrec = hrec;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (arec -> len < len)
|
else if(arec->len < len)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
aprev = arec;
|
aprev = arec;
|
||||||
arec = arec -> anext;
|
arec = arec->anext;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
arec = makeasshuku(len);
|
||||||
|
|
||||||
arec = makeassyuku(len);
|
hrec->anext = NULL;
|
||||||
|
hrec->arec = arec;
|
||||||
|
arec->nrec = hrec;
|
||||||
|
|
||||||
|
if(aprev) {
|
||||||
hrec -> anext = NULL;
|
arec->anext = aprev->anext;
|
||||||
hrec -> arec = arec;
|
aprev->anext = arec;
|
||||||
arec -> nrec = hrec;
|
} else {
|
||||||
|
arec->anext = asshuku;
|
||||||
|
asshuku = arec;
|
||||||
if (aprev) {
|
|
||||||
arec -> anext = aprev -> anext;
|
|
||||||
aprev -> anext = arec;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
arec -> anext = assyuku;
|
|
||||||
assyuku = arec;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
reset_assyuku(HindoRec* hrec)
|
reset_asshuku(HindoRec* hrec) {
|
||||||
{
|
AsshukuRec* arec;
|
||||||
AssyukuRec *arec;
|
AsshukuRec* aptr;
|
||||||
AssyukuRec *aptr;
|
AsshukuRec* aprev;
|
||||||
AssyukuRec *aprev;
|
HindoRec* hptr;
|
||||||
HindoRec *hptr;
|
HindoRec* hprev;
|
||||||
HindoRec *hprev;
|
|
||||||
|
|
||||||
arec = hrec -> arec;
|
arec = hrec->arec;
|
||||||
|
|
||||||
|
if(!arec) return;
|
||||||
|
hrec->arec = NULL;
|
||||||
|
|
||||||
if (!arec) return;
|
hptr = arec->nrec;
|
||||||
hrec -> arec = NULL;
|
hprev = NULL;
|
||||||
|
while(hptr) {
|
||||||
|
if(hptr == hrec) break;
|
||||||
hptr = arec -> nrec; hprev = NULL;
|
|
||||||
while (hptr) {
|
|
||||||
if (hptr == hrec) break;
|
|
||||||
hprev = hptr;
|
hprev = hptr;
|
||||||
hptr = hptr -> anext;
|
hptr = hptr->anext;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!hptr) return;
|
||||||
|
|
||||||
if (!hptr) return;
|
if(hprev) {
|
||||||
|
hprev->anext = hrec->anext;
|
||||||
|
hrec->anext = NULL;
|
||||||
if (hprev) {
|
|
||||||
hprev -> anext = hrec -> anext;
|
|
||||||
hrec -> anext = NULL;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(hrec->anext) {
|
||||||
if (hrec -> anext) {
|
arec->nrec = hrec->anext;
|
||||||
arec -> nrec = hrec -> anext;
|
hrec->anext = NULL;
|
||||||
hrec -> anext = NULL;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!asshuku) return;
|
||||||
|
aptr = asshuku;
|
||||||
|
aprev = NULL;
|
||||||
if (!assyuku) return;
|
while(aptr) {
|
||||||
aptr = assyuku; aprev = NULL;
|
if(aptr == arec) break;
|
||||||
while (aptr) {
|
|
||||||
if (aptr == arec) break;
|
|
||||||
aprev = aptr;
|
aprev = aptr;
|
||||||
aptr = aptr -> anext;
|
aptr = aptr->anext;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!aptr) return;
|
||||||
|
|
||||||
if (!aptr) return;
|
if(aprev)
|
||||||
|
aprev->anext = arec->anext;
|
||||||
|
|
||||||
if (aprev)
|
|
||||||
aprev -> anext = arec -> anext;
|
|
||||||
|
|
||||||
else
|
else
|
||||||
assyuku = arec -> anext;
|
asshuku = arec->anext;
|
||||||
|
|
||||||
|
|
||||||
Free(arec);
|
Free(arec);
|
||||||
|
|
||||||
|
hrec->anext = NULL;
|
||||||
hrec -> anext = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static HindoRec*
|
static HindoRec*
|
||||||
makehindo(unsigned char* ptr, int len, int alen)
|
makehindo(unsigned char* ptr, int len, int alen) {
|
||||||
{
|
HindoRec* hrec;
|
||||||
HindoRec *hrec;
|
unsigned char* p;
|
||||||
unsigned char *p;
|
|
||||||
|
|
||||||
|
hrec = (HindoRec*)Malloc(sizeof(HindoRec));
|
||||||
hrec = (HindoRec *)Malloc(sizeof(HindoRec));
|
if(!hrec) {
|
||||||
if (!hrec) {
|
|
||||||
fprintf(stderr, "\245\341\245\342\245\352\244\254\302\255\244\352\244\336\244\273\244\363\n");
|
fprintf(stderr, "\245\341\245\342\245\352\244\254\302\255\244\352\244\336\244\273\244\363\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
p = (unsigned char *)Malloc(len);
|
p = (unsigned char*)Malloc(len);
|
||||||
if (!p) {
|
if(!p) {
|
||||||
fprintf(stderr, "\245\341\245\342\245\352\244\254\302\255\244\352\244\336\244\273\244\363\n");
|
fprintf(stderr, "\245\341\245\342\245\352\244\254\302\255\244\352\244\336\244\273\244\363\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
hrec -> klen = len;
|
hrec->klen = len;
|
||||||
hrec -> kptr = p;
|
hrec->kptr = p;
|
||||||
if (len == alen && len > 2) {
|
if(len == alen && len > 2) {
|
||||||
hrec -> hindo = 0;
|
hrec->hindo = 0;
|
||||||
hrec -> exist = 1;
|
hrec->exist = 1;
|
||||||
hrec -> offset = ++kanji_num;
|
hrec->offset = ++kanji_num;
|
||||||
|
} else {
|
||||||
|
hrec->hindo = 1;
|
||||||
|
hrec->exist = 0;
|
||||||
|
hrec->offset = 0;
|
||||||
}
|
}
|
||||||
else {
|
while(len-- > 0) *p++ = *ptr++;
|
||||||
hrec -> hindo = 1;
|
hrec->anext = NULL;
|
||||||
hrec -> exist = 0;
|
hrec->arec = NULL;
|
||||||
hrec -> offset = 0;
|
|
||||||
}
|
|
||||||
while (len-- > 0) *p++ = *ptr++;
|
|
||||||
hrec -> anext = NULL;
|
|
||||||
hrec -> arec = NULL;
|
|
||||||
|
|
||||||
return hrec;
|
return hrec;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
set_hindo(unsigned char* ptr, int len, int alen)
|
set_hindo(unsigned char* ptr, int len, int alen) {
|
||||||
{
|
HindoRec* hrec;
|
||||||
HindoRec *hrec;
|
|
||||||
int low, high, mid;
|
int low, high, mid;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
if(hindo_num <= 0) {
|
||||||
if (hindo_num <= 0) {
|
|
||||||
hrec = makehindo(ptr, len, alen);
|
hrec = makehindo(ptr, len, alen);
|
||||||
hindo[0]= hrec;
|
hindo[0] = hrec;
|
||||||
hindo_num = 1;
|
hindo_num = 1;
|
||||||
|
|
||||||
|
set_asshuku(hrec);
|
||||||
set_assyuku(hrec);
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
low = 0;
|
||||||
low = 0; high = hindo_num - 1;
|
high = hindo_num - 1;
|
||||||
while (low <= high) {
|
while(low <= high) {
|
||||||
mid = (low + high) / 2;
|
mid = (low + high) / 2;
|
||||||
i = string_cmp(hindo[mid]->kptr, hindo[mid]->klen, ptr, len);
|
i = string_cmp(hindo[mid]->kptr, hindo[mid]->klen, ptr, len);
|
||||||
if (i > 0)
|
if(i > 0)
|
||||||
high = mid - 1;
|
high = mid - 1;
|
||||||
else if (i < 0)
|
else if(i < 0)
|
||||||
low = ++mid;
|
low = ++mid;
|
||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(i) {
|
||||||
if (i) {
|
if(hindo_num >= MaxHindoNumber) {
|
||||||
if (hindo_num >= MaxHindoNumber) {
|
|
||||||
fprintf(stderr, "\311\321\305\331\245\306\241\274\245\326\245\353\244\254\244\242\244\325\244\354\244\336\244\267\244\277\n");
|
fprintf(stderr, "\311\321\305\331\245\306\241\274\245\326\245\353\244\254\244\242\244\325\244\354\244\336\244\267\244\277\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
hrec = makehindo(ptr, len, alen);
|
hrec = makehindo(ptr, len, alen);
|
||||||
|
|
||||||
|
for(i = hindo_num; i > mid; i--) hindo[i] = hindo[i - 1];
|
||||||
for (i = hindo_num ; i > mid ; i--) hindo[i] = hindo[i - 1];
|
|
||||||
hindo[mid] = hrec;
|
hindo[mid] = hrec;
|
||||||
hindo_num++;
|
hindo_num++;
|
||||||
}
|
}
|
||||||
|
|
@ -351,73 +288,61 @@ set_hindo(unsigned char* ptr, int len, int alen)
|
||||||
else {
|
else {
|
||||||
hrec = hindo[mid];
|
hrec = hindo[mid];
|
||||||
|
|
||||||
|
reset_asshuku(hrec);
|
||||||
|
|
||||||
reset_assyuku(hrec);
|
if(hrec->exist > 0)
|
||||||
|
hrec->exist += 1;
|
||||||
|
|
||||||
|
else if(len == alen && len > 2) {
|
||||||
if (hrec -> exist > 0)
|
hrec->exist = 1;
|
||||||
hrec -> exist += 1;
|
hrec->offset = ++kanji_num;
|
||||||
|
|
||||||
|
|
||||||
else if (len == alen && len > 2) {
|
|
||||||
hrec -> exist = 1;
|
|
||||||
hrec -> offset = ++kanji_num;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
else
|
else
|
||||||
hrec -> hindo += 1;
|
hrec->hindo += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
set_asshuku(hrec);
|
||||||
set_assyuku(hrec);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
reset_hindo(unsigned char* p, int l)
|
reset_hindo(unsigned char* p, int l) {
|
||||||
{
|
HindoRec* hrec;
|
||||||
HindoRec *hrec;
|
|
||||||
int low, high, mid;
|
int low, high, mid;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
if(hindo_num <= 0) return;
|
||||||
|
|
||||||
if (hindo_num <= 0) return;
|
low = 0;
|
||||||
|
high = hindo_num - 1;
|
||||||
|
while(low <= high) {
|
||||||
low = 0; high = hindo_num - 1;
|
|
||||||
while (low <= high) {
|
|
||||||
mid = (low + high) / 2;
|
mid = (low + high) / 2;
|
||||||
i = string_cmp(hindo[mid]->kptr, hindo[mid]->klen, p, l);
|
i = string_cmp(hindo[mid]->kptr, hindo[mid]->klen, p, l);
|
||||||
if (i > 0)
|
if(i > 0)
|
||||||
high = mid - 1;
|
high = mid - 1;
|
||||||
else if (i < 0)
|
else if(i < 0)
|
||||||
low = ++mid;
|
low = ++mid;
|
||||||
|
|
||||||
else {
|
else {
|
||||||
hrec = hindo[mid];
|
hrec = hindo[mid];
|
||||||
|
|
||||||
|
reset_asshuku(hrec);
|
||||||
|
|
||||||
reset_assyuku(hrec);
|
if(hrec->exist > 0)
|
||||||
|
hrec->exist -= 1;
|
||||||
|
else if(hrec->hindo > 0)
|
||||||
|
hrec->hindo -= 1;
|
||||||
|
|
||||||
if (hrec -> exist > 0)
|
if(hrec->exist + hrec->hindo == 0) {
|
||||||
hrec -> exist -= 1;
|
while(++mid < hindo_num) {
|
||||||
else if (hrec -> hindo > 0)
|
|
||||||
hrec -> hindo -= 1;
|
|
||||||
|
|
||||||
|
|
||||||
if (hrec -> exist + hrec -> hindo == 0) {
|
|
||||||
while (++mid < hindo_num) {
|
|
||||||
hindo[mid - 1] = hindo[mid];
|
hindo[mid - 1] = hindo[mid];
|
||||||
}
|
}
|
||||||
hindo_num--;
|
hindo_num--;
|
||||||
Free(hrec -> kptr);
|
Free(hrec->kptr);
|
||||||
Free(hrec);
|
Free(hrec);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
|
|
||||||
set_assyuku(hrec);
|
set_asshuku(hrec);
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
@ -426,24 +351,19 @@ reset_hindo(unsigned char* p, int l)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void knjhnd_set(unsigned char* p, int l) {
|
||||||
void
|
unsigned char* kp1;
|
||||||
knjhnd_set(unsigned char* p, int l)
|
unsigned char* kp2;
|
||||||
{
|
|
||||||
unsigned char *kp1;
|
|
||||||
unsigned char *kp2;
|
|
||||||
int i;
|
int i;
|
||||||
int kl1;
|
int kl1;
|
||||||
unsigned char tmp[MaxKanjiLength * 2 + MaxAtrNumber * 2 + 1];
|
unsigned char tmp[MaxKanjiLength * 2 + MaxAtrNumber * 2 + 1];
|
||||||
|
|
||||||
for (kp1 = p, kl1 = l ; kl1 > 0 ; ) {
|
for(kp1 = p, kl1 = l; kl1 > 0;) {
|
||||||
|
|
||||||
|
for(i = 0, kp2 = kp1; i < kl1;) {
|
||||||
for (i = 0, kp2 = kp1 ; i < kl1 ; ) {
|
if(codesize(*kp2) == 1) {
|
||||||
if (codesize(*kp2) == 1) {
|
|
||||||
tmp[i++] = *kp2++;
|
tmp[i++] = *kp2++;
|
||||||
}
|
} else if(codesize(*kp2) == 2) {
|
||||||
else if (codesize(*kp2) == 2) {
|
|
||||||
tmp[i++] = *kp2++;
|
tmp[i++] = *kp2++;
|
||||||
tmp[i++] = *kp2++;
|
tmp[i++] = *kp2++;
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -454,30 +374,24 @@ knjhnd_set(unsigned char* p, int l)
|
||||||
set_hindo(tmp, i, l);
|
set_hindo(tmp, i, l);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
kl1 -= codesize(*kp1);
|
kl1 -= codesize(*kp1);
|
||||||
kp1 += codesize(*kp1);
|
kp1 += codesize(*kp1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void knjhnd_reset(unsigned char* p, int l) {
|
||||||
void
|
unsigned char* kp1;
|
||||||
knjhnd_reset(unsigned char* p, int l)
|
unsigned char* kp2;
|
||||||
{
|
|
||||||
unsigned char *kp1;
|
|
||||||
unsigned char *kp2;
|
|
||||||
int i;
|
int i;
|
||||||
int kl1;
|
int kl1;
|
||||||
unsigned char tmp[MaxKanjiLength * 2 + MaxAtrNumber * 2 + 1];
|
unsigned char tmp[MaxKanjiLength * 2 + MaxAtrNumber * 2 + 1];
|
||||||
|
|
||||||
for (kp1 = p, kl1 = l ; kl1 > 0 ; ) {
|
for(kp1 = p, kl1 = l; kl1 > 0;) {
|
||||||
|
|
||||||
|
for(i = 0, kp2 = kp1; i < kl1;) {
|
||||||
for (i = 0, kp2 = kp1 ; i < kl1 ; ) {
|
if(codesize(*kp2) == 1) {
|
||||||
if (codesize(*kp2) == 1) {
|
|
||||||
tmp[i++] = *kp2++;
|
tmp[i++] = *kp2++;
|
||||||
}
|
} else if(codesize(*kp2) == 2) {
|
||||||
else if (codesize(*kp2) == 2) {
|
|
||||||
tmp[i++] = *kp2++;
|
tmp[i++] = *kp2++;
|
||||||
tmp[i++] = *kp2++;
|
tmp[i++] = *kp2++;
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -488,108 +402,90 @@ knjhnd_reset(unsigned char* p, int l)
|
||||||
reset_hindo(tmp, i);
|
reset_hindo(tmp, i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
kl1 -= codesize(*kp1);
|
kl1 -= codesize(*kp1);
|
||||||
kp1 += codesize(*kp1);
|
kp1 += codesize(*kp1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
check_assyuku(HindoRec* p, HindoRec* q)
|
check_asshuku(HindoRec* p, HindoRec* q) {
|
||||||
{
|
|
||||||
unsigned char ptmp[128], qtmp[128];
|
unsigned char ptmp[128], qtmp[128];
|
||||||
int plen;
|
int plen;
|
||||||
int qlen;
|
int qlen;
|
||||||
|
|
||||||
|
plen = make_knjstr(p->kptr, p->klen, ptmp);
|
||||||
|
|
||||||
plen = make_knjstr(p -> kptr, p -> klen, ptmp);
|
qlen = make_knjstr(q->kptr, q->klen, qtmp);
|
||||||
|
|
||||||
|
if(bubun_str(ptmp, plen, qtmp, qlen)) {
|
||||||
qlen = make_knjstr(q -> kptr, q -> klen, qtmp);
|
|
||||||
|
|
||||||
|
|
||||||
if (bubun_str(ptmp, plen, qtmp, qlen)) {
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(overlap_str(ptmp, plen, qtmp, qlen))
|
||||||
if (overlap_str(ptmp, plen, qtmp, qlen))
|
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int decide_knjask(void) {
|
||||||
int
|
|
||||||
decide_knjask(void)
|
|
||||||
{
|
|
||||||
int i, j;
|
int i, j;
|
||||||
AssyukuRec *p;
|
AsshukuRec* p;
|
||||||
HindoRec *q;
|
HindoRec* q;
|
||||||
unsigned char *r;
|
unsigned char* r;
|
||||||
int len = 0;
|
int len = 0;
|
||||||
|
|
||||||
askknj_num = 0;
|
askknj_num = 0;
|
||||||
|
|
||||||
|
for(p = asshuku; p; p = p->anext) {
|
||||||
|
|
||||||
for (p = assyuku ; p ; p = p -> anext) {
|
if(p->len <= 0) break;
|
||||||
|
|
||||||
|
for(q = p->nrec; q; q = q->anext) {
|
||||||
|
|
||||||
if (p -> len <= 0) break;
|
i = q->klen;
|
||||||
|
r = q->kptr;
|
||||||
|
if(i > 2) {
|
||||||
for (q = p -> nrec ; q ; q = q -> anext) {
|
while(i > 0) {
|
||||||
|
if((*r & KanjiModeMask) == OffsetAsshuku) {
|
||||||
|
|
||||||
i = q -> klen;
|
|
||||||
r = q -> kptr;
|
|
||||||
if (i > 2) {
|
|
||||||
while (i > 0) {
|
|
||||||
if ((*r & KanjiModeMask)
|
|
||||||
== OffsetAssyuku) {
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
j = codesize(*r);
|
j = codesize(*r);
|
||||||
i -= j;
|
i -= j;
|
||||||
r += j;
|
r += j;
|
||||||
}
|
}
|
||||||
if (i) continue;
|
if(i) continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (askknj_num) {
|
if(askknj_num) {
|
||||||
|
|
||||||
for (i = 0 ; i < askknj_num ; i++) {
|
for(i = 0; i < askknj_num; i++) {
|
||||||
if (check_assyuku(askknj[i], q))
|
if(check_asshuku(askknj[i], q))
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(i >= askknj_num) {
|
||||||
if (i >= askknj_num) {
|
|
||||||
askknj[askknj_num++] = q;
|
askknj[askknj_num++] = q;
|
||||||
len += p -> len;
|
len += p->len;
|
||||||
if (askknj_num >= MaxKnjAskNumber)
|
if(askknj_num >= MaxKnjAskNumber)
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
askknj[askknj_num++] = q;
|
askknj[askknj_num++] = q;
|
||||||
len += p -> len;
|
len += p->len;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
end:
|
end:
|
||||||
{
|
{
|
||||||
int i, j, len;
|
int i, j, len;
|
||||||
unsigned char *p;
|
unsigned char* p;
|
||||||
|
|
||||||
for (i = 0 ; i < askknj_num ; i++) {
|
for(i = 0; i < askknj_num; i++) {
|
||||||
len = askknj[i] -> klen;
|
len = askknj[i]->klen;
|
||||||
p = askknj[i] -> kptr;
|
p = askknj[i]->kptr;
|
||||||
if (len <= 2) continue;
|
if(len <= 2) continue;
|
||||||
while (len > 0) {
|
while(len > 0) {
|
||||||
if ((*p & KanjiModeMask) == OffsetAssyuku) {
|
if((*p & KanjiModeMask) == OffsetAsshuku) {
|
||||||
printf("\245\252\245\325\245\273\245\303\245\310\260\265\275\314\244\362\264\336\244\340 %d\n", i);
|
printf("\245\252\245\325\245\273\245\303\245\310\260\265\275\314\244\362\264\336\244\340 %d\n", i);
|
||||||
}
|
}
|
||||||
j = codesize(*p);
|
j = codesize(*p);
|
||||||
|
|
@ -601,13 +497,10 @@ end:
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void clear_hindo(void) {
|
||||||
void
|
|
||||||
clear_hindo(void)
|
|
||||||
{
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0 ; i < hindo_num ; i++) {
|
for(i = 0; i < hindo_num; i++) {
|
||||||
Free(hindo[i]->kptr);
|
Free(hindo[i]->kptr);
|
||||||
Free(hindo[i]);
|
Free(hindo[i]);
|
||||||
}
|
}
|
||||||
|
|
@ -615,15 +508,12 @@ clear_hindo(void)
|
||||||
kanji_num = 0;
|
kanji_num = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void clear_asshuku(void) {
|
||||||
|
AsshukuRec* p;
|
||||||
|
|
||||||
void
|
while(asshuku) {
|
||||||
clear_assyuku(void)
|
p = asshuku;
|
||||||
{
|
asshuku = asshuku->anext;
|
||||||
AssyukuRec *p;
|
|
||||||
|
|
||||||
while (assyuku) {
|
|
||||||
p = assyuku;
|
|
||||||
assyuku = assyuku -> anext;
|
|
||||||
Free(p);
|
Free(p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
249
hinshi.c
Normal file
249
hinshi.c
Normal file
|
|
@ -0,0 +1,249 @@
|
||||||
|
/*
|
||||||
|
* 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.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "sj_hinshi.h"
|
||||||
|
|
||||||
|
static struct hlist {
|
||||||
|
int code;
|
||||||
|
char* str;
|
||||||
|
} hinshi[] = {
|
||||||
|
{MEISHI_1, "\314\276\273\354"},
|
||||||
|
{MEISHI_1, "\314\276\243\261"},
|
||||||
|
{MEISHI_2, "\314\276\243\262"},
|
||||||
|
{MEISHI_3, "\314\276\243\263"},
|
||||||
|
{MEISHI_4, "\314\276\243\264"},
|
||||||
|
{MEISHI_5, "\314\276\243\265"},
|
||||||
|
{MEISHI_6, "\314\276\243\266"},
|
||||||
|
{MEISHI_7, "\314\276\243\267"},
|
||||||
|
{MEISHI_8, "\314\276\243\270"},
|
||||||
|
{MEISHI_9, "\314\276\243\271"},
|
||||||
|
{MEISHI_10, "\314\276\243\261\243\260"},
|
||||||
|
{MEISHI_11, "\314\276\243\261\243\261"},
|
||||||
|
{MEISHI_20, "\314\276\243\262\243\260"},
|
||||||
|
{D_MEISHI_1, "\302\345\314\276\273\354"},
|
||||||
|
{D_MEISHI_1, "\302\345\243\261"},
|
||||||
|
{D_MEISHI_2, "\302\345\243\262"},
|
||||||
|
{D_MEISHI_3, "\302\345\243\263"},
|
||||||
|
{D_MEISHI_4, "\302\345\243\264"},
|
||||||
|
{D_MEISHI_5, "\302\345\243\265"},
|
||||||
|
{D_MEISHI_6, "\302\345\243\266"},
|
||||||
|
{MYOUJI, "\311\304\273\372"},
|
||||||
|
{NAMAE, "\314\276\301\260"},
|
||||||
|
{KIGYOU, "\264\353\266\310"},
|
||||||
|
{TIMEI, "\303\317\314\276"},
|
||||||
|
{KEN_KU, "\270\251\241\277\266\350\314\276"},
|
||||||
|
{KEN_KU, "\270\251\266\350"},
|
||||||
|
{RENTAISHI, "\317\242\302\316\273\354"},
|
||||||
|
{RENTAISHI, "\317\242\302\316"},
|
||||||
|
{SETSUZOKU, "\300\334\302\263\273\354"},
|
||||||
|
{SETSUZOKU, "\300\334\302\263"},
|
||||||
|
{KANDOUSHI, "\264\266\306\260"},
|
||||||
|
{JOSUUSHI, "\275\365\277\364\273\354"},
|
||||||
|
{JOSUUSHI, "\275\365\277\364"},
|
||||||
|
{SUUSHI, "\277\364\273\354"},
|
||||||
|
{SETTOU_1, "\300\334\306\254\270\354"},
|
||||||
|
{SETTOU_1, "\300\334\306\254\243\261"},
|
||||||
|
{SETTOU_2, "\300\334\306\254\243\262"},
|
||||||
|
{SETTOU_3, "\300\334\306\254\243\263"},
|
||||||
|
{SETTOU_4, "\300\334\306\254\243\264"},
|
||||||
|
{SETTOU_5, "\300\334\306\254\243\265"},
|
||||||
|
{SETSUBI_1, "\300\334\310\370\270\354"},
|
||||||
|
{SETSUBI_1, "\300\334\310\370\243\261"},
|
||||||
|
{SETSUBI_2, "\300\334\310\370\243\262"},
|
||||||
|
{SETSUBI_3, "\300\334\310\370\243\263"},
|
||||||
|
{SETSUBI_4, "\300\334\310\370\243\264"},
|
||||||
|
{SETSUBI_5, "\300\334\310\370\243\265"},
|
||||||
|
{SETSUBI_6, "\300\334\310\370\243\266"},
|
||||||
|
{SETSUBI_7, "\300\334\310\370\243\267"},
|
||||||
|
{SETSUBI_8, "\300\334\310\370\243\270"},
|
||||||
|
{SETSUBI_9, "\300\334\310\370\243\271"},
|
||||||
|
{FUKUSHI_1, "\311\373\273\354"},
|
||||||
|
{FUKUSHI_1, "\311\373\243\261"},
|
||||||
|
{FUKUSHI_2, "\311\373\243\262"},
|
||||||
|
{FUKUSHI_3, "\311\373\243\263"},
|
||||||
|
{FUKUSHI_4, "\311\373\243\264"},
|
||||||
|
{FUKUSHI_5, "\311\373\243\265"},
|
||||||
|
{FUKUSHI_6, "\311\373\243\266"},
|
||||||
|
{FUKUSHI_7, "\311\373\243\267"},
|
||||||
|
{FUKUSHI_8, "\311\373\243\270"},
|
||||||
|
{FUKUSHI_9, "\311\373\243\271"},
|
||||||
|
{JOSUUSHI2, "\275\365\277\364\243\262"},
|
||||||
|
{KEIYOUSHI_1, "\267\301\315\306\273\354"},
|
||||||
|
{KEIYOUSHI_1, "\267\301\243\261"},
|
||||||
|
{KEIYOUSHI_2, "\267\301\243\262"},
|
||||||
|
{KEIYOUSHI_3, "\267\301\243\263"},
|
||||||
|
{KEIYOUSHI_4, "\267\301\243\264"},
|
||||||
|
{KEIYOUSHI_5, "\267\301\243\265"},
|
||||||
|
{KEIYOUSHI_6, "\267\301\243\266"},
|
||||||
|
{KEIYOUSHI_7, "\267\301\243\267"},
|
||||||
|
{KEIYOUSHI_8, "\267\301\243\270"},
|
||||||
|
{KEIYOUSHI_9, "\267\301\243\271"},
|
||||||
|
{KEIYOUSHI_10, "\267\301\243\261\243\260"},
|
||||||
|
{KEIYOUSHI_11, "\267\301\243\261\243\261"},
|
||||||
|
{KE_DOUSHI_1, "\267\301\315\306\306\260\273\354"},
|
||||||
|
{KE_DOUSHI_1, "\267\301\306\260\243\261"},
|
||||||
|
{KE_DOUSHI_2, "\267\301\306\260\243\262"},
|
||||||
|
{KE_DOUSHI_3, "\267\301\306\260\243\263"},
|
||||||
|
{KE_DOUSHI_4, "\267\301\306\260\243\264"},
|
||||||
|
{KE_DOUSHI_5, "\267\301\306\260\243\265"},
|
||||||
|
{KE_DOUSHI_6, "\267\301\306\260\243\266"},
|
||||||
|
{KE_DOUSHI_7, "\267\301\306\260\243\267"},
|
||||||
|
{KE_DOUSHI_8, "\267\301\306\260\243\270"},
|
||||||
|
{KE_DOUSHI_9, "\267\301\306\260\243\271"},
|
||||||
|
{DO_SAHEN, "\306\260\241\246\245\265\312\321"},
|
||||||
|
{DO_SAHEN, "\245\265\312\321"},
|
||||||
|
{DO_ZAHEN, "\306\260\241\246\245\266\312\321"},
|
||||||
|
{DO_ZAHEN, "\245\266\312\321"},
|
||||||
|
{DO_1DAN_1, "\306\260\241\246\260\354\303\312"},
|
||||||
|
{DO_1DAN_1, "\260\354\303\312\243\261"},
|
||||||
|
{DO_KAGO_1, "\306\260\241\246\245\253\270\336"},
|
||||||
|
{DO_KAGO_1, "\245\253\270\336\243\261"},
|
||||||
|
{DO_GAGO_1, "\306\260\241\246\245\254\270\336"},
|
||||||
|
{DO_GAGO_1, "\245\254\270\336\243\261"},
|
||||||
|
{DO_SAGO_1, "\306\260\241\246\245\265\270\336"},
|
||||||
|
{DO_SAGO_1, "\245\265\270\336\243\261"},
|
||||||
|
{DO_TAGO_1, "\306\260\241\246\245\277\270\336"},
|
||||||
|
{DO_TAGO_1, "\245\277\270\336\243\261"},
|
||||||
|
{DO_NAGO_1, "\306\260\241\246\245\312\270\336"},
|
||||||
|
{DO_NAGO_1, "\245\312\270\336"},
|
||||||
|
{DO_BAGO_1, "\306\260\241\246\245\320\270\336"},
|
||||||
|
{DO_BAGO_1, "\245\320\270\336\243\261"},
|
||||||
|
{DO_MAGO_1, "\306\260\241\246\245\336\270\336"},
|
||||||
|
{DO_MAGO_1, "\245\336\270\336\243\261"},
|
||||||
|
{DO_RAGO_1, "\306\260\241\246\245\351\270\336"},
|
||||||
|
{DO_RAGO_1, "\245\351\270\336\243\261"},
|
||||||
|
{DO_WAGO_1, "\306\260\241\246\245\357\270\336"},
|
||||||
|
{DO_WAGO_1, "\245\357\270\336\243\261"},
|
||||||
|
{DO_1DAN_2, "\260\354\303\312\243\262"},
|
||||||
|
{DO_KAGO_2, "\245\253\270\336\243\262"},
|
||||||
|
{DO_GAGO_2, "\245\254\270\336\243\262"},
|
||||||
|
{DO_SAGO_2, "\245\265\270\336\243\262"},
|
||||||
|
{DO_TAGO_2, "\245\277\270\336\243\262"},
|
||||||
|
{DO_BAGO_2, "\245\320\270\336\243\262"},
|
||||||
|
{DO_MAGO_2, "\245\336\270\336\243\262"},
|
||||||
|
{DO_RAGO_2, "\245\351\270\336\243\262"},
|
||||||
|
{DO_WAGO_2, "\245\357\270\336\243\262"},
|
||||||
|
{DO_KAGO_5, "\245\253\270\336\243\265"},
|
||||||
|
{DO_GAGO_5, "\245\254\270\336\243\265"},
|
||||||
|
{DO_SAGO_5, "\245\265\270\336\243\265"},
|
||||||
|
{DO_TAGO_5, "\245\277\270\336\243\265"},
|
||||||
|
{DO_BAGO_5, "\245\320\270\336\243\265"},
|
||||||
|
{DO_MAGO_5, "\245\336\270\336\243\265"},
|
||||||
|
{DO_RAGO_5, "\245\351\270\336\243\265"},
|
||||||
|
{DO_WAGO_5, "\245\357\270\336\243\265"},
|
||||||
|
{DO_KAGO_6, "\245\253\270\336\243\266"},
|
||||||
|
{DO_GAGO_6, "\245\254\270\336\243\266"},
|
||||||
|
{DO_SAGO_6, "\245\265\270\336\243\266"},
|
||||||
|
{DO_TAGO_6, "\245\277\270\336\243\266"},
|
||||||
|
{DO_BAGO_6, "\245\320\270\336\243\266"},
|
||||||
|
{DO_MAGO_6, "\245\336\270\336\243\266"},
|
||||||
|
{DO_RAGO_6, "\245\351\270\336\243\266"},
|
||||||
|
{DO_WAGO_6, "\245\357\270\336\243\266"},
|
||||||
|
{DO_1DAN_3, "\260\354\303\312\243\263"},
|
||||||
|
{DO_KAGO_3, "\245\253\270\336\243\263"},
|
||||||
|
{DO_GAGO_3, "\245\254\270\336\243\263"},
|
||||||
|
{DO_SAGO_3, "\245\265\270\336\243\263"},
|
||||||
|
{DO_TAGO_3, "\245\277\270\336\243\263"},
|
||||||
|
{DO_BAGO_3, "\245\320\270\336\243\263"},
|
||||||
|
{DO_MAGO_3, "\245\336\270\336\243\263"},
|
||||||
|
{DO_RAGO_3, "\245\351\270\336\243\263"},
|
||||||
|
{DO_WAGO_3, "\245\357\270\336\243\263"},
|
||||||
|
{DO_1DAN_4, "\260\354\303\312\243\264"},
|
||||||
|
{DO_KAGO_4, "\245\253\270\336\243\264"},
|
||||||
|
{DO_GAGO_4, "\245\254\270\336\243\264"},
|
||||||
|
{DO_SAGO_4, "\245\265\270\336\243\264"},
|
||||||
|
{DO_TAGO_4, "\245\277\270\336\243\264"},
|
||||||
|
{DO_BAGO_4, "\245\320\270\336\243\264"},
|
||||||
|
{DO_MAGO_4, "\245\336\270\336\243\264"},
|
||||||
|
{DO_RAGO_4, "\245\351\270\336\243\264"},
|
||||||
|
{DO_WAGO_4, "\245\357\270\336\243\264"},
|
||||||
|
{DO_KAGO_7, "\245\253\270\336\243\267"},
|
||||||
|
{DO_GAGO_7, "\245\254\270\336\243\267"},
|
||||||
|
{DO_SAGO_7, "\245\265\270\336\243\267"},
|
||||||
|
{DO_TAGO_7, "\245\277\270\336\243\267"},
|
||||||
|
{DO_BAGO_7, "\245\320\270\336\243\267"},
|
||||||
|
{DO_MAGO_7, "\245\336\270\336\243\267"},
|
||||||
|
{DO_RAGO_7, "\245\351\270\336\243\267"},
|
||||||
|
{DO_WAGO_7, "\245\357\270\336\243\267"},
|
||||||
|
{DO_KAGO_8, "\245\253\270\336\243\270"},
|
||||||
|
{DO_GAGO_8, "\245\254\270\336\243\270"},
|
||||||
|
{DO_SAGO_8, "\245\265\270\336\243\270"},
|
||||||
|
{DO_TAGO_8, "\245\277\270\336\243\270"},
|
||||||
|
{DO_BAGO_8, "\245\320\270\336\243\270"},
|
||||||
|
{DO_MAGO_8, "\245\336\270\336\243\270"},
|
||||||
|
{DO_RAGO_8, "\245\351\270\336\243\270"},
|
||||||
|
{DO_WAGO_8, "\245\357\270\336\243\270"},
|
||||||
|
{SP_SA_MI1, "\245\265\312\321\314\244\243\261"},
|
||||||
|
{SP_SA_MI2, "\245\265\312\321\314\244\243\262"},
|
||||||
|
{SP_SA_YOU, "\245\265\312\321\314\244\315\321"},
|
||||||
|
{SP_SA_SHU, "\245\265\312\321\275\252\302\316"},
|
||||||
|
{SP_SA_KAT, "\245\265\312\321\262\276"},
|
||||||
|
{SP_SA_ME1, "\245\265\312\321\314\277\243\261"},
|
||||||
|
{SP_SA_ME2, "\245\265\312\321\314\277\243\262"},
|
||||||
|
{SP_KA_MIZ, "\245\253\312\321\314\244"},
|
||||||
|
{SP_KA_YOU, "\245\253\312\321\315\321"},
|
||||||
|
{SP_KA_SHU, "\245\253\312\321\275\252\302\316"},
|
||||||
|
{SP_KA_KAT, "\245\253\312\321\262\276"},
|
||||||
|
{SP_KA_MEI, "\245\253\312\321\314\277"},
|
||||||
|
{TEINEI1, "\303\372\307\253\243\261"},
|
||||||
|
{TEINEI2, "\303\372\307\253\243\262"},
|
||||||
|
{SP_KA_ONB, "\245\253\270\336\262\273\312\330"},
|
||||||
|
{SP_FUKUSHI, "\306\303\274\354\311\373"},
|
||||||
|
{AISATSU, "\260\247\273\242"},
|
||||||
|
{SP_KEIYOUSHI, "\306\303\274\354\267\301\315\306"},
|
||||||
|
{TANKANJI, "\303\261\264\301\273\372"},
|
||||||
|
{TANKANJI, "\303\261\264\301"},
|
||||||
|
{IKKATU, "\260\354\263\347"},
|
||||||
|
{0, 0}};
|
||||||
|
|
||||||
|
char* hns2str(code)
|
||||||
|
int code;
|
||||||
|
{
|
||||||
|
struct hlist* p;
|
||||||
|
|
||||||
|
for(p = hinshi; p->code; p++) {
|
||||||
|
if(p->code == code)
|
||||||
|
return p->str;
|
||||||
|
}
|
||||||
|
|
||||||
|
return "ERROR";
|
||||||
|
}
|
||||||
|
|
||||||
|
int str2hns(str)
|
||||||
|
char* str;
|
||||||
|
{
|
||||||
|
struct hlist* p;
|
||||||
|
|
||||||
|
for(p = hinshi; p->code; p++) {
|
||||||
|
if(strcmp(p->str, str) == 0)
|
||||||
|
return p->code;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
259
hinsi.c
259
hinsi.c
|
|
@ -1,259 +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: hinsi.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:03:36 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include "sj_hinsi.h"
|
|
||||||
|
|
||||||
static struct hlist {
|
|
||||||
int code;
|
|
||||||
char *str;
|
|
||||||
} hinsi[] = {
|
|
||||||
{MEISI_1, "\314\276\273\354"},
|
|
||||||
{MEISI_1, "\314\276\243\261"},
|
|
||||||
{MEISI_2, "\314\276\243\262"},
|
|
||||||
{MEISI_3, "\314\276\243\263"},
|
|
||||||
{MEISI_4, "\314\276\243\264"},
|
|
||||||
{MEISI_5, "\314\276\243\265"},
|
|
||||||
{MEISI_6, "\314\276\243\266"},
|
|
||||||
{MEISI_7, "\314\276\243\267"},
|
|
||||||
{MEISI_8, "\314\276\243\270"},
|
|
||||||
{MEISI_9, "\314\276\243\271"},
|
|
||||||
{MEISI_10, "\314\276\243\261\243\260"},
|
|
||||||
{MEISI_11, "\314\276\243\261\243\261"},
|
|
||||||
{MEISI_20, "\314\276\243\262\243\260"},
|
|
||||||
{D_MEISI_1, "\302\345\314\276\273\354"},
|
|
||||||
{D_MEISI_1, "\302\345\243\261"},
|
|
||||||
{D_MEISI_2, "\302\345\243\262"},
|
|
||||||
{D_MEISI_3, "\302\345\243\263"},
|
|
||||||
{D_MEISI_4, "\302\345\243\264"},
|
|
||||||
{D_MEISI_5, "\302\345\243\265"},
|
|
||||||
{D_MEISI_6, "\302\345\243\266"},
|
|
||||||
{MYOUJI, "\311\304\273\372"},
|
|
||||||
{NAMAE, "\314\276\301\260"},
|
|
||||||
{KIGYOU, "\264\353\266\310"},
|
|
||||||
{TIMEI, "\303\317\314\276"},
|
|
||||||
{KEN_KU, "\270\251\241\277\266\350\314\276"},
|
|
||||||
{KEN_KU, "\270\251\266\350"},
|
|
||||||
{RENTAISI, "\317\242\302\316\273\354"},
|
|
||||||
{RENTAISI, "\317\242\302\316"},
|
|
||||||
{SETUZOKU, "\300\334\302\263\273\354"},
|
|
||||||
{SETUZOKU, "\300\334\302\263"},
|
|
||||||
{KANDOUSI, "\264\266\306\260"},
|
|
||||||
{JOSUUSI, "\275\365\277\364\273\354"},
|
|
||||||
{JOSUUSI, "\275\365\277\364"},
|
|
||||||
{SUUSI, "\277\364\273\354"},
|
|
||||||
{SETTOU_1, "\300\334\306\254\270\354"},
|
|
||||||
{SETTOU_1, "\300\334\306\254\243\261"},
|
|
||||||
{SETTOU_2, "\300\334\306\254\243\262"},
|
|
||||||
{SETTOU_3, "\300\334\306\254\243\263"},
|
|
||||||
{SETTOU_4, "\300\334\306\254\243\264"},
|
|
||||||
{SETTOU_5, "\300\334\306\254\243\265"},
|
|
||||||
{SETUBI_1, "\300\334\310\370\270\354"},
|
|
||||||
{SETUBI_1, "\300\334\310\370\243\261"},
|
|
||||||
{SETUBI_2, "\300\334\310\370\243\262"},
|
|
||||||
{SETUBI_3, "\300\334\310\370\243\263"},
|
|
||||||
{SETUBI_4, "\300\334\310\370\243\264"},
|
|
||||||
{SETUBI_5, "\300\334\310\370\243\265"},
|
|
||||||
{SETUBI_6, "\300\334\310\370\243\266"},
|
|
||||||
{SETUBI_7, "\300\334\310\370\243\267"},
|
|
||||||
{SETUBI_8, "\300\334\310\370\243\270"},
|
|
||||||
{SETUBI_9, "\300\334\310\370\243\271"},
|
|
||||||
{FUKUSI_1, "\311\373\273\354"},
|
|
||||||
{FUKUSI_1, "\311\373\243\261"},
|
|
||||||
{FUKUSI_2, "\311\373\243\262"},
|
|
||||||
{FUKUSI_3, "\311\373\243\263"},
|
|
||||||
{FUKUSI_4, "\311\373\243\264"},
|
|
||||||
{FUKUSI_5, "\311\373\243\265"},
|
|
||||||
{FUKUSI_6, "\311\373\243\266"},
|
|
||||||
{FUKUSI_7, "\311\373\243\267"},
|
|
||||||
{FUKUSI_8, "\311\373\243\270"},
|
|
||||||
{FUKUSI_9, "\311\373\243\271"},
|
|
||||||
{JOSUUSI2, "\275\365\277\364\243\262"},
|
|
||||||
{KEIYOUSI_1, "\267\301\315\306\273\354"},
|
|
||||||
{KEIYOUSI_1, "\267\301\243\261"},
|
|
||||||
{KEIYOUSI_2, "\267\301\243\262"},
|
|
||||||
{KEIYOUSI_3, "\267\301\243\263"},
|
|
||||||
{KEIYOUSI_4, "\267\301\243\264"},
|
|
||||||
{KEIYOUSI_5, "\267\301\243\265"},
|
|
||||||
{KEIYOUSI_6, "\267\301\243\266"},
|
|
||||||
{KEIYOUSI_7, "\267\301\243\267"},
|
|
||||||
{KEIYOUSI_8, "\267\301\243\270"},
|
|
||||||
{KEIYOUSI_9, "\267\301\243\271"},
|
|
||||||
{KEIYOUSI_10, "\267\301\243\261\243\260"},
|
|
||||||
{KEIYOUSI_11, "\267\301\243\261\243\261"},
|
|
||||||
{KE_DOUSI_1, "\267\301\315\306\306\260\273\354"},
|
|
||||||
{KE_DOUSI_1, "\267\301\306\260\243\261"},
|
|
||||||
{KE_DOUSI_2, "\267\301\306\260\243\262"},
|
|
||||||
{KE_DOUSI_3, "\267\301\306\260\243\263"},
|
|
||||||
{KE_DOUSI_4, "\267\301\306\260\243\264"},
|
|
||||||
{KE_DOUSI_5, "\267\301\306\260\243\265"},
|
|
||||||
{KE_DOUSI_6, "\267\301\306\260\243\266"},
|
|
||||||
{KE_DOUSI_7, "\267\301\306\260\243\267"},
|
|
||||||
{KE_DOUSI_8, "\267\301\306\260\243\270"},
|
|
||||||
{KE_DOUSI_9, "\267\301\306\260\243\271"},
|
|
||||||
{DO_SAHEN, "\306\260\241\246\245\265\312\321"},
|
|
||||||
{DO_SAHEN, "\245\265\312\321"},
|
|
||||||
{DO_ZAHEN, "\306\260\241\246\245\266\312\321"},
|
|
||||||
{DO_ZAHEN, "\245\266\312\321"},
|
|
||||||
{DO_1DAN_1, "\306\260\241\246\260\354\303\312"},
|
|
||||||
{DO_1DAN_1, "\260\354\303\312\243\261"},
|
|
||||||
{DO_KAGO_1, "\306\260\241\246\245\253\270\336"},
|
|
||||||
{DO_KAGO_1, "\245\253\270\336\243\261"},
|
|
||||||
{DO_GAGO_1, "\306\260\241\246\245\254\270\336"},
|
|
||||||
{DO_GAGO_1, "\245\254\270\336\243\261"},
|
|
||||||
{DO_SAGO_1, "\306\260\241\246\245\265\270\336"},
|
|
||||||
{DO_SAGO_1, "\245\265\270\336\243\261"},
|
|
||||||
{DO_TAGO_1, "\306\260\241\246\245\277\270\336"},
|
|
||||||
{DO_TAGO_1, "\245\277\270\336\243\261"},
|
|
||||||
{DO_NAGO_1, "\306\260\241\246\245\312\270\336"},
|
|
||||||
{DO_NAGO_1, "\245\312\270\336"},
|
|
||||||
{DO_BAGO_1, "\306\260\241\246\245\320\270\336"},
|
|
||||||
{DO_BAGO_1, "\245\320\270\336\243\261"},
|
|
||||||
{DO_MAGO_1, "\306\260\241\246\245\336\270\336"},
|
|
||||||
{DO_MAGO_1, "\245\336\270\336\243\261"},
|
|
||||||
{DO_RAGO_1, "\306\260\241\246\245\351\270\336"},
|
|
||||||
{DO_RAGO_1, "\245\351\270\336\243\261"},
|
|
||||||
{DO_WAGO_1, "\306\260\241\246\245\357\270\336"},
|
|
||||||
{DO_WAGO_1, "\245\357\270\336\243\261"},
|
|
||||||
{DO_1DAN_2, "\260\354\303\312\243\262"},
|
|
||||||
{DO_KAGO_2, "\245\253\270\336\243\262"},
|
|
||||||
{DO_GAGO_2, "\245\254\270\336\243\262"},
|
|
||||||
{DO_SAGO_2, "\245\265\270\336\243\262"},
|
|
||||||
{DO_TAGO_2, "\245\277\270\336\243\262"},
|
|
||||||
{DO_BAGO_2, "\245\320\270\336\243\262"},
|
|
||||||
{DO_MAGO_2, "\245\336\270\336\243\262"},
|
|
||||||
{DO_RAGO_2, "\245\351\270\336\243\262"},
|
|
||||||
{DO_WAGO_2, "\245\357\270\336\243\262"},
|
|
||||||
{DO_KAGO_5, "\245\253\270\336\243\265"},
|
|
||||||
{DO_GAGO_5, "\245\254\270\336\243\265"},
|
|
||||||
{DO_SAGO_5, "\245\265\270\336\243\265"},
|
|
||||||
{DO_TAGO_5, "\245\277\270\336\243\265"},
|
|
||||||
{DO_BAGO_5, "\245\320\270\336\243\265"},
|
|
||||||
{DO_MAGO_5, "\245\336\270\336\243\265"},
|
|
||||||
{DO_RAGO_5, "\245\351\270\336\243\265"},
|
|
||||||
{DO_WAGO_5, "\245\357\270\336\243\265"},
|
|
||||||
{DO_KAGO_6, "\245\253\270\336\243\266"},
|
|
||||||
{DO_GAGO_6, "\245\254\270\336\243\266"},
|
|
||||||
{DO_SAGO_6, "\245\265\270\336\243\266"},
|
|
||||||
{DO_TAGO_6, "\245\277\270\336\243\266"},
|
|
||||||
{DO_BAGO_6, "\245\320\270\336\243\266"},
|
|
||||||
{DO_MAGO_6, "\245\336\270\336\243\266"},
|
|
||||||
{DO_RAGO_6, "\245\351\270\336\243\266"},
|
|
||||||
{DO_WAGO_6, "\245\357\270\336\243\266"},
|
|
||||||
{DO_1DAN_3, "\260\354\303\312\243\263"},
|
|
||||||
{DO_KAGO_3, "\245\253\270\336\243\263"},
|
|
||||||
{DO_GAGO_3, "\245\254\270\336\243\263"},
|
|
||||||
{DO_SAGO_3, "\245\265\270\336\243\263"},
|
|
||||||
{DO_TAGO_3, "\245\277\270\336\243\263"},
|
|
||||||
{DO_BAGO_3, "\245\320\270\336\243\263"},
|
|
||||||
{DO_MAGO_3, "\245\336\270\336\243\263"},
|
|
||||||
{DO_RAGO_3, "\245\351\270\336\243\263"},
|
|
||||||
{DO_WAGO_3, "\245\357\270\336\243\263"},
|
|
||||||
{DO_1DAN_4, "\260\354\303\312\243\264"},
|
|
||||||
{DO_KAGO_4, "\245\253\270\336\243\264"},
|
|
||||||
{DO_GAGO_4, "\245\254\270\336\243\264"},
|
|
||||||
{DO_SAGO_4, "\245\265\270\336\243\264"},
|
|
||||||
{DO_TAGO_4, "\245\277\270\336\243\264"},
|
|
||||||
{DO_BAGO_4, "\245\320\270\336\243\264"},
|
|
||||||
{DO_MAGO_4, "\245\336\270\336\243\264"},
|
|
||||||
{DO_RAGO_4, "\245\351\270\336\243\264"},
|
|
||||||
{DO_WAGO_4, "\245\357\270\336\243\264"},
|
|
||||||
{DO_KAGO_7, "\245\253\270\336\243\267"},
|
|
||||||
{DO_GAGO_7, "\245\254\270\336\243\267"},
|
|
||||||
{DO_SAGO_7, "\245\265\270\336\243\267"},
|
|
||||||
{DO_TAGO_7, "\245\277\270\336\243\267"},
|
|
||||||
{DO_BAGO_7, "\245\320\270\336\243\267"},
|
|
||||||
{DO_MAGO_7, "\245\336\270\336\243\267"},
|
|
||||||
{DO_RAGO_7, "\245\351\270\336\243\267"},
|
|
||||||
{DO_WAGO_7, "\245\357\270\336\243\267"},
|
|
||||||
{DO_KAGO_8, "\245\253\270\336\243\270"},
|
|
||||||
{DO_GAGO_8, "\245\254\270\336\243\270"},
|
|
||||||
{DO_SAGO_8, "\245\265\270\336\243\270"},
|
|
||||||
{DO_TAGO_8, "\245\277\270\336\243\270"},
|
|
||||||
{DO_BAGO_8, "\245\320\270\336\243\270"},
|
|
||||||
{DO_MAGO_8, "\245\336\270\336\243\270"},
|
|
||||||
{DO_RAGO_8, "\245\351\270\336\243\270"},
|
|
||||||
{DO_WAGO_8, "\245\357\270\336\243\270"},
|
|
||||||
{SP_SA_MI1, "\245\265\312\321\314\244\243\261"},
|
|
||||||
{SP_SA_MI2, "\245\265\312\321\314\244\243\262"},
|
|
||||||
{SP_SA_YOU, "\245\265\312\321\314\244\315\321"},
|
|
||||||
{SP_SA_SYU, "\245\265\312\321\275\252\302\316"},
|
|
||||||
{SP_SA_KAT, "\245\265\312\321\262\276"},
|
|
||||||
{SP_SA_ME1, "\245\265\312\321\314\277\243\261"},
|
|
||||||
{SP_SA_ME2, "\245\265\312\321\314\277\243\262"},
|
|
||||||
{SP_KA_MIZ, "\245\253\312\321\314\244"},
|
|
||||||
{SP_KA_YOU, "\245\253\312\321\315\321"},
|
|
||||||
{SP_KA_SYU, "\245\253\312\321\275\252\302\316"},
|
|
||||||
{SP_KA_KAT, "\245\253\312\321\262\276"},
|
|
||||||
{SP_KA_MEI, "\245\253\312\321\314\277"},
|
|
||||||
{TEINEI1, "\303\372\307\253\243\261"},
|
|
||||||
{TEINEI2, "\303\372\307\253\243\262"},
|
|
||||||
{SP_KA_ONB, "\245\253\270\336\262\273\312\330"},
|
|
||||||
{SP_FUKUSI, "\306\303\274\354\311\373"},
|
|
||||||
{AISATU, "\260\247\273\242"},
|
|
||||||
{SP_KEIYOUSI, "\306\303\274\354\267\301\315\306"},
|
|
||||||
{TANKANJI, "\303\261\264\301\273\372"},
|
|
||||||
{TANKANJI, "\303\261\264\301"},
|
|
||||||
{IKKATU, "\260\354\263\347"},
|
|
||||||
{0, 0}
|
|
||||||
};
|
|
||||||
|
|
||||||
char *hns2str(code)
|
|
||||||
int code;
|
|
||||||
{
|
|
||||||
struct hlist *p;
|
|
||||||
|
|
||||||
for (p = hinsi ; p -> code ; p++) {
|
|
||||||
if (p -> code == code)
|
|
||||||
return p -> str;
|
|
||||||
}
|
|
||||||
|
|
||||||
return "ERROR";
|
|
||||||
}
|
|
||||||
|
|
||||||
int str2hns(str)
|
|
||||||
char *str;
|
|
||||||
{
|
|
||||||
struct hlist *p;
|
|
||||||
|
|
||||||
for (p = hinsi ; p -> code ; p++) {
|
|
||||||
if (strcmp(p -> str, str) == 0)
|
|
||||||
return p -> code;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
28
hzstrlen.c
28
hzstrlen.c
|
|
@ -27,15 +27,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: hzstrlen.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:01:52 $
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include "sj_euc.h"
|
#include "sj_euc.h"
|
||||||
#include "sj_rename.h"
|
#include "sj_rename.h"
|
||||||
#include "sj_typedef.h"
|
#include "sj_typedef.h"
|
||||||
|
|
@ -43,26 +34,21 @@
|
||||||
#include "sj_dict.h"
|
#include "sj_dict.h"
|
||||||
#include "kanakan.h"
|
#include "kanakan.h"
|
||||||
|
|
||||||
int
|
int euc_codesize(unsigned char c) {
|
||||||
euc_codesize (unsigned char c)
|
if((c & KanjiModeMask) == 0x90) {
|
||||||
{
|
|
||||||
if ((c & KanjiModeMask) == 0x90) {
|
|
||||||
return 1;
|
return 1;
|
||||||
} else if (isknj1(c)) {
|
} else if(isknj1(c)) {
|
||||||
return 2;
|
return 2;
|
||||||
} else if (c == SS3) {
|
} else if(c == SS3) {
|
||||||
return 3;
|
return 3;
|
||||||
} else {
|
} else {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int hzstrlen(unsigned char* ptr, int len) {
|
||||||
hzstrlen (unsigned char *ptr, int len)
|
unsigned char* head;
|
||||||
{
|
|
||||||
unsigned char *head;
|
|
||||||
head = ptr;
|
head = ptr;
|
||||||
while (len-- > 0) ptr += euc_codesize(*ptr);
|
while(len-- > 0) ptr += euc_codesize(*ptr);
|
||||||
return (ptr - head);
|
return (ptr - head);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
38
init.c
38
init.c
|
|
@ -27,31 +27,23 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: init.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:01:54 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include "sj_kcnv.h"
|
#include "sj_kcnv.h"
|
||||||
|
|
||||||
void seg_count(dict)
|
void seg_count(dict)
|
||||||
DICT *dict;
|
DICT* dict;
|
||||||
{
|
{
|
||||||
unsigned char *p;
|
unsigned char* p;
|
||||||
unsigned char *q;
|
unsigned char* q;
|
||||||
TypeDicSeg segcnt = 0;
|
TypeDicSeg segcnt = 0;
|
||||||
|
|
||||||
if (dict-> getidx) {
|
if(dict->getidx) {
|
||||||
(*dict->getidx)(dict);
|
(*dict->getidx)(dict);
|
||||||
|
|
||||||
p = idxbuf;
|
p = idxbuf;
|
||||||
q = p + dict->idxlen;
|
q = p + dict->idxlen;
|
||||||
while (p < q && *p) {
|
while(p < q && *p) {
|
||||||
segcnt++;
|
segcnt++;
|
||||||
while (*p++) ;
|
while(*p++);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -59,12 +51,12 @@ DICT *dict;
|
||||||
}
|
}
|
||||||
|
|
||||||
void mkidxtbl(dict)
|
void mkidxtbl(dict)
|
||||||
DICT *dict;
|
DICT* dict;
|
||||||
{
|
{
|
||||||
unsigned char *p;
|
unsigned char* p;
|
||||||
TypeDicSeg seg;
|
TypeDicSeg seg;
|
||||||
|
|
||||||
if (!dict->getidx || !dict->getofs) return;
|
if(!dict->getidx || !dict->getofs) return;
|
||||||
|
|
||||||
seg = 0;
|
seg = 0;
|
||||||
|
|
||||||
|
|
@ -72,15 +64,13 @@ DICT *dict;
|
||||||
(*dict->getofs)(dict);
|
(*dict->getofs)(dict);
|
||||||
|
|
||||||
idxofs[0] = 0;
|
idxofs[0] = 0;
|
||||||
for (p = idxbuf ; p < idxbuf + dict->idxlen && seg < dict->segunit ; ) {
|
for(p = idxbuf; p < idxbuf + dict->idxlen && seg < dict->segunit;) {
|
||||||
idxofs[seg++] = p - idxbuf;
|
idxofs[seg++] = p - idxbuf;
|
||||||
while (*p++) ;
|
while(*p++);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void initwork()
|
void initwork() {
|
||||||
{
|
jrt1st = jrt2nd = maxjptr = (JREC*)0;
|
||||||
jrt1st = jrt2nd = maxjptr = (JREC *)0;
|
clt1st = clt2nd = maxclptr = (CLREC*)0;
|
||||||
clt1st = clt2nd = maxclptr = (CLREC *)0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
12
inkey.h
12
inkey.h
|
|
@ -27,18 +27,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: inkey.h,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:03:44 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define KEYBUFSIZ 520
|
#define KEYBUFSIZ 520
|
||||||
#define KEYBUFLIM 512
|
#define KEYBUFLIM 512
|
||||||
#define AVLEN 3
|
#define AVLEN 3
|
||||||
|
|
||||||
|
|
|
||||||
14
istrcmp.c
14
istrcmp.c
|
|
@ -33,20 +33,18 @@
|
||||||
#include "const.h"
|
#include "const.h"
|
||||||
#include "sj_typedef.h"
|
#include "sj_typedef.h"
|
||||||
|
|
||||||
int
|
int istrcmp(unsigned char* yomip, unsigned char* idxp, int ylen, int ilen) {
|
||||||
istrcmp(unsigned char *yomip, unsigned char *idxp, int ylen, int ilen)
|
while(1) {
|
||||||
{
|
if((ilen | ylen) == 0)
|
||||||
while (1) {
|
|
||||||
if ((ilen | ylen) == 0)
|
|
||||||
return MATCH;
|
return MATCH;
|
||||||
|
|
||||||
if (ilen == 0)
|
if(ilen == 0)
|
||||||
return UNDER;
|
return UNDER;
|
||||||
|
|
||||||
if ((ylen == 0) || (*yomip < *idxp))
|
if((ylen == 0) || (*yomip < *idxp))
|
||||||
return OVER;
|
return OVER;
|
||||||
|
|
||||||
if (*yomip > *idxp)
|
if(*yomip > *idxp)
|
||||||
return UNDER;
|
return UNDER;
|
||||||
|
|
||||||
yomip++;
|
yomip++;
|
||||||
|
|
|
||||||
13
kana.h
13
kana.h
|
|
@ -27,15 +27,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: kana.h,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:03:45 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define ZKATA1 0xa5
|
#define ZKATA1 0xa5
|
||||||
#define ZHIRA1 0xa4
|
#define ZHIRA1 0xa4
|
||||||
#define ZKATAF2 0xa1
|
#define ZKATAF2 0xa1
|
||||||
|
|
@ -45,9 +36,7 @@
|
||||||
#define ZKATAMU 0xe0
|
#define ZKATAMU 0xe0
|
||||||
#define ZHIRAMU 0xe0
|
#define ZHIRAMU 0xe0
|
||||||
|
|
||||||
#define ZKATAn (ZKATAE2-ZKATAF2+1)
|
#define ZKATAn (ZKATAE2 - ZKATAF2 + 1)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define ZEN_SPACE 0xa1a1
|
#define ZEN_SPACE 0xa1a1
|
||||||
#define ZEN_KTEN 0xa1a3
|
#define ZEN_KTEN 0xa1a3
|
||||||
|
|
|
||||||
180
kanakan.h
180
kanakan.h
|
|
@ -38,140 +38,140 @@
|
||||||
#include "Struct.h"
|
#include "Struct.h"
|
||||||
|
|
||||||
/* adddic.c */
|
/* adddic.c */
|
||||||
unsigned int adddic(unsigned char *yomi, unsigned char *kanji, TypeGram hinsi);
|
unsigned int adddic(unsigned char* yomi, unsigned char* kanji, TypeGram hinshi);
|
||||||
|
|
||||||
/* addelcmn.c */
|
/* addelcmn.c */
|
||||||
void set_size(unsigned char *p, int size, int plen, int nlen);
|
void set_size(unsigned char* p, int size, int plen, int nlen);
|
||||||
unsigned int addel_arg(unsigned char *yp, unsigned char *kp, TypeGram grm, unsigned char *nyp, int len);
|
unsigned int addel_arg(unsigned char* yp, unsigned char* kp, TypeGram grm, unsigned char* nyp, int len);
|
||||||
int cvtknj(unsigned char *yomi, unsigned char *knj, unsigned char *dst);
|
int cvtknj(unsigned char* yomi, unsigned char* knj, unsigned char* dst);
|
||||||
int srchkana(unsigned char **ptr, int *saml);
|
int srchkana(unsigned char** ptr, int* saml);
|
||||||
int srchgram(unsigned char *ptr, unsigned char **dst, TypeGram hinsi);
|
int srchgram(unsigned char* ptr, unsigned char** dst, TypeGram hinshi);
|
||||||
int srchkanji(unsigned char **dst, unsigned char *knj, int klen);
|
int srchkanji(unsigned char** dst, unsigned char* knj, int klen);
|
||||||
TypeIdxOfs count_uidx(void);
|
TypeIdxOfs count_uidx(void);
|
||||||
void chg_uidx(TypeDicSeg seg, unsigned char *yomi, int len);
|
void chg_uidx(TypeDicSeg seg, unsigned char* yomi, int len);
|
||||||
|
|
||||||
/* alloc.c */
|
/* alloc.c */
|
||||||
JREC *alloc_jrec(void);
|
JREC* alloc_jrec(void);
|
||||||
void free_jrec(JREC *p);
|
void free_jrec(JREC* p);
|
||||||
CLREC *alloc_clrec(void);
|
CLREC* alloc_clrec(void);
|
||||||
void free_clrec(CLREC *p);
|
void free_clrec(CLREC* p);
|
||||||
|
|
||||||
/* charsize.c */
|
/* charsize.c */
|
||||||
int codesize(unsigned char code);
|
int codesize(unsigned char code);
|
||||||
|
|
||||||
/* cl2knj.c */
|
/* cl2knj.c */
|
||||||
int cl2knj(unsigned char *yomi, int len, unsigned char *kouho);
|
int cl2knj(unsigned char* yomi, int len, unsigned char* kouho);
|
||||||
int nextcl(unsigned char *kouho, int mode);
|
int nextcl(unsigned char* kouho, int mode);
|
||||||
int prevcl(unsigned char *kouho, int mode);
|
int prevcl(unsigned char* kouho, int mode);
|
||||||
int selectnum(void);
|
int selectnum(void);
|
||||||
|
|
||||||
/* clstudy.c */
|
/* clstudy.c */
|
||||||
int clstudy(unsigned char *yomi1, unsigned char *yomi2, STDYOUT *stdy);
|
int clstudy(unsigned char* yomi1, unsigned char* yomi2, STDYOUT* stdy);
|
||||||
void delclsub(unsigned char *target);
|
void delclsub(unsigned char* target);
|
||||||
void mkclidx(void);
|
void mkclidx(void);
|
||||||
|
|
||||||
/* cvtdict.c */
|
/* cvtdict.c */
|
||||||
void cvtdict(KHREC *krec, CLREC *clrec, int flg);
|
void cvtdict(KHREC* krec, CLREC* clrec, int flg);
|
||||||
void cvtminasi(int len);
|
void cvtminasi(int len);
|
||||||
void cvtwakachi(CLREC *clrec);
|
void cvtwakachi(CLREC* clrec);
|
||||||
|
|
||||||
/* cvtkanji.c */
|
/* cvtkanji.c */
|
||||||
void cvtphknj(void);
|
void cvtphknj(void);
|
||||||
void cvtkouho(KHREC *krec);
|
void cvtkouho(KHREC* krec);
|
||||||
void setstyrec(KHREC *krec);
|
void setstyrec(KHREC* krec);
|
||||||
|
|
||||||
/* deldic.c */
|
/* deldic.c */
|
||||||
unsigned int deldic(unsigned char *yomi, unsigned char *kanji, TypeGram hinsi);
|
unsigned int deldic(unsigned char* yomi, unsigned char* kanji, TypeGram hinshi);
|
||||||
|
|
||||||
/* depend.c */
|
/* depend.c */
|
||||||
DictFile *opendict(char *name, char *passwd);
|
DictFile* opendict(char* name, char* passwd);
|
||||||
int closedict(DictFile *dfp);
|
int closedict(DictFile* dfp);
|
||||||
void lock_dict(DictFile *p, int fd);
|
void lock_dict(DictFile* p, int fd);
|
||||||
void unlock_dict(DictFile *p, int fd);
|
void unlock_dict(DictFile* p, int fd);
|
||||||
int is_dict_locked(DictFile *p);
|
int is_dict_locked(DictFile* p);
|
||||||
StdyFile *openstdy(char *name, char *passwd);
|
StdyFile* openstdy(char* name, char* passwd);
|
||||||
int closestdy(StdyFile *sfp);
|
int closestdy(StdyFile* sfp);
|
||||||
int putstydic(void);
|
int putstydic(void);
|
||||||
int putcldic(void);
|
int putcldic(void);
|
||||||
int makedict(char *path, int idxlen, int seglen, int segnum);
|
int makedict(char* path, int idxlen, int seglen, int segnum);
|
||||||
int makestdy(char *path, int stynum, int clstep, int cllen);
|
int makestdy(char* path, int stynum, int clstep, int cllen);
|
||||||
void sj_closeall(void);
|
void sj_closeall(void);
|
||||||
int set_dictpass(DictFile *dp, char *pass);
|
int set_dictpass(DictFile* dp, char* pass);
|
||||||
int set_stdypass(char *pass);
|
int set_stdypass(char* pass);
|
||||||
int set_dictcmnt(DictFile *dp, char *cmnt);
|
int set_dictcmnt(DictFile* dp, char* cmnt);
|
||||||
int set_stdycmnt(char *cmnt);
|
int set_stdycmnt(char* cmnt);
|
||||||
void get_stdysize(int *stynum, int *clstep, int *cllen);
|
void get_stdysize(int* stynum, int* clstep, int* cllen);
|
||||||
|
|
||||||
/* dict.c */
|
/* dict.c */
|
||||||
void get_askknj(void);
|
void get_askknj(void);
|
||||||
int seldict(TypeDicID id);
|
int seldict(TypeDicID id);
|
||||||
unsigned char *get_idxptr(TypeDicSeg seg);
|
unsigned char* get_idxptr(TypeDicSeg seg);
|
||||||
|
|
||||||
/* getkanji.c */
|
/* getkanji.c */
|
||||||
unsigned char *getkan_none(unsigned char *s, unsigned char *d, unsigned char *ym, int yl, int flg);
|
unsigned char* getkan_none(unsigned char* s, unsigned char* d, unsigned char* ym, int yl, int flg);
|
||||||
unsigned char *getkan_hira(unsigned char *s, unsigned char *d, unsigned char *ym, int yl, int flg);
|
unsigned char* getkan_hira(unsigned char* s, unsigned char* d, unsigned char* ym, int yl, int flg);
|
||||||
unsigned char *getkan_kata(unsigned char *s, unsigned char *d, unsigned char *ym, int yl, int flg);
|
unsigned char* getkan_kata(unsigned char* s, unsigned char* d, unsigned char* ym, int yl, int flg);
|
||||||
unsigned char *getkan_knj(unsigned char *s, unsigned char *d, unsigned char *ym, int yl, int flg);
|
unsigned char* getkan_knj(unsigned char* s, unsigned char* d, unsigned char* ym, int yl, int flg);
|
||||||
unsigned char *getkan_ofs(unsigned char *s, unsigned char *d, unsigned char *ym, int yl, int flg);
|
unsigned char* getkan_ofs(unsigned char* s, unsigned char* d, unsigned char* ym, int yl, int flg);
|
||||||
unsigned char *getkan_norm(unsigned char *s, unsigned char *d, unsigned char *ym, int yl, int flg);
|
unsigned char* getkan_norm(unsigned char* s, unsigned char* d, unsigned char* ym, int yl, int flg);
|
||||||
unsigned char *getkan_ascii(unsigned char *s, unsigned char *d, unsigned char *ym, int yl, int flg);
|
unsigned char* getkan_ascii(unsigned char* s, unsigned char* d, unsigned char* ym, int yl, int flg);
|
||||||
int getkanji(unsigned char *ym, int yl, unsigned char *ptr, unsigned char *buf);
|
int getkanji(unsigned char* ym, int yl, unsigned char* ptr, unsigned char* buf);
|
||||||
|
|
||||||
/* getrank.c */
|
/* getrank.c */
|
||||||
void getrank(void);
|
void getrank(void);
|
||||||
|
|
||||||
/* hzstrlen.c */
|
/* hzstrlen.c */
|
||||||
int euc_codesize(unsigned char c);
|
int euc_codesize(unsigned char c);
|
||||||
int hzstrlen(unsigned char *ptr, int len);
|
int hzstrlen(unsigned char* ptr, int len);
|
||||||
|
|
||||||
/* mkbunset.c */
|
/* mkbunsetsu.c */
|
||||||
void mkbunsetu(void);
|
void mkbunsetsu(void);
|
||||||
CLREC* argclrec(int len);
|
CLREC* argclrec(int len);
|
||||||
|
|
||||||
/* mkjiritu.c */
|
/* mkjiritsu.c */
|
||||||
void mkjiritu(int mode);
|
void mkjiritsu(int mode);
|
||||||
JREC *argjrec(int len, JREC *rec);
|
JREC* argjrec(int len, JREC* rec);
|
||||||
|
|
||||||
/* mkkouho.c */
|
/* mkkouho.c */
|
||||||
unsigned char *makekan_none(unsigned char *s, unsigned char *d, int flg);
|
unsigned char* makekan_none(unsigned char* s, unsigned char* d, int flg);
|
||||||
unsigned char *makekan_1byte(unsigned char *s, unsigned char *d, int flg);
|
unsigned char* makekan_1byte(unsigned char* s, unsigned char* d, int flg);
|
||||||
unsigned char *makekan_knj(unsigned char *s, unsigned char *d, int flg);
|
unsigned char* makekan_knj(unsigned char* s, unsigned char* d, int flg);
|
||||||
unsigned char *makekan_ofs(unsigned char *s, unsigned char *d, int flg);
|
unsigned char* makekan_ofs(unsigned char* s, unsigned char* d, int flg);
|
||||||
unsigned char *makekan_norm(unsigned char *s, unsigned char *d, int flg);
|
unsigned char* makekan_norm(unsigned char* s, unsigned char* d, int flg);
|
||||||
unsigned char *makekan_ascii(unsigned char *s, unsigned char *d, int flg);
|
unsigned char* makekan_ascii(unsigned char* s, unsigned char* d, int flg);
|
||||||
void mkkouho(void);
|
void mkkouho(void);
|
||||||
int sel_sjmode(JREC *jrec);
|
int sel_sjmode(JREC* jrec);
|
||||||
|
|
||||||
/* mknumber.c */
|
/* mknumber.c */
|
||||||
void num_type00(unsigned char *s1, unsigned char *s2, JREC *jrec);
|
void num_type00(unsigned char* s1, unsigned char* s2, JREC* jrec);
|
||||||
void num_type01(unsigned char *s1, unsigned char *s2, JREC *jrec);
|
void num_type01(unsigned char* s1, unsigned char* s2, JREC* jrec);
|
||||||
void num_type02(unsigned char *s1, unsigned char *s2, JREC *jrec);
|
void num_type02(unsigned char* s1, unsigned char* s2, JREC* jrec);
|
||||||
void num_type03(unsigned char *s1, unsigned char *s2, JREC *jrec);
|
void num_type03(unsigned char* s1, unsigned char* s2, JREC* jrec);
|
||||||
void num_type04(unsigned char *s1, unsigned char *s2, JREC *jrec);
|
void num_type04(unsigned char* s1, unsigned char* s2, JREC* jrec);
|
||||||
void num_type05(unsigned char *s1, unsigned char *s2, JREC *jrec);
|
void num_type05(unsigned char* s1, unsigned char* s2, JREC* jrec);
|
||||||
void num_type06(unsigned char *s1, unsigned char *s2, JREC *jrec);
|
void num_type06(unsigned char* s1, unsigned char* s2, JREC* jrec);
|
||||||
void num_type07(unsigned char *s1, unsigned char *s2, JREC *jrec);
|
void num_type07(unsigned char* s1, unsigned char* s2, JREC* jrec);
|
||||||
void num_type08(unsigned char *s1, unsigned char *s2, JREC *jrec);
|
void num_type08(unsigned char* s1, unsigned char* s2, JREC* jrec);
|
||||||
void num_type09(unsigned char *s1, unsigned char *s2, JREC *jrec);
|
void num_type09(unsigned char* s1, unsigned char* s2, JREC* jrec);
|
||||||
void num_type10(unsigned char *s1, unsigned char *s2, JREC *jrec);
|
void num_type10(unsigned char* s1, unsigned char* s2, JREC* jrec);
|
||||||
void num_type11(unsigned char *s1, unsigned char *s2, JREC *jrec);
|
void num_type11(unsigned char* s1, unsigned char* s2, JREC* jrec);
|
||||||
void num_type12(unsigned char *s1, unsigned char *s2, JREC *jrec);
|
void num_type12(unsigned char* s1, unsigned char* s2, JREC* jrec);
|
||||||
void num_type13(unsigned char *s1, unsigned char *s2, JREC *jrec);
|
void num_type13(unsigned char* s1, unsigned char* s2, JREC* jrec);
|
||||||
void num_type14(unsigned char *s1, unsigned char *s2, JREC *jrec);
|
void num_type14(unsigned char* s1, unsigned char* s2, JREC* jrec);
|
||||||
|
|
||||||
/* peepdic.c */
|
/* peepdic.c */
|
||||||
int getusr(unsigned char *buf);
|
int getusr(unsigned char* buf);
|
||||||
int nextusr(unsigned char *buf);
|
int nextusr(unsigned char* buf);
|
||||||
int prevusr(unsigned char *buf);
|
int prevusr(unsigned char* buf);
|
||||||
|
|
||||||
/* ph2knj.c */
|
/* ph2knj.c */
|
||||||
int ph2knj(unsigned char *zyomi, unsigned char *kanji, int knjlen);
|
int ph2knj(unsigned char* zyomi, unsigned char* kanji, int knjlen);
|
||||||
|
|
||||||
/* ph_khtbl.c */
|
/* ph_khtbl.c */
|
||||||
int ph_khtbl(CLREC *clrec);
|
int ph_khtbl(CLREC* clrec);
|
||||||
|
|
||||||
/* setconj.c */
|
/* setconj.c */
|
||||||
int setconj(TypeGram hinsi, JREC *jrec, CREC *crec);
|
int setconj(TypeGram hinshi, JREC* jrec, CREC* crec);
|
||||||
|
|
||||||
/* setjrec.c */
|
/* setjrec.c */
|
||||||
int setj_atrb(unsigned char* p);
|
int setj_atrb(unsigned char* p);
|
||||||
|
|
@ -188,35 +188,35 @@ void setcrec(unsigned char* tagp);
|
||||||
void setkouho(CLREC* clrec, TypeDicOfs offs, int mode);
|
void setkouho(CLREC* clrec, TypeDicOfs offs, int mode);
|
||||||
void ph_setkouho(CLREC* clrec, TypeDicOfs offs, STDYIN* sptr);
|
void ph_setkouho(CLREC* clrec, TypeDicOfs offs, STDYIN* sptr);
|
||||||
int hiraknj_atrb(unsigned char*, int*);
|
int hiraknj_atrb(unsigned char*, int*);
|
||||||
int hiraknj_ofs (unsigned char*, int*);
|
int hiraknj_ofs(unsigned char*, int*);
|
||||||
int hiraknj_knj (unsigned char*, int*);
|
int hiraknj_knj(unsigned char*, int*);
|
||||||
int hiraknj_hask(unsigned char*, int*);
|
int hiraknj_hask(unsigned char*, int*);
|
||||||
int hiraknj_kask(unsigned char*, int*);
|
int hiraknj_kask(unsigned char*, int*);
|
||||||
int hiraknj_norm(unsigned char*, int*);
|
int hiraknj_norm(unsigned char*, int*);
|
||||||
int hiraknj_hira(unsigned char*, int*);
|
int hiraknj_hira(unsigned char*, int*);
|
||||||
|
|
||||||
/* setubi.c */
|
/* setsubi.c */
|
||||||
unsigned char *getstb(TypeGram hinsi);
|
unsigned char* getstb(TypeGram hinshi);
|
||||||
void setubi(JREC *rec, unsigned char *stbtbl);
|
void setsubi(JREC* rec, unsigned char* stbtbl);
|
||||||
|
|
||||||
/* skipkstr.c */
|
/* skipkstr.c */
|
||||||
unsigned char* skipkstr(unsigned char* ptr);
|
unsigned char* skipkstr(unsigned char* ptr);
|
||||||
|
|
||||||
/* srchdict.c */
|
/* srchdict.c */
|
||||||
int yomicmp(unsigned char *ptr1, unsigned char *ptr2, unsigned char *saml);
|
int yomicmp(unsigned char* ptr1, unsigned char* ptr2, unsigned char* saml);
|
||||||
unsigned char *srchdict(unsigned char *tagp);
|
unsigned char* srchdict(unsigned char* tagp);
|
||||||
|
|
||||||
/* srchidx.c */
|
/* srchidx.c */
|
||||||
TypeDicSeg srchidx(TypeDicSeg low, int len);
|
TypeDicSeg srchidx(TypeDicSeg low, int len);
|
||||||
|
|
||||||
/* srchnum.c */
|
/* srchnum.c */
|
||||||
void srchnum(void);
|
void srchnum(void);
|
||||||
void setwdnum(unsigned char *p, int len, unsigned short *wd);
|
void setwdnum(unsigned char* p, int len, unsigned short* wd);
|
||||||
int setucnum(unsigned char *p, int len, unsigned char *ud);
|
int setucnum(unsigned char* p, int len, unsigned char* ud);
|
||||||
|
|
||||||
/* study.c */
|
/* study.c */
|
||||||
int study(STDYOUT *stdy);
|
int study(STDYOUT* stdy);
|
||||||
STDYIN *srchstdy(TypeDicSeg seg, TypeDicOfs ofs, TypeDicID dicid);
|
STDYIN* srchstdy(TypeDicSeg seg, TypeDicOfs ofs, TypeDicID dicid);
|
||||||
|
|
||||||
/* wakachi.c */
|
/* wakachi.c */
|
||||||
void wakachi(void);
|
void wakachi(void);
|
||||||
|
|
|
||||||
9
kctype.h
9
kctype.h
|
|
@ -27,14 +27,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: kctype.h,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:03:46 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if !defined(__sony_news) || (defined(__sony_news) && !defined(SVR4))
|
#if !defined(__sony_news) || (defined(__sony_news) && !defined(SVR4))
|
||||||
#ifndef __KCTYPE
|
#ifndef __KCTYPE
|
||||||
#define __KCTYPE
|
#define __KCTYPE
|
||||||
|
|
@ -112,4 +104,3 @@
|
||||||
#define iskana iskana2
|
#define iskana iskana2
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
||||||
15
key.h
15
key.h
|
|
@ -27,16 +27,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: key.h,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:03:47 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define KEY_NORMAL 0
|
#define KEY_NORMAL 0
|
||||||
#define KEY_CONV 1
|
#define KEY_CONV 1
|
||||||
#define KEY_HENKAN 2
|
#define KEY_HENKAN 2
|
||||||
|
|
@ -60,7 +50,7 @@
|
||||||
#define KEY_WRAPBACK 19
|
#define KEY_WRAPBACK 19
|
||||||
#define KEY_HELP 20
|
#define KEY_HELP 20
|
||||||
#define KEY_TOROKU 21
|
#define KEY_TOROKU 21
|
||||||
#define KEY_SYOUKYO 22
|
#define KEY_SHOUKYO 22
|
||||||
#define KEY_SJRC 23
|
#define KEY_SJRC 23
|
||||||
|
|
||||||
#define KEY_HA_KET 24
|
#define KEY_HA_KET 24
|
||||||
|
|
@ -90,9 +80,6 @@
|
||||||
|
|
||||||
#define KEY_MORE 43
|
#define KEY_MORE 43
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define UKEYNUM 64
|
#define UKEYNUM 64
|
||||||
#define SEQLEN 8
|
#define SEQLEN 8
|
||||||
#define COMNUM 64
|
#define COMNUM 64
|
||||||
|
|
||||||
|
|
|
||||||
169
kigou.c
169
kigou.c
|
|
@ -27,14 +27,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: kigou.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:03:19 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "kctype.h"
|
#include "kctype.h"
|
||||||
#include "key.h"
|
#include "key.h"
|
||||||
|
|
@ -49,8 +41,7 @@ static unsigned short row, col;
|
||||||
|
|
||||||
void input_kigou();
|
void input_kigou();
|
||||||
|
|
||||||
kigou ()
|
kigou() {
|
||||||
{
|
|
||||||
extern int keyvalue;
|
extern int keyvalue;
|
||||||
int increse, code, basecode;
|
int increse, code, basecode;
|
||||||
int inc, ki, low;
|
int inc, ki, low;
|
||||||
|
|
@ -58,149 +49,146 @@ kigou ()
|
||||||
int rval;
|
int rval;
|
||||||
|
|
||||||
increse = INCRESE;
|
increse = INCRESE;
|
||||||
disp_mode ();
|
disp_mode();
|
||||||
basecode = lastcode & 0xfff0;
|
basecode = lastcode & 0xfff0;
|
||||||
code = lastcode;
|
code = lastcode;
|
||||||
StartGuide (&row, &col);
|
StartGuide(&row, &col);
|
||||||
Clear_EOL ();
|
Clear_EOL();
|
||||||
guide_kigou (basecode, code, increse);
|
guide_kigou(basecode, code, increse);
|
||||||
|
|
||||||
rval = 0;
|
rval = 0;
|
||||||
ki = 1;
|
ki = 1;
|
||||||
SaveConversion ();
|
SaveConversion();
|
||||||
while (ki) {
|
while(ki) {
|
||||||
inc = inkey ();
|
inc = inkey();
|
||||||
if (AnotherConversion ()) {
|
if(AnotherConversion()) {
|
||||||
unget_key (inc);
|
unget_key(inc);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
top:
|
top:
|
||||||
switch (keyvalue) {
|
switch(keyvalue) {
|
||||||
case KEY_CONV:
|
case KEY_CONV:
|
||||||
rval = 1;
|
rval = 1;
|
||||||
ki = 0;
|
ki = 0;
|
||||||
break;
|
break;
|
||||||
case KEY_RIGHT:
|
case KEY_RIGHT:
|
||||||
if (code >= END_CODE) {
|
if(code >= END_CODE) {
|
||||||
code = BEGIN_CODE;
|
code = BEGIN_CODE;
|
||||||
basecode = code & 0xfff0;
|
basecode = code & 0xfff0;
|
||||||
} else {
|
} else {
|
||||||
low = ++code & 0xff;
|
low = ++code & 0xff;
|
||||||
if (low > 0x7e) {
|
if(low > 0x7e) {
|
||||||
code &= 0xff00;
|
code &= 0xff00;
|
||||||
code += 0x121;
|
code += 0x121;
|
||||||
low = 0x21;
|
low = 0x21;
|
||||||
}
|
}
|
||||||
if (code >= basecode + increse) {
|
if(code >= basecode + increse) {
|
||||||
if (low <= 0x21)
|
if(low <= 0x21)
|
||||||
basecode = code & 0xfff0;
|
basecode = code & 0xfff0;
|
||||||
else
|
else
|
||||||
basecode += increse;
|
basecode += increse;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
guide_kigou (basecode, code, increse);
|
guide_kigou(basecode, code, increse);
|
||||||
break;
|
break;
|
||||||
case KEY_LEFT:
|
case KEY_LEFT:
|
||||||
if (code <= BEGIN_CODE) {
|
if(code <= BEGIN_CODE) {
|
||||||
code = END_CODE;
|
code = END_CODE;
|
||||||
basecode = code & 0xfff0;
|
basecode = code & 0xfff0;
|
||||||
} else {
|
} else {
|
||||||
low = --code & 0xff;
|
low = --code & 0xff;
|
||||||
if (low < 0x21) {
|
if(low < 0x21) {
|
||||||
code &= 0xff00;
|
code &= 0xff00;
|
||||||
code -= 0x82;
|
code -= 0x82;
|
||||||
low = 0x7e;
|
low = 0x7e;
|
||||||
}
|
}
|
||||||
if (code < basecode) {
|
if(code < basecode) {
|
||||||
if (low >= 0x7e)
|
if(low >= 0x7e)
|
||||||
basecode = code & 0xfff0;
|
basecode = code & 0xfff0;
|
||||||
else
|
else
|
||||||
basecode -= increse;
|
basecode -= increse;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
guide_kigou (basecode, code, increse);
|
guide_kigou(basecode, code, increse);
|
||||||
break;
|
break;
|
||||||
case KEY_UP:
|
case KEY_UP:
|
||||||
if (basecode <= BEGIN_CODE) {
|
if(basecode <= BEGIN_CODE) {
|
||||||
code = basecode = END_CODE & 0xfff0;
|
code = basecode = END_CODE & 0xfff0;
|
||||||
} else {
|
} else {
|
||||||
basecode -= increse;
|
basecode -= increse;
|
||||||
low = basecode & 0xff;
|
low = basecode & 0xff;
|
||||||
if (low == 0x20) {
|
if(low == 0x20) {
|
||||||
code = (basecode & 0xff00) + 0x21;
|
code = (basecode & 0xff00) + 0x21;
|
||||||
} else {
|
} else {
|
||||||
if (low < 0x20) {
|
if(low < 0x20) {
|
||||||
basecode &= 0xff00;
|
basecode &= 0xff00;
|
||||||
basecode -= 0x90;
|
basecode -= 0x90;
|
||||||
}
|
}
|
||||||
code = basecode;
|
code = basecode;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
guide_kigou (basecode, code, increse);
|
guide_kigou(basecode, code, increse);
|
||||||
break;
|
break;
|
||||||
case KEY_DOWN:
|
case KEY_DOWN:
|
||||||
if (basecode >= (END_CODE & 0xfff0)) {
|
if(basecode >= (END_CODE & 0xfff0)) {
|
||||||
code = BEGIN_CODE;
|
code = BEGIN_CODE;
|
||||||
basecode = code & 0xfff0;
|
basecode = code & 0xfff0;
|
||||||
} else {
|
} else {
|
||||||
basecode += increse;
|
basecode += increse;
|
||||||
low = basecode & 0xff;
|
low = basecode & 0xff;
|
||||||
if (low > 0x70) {
|
if(low > 0x70) {
|
||||||
basecode &= 0xff00;
|
basecode &= 0xff00;
|
||||||
basecode += 0x120;
|
basecode += 0x120;
|
||||||
code = basecode + 1;
|
code = basecode + 1;
|
||||||
} else
|
} else
|
||||||
code = basecode;
|
code = basecode;
|
||||||
}
|
}
|
||||||
guide_kigou (basecode, code, increse);
|
guide_kigou(basecode, code, increse);
|
||||||
break;
|
break;
|
||||||
case KEY_HENKAN:
|
case KEY_HENKAN:
|
||||||
input_kigou (basecode, code, increse);
|
input_kigou(basecode, code, increse);
|
||||||
break;
|
break;
|
||||||
case KEY_KETTEI:
|
case KEY_KETTEI:
|
||||||
input_kigou (basecode, code, increse);
|
input_kigou(basecode, code, increse);
|
||||||
ki = 0;
|
ki = 0;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if ((keyvalue = IsCKey (inc)) != KEY_NORMAL)
|
if((keyvalue = IsCKey(inc)) != KEY_NORMAL)
|
||||||
goto top;
|
goto top;
|
||||||
if (CheckCcode(inc)) {
|
if(CheckCcode(inc)) {
|
||||||
if ((num = strtocode()) > 0) {
|
if((num = strtocode()) > 0) {
|
||||||
code = num;
|
code = num;
|
||||||
basecode = code & 0xfff0;
|
basecode = code & 0xfff0;
|
||||||
guide_kigou(basecode, code, increse);
|
guide_kigou(basecode, code, increse);
|
||||||
}
|
}
|
||||||
}
|
} else if(inc == ESC)
|
||||||
else if (inc == ESC)
|
|
||||||
ki = 0;
|
ki = 0;
|
||||||
else if (inc == '\n' || inc == '\r' || inc == ' ')
|
else if(inc == '\n' || inc == '\r' || inc == ' ')
|
||||||
input_kigou (basecode, code, increse);
|
input_kigou(basecode, code, increse);
|
||||||
else if (IsRedraw (inc))
|
else if(IsRedraw(inc))
|
||||||
guide_kigou (basecode, code, increse);
|
guide_kigou(basecode, code, increse);
|
||||||
else
|
else
|
||||||
beep ();
|
beep();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
EndGuide (row, col);
|
EndGuide(row, col);
|
||||||
disp_mode ();
|
disp_mode();
|
||||||
return (rval);
|
return (rval);
|
||||||
}
|
}
|
||||||
|
|
||||||
IsRedraw (c)
|
IsRedraw(c) int c;
|
||||||
int c;
|
|
||||||
{
|
{
|
||||||
if (c == 0x0c)
|
if(c == 0x0c)
|
||||||
return (1);
|
return (1);
|
||||||
else
|
else
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
IsCKey (inc)
|
IsCKey(inc) int inc;
|
||||||
int inc;
|
|
||||||
{
|
{
|
||||||
switch (inc) {
|
switch(inc) {
|
||||||
case 'l':
|
case 'l':
|
||||||
return (KEY_RIGHT);
|
return (KEY_RIGHT);
|
||||||
case 'k':
|
case 'k':
|
||||||
|
|
@ -214,8 +202,7 @@ int inc;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
guide_kigou (bcode, code, increse)
|
guide_kigou(bcode, code, increse) int bcode, code, increse;
|
||||||
int bcode, code, increse;
|
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
extern wchar16_t Mguide[];
|
extern wchar16_t Mguide[];
|
||||||
|
|
@ -223,42 +210,40 @@ int bcode, code, increse;
|
||||||
char tmp[20];
|
char tmp[20];
|
||||||
unsigned short prcode;
|
unsigned short prcode;
|
||||||
|
|
||||||
TopGuide ();
|
TopGuide();
|
||||||
printR (Mguide);
|
printR(Mguide);
|
||||||
put_space (1);
|
put_space(1);
|
||||||
put_space (1);
|
put_space(1);
|
||||||
for (i = 0 ; i < increse ; i ++)
|
for(i = 0; i < increse; i++)
|
||||||
pkigou (bcode + i);
|
pkigou(bcode + i);
|
||||||
prcode = code;
|
prcode = code;
|
||||||
if (((i = GetCcode()) == CODE_KUTEN) || (i == CODE_KUTEN2)) {
|
if(((i = GetCcode()) == CODE_KUTEN) || (i == CODE_KUTEN2)) {
|
||||||
prcode -= 0x2020;
|
prcode -= 0x2020;
|
||||||
sprintf (tmp, " [%02d%02d]", prcode >> 8, prcode & 0xff);
|
sprintf(tmp, " [%02d%02d]", prcode >> 8, prcode & 0xff);
|
||||||
} else {
|
} else {
|
||||||
if (i == CODE_SJIS)
|
if(i == CODE_SJIS)
|
||||||
prcode = jis2sjis(prcode);
|
prcode = jis2sjis(prcode);
|
||||||
else if ((i == CODE_EUC) || (i == CODE_EUC2))
|
else if((i == CODE_EUC) || (i == CODE_EUC2))
|
||||||
prcode |= 0x8080;
|
prcode |= 0x8080;
|
||||||
sprintf (tmp, " [%04x]", prcode);
|
sprintf(tmp, " [%04x]", prcode);
|
||||||
}
|
}
|
||||||
(void) mbstowcs(wtmp, tmp, 20);
|
(void)mbstowcs(wtmp, tmp, 20);
|
||||||
SJ_print (wtmp);
|
SJ_print(wtmp);
|
||||||
backspace (8 + (bcode + increse - code) * 2);
|
backspace(8 + (bcode + increse - code) * 2);
|
||||||
Flush ();
|
Flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pkigou(code) int code;
|
||||||
pkigou (code)
|
|
||||||
int code;
|
|
||||||
{
|
{
|
||||||
wchar16_t tmp[3];
|
wchar16_t tmp[3];
|
||||||
unsigned short ccode;
|
unsigned short ccode;
|
||||||
|
|
||||||
if (jis2euc(code) == 0) {
|
if(jis2euc(code) == 0) {
|
||||||
ccode = BEGIN_CODE;
|
ccode = BEGIN_CODE;
|
||||||
} else {
|
} else {
|
||||||
ccode = code;
|
ccode = code;
|
||||||
}
|
}
|
||||||
if ((GetCcode() == CODE_EUC2) || (GetCcode() == CODE_JIS2) ||
|
if((GetCcode() == CODE_EUC2) || (GetCcode() == CODE_JIS2) ||
|
||||||
(GetCcode() == CODE_KUTEN2)) {
|
(GetCcode() == CODE_KUTEN2)) {
|
||||||
ccode = WcJIS2X0212(ccode);
|
ccode = WcJIS2X0212(ccode);
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -266,45 +251,45 @@ int code;
|
||||||
}
|
}
|
||||||
tmp[0] = ccode;
|
tmp[0] = ccode;
|
||||||
tmp[1] = '\0';
|
tmp[1] = '\0';
|
||||||
SJ_print (tmp);
|
SJ_print(tmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
input_kigou (basecode, code, increse)
|
input_kigou(basecode, code, increse) int basecode,
|
||||||
int basecode, code, increse;
|
code, increse;
|
||||||
{
|
{
|
||||||
wchar16_t s[2];
|
wchar16_t s[2];
|
||||||
unsigned short ccode, svlen;
|
unsigned short ccode, svlen;
|
||||||
Conversion *cv;
|
Conversion* cv;
|
||||||
|
|
||||||
if (jis2euc(code) == 0) {
|
if(jis2euc(code) == 0) {
|
||||||
beep();
|
beep();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if ((GetCcode() == CODE_EUC2) || (GetCcode() == CODE_JIS2) ||
|
if((GetCcode() == CODE_EUC2) || (GetCcode() == CODE_JIS2) ||
|
||||||
(GetCcode() == CODE_KUTEN2)) {
|
(GetCcode() == CODE_KUTEN2)) {
|
||||||
ccode = WcJIS2X0212(code);
|
ccode = WcJIS2X0212(code);
|
||||||
} else {
|
} else {
|
||||||
ccode = WcJIS2X0208(code);
|
ccode = WcJIS2X0208(code);
|
||||||
}
|
}
|
||||||
EndGuide (row, col);
|
EndGuide(row, col);
|
||||||
s[0] = ccode;
|
s[0] = ccode;
|
||||||
s[1] = '\0';
|
s[1] = '\0';
|
||||||
if (BuffYes ()) {
|
if(BuffYes()) {
|
||||||
cv = GetConversion();
|
cv = GetConversion();
|
||||||
save_obuf();
|
save_obuf();
|
||||||
(void)exec_romaji(s[0]);
|
(void)exec_romaji(s[0]);
|
||||||
if (os_point > 0) {
|
if(os_point > 0) {
|
||||||
svlen = cv->Vlen;
|
svlen = cv->Vlen;
|
||||||
vprintU(osave_buf, 1);
|
vprintU(osave_buf, 1);
|
||||||
Cgoto(svlen);
|
Cgoto(svlen);
|
||||||
}
|
}
|
||||||
restore_obuf();
|
restore_obuf();
|
||||||
} else {
|
} else {
|
||||||
master_out (s, 2);
|
master_out(s, 2);
|
||||||
master_flush();
|
master_flush();
|
||||||
}
|
}
|
||||||
StartGuide (&row, &col);
|
StartGuide(&row, &col);
|
||||||
guide_kigou (basecode, code, increse);
|
guide_kigou(basecode, code, increse);
|
||||||
lastcode = code;
|
lastcode = code;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
174
knjcvt.c
174
knjcvt.c
|
|
@ -27,17 +27,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: knjcvt.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:00:37 $
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
@ -48,227 +37,188 @@
|
||||||
typedef struct div_list {
|
typedef struct div_list {
|
||||||
int len;
|
int len;
|
||||||
unsigned char code[3];
|
unsigned char code[3];
|
||||||
struct div_list *child;
|
struct div_list* child;
|
||||||
} DivList;
|
} DivList;
|
||||||
|
|
||||||
extern HindoRec *askknj[];
|
extern HindoRec* askknj[];
|
||||||
extern int askknj_num;
|
extern int askknj_num;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
free_divlist(DivList* p)
|
free_divlist(DivList* p) {
|
||||||
{
|
DivList* q;
|
||||||
DivList *q;
|
|
||||||
|
|
||||||
while (p) {
|
while(p) {
|
||||||
q = p -> child;
|
q = p->child;
|
||||||
Free(p);
|
Free(p);
|
||||||
p = q;
|
p = q;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static DivList*
|
static DivList*
|
||||||
make_divrec(void)
|
make_divrec(void) {
|
||||||
{
|
DivList* p;
|
||||||
DivList *p;
|
|
||||||
|
|
||||||
p = (DivList *)Malloc(sizeof(DivList));
|
p = (DivList*)Malloc(sizeof(DivList));
|
||||||
if (!p) {
|
if(!p) {
|
||||||
fprintf(stderr, "\245\341\245\342\245\352\244\254\302\255\244\352\244\336\244\273\244\363\n");
|
fprintf(stderr, "\245\341\245\342\245\352\244\254\302\255\244\352\244\336\244\273\244\363\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
p -> child = NULL;
|
p->child = NULL;
|
||||||
|
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
make_divlist(DivList* parent, unsigned char *knj, int len)
|
make_divlist(DivList* parent, unsigned char* knj, int len) {
|
||||||
{
|
|
||||||
int i, j;
|
int i, j;
|
||||||
int num;
|
int num;
|
||||||
int minlen;
|
int minlen;
|
||||||
int tmplen;
|
int tmplen;
|
||||||
DivList tmprec;
|
DivList tmprec;
|
||||||
DivList *minrec;
|
DivList* minrec;
|
||||||
|
|
||||||
|
|
||||||
minrec = make_divrec();
|
minrec = make_divrec();
|
||||||
|
|
||||||
|
if(len == 0) {
|
||||||
if (len == 0) {
|
|
||||||
free_divlist(minrec);
|
free_divlist(minrec);
|
||||||
|
|
||||||
parent -> child = NULL;
|
parent->child = NULL;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (len == 1) {
|
else if(len == 1) {
|
||||||
|
|
||||||
minrec -> len = len;
|
minrec->len = len;
|
||||||
minrec -> code[0] = *knj;
|
minrec->code[0] = *knj;
|
||||||
|
|
||||||
parent -> child = minrec;
|
parent->child = minrec;
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(codesize(*knj) == 1) {
|
||||||
if (codesize(*knj) == 1) {
|
minrec->len = 1;
|
||||||
minrec -> len = 1;
|
minrec->code[0] = *knj;
|
||||||
minrec -> code[0] = *knj;
|
|
||||||
minlen = make_divlist(minrec, knj + 1, len - 1) + 1;
|
minlen = make_divlist(minrec, knj + 1, len - 1) + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (codesize(*knj) == 2) {
|
else if(codesize(*knj) == 2) {
|
||||||
minrec -> len = 2;
|
minrec->len = 2;
|
||||||
minrec -> code[0] = *knj;
|
minrec->code[0] = *knj;
|
||||||
minrec -> code[1] = *(knj + 1);
|
minrec->code[1] = *(knj + 1);
|
||||||
minlen = make_divlist(minrec, knj + 2, len - 2) + 2;
|
minlen = make_divlist(minrec, knj + 2, len - 2) + 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for(i = 0; i < len; i = j) {
|
||||||
for (i = 0 ; i < len ; i = j) {
|
|
||||||
|
|
||||||
j = i + codesize(*(knj + i));
|
j = i + codesize(*(knj + i));
|
||||||
|
|
||||||
|
if(j <= 2 || !(num = isknjexist(knj, j))) continue;
|
||||||
if (j <= 2 || !(num = isknjexist(knj, j))) continue;
|
|
||||||
|
|
||||||
|
|
||||||
tmprec.len = 2;
|
tmprec.len = 2;
|
||||||
tmprec.code[0] = (OffsetAssyuku | ((num >> 8) & 0xff));
|
tmprec.code[0] = (OffsetAsshuku | ((num >> 8) & 0xff));
|
||||||
tmprec.code[1] = (num & 0xff);
|
tmprec.code[1] = (num & 0xff);
|
||||||
tmprec.child = NULL;
|
tmprec.child = NULL;
|
||||||
tmplen = make_divlist(&tmprec, knj + j, len - j) + 2;
|
tmplen = make_divlist(&tmprec, knj + j, len - j) + 2;
|
||||||
|
|
||||||
|
if(tmplen < minlen) {
|
||||||
|
|
||||||
if (tmplen < minlen) {
|
free_divlist(minrec->child);
|
||||||
|
|
||||||
free_divlist(minrec -> child);
|
|
||||||
|
|
||||||
|
|
||||||
*minrec = tmprec;
|
*minrec = tmprec;
|
||||||
minlen = tmplen;
|
minlen = tmplen;
|
||||||
}
|
} else
|
||||||
else
|
|
||||||
free_divlist(tmprec.child);
|
free_divlist(tmprec.child);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for(i = 0; i < askknj_num; i++) {
|
||||||
|
|
||||||
for (i = 0 ; i < askknj_num ; i++) {
|
if((j = askknj[i]->klen) > len) continue;
|
||||||
|
|
||||||
if ((j = askknj[i] -> klen) > len) continue;
|
|
||||||
|
|
||||||
|
|
||||||
if (string_cmp(askknj[i]->kptr, j, knj, j)) continue;
|
|
||||||
|
|
||||||
|
if(string_cmp(askknj[i]->kptr, j, knj, j)) continue;
|
||||||
|
|
||||||
tmprec.len = 1;
|
tmprec.len = 1;
|
||||||
tmprec.code[0] = (KanjiAssyuku | i);
|
tmprec.code[0] = (KanjiAsshuku | i);
|
||||||
tmprec.child = NULL;
|
tmprec.child = NULL;
|
||||||
tmplen = make_divlist(&tmprec, knj + j, len - j) + 1;
|
tmplen = make_divlist(&tmprec, knj + j, len - j) + 1;
|
||||||
|
|
||||||
|
if(tmplen < minlen) {
|
||||||
|
|
||||||
if (tmplen < minlen) {
|
free_divlist(minrec->child);
|
||||||
|
|
||||||
free_divlist(minrec -> child);
|
|
||||||
|
|
||||||
|
|
||||||
*minrec = tmprec;
|
*minrec = tmprec;
|
||||||
minlen = tmplen;
|
minlen = tmplen;
|
||||||
}
|
} else
|
||||||
else
|
|
||||||
free_divlist(tmprec.child);
|
free_divlist(tmprec.child);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
parent->child = minrec;
|
||||||
parent -> child = minrec;
|
|
||||||
|
|
||||||
|
|
||||||
return minlen;
|
return minlen;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
unsigned char*
|
unsigned char*
|
||||||
knjofscvt(unsigned char* ptr, int len, int* ret)
|
knjofscvt(unsigned char* ptr, int len, int* ret) {
|
||||||
{
|
|
||||||
int i;
|
int i;
|
||||||
unsigned char *p, *q;
|
unsigned char *p, *q;
|
||||||
DivList parent, *dl;
|
DivList parent, *dl;
|
||||||
|
|
||||||
|
|
||||||
askknj_num = 0;
|
askknj_num = 0;
|
||||||
|
|
||||||
|
|
||||||
parent.child = NULL;
|
parent.child = NULL;
|
||||||
i = make_divlist(&parent, ptr, len);
|
i = make_divlist(&parent, ptr, len);
|
||||||
*ret = i;
|
*ret = i;
|
||||||
|
|
||||||
|
p = (unsigned char*)Malloc(i);
|
||||||
p = (unsigned char *)Malloc(i);
|
if(!p) {
|
||||||
if (!p) {
|
|
||||||
fprintf(stderr, "\245\341\245\342\245\352\244\254\311\324\302\255\244\267\244\336\244\267\244\277");
|
fprintf(stderr, "\245\341\245\342\245\352\244\254\311\324\302\255\244\267\244\336\244\267\244\277");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
for (q = p, dl = parent.child ; dl ; dl = dl -> child) {
|
for(q = p, dl = parent.child; dl; dl = dl->child) {
|
||||||
*q++ = dl -> code[0];
|
*q++ = dl->code[0];
|
||||||
if (dl -> len == 2) {
|
if(dl->len == 2) {
|
||||||
*q++ = dl -> code[1];
|
*q++ = dl->code[1];
|
||||||
} else if (dl -> len == 3) {
|
} else if(dl->len == 3) {
|
||||||
*q++ = dl -> code[1];
|
*q++ = dl->code[1];
|
||||||
*q++ = dl -> code[2];
|
*q++ = dl->code[2];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
free_divlist(parent.child);
|
free_divlist(parent.child);
|
||||||
|
|
||||||
|
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
unsigned char*
|
unsigned char*
|
||||||
knjcvt(unsigned char* ptr, int len, int* ret)
|
knjcvt(unsigned char* ptr, int len, int* ret) {
|
||||||
{
|
|
||||||
int i;
|
int i;
|
||||||
unsigned char *p, *q;
|
unsigned char *p, *q;
|
||||||
DivList parent, *dl;
|
DivList parent, *dl;
|
||||||
|
|
||||||
|
|
||||||
parent.child = NULL;
|
parent.child = NULL;
|
||||||
i = make_divlist(&parent, ptr, len);
|
i = make_divlist(&parent, ptr, len);
|
||||||
*ret = i;
|
*ret = i;
|
||||||
|
|
||||||
|
p = (unsigned char*)Malloc(i);
|
||||||
p = (unsigned char *)Malloc(i);
|
if(!p) {
|
||||||
if (!p) {
|
|
||||||
fprintf(stderr, "\245\341\245\342\245\352\244\254\311\324\302\255\244\267\244\336\244\267\244\277");
|
fprintf(stderr, "\245\341\245\342\245\352\244\254\311\324\302\255\244\267\244\336\244\267\244\277");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
for (q = p, dl = parent.child ; dl ; dl = dl -> child) {
|
for(q = p, dl = parent.child; dl; dl = dl->child) {
|
||||||
*q++ = dl -> code[0];
|
*q++ = dl->code[0];
|
||||||
if (dl -> len == 2) {
|
if(dl->len == 2) {
|
||||||
*q++ = dl -> code[1];
|
*q++ = dl->code[1];
|
||||||
} else if (dl -> len == 3) {
|
} else if(dl->len == 3) {
|
||||||
*q++ = dl -> code[1];
|
*q++ = dl->code[1];
|
||||||
*q++ = dl -> code[2];
|
*q++ = dl->code[2];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
free_divlist(parent.child);
|
free_divlist(parent.child);
|
||||||
|
|
||||||
if (i != q - p) {
|
if(i != q - p) {
|
||||||
printf("\244\263\244\263\n");
|
printf("\244\263\244\263\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
240
libif.c
240
libif.c
|
|
@ -27,13 +27,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: libif.c,v $
|
|
||||||
* $SonyRevision: 1.3 $
|
|
||||||
* $SonyDate: 1996/02/23 11:04:02 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include "sj_sysvdef.h"
|
#include "sj_sysvdef.h"
|
||||||
#ifdef SVR4
|
#ifdef SVR4
|
||||||
#include <sys/euc.h>
|
#include <sys/euc.h>
|
||||||
|
|
@ -43,46 +36,39 @@
|
||||||
#include "kctype.h"
|
#include "kctype.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
|
|
||||||
extern char user_name[];
|
extern char user_name[];
|
||||||
extern char *cur_serv, **serv_list;
|
extern char * cur_serv, **serv_list;
|
||||||
extern char **dict_list;
|
extern char** dict_list;
|
||||||
extern int dict_num;
|
extern int dict_num;
|
||||||
char *chmyhname();
|
char* chmyhname();
|
||||||
|
|
||||||
extern int current_locale;
|
extern int current_locale;
|
||||||
int sjislen(), euclen();
|
int sjislen(), euclen();
|
||||||
|
|
||||||
int (*len_func[3])() = {0, sjislen, euclen};
|
int (*len_func[3])() = {0, sjislen, euclen};
|
||||||
|
|
||||||
|
|
||||||
#define YOMILEN 32
|
#define YOMILEN 32
|
||||||
#define KLEN 64
|
#define KLEN 64
|
||||||
|
|
||||||
|
SJ2_henkan(yomiout, bun, kanjiout, kanjilen) struct bunsetsu_sj3* bun;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
SJ2_henkan (yomiout, bun, kanjiout, kanjilen)
|
|
||||||
struct bunsetu_sj3 *bun;
|
|
||||||
wchar16_t *yomiout, *kanjiout;
|
wchar16_t *yomiout, *kanjiout;
|
||||||
int kanjilen;
|
int kanjilen;
|
||||||
{
|
{
|
||||||
int retv;
|
int retv;
|
||||||
SJ3_BUNSETU sbun[BUFFLENGTH];
|
SJ3_BUNSETSU sbun[BUFFLENGTH];
|
||||||
int i, sentou, saigo;
|
int i, sentou, saigo;
|
||||||
unsigned char yomi[BUFFLENGTH * 3];
|
unsigned char yomi[BUFFLENGTH * 3];
|
||||||
unsigned char kanji[BUFFLENGTH * 6];
|
unsigned char kanji[BUFFLENGTH * 6];
|
||||||
|
|
||||||
(void) wcstombs((char *) yomi, yomiout, BUFFLENGTH*3);
|
(void)wcstombs((char*)yomi, yomiout, BUFFLENGTH * 3);
|
||||||
if (current_locale == LC_CTYPE_SHIFTJIS) {
|
if(current_locale == LC_CTYPE_SHIFTJIS) {
|
||||||
retv = sj3_getkan(yomi, sbun, kanji, BUFFLENGTH * 6);
|
retv = sj3_getkan(yomi, sbun, kanji, BUFFLENGTH * 6);
|
||||||
} else {
|
} else {
|
||||||
retv = sj3_getkan_euc(yomi, sbun, kanji, BUFFLENGTH * 6);
|
retv = sj3_getkan_euc(yomi, sbun, kanji, BUFFLENGTH * 6);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (retv <= 0) return(retv);
|
if(retv <= 0) return (retv);
|
||||||
(void) mbstowcs(kanjiout, (char *)kanji, kanjilen);
|
(void)mbstowcs(kanjiout, (char*)kanji, kanjilen);
|
||||||
|
|
||||||
for(i = 0; i < retv; i++) {
|
for(i = 0; i < retv; i++) {
|
||||||
sentou = (*len_func[current_locale])(yomi, sbun[i].srcstr - yomi);
|
sentou = (*len_func[current_locale])(yomi, sbun[i].srcstr - yomi);
|
||||||
|
|
@ -93,24 +79,23 @@ int kanjilen;
|
||||||
saigo = (*len_func[current_locale])(sbun[i].deststr, sbun[i].destlen);
|
saigo = (*len_func[current_locale])(sbun[i].deststr, sbun[i].destlen);
|
||||||
bun[i].destlen = saigo;
|
bun[i].destlen = saigo;
|
||||||
bun[i].deststr = kanjiout + sentou;
|
bun[i].deststr = kanjiout + sentou;
|
||||||
(void) memcpy(&(bun[i].dcid), &(sbun[i].dcid), sizeof(sbun[i].dcid));
|
(void)memcpy(&(bun[i].dcid), &(sbun[i].dcid), sizeof(sbun[i].dcid));
|
||||||
}
|
}
|
||||||
|
|
||||||
return(retv);
|
return (retv);
|
||||||
}
|
}
|
||||||
int
|
int sjislen(str, max)
|
||||||
sjislen(str, max)
|
unsigned char* str;
|
||||||
unsigned char *str;
|
|
||||||
int max;
|
int max;
|
||||||
{
|
{
|
||||||
int len = 0, bytes = 1;
|
int len = 0, bytes = 1;
|
||||||
|
|
||||||
if (!max) return 0;
|
if(!max) return 0;
|
||||||
while ((bytes <= max) && *str) {
|
while((bytes <= max) && *str) {
|
||||||
if (issjis1(*str)) {
|
if(issjis1(*str)) {
|
||||||
str++;
|
str++;
|
||||||
bytes++;
|
bytes++;
|
||||||
if (!*str) break;
|
if(!*str) break;
|
||||||
len++;
|
len++;
|
||||||
} else {
|
} else {
|
||||||
len++;
|
len++;
|
||||||
|
|
@ -121,26 +106,25 @@ int max;
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
euclen(str, max)
|
euclen(str, max) unsigned char* str;
|
||||||
unsigned char *str;
|
|
||||||
int max;
|
int max;
|
||||||
{
|
{
|
||||||
int len = 0, bytes = 1;
|
int len = 0, bytes = 1;
|
||||||
|
|
||||||
if (!max) return 0;
|
if(!max) return 0;
|
||||||
while ((bytes <= max) && *str) {
|
while((bytes <= max) && *str) {
|
||||||
if (*str == SS3) {
|
if(*str == SS3) {
|
||||||
str++;
|
str++;
|
||||||
bytes++;
|
bytes++;
|
||||||
if (!*str) break;
|
if(!*str) break;
|
||||||
str++;
|
str++;
|
||||||
bytes++;
|
bytes++;
|
||||||
if (!*str) break;
|
if(!*str) break;
|
||||||
len++;
|
len++;
|
||||||
} else if ((*str == SS2) || (*str & 0x80)) {
|
} else if((*str == SS2) || (*str & 0x80)) {
|
||||||
str++;
|
str++;
|
||||||
bytes++;
|
bytes++;
|
||||||
if (!*str) break;
|
if(!*str) break;
|
||||||
len++;
|
len++;
|
||||||
} else {
|
} else {
|
||||||
len++;
|
len++;
|
||||||
|
|
@ -151,11 +135,9 @@ int max;
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SJ2_getdouon(s, d, n, choice, reconv)
|
||||||
|
wchar16_t* s;
|
||||||
SJ2_getdouon (s, d, n, choice, reconv)
|
struct douon_sj3* d;
|
||||||
wchar16_t *s;
|
|
||||||
struct douon_sj3 *d;
|
|
||||||
int n;
|
int n;
|
||||||
int choice;
|
int choice;
|
||||||
int reconv;
|
int reconv;
|
||||||
|
|
@ -164,164 +146,161 @@ int reconv;
|
||||||
SJ3_DOUON d_sjis[DOUON_N];
|
SJ3_DOUON d_sjis[DOUON_N];
|
||||||
unsigned char yomi[BUFFLENGTH * 3];
|
unsigned char yomi[BUFFLENGTH * 3];
|
||||||
|
|
||||||
(void) wcstombs((char *) yomi, s, BUFFLENGTH*3);
|
(void)wcstombs((char*)yomi, s, BUFFLENGTH * 3);
|
||||||
|
|
||||||
if (current_locale == LC_CTYPE_SHIFTJIS) {
|
if(current_locale == LC_CTYPE_SHIFTJIS) {
|
||||||
ret = sj3_getdouon(yomi, d_sjis);
|
ret = sj3_getdouon(yomi, d_sjis);
|
||||||
} else {
|
} else {
|
||||||
ret = sj3_getdouon_euc(yomi, d_sjis);
|
ret = sj3_getdouon_euc(yomi, d_sjis);
|
||||||
}
|
}
|
||||||
for (i = 0; i < ret; i++) {
|
for(i = 0; i < ret; i++) {
|
||||||
(void) memcpy(&(d[i].dcid),
|
(void)memcpy(&(d[i].dcid),
|
||||||
&(d_sjis[i].dcid), SJ3_WORD_ID_SIZE);
|
&(d_sjis[i].dcid), SJ3_WORD_ID_SIZE);
|
||||||
d[i].wlen = (int) mbstowcs(d[i].ddata, (char *)d_sjis[i].ddata,
|
d[i].wlen = (int)mbstowcs(d[i].ddata, (char*)d_sjis[i].ddata,
|
||||||
SJ3_BUNSETU_KANJI*2);
|
SJ3_BUNSETSU_KANJI * 2);
|
||||||
d[i].dlen = wcbyte(d[i].ddata);
|
d[i].dlen = wcbyte(d[i].ddata);
|
||||||
d[i].valid = (char)1;
|
d[i].valid = (char)1;
|
||||||
}
|
}
|
||||||
if (ret < DOUON_N) {
|
if(ret < DOUON_N) {
|
||||||
(void) memset(&(d[ret].dcid), 0, SJ3_WORD_ID_SIZE);
|
(void)memset(&(d[ret].dcid), 0, SJ3_WORD_ID_SIZE);
|
||||||
d[ret].wlen = wslen(s);
|
d[ret].wlen = wslen(s);
|
||||||
for (i = 0; i < d[ret].wlen; i++) {
|
for(i = 0; i < d[ret].wlen; i++) {
|
||||||
d[ret].ddata[i] = sj_tokata(s[i]);
|
d[ret].ddata[i] = sj_tokata(s[i]);
|
||||||
}
|
}
|
||||||
d[ret].ddata[i] = (wchar_t) 0;
|
d[ret].ddata[i] = (wchar_t)0;
|
||||||
d[ret].dlen = wcbyte(s);
|
d[ret].dlen = wcbyte(s);
|
||||||
d[ret].valid = (char)0;
|
d[ret].valid = (char)0;
|
||||||
}
|
}
|
||||||
return(ret + 1);
|
return (ret + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
SJ2_study (dcid)
|
SJ2_study(dcid) struct studyrec* dcid;
|
||||||
struct studyrec *dcid;
|
|
||||||
{
|
{
|
||||||
sj3_gakusyuu(dcid);
|
sj3_gakushuu(dcid);
|
||||||
}
|
}
|
||||||
|
|
||||||
SJ2_clstudy (yomi1, yomi2, dcid)
|
SJ2_clstudy(yomi1, yomi2, dcid)
|
||||||
wchar16_t *yomi1, *yomi2;
|
wchar16_t* yomi1,
|
||||||
struct studyrec *dcid;
|
*yomi2;
|
||||||
|
struct studyrec* dcid;
|
||||||
{
|
{
|
||||||
unsigned char y1[BUFFLENGTH*2];
|
unsigned char y1[BUFFLENGTH * 2];
|
||||||
unsigned char y2[BUFFLENGTH*2];
|
unsigned char y2[BUFFLENGTH * 2];
|
||||||
|
|
||||||
(void) wcstombs((char *) y1, yomi1, BUFFLENGTH*2);
|
(void)wcstombs((char*)y1, yomi1, BUFFLENGTH * 2);
|
||||||
(void) wcstombs((char *) y2, yomi2, BUFFLENGTH*2);
|
(void)wcstombs((char*)y2, yomi2, BUFFLENGTH * 2);
|
||||||
|
|
||||||
if (current_locale == LC_CTYPE_SHIFTJIS) {
|
if(current_locale == LC_CTYPE_SHIFTJIS) {
|
||||||
sj3_gakusyuu2(y1, y2, dcid);
|
sj3_gakushuu2(y1, y2, dcid);
|
||||||
} else {
|
} else {
|
||||||
sj3_gakusyuu2_euc(y1, y2, dcid);
|
sj3_gakushuu2_euc(y1, y2, dcid);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SJ2_toroku (yomi, kanji, hinshi)
|
SJ2_toroku(yomi, kanji, hinshi)
|
||||||
wchar16_t *yomi, *kanji;
|
wchar16_t* yomi,
|
||||||
|
*kanji;
|
||||||
int hinshi;
|
int hinshi;
|
||||||
{
|
{
|
||||||
unsigned char y[(YOMILEN+1)*3];
|
unsigned char y[(YOMILEN + 1) * 3];
|
||||||
unsigned char k[(KLEN+1)*3];
|
unsigned char k[(KLEN + 1) * 3];
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
(void)wcstombs((char *) y, yomi, (YOMILEN+1)*3);
|
(void)wcstombs((char*)y, yomi, (YOMILEN + 1) * 3);
|
||||||
(void)wcstombs((char *) k, kanji, (KLEN+1)*3);
|
(void)wcstombs((char*)k, kanji, (KLEN + 1) * 3);
|
||||||
if (current_locale == LC_CTYPE_SHIFTJIS) {
|
if(current_locale == LC_CTYPE_SHIFTJIS) {
|
||||||
ret = sj3_touroku (y, k, hinshi);
|
ret = sj3_touroku(y, k, hinshi);
|
||||||
} else {
|
} else {
|
||||||
ret = sj3_touroku_euc (y, k, hinshi);
|
ret = sj3_touroku_euc(y, k, hinshi);
|
||||||
}
|
}
|
||||||
return(ret);
|
return (ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
SJ2_syoukyo (yomi, kanji, hinshi)
|
SJ2_shoukyo(yomi, kanji, hinshi)
|
||||||
wchar16_t *yomi, *kanji;
|
wchar16_t* yomi,
|
||||||
|
*kanji;
|
||||||
int hinshi;
|
int hinshi;
|
||||||
{
|
{
|
||||||
unsigned char y[(YOMILEN+1)*3];
|
unsigned char y[(YOMILEN + 1) * 3];
|
||||||
unsigned char k[(KLEN+1)*3];
|
unsigned char k[(KLEN + 1) * 3];
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
(void)wcstombs((char *) y, yomi, (YOMILEN+1)*3);
|
(void)wcstombs((char*)y, yomi, (YOMILEN + 1) * 3);
|
||||||
(void)wcstombs((char *) k, kanji, (KLEN+1)*3);
|
(void)wcstombs((char*)k, kanji, (KLEN + 1) * 3);
|
||||||
if (current_locale == LC_CTYPE_SHIFTJIS) {
|
if(current_locale == LC_CTYPE_SHIFTJIS) {
|
||||||
ret = sj3_syoukyo (y, k, hinshi);
|
ret = sj3_shoukyo(y, k, hinshi);
|
||||||
} else {
|
} else {
|
||||||
ret = sj3_syoukyo_euc (y, k, hinshi);
|
ret = sj3_shoukyo_euc(y, k, hinshi);
|
||||||
}
|
}
|
||||||
return(ret);
|
return (ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
sj_check_error (err)
|
sj_check_error(err) int err;
|
||||||
int err;
|
|
||||||
{
|
{
|
||||||
if (err & SJ3_SERVER_DEAD)
|
if(err & SJ3_SERVER_DEAD)
|
||||||
SJ_warnning(WCServer_Dead);
|
SJ_warnning(WCServer_Dead);
|
||||||
if (err & SJ3_ALREADY_CONNECTED)
|
if(err & SJ3_ALREADY_CONNECTED)
|
||||||
SJ_warnning(WCConnected);
|
SJ_warnning(WCConnected);
|
||||||
if (err & SJ3_CONNECT_ERROR)
|
if(err & SJ3_CONNECT_ERROR)
|
||||||
SJ_warnning(WCNconnect);
|
SJ_warnning(WCNconnect);
|
||||||
if (err & SJ3_CANNOT_OPEN_MDICT)
|
if(err & SJ3_CANNOT_OPEN_MDICT)
|
||||||
SJ_warnning(WCNopen_Mdic);
|
SJ_warnning(WCNopen_Mdic);
|
||||||
if (err & SJ3_CANNOT_MAKE_UDIR)
|
if(err & SJ3_CANNOT_MAKE_UDIR)
|
||||||
SJ_warnning(WCNmake_Udir);
|
SJ_warnning(WCNmake_Udir);
|
||||||
if (err & SJ3_CANNOT_MAKE_UDICT)
|
if(err & SJ3_CANNOT_MAKE_UDICT)
|
||||||
SJ_warnning(WCNmake_Udic);
|
SJ_warnning(WCNmake_Udic);
|
||||||
if (err & SJ3_CANNOT_OPEN_UDICT)
|
if(err & SJ3_CANNOT_OPEN_UDICT)
|
||||||
SJ_warnning(WCNopen_Udic);
|
SJ_warnning(WCNopen_Udic);
|
||||||
if (err & SJ3_CANNOT_MAKE_STUDY)
|
if(err & SJ3_CANNOT_MAKE_STUDY)
|
||||||
SJ_warnning(WCNmake_Study);
|
SJ_warnning(WCNmake_Study);
|
||||||
if (err & SJ3_CANNOT_OPEN_STUDY)
|
if(err & SJ3_CANNOT_OPEN_STUDY)
|
||||||
SJ_warnning(WCNopen_Study);
|
SJ_warnning(WCNopen_Study);
|
||||||
}
|
}
|
||||||
|
|
||||||
SJ2_reconnect ()
|
SJ2_reconnect() {
|
||||||
{
|
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
sj3_close();
|
sj3_close();
|
||||||
if (dict_num && dict_list)
|
if(dict_num && dict_list)
|
||||||
err = sj3_open_with_list(chmyhname(cur_serv), user_name, dict_num, dict_list, NULL, NULL);
|
err = sj3_open_with_list(chmyhname(cur_serv), user_name, dict_num, dict_list, NULL, NULL);
|
||||||
else
|
else
|
||||||
err = sj3_open(chmyhname(cur_serv), user_name);
|
err = sj3_open(chmyhname(cur_serv), user_name);
|
||||||
return(err);
|
return (err);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SJ2_henkan_end() {
|
||||||
SJ2_henkan_end ()
|
sj3_close();
|
||||||
{
|
|
||||||
sj3_close ();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SJ2_henkan_init ()
|
SJ2_henkan_init() {
|
||||||
{
|
|
||||||
int i, err;
|
int i, err;
|
||||||
int *err_dict = NULL;
|
int* err_dict = NULL;
|
||||||
int err_num = 0;
|
int err_num = 0;
|
||||||
|
|
||||||
sj3_set_timeout(5);
|
sj3_set_timeout(5);
|
||||||
|
|
||||||
if (dict_num && dict_list)
|
if(dict_num && dict_list)
|
||||||
err = sj3_open_with_list(chmyhname(cur_serv), user_name, dict_num,
|
err = sj3_open_with_list(chmyhname(cur_serv), user_name, dict_num,
|
||||||
dict_list, &err_num, &err_dict);
|
dict_list, &err_num, &err_dict);
|
||||||
else
|
else
|
||||||
err = sj3_open(chmyhname(cur_serv), user_name);
|
err = sj3_open(chmyhname(cur_serv), user_name);
|
||||||
i = 0;
|
i = 0;
|
||||||
while (err && i < MAXSERVER - 1 && serv_list[i + 1] != NULL) {
|
while(err && i < MAXSERVER - 1 && serv_list[i + 1] != NULL) {
|
||||||
if (dict_num && dict_list)
|
if(dict_num && dict_list)
|
||||||
err = sj3_open_with_list(chmyhname(serv_list[++i]), user_name,
|
err = sj3_open_with_list(chmyhname(serv_list[++i]), user_name,
|
||||||
dict_num, dict_list, &err_num, &err_dict);
|
dict_num, dict_list, &err_num, &err_dict);
|
||||||
else
|
else
|
||||||
err = sj3_open(chmyhname(cur_serv), user_name);
|
err = sj3_open(chmyhname(cur_serv), user_name);
|
||||||
}
|
}
|
||||||
if (err) {
|
if(err) {
|
||||||
printf("Warning ");
|
printf("Warning ");
|
||||||
sj_check_error(err);
|
sj_check_error(err);
|
||||||
printf("\n\r");
|
printf("\n\r");
|
||||||
set_dcflag(1);
|
set_dcflag(1);
|
||||||
return(1);
|
return (1);
|
||||||
} else if (err_num && err_dict) {
|
} else if(err_num && err_dict) {
|
||||||
printf("Warning ");
|
printf("Warning ");
|
||||||
for( i = 0; i < err_num; i++) {
|
for(i = 0; i < err_num; i++) {
|
||||||
printf("%s ", dict_list[err_dict[i]]);
|
printf("%s ", dict_list[err_dict[i]]);
|
||||||
}
|
}
|
||||||
printf(" files can't open\n");
|
printf(" files can't open\n");
|
||||||
|
|
@ -333,33 +312,32 @@ SJ2_henkan_init ()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sj3_autocon()
|
sj3_autocon() {
|
||||||
{
|
|
||||||
int i, err;
|
int i, err;
|
||||||
|
|
||||||
if (dict_num && dict_list) {
|
if(dict_num && dict_list) {
|
||||||
if (!(err = sj3_open_with_list(chmyhname(cur_serv), user_name, dict_num,
|
if(!(err = sj3_open_with_list(chmyhname(cur_serv), user_name, dict_num,
|
||||||
dict_list, NULL, NULL)))
|
dict_list, NULL, NULL)))
|
||||||
return(0);
|
return (0);
|
||||||
} else {
|
} else {
|
||||||
if (!(err = sj3_open(chmyhname(cur_serv), user_name)))
|
if(!(err = sj3_open(chmyhname(cur_serv), user_name)))
|
||||||
return(0);
|
return (0);
|
||||||
}
|
}
|
||||||
i = 0;
|
i = 0;
|
||||||
while (serv_list[i] != NULL && i < MAXSERVER) {
|
while(serv_list[i] != NULL && i < MAXSERVER) {
|
||||||
if (strcmp(cur_serv, serv_list[i]) != 0) {
|
if(strcmp(cur_serv, serv_list[i]) != 0) {
|
||||||
if (dict_num && dict_list) {
|
if(dict_num && dict_list) {
|
||||||
err = sj3_open_with_list(chmyhname(serv_list[i]), user_name,
|
err = sj3_open_with_list(chmyhname(serv_list[i]), user_name,
|
||||||
dict_num, dict_list, NULL, NULL);
|
dict_num, dict_list, NULL, NULL);
|
||||||
} else {
|
} else {
|
||||||
err = sj3_open(chmyhname(cur_serv), user_name);
|
err = sj3_open(chmyhname(cur_serv), user_name);
|
||||||
}
|
}
|
||||||
if (!err) {
|
if(!err) {
|
||||||
cur_serv = serv_list[i];
|
cur_serv = serv_list[i];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
return(err);
|
return (err);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
55
main.c
55
main.c
|
|
@ -47,14 +47,13 @@
|
||||||
#include "server.h"
|
#include "server.h"
|
||||||
|
|
||||||
extern int fork_flag;
|
extern int fork_flag;
|
||||||
extern char *lock_file;
|
extern char* lock_file;
|
||||||
|
|
||||||
char *version_number = "2.08C";
|
char* version_number = "2.08C";
|
||||||
char *time_stamp = "Mon Mar 23 16:42:59 JST 1998";
|
char* time_stamp = "Mon Mar 23 16:42:59 JST 1998";
|
||||||
|
|
||||||
static void
|
static void
|
||||||
opening(void)
|
opening(void) {
|
||||||
{
|
|
||||||
printf("Kana-Kanji Conversion Server Version %s\r\n", version_number);
|
printf("Kana-Kanji Conversion Server Version %s\r\n", version_number);
|
||||||
printf("Copyright (c) 1990-1995 Sony Corporation\r\n");
|
printf("Copyright (c) 1990-1995 Sony Corporation\r\n");
|
||||||
printf("Created at %s\r\n", time_stamp);
|
printf("Created at %s\r\n", time_stamp);
|
||||||
|
|
@ -62,34 +61,28 @@ opening(void)
|
||||||
|
|
||||||
#ifdef LOCK_FILE
|
#ifdef LOCK_FILE
|
||||||
|
|
||||||
int
|
int make_lockfile(void) {
|
||||||
make_lockfile(void)
|
|
||||||
{
|
|
||||||
int fd;
|
int fd;
|
||||||
|
|
||||||
fd = open(lock_file, O_CREAT | O_EXCL, 0600);
|
fd = open(lock_file, O_CREAT | O_EXCL, 0600);
|
||||||
if (fd < 0)
|
if(fd < 0)
|
||||||
return ERROR;
|
return ERROR;
|
||||||
close(fd);
|
close(fd);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int erase_lockfile(void) {
|
||||||
erase_lockfile(void)
|
|
||||||
{
|
|
||||||
return unlink(lock_file);
|
return unlink(lock_file);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static int
|
static int
|
||||||
signal_handler(int sig)
|
signal_handler(int sig) {
|
||||||
{
|
|
||||||
warning_out("signal %d catched.", sig);
|
warning_out("signal %d catched.", sig);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
terminate_handler(int sig)
|
terminate_handler(int sig) {
|
||||||
{
|
|
||||||
close_socket();
|
close_socket();
|
||||||
sj_closeall();
|
sj_closeall();
|
||||||
#ifdef LOCK_FILE
|
#ifdef LOCK_FILE
|
||||||
|
|
@ -98,9 +91,7 @@ terminate_handler(int sig)
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void server_terminate(void) {
|
||||||
server_terminate(void)
|
|
||||||
{
|
|
||||||
close_socket();
|
close_socket();
|
||||||
sj_closeall();
|
sj_closeall();
|
||||||
#ifdef LOCK_FILE
|
#ifdef LOCK_FILE
|
||||||
|
|
@ -110,12 +101,11 @@ server_terminate(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
exec_fork(void)
|
exec_fork(void) {
|
||||||
{
|
|
||||||
int tmp;
|
int tmp;
|
||||||
|
|
||||||
if (fork_flag && (tmp = fork())) {
|
if(fork_flag && (tmp = fork())) {
|
||||||
if (tmp < 0) {
|
if(tmp < 0) {
|
||||||
fprintf(stderr, "Can't fork child process\r\n");
|
fprintf(stderr, "Can't fork child process\r\n");
|
||||||
fflush(stderr);
|
fflush(stderr);
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -135,13 +125,12 @@ exec_fork(void)
|
||||||
signal(SIGINT, (void (*)())terminate_handler);
|
signal(SIGINT, (void (*)())terminate_handler);
|
||||||
signal(SIGQUIT, (void (*)())signal_handler);
|
signal(SIGQUIT, (void (*)())signal_handler);
|
||||||
signal(SIGTERM, (void (*)())terminate_handler);
|
signal(SIGTERM, (void (*)())terminate_handler);
|
||||||
if (fork_flag)
|
if(fork_flag)
|
||||||
signal(SIGTSTP, SIG_IGN);
|
signal(SIGTSTP, SIG_IGN);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
leave_tty(void)
|
leave_tty(void) {
|
||||||
{
|
|
||||||
int tmp;
|
int tmp;
|
||||||
|
|
||||||
tmp = open_error();
|
tmp = open_error();
|
||||||
|
|
@ -150,23 +139,21 @@ leave_tty(void)
|
||||||
kill(getppid(), SIGTERM);
|
kill(getppid(), SIGTERM);
|
||||||
fclose(stdin);
|
fclose(stdin);
|
||||||
fclose(stdout);
|
fclose(stdout);
|
||||||
if (!tmp)
|
if(!tmp)
|
||||||
fclose(stderr);
|
fclose(stderr);
|
||||||
|
|
||||||
if (fork_flag) {
|
if(fork_flag) {
|
||||||
if ((tmp = open("/dev/tty", O_RDWR)) >= 0) {
|
if((tmp = open("/dev/tty", O_RDWR)) >= 0) {
|
||||||
ioctl(tmp, TIOCNOTTY, 0);
|
ioctl(tmp, TIOCNOTTY, 0);
|
||||||
close(tmp);
|
close(tmp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int main(int argc, char** argv) {
|
||||||
main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
opening();
|
opening();
|
||||||
#ifndef __NetBSD__
|
#ifndef __NetBSD__
|
||||||
if (setuid(geteuid())) {
|
if(setuid(geteuid())) {
|
||||||
fprintf(stderr, "error at setuid.\r\n");
|
fprintf(stderr, "error at setuid.\r\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
@ -177,7 +164,7 @@ main(int argc, char **argv)
|
||||||
set_default();
|
set_default();
|
||||||
|
|
||||||
#ifdef LOCK_FILE
|
#ifdef LOCK_FILE
|
||||||
if (make_lockfile() == ERROR) {
|
if(make_lockfile() == ERROR) {
|
||||||
fprintf(stderr, "Already running...\r\n");
|
fprintf(stderr, "Already running...\r\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
113
makedict.c
113
makedict.c
|
|
@ -27,15 +27,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: makedict.c,v $
|
|
||||||
* $SonyRevision: 1.2 $
|
|
||||||
* $SonyDate: 1994/12/09 11:27:05 $
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
/* #include "sj_sysvdef.h" */ /* XXX: no more need it? */
|
/* #include "sj_sysvdef.h" */ /* XXX: no more need it? */
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
@ -48,30 +39,24 @@
|
||||||
#include "const.h"
|
#include "const.h"
|
||||||
#include "dicttool.h"
|
#include "dicttool.h"
|
||||||
|
|
||||||
FILE *infp = NULL;
|
FILE* infp = NULL;
|
||||||
FILE *outfp = NULL;
|
FILE* outfp = NULL;
|
||||||
|
|
||||||
static char *idxtop = NULL;
|
static char* idxtop = NULL;
|
||||||
|
|
||||||
|
int main(int argc, char** argv) {
|
||||||
int
|
|
||||||
main(int argc, char** argv)
|
|
||||||
{
|
|
||||||
parse(argc, argv);
|
parse(argc, argv);
|
||||||
|
|
||||||
while (readline()) setline(makelist);
|
while(readline()) setline(makelist);
|
||||||
flush_douon();
|
flush_douon();
|
||||||
makehead((unsigned char *)argv[2]);
|
makehead((unsigned char*)argv[2]);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char* make_idxlist(char* name) {
|
||||||
char*
|
|
||||||
make_idxlist(char* name)
|
|
||||||
{
|
|
||||||
int i;
|
int i;
|
||||||
char *p;
|
char* p;
|
||||||
|
|
||||||
i = strlen(name);
|
i = strlen(name);
|
||||||
p = Zalloc(i + 2);
|
p = Zalloc(i + 2);
|
||||||
|
|
@ -79,66 +64,53 @@ make_idxlist(char* name)
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
char*
|
char* get_idxlist(char* name) {
|
||||||
get_idxlist(char* name)
|
FILE* fp;
|
||||||
{
|
|
||||||
FILE *fp;
|
|
||||||
int i;
|
int i;
|
||||||
char *p, *q, *r;
|
char *p, *q, *r;
|
||||||
|
|
||||||
|
|
||||||
fp = Fopen(name, "r");
|
fp = Fopen(name, "r");
|
||||||
|
|
||||||
|
|
||||||
i = Fsize(name);
|
i = Fsize(name);
|
||||||
|
|
||||||
|
|
||||||
p = Zalloc(i + 2);
|
p = Zalloc(i + 2);
|
||||||
Fseek(fp, 0L, 0);
|
Fseek(fp, 0L, 0);
|
||||||
Fread(p, 1, i, fp);
|
Fread(p, 1, i, fp);
|
||||||
Fclose(fp);
|
Fclose(fp);
|
||||||
|
|
||||||
|
for(q = r = p; *q;) {
|
||||||
for (q = r = p ; *q ; ) {
|
while(*q <= ' ') q++;
|
||||||
while (*q <= ' ') q++;
|
while(*q > ' ') *r++ = *q++;
|
||||||
while (*q > ' ') *r++ = *q++;
|
|
||||||
*r++ = 0;
|
*r++ = 0;
|
||||||
q++;
|
q++;
|
||||||
}
|
}
|
||||||
*r = 0;
|
*r = 0;
|
||||||
|
|
||||||
|
|
||||||
i = 0;
|
i = 0;
|
||||||
for (q = p ; *q ; ) {
|
for(q = p; *q;) {
|
||||||
if ((fp = fopen(q, "r"))!=NULL)
|
if((fp = fopen(q, "r")) != NULL)
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
else {
|
else {
|
||||||
fprintf(stderr, "Can't open %s mode \"r\"\n", q);
|
fprintf(stderr, "Can't open %s mode \"r\"\n", q);
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
while (*q++) ;
|
while(*q++);
|
||||||
}
|
}
|
||||||
if (i) exit(1);
|
if(i) exit(1);
|
||||||
|
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void parse(int argc, char** argv) {
|
||||||
|
char* progname = NULL;
|
||||||
|
char* p;
|
||||||
|
|
||||||
void
|
if((progname = strrchr(argv[0], '/')) != NULL)
|
||||||
parse(int argc, char** argv)
|
|
||||||
{
|
|
||||||
char *progname = NULL;
|
|
||||||
char *p;
|
|
||||||
|
|
||||||
|
|
||||||
if ((progname = strrchr(argv[0], '/'))!=NULL)
|
|
||||||
progname++;
|
progname++;
|
||||||
else
|
else
|
||||||
progname = argv[0];
|
progname = argv[0];
|
||||||
|
|
||||||
|
if(argc != 3) usage(progname);
|
||||||
if (argc != 3) usage(progname);
|
|
||||||
|
|
||||||
|
|
||||||
p = argv[1];
|
p = argv[1];
|
||||||
idxtop = (*p == '-') ? get_idxlist(p + 1) : make_idxlist(p);
|
idxtop = (*p == '-') ? get_idxlist(p + 1) : make_idxlist(p);
|
||||||
|
|
@ -146,44 +118,35 @@ parse(int argc, char** argv)
|
||||||
outfp = Fopen(argv[2], "w");
|
outfp = Fopen(argv[2], "w");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int get_number(char* ptr) {
|
||||||
int
|
|
||||||
get_number(char* ptr)
|
|
||||||
{
|
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
||||||
while (*ptr >= '0' && *ptr <= '9') {
|
while(*ptr >= '0' && *ptr <= '9') {
|
||||||
i = i * 10 + (*ptr++ - '0');
|
i = i * 10 + (*ptr++ - '0');
|
||||||
}
|
}
|
||||||
|
|
||||||
return(i);
|
return (i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void usage(char* name) {
|
||||||
void
|
|
||||||
usage(char* name)
|
|
||||||
{
|
|
||||||
fprintf(stderr, "Usage: %s text_file binary_file\n",
|
fprintf(stderr, "Usage: %s text_file binary_file\n",
|
||||||
name ? name : "encode");
|
name ? name : "encode");
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int getch(void) {
|
||||||
int
|
if(infp) {
|
||||||
getch(void)
|
|
||||||
{
|
|
||||||
if (infp) {
|
|
||||||
int c;
|
int c;
|
||||||
|
|
||||||
if ((c = Fgetc(infp)) != EOF) return c;
|
if((c = Fgetc(infp)) != EOF) return c;
|
||||||
|
|
||||||
Fclose(infp);
|
Fclose(infp);
|
||||||
infp = NULL;
|
infp = NULL;
|
||||||
|
|
||||||
while (*idxtop++) ;
|
while(*idxtop++);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (*idxtop) {
|
if(*idxtop) {
|
||||||
infp = Fopen(idxtop, "r");
|
infp = Fopen(idxtop, "r");
|
||||||
|
|
||||||
fprintf(stderr, "Reading %s\n", idxtop);
|
fprintf(stderr, "Reading %s\n", idxtop);
|
||||||
|
|
@ -195,29 +158,25 @@ getch(void)
|
||||||
return EOF;
|
return EOF;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void mark_file(FILE* out) {
|
||||||
void
|
|
||||||
mark_file(FILE* out)
|
|
||||||
{
|
|
||||||
static char pathname[MAXPATHLEN];
|
static char pathname[MAXPATHLEN];
|
||||||
static long pos;
|
static long pos;
|
||||||
|
|
||||||
if (out) {
|
if(out) {
|
||||||
FILE *fp;
|
FILE* fp;
|
||||||
int c;
|
int c;
|
||||||
|
|
||||||
fprintf(out, "%s:\t", pathname);
|
fprintf(out, "%s:\t", pathname);
|
||||||
fp = Fopen(pathname, "r");
|
fp = Fopen(pathname, "r");
|
||||||
Fseek(fp, pos, 0);
|
Fseek(fp, pos, 0);
|
||||||
c = Fgetc(fp);
|
c = Fgetc(fp);
|
||||||
while (c != EOF && c != '\n') {
|
while(c != EOF && c != '\n') {
|
||||||
fputc(c, out);
|
fputc(c, out);
|
||||||
c = Fgetc(fp);
|
c = Fgetc(fp);
|
||||||
}
|
}
|
||||||
fputc('\n', out);
|
fputc('\n', out);
|
||||||
Fclose(fp);
|
Fclose(fp);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
strcpy(pathname, idxtop);
|
strcpy(pathname, idxtop);
|
||||||
pos = infp ? Ftell(infp) : 0;
|
pos = infp ? Ftell(infp) : 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
436
makelist.c
436
makelist.c
|
|
@ -27,15 +27,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: makelist.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:00:39 $
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
@ -47,81 +38,62 @@
|
||||||
#define SS2 0x8e
|
#define SS2 0x8e
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern DouonRec *douon_ptr;
|
extern DouonRec* douon_ptr;
|
||||||
extern int douon_num;
|
extern int douon_num;
|
||||||
extern int yomi_len;
|
extern int yomi_len;
|
||||||
extern int hinsi_num;
|
extern int hinshi_num;
|
||||||
extern int kanji_len;
|
extern int kanji_len;
|
||||||
extern HindoRec *hindo[];
|
extern HindoRec* hindo[];
|
||||||
extern int hindo_num;
|
extern int hindo_num;
|
||||||
extern HindoRec *askknj[];
|
extern HindoRec* askknj[];
|
||||||
extern int askknj_num;
|
extern int askknj_num;
|
||||||
extern HindoRec *assyuku;
|
extern HindoRec* asshuku;
|
||||||
|
|
||||||
static DouonRec *drectmp = NULL;
|
|
||||||
|
|
||||||
|
|
||||||
|
static DouonRec* drectmp = NULL;
|
||||||
|
|
||||||
static void
|
static void
|
||||||
clearklist(KanjiRec* krec)
|
clearklist(KanjiRec* krec) {
|
||||||
{
|
KanjiRec* p;
|
||||||
KanjiRec *p;
|
|
||||||
|
|
||||||
|
while(krec) {
|
||||||
|
|
||||||
while (krec) {
|
Free(krec->kptr);
|
||||||
|
Free(krec->aptr);
|
||||||
Free(krec -> kptr);
|
|
||||||
Free(krec -> aptr);
|
|
||||||
|
|
||||||
|
|
||||||
p = krec;
|
p = krec;
|
||||||
krec = krec -> knext;
|
krec = krec->knext;
|
||||||
|
|
||||||
|
|
||||||
Free(p);
|
Free(p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
clearhlist(HinsiRec* hrec)
|
clearhlist(HinshiRec* hrec) {
|
||||||
{
|
HinshiRec* p;
|
||||||
HinsiRec *p;
|
|
||||||
|
|
||||||
|
while(hrec) {
|
||||||
|
|
||||||
while (hrec) {
|
clearklist(hrec->krec);
|
||||||
|
|
||||||
clearklist(hrec -> krec);
|
|
||||||
|
|
||||||
|
|
||||||
p = hrec;
|
p = hrec;
|
||||||
hrec = hrec -> hnext;
|
hrec = hrec->hnext;
|
||||||
|
|
||||||
|
|
||||||
Free(p);
|
Free(p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void clear_list(void) {
|
||||||
|
DouonRec* p;
|
||||||
|
DouonRec* drec = douon_ptr;
|
||||||
|
|
||||||
void
|
while(drec) {
|
||||||
clear_list(void)
|
|
||||||
{
|
|
||||||
DouonRec *p;
|
|
||||||
DouonRec *drec = douon_ptr;
|
|
||||||
|
|
||||||
|
Free(drec->yptr);
|
||||||
|
|
||||||
while (drec) {
|
clearhlist(drec->hrec);
|
||||||
|
|
||||||
Free(drec -> yptr);
|
|
||||||
|
|
||||||
|
|
||||||
clearhlist(drec -> hrec);
|
|
||||||
|
|
||||||
|
|
||||||
p = drec;
|
p = drec;
|
||||||
drec = drec -> dnext;
|
drec = drec->dnext;
|
||||||
|
|
||||||
|
|
||||||
Free(p);
|
Free(p);
|
||||||
}
|
}
|
||||||
|
|
@ -129,24 +101,20 @@ clear_list(void)
|
||||||
douon_ptr = NULL;
|
douon_ptr = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static unsigned char*
|
static unsigned char*
|
||||||
makekanji(int *yomi, int* kanji, int* atr, int* len)
|
makekanji(int* yomi, int* kanji, int* atr, int* len) {
|
||||||
{
|
|
||||||
int kana[MaxYomiLength + 1];
|
int kana[MaxYomiLength + 1];
|
||||||
unsigned char ktmp[MaxKanjiLength * 3 + MaxAtrNumber * 2 + 1];
|
unsigned char ktmp[MaxKanjiLength * 3 + MaxAtrNumber * 2 + 1];
|
||||||
int i;
|
int i;
|
||||||
int pos = 0;
|
int pos = 0;
|
||||||
int *p;
|
int* p;
|
||||||
unsigned char *q;
|
unsigned char* q;
|
||||||
|
|
||||||
|
for(p = yomi, i = 0; *p;)
|
||||||
for (p = yomi, i = 0 ; *p ; )
|
|
||||||
kana[i++] = h2kcode(*p++);
|
kana[i++] = h2kcode(*p++);
|
||||||
kana[i] = 0;
|
kana[i] = 0;
|
||||||
|
|
||||||
while (*atr) {
|
while(*atr) {
|
||||||
i = *atr;
|
i = *atr;
|
||||||
atr++;
|
atr++;
|
||||||
#ifndef NO_ATR
|
#ifndef NO_ATR
|
||||||
|
|
@ -155,31 +123,29 @@ makekanji(int *yomi, int* kanji, int* atr, int* len)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if((i = top_strcmp(yomi, kanji)) != 0) {
|
||||||
if ((i = top_strcmp(yomi, kanji))!=0) {
|
|
||||||
kanji += i;
|
kanji += i;
|
||||||
ktmp[pos++] = (ZenHiraAssyuku | (i - 1));
|
ktmp[pos++] = (ZenHiraAsshuku | (i - 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
else if ((i = top_strcmp(kana, kanji))!=0) {
|
else if((i = top_strcmp(kana, kanji)) != 0) {
|
||||||
kanji += i;
|
kanji += i;
|
||||||
ktmp[pos++] = (ZenKataAssyuku | (i - 1));
|
ktmp[pos++] = (ZenKataAsshuku | (i - 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
while(*kanji) {
|
||||||
|
|
||||||
while (*kanji) {
|
if((i = last_strcmp(yomi, kanji)) != 0) {
|
||||||
|
|
||||||
if ((i = last_strcmp(yomi, kanji))!=0) {
|
|
||||||
kanji += i;
|
kanji += i;
|
||||||
ktmp[pos++] = (ZenHiraAssyuku | (i - 1));
|
ktmp[pos++] = (ZenHiraAsshuku | (i - 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
else if ((i = last_strcmp(kana, kanji))!=0) {
|
else if((i = last_strcmp(kana, kanji)) != 0) {
|
||||||
kanji += i;
|
kanji += i;
|
||||||
ktmp[pos++] = (ZenKataAssyuku | (i - 1));
|
ktmp[pos++] = (ZenKataAsshuku | (i - 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (((*kanji >> 8) & 0xff) == SS2 || *kanji < 0x100) {
|
else if(((*kanji >> 8) & 0xff) == SS2 || *kanji < 0x100) {
|
||||||
ktmp[pos] = LeadingHankaku;
|
ktmp[pos] = LeadingHankaku;
|
||||||
ktmp[pos + 1] = (*kanji & 0xff);
|
ktmp[pos + 1] = (*kanji & 0xff);
|
||||||
kanji++;
|
kanji++;
|
||||||
|
|
@ -187,12 +153,12 @@ makekanji(int *yomi, int* kanji, int* atr, int* len)
|
||||||
}
|
}
|
||||||
|
|
||||||
else {
|
else {
|
||||||
if (*kanji < 0x10000) {
|
if(*kanji < 0x10000) {
|
||||||
ktmp[pos] = ((*kanji >> 8) & NormalKanjiMask);
|
ktmp[pos] = ((*kanji >> 8) & NormalKanjiMask);
|
||||||
ktmp[pos + 1] = (*kanji & NormalKanjiMask);
|
ktmp[pos + 1] = (*kanji & NormalKanjiMask);
|
||||||
kanji++;
|
kanji++;
|
||||||
pos += 2;
|
pos += 2;
|
||||||
} else if (*kanji < 0x1000000) {
|
} else if(*kanji < 0x1000000) {
|
||||||
ktmp[pos] = ((*kanji >> 8) & NormalKanjiMask);
|
ktmp[pos] = ((*kanji >> 8) & NormalKanjiMask);
|
||||||
ktmp[pos + 1] = (*kanji & 0xff);
|
ktmp[pos + 1] = (*kanji & 0xff);
|
||||||
kanji++;
|
kanji++;
|
||||||
|
|
@ -205,9 +171,8 @@ makekanji(int *yomi, int* kanji, int* atr, int* len)
|
||||||
}
|
}
|
||||||
*len = pos;
|
*len = pos;
|
||||||
|
|
||||||
|
q = (unsigned char*)Malloc(pos);
|
||||||
q = (unsigned char *)Malloc(pos);
|
if(!q) {
|
||||||
if (!q) {
|
|
||||||
fprintf(stderr, "\245\341\245\342\245\352\244\254\311\324\302\255\244\267\244\336\244\267\244\277");
|
fprintf(stderr, "\245\341\245\342\245\352\244\254\311\324\302\255\244\267\244\336\244\267\244\277");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
@ -216,32 +181,28 @@ makekanji(int *yomi, int* kanji, int* atr, int* len)
|
||||||
return q;
|
return q;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static unsigned char*
|
static unsigned char*
|
||||||
makeyomi(int* yomi)
|
makeyomi(int* yomi) {
|
||||||
{
|
|
||||||
unsigned char tmp[MaxYomiLength + 1];
|
unsigned char tmp[MaxYomiLength + 1];
|
||||||
int i;
|
int i;
|
||||||
int j;
|
int j;
|
||||||
int *y = yomi;
|
int* y = yomi;
|
||||||
unsigned char *p;
|
unsigned char* p;
|
||||||
|
|
||||||
|
for(i = 0; *y;) {
|
||||||
for (i = 0 ; *y ; ) {
|
|
||||||
j = cnvyomi(*y++);
|
j = cnvyomi(*y++);
|
||||||
if (j == 0) {
|
if(j == 0) {
|
||||||
fprintf(stderr, "\311\324\300\265\244\312\312\270\273\372\244\254\306\311\244\337\244\313\273\310\244\357\244\354\244\306\244\244\244\336\244\271\n");
|
fprintf(stderr, "\311\324\300\265\244\312\312\270\273\372\244\254\306\311\244\337\244\313\273\310\244\357\244\354\244\306\244\244\244\336\244\271\n");
|
||||||
output_int(stderr, yomi); fputc('\n', stderr);
|
output_int(stderr, yomi);
|
||||||
|
fputc('\n', stderr);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
tmp[i++] = j;
|
tmp[i++] = j;
|
||||||
}
|
}
|
||||||
tmp[i++] = 0;
|
tmp[i++] = 0;
|
||||||
|
|
||||||
|
p = (unsigned char*)Malloc(i);
|
||||||
p = (unsigned char *)Malloc(i);
|
if(!p) {
|
||||||
if (!p) {
|
|
||||||
fprintf(stderr, "\245\341\245\342\245\352\244\254\311\324\302\255\244\267\244\336\244\267\244\277");
|
fprintf(stderr, "\245\341\245\342\245\352\244\254\311\324\302\255\244\267\244\336\244\267\244\277");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
@ -250,165 +211,140 @@ makeyomi(int* yomi)
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static KanjiRec*
|
static KanjiRec*
|
||||||
make_krec(unsigned char* kcode, int klen)
|
make_krec(unsigned char* kcode, int klen) {
|
||||||
{
|
KanjiRec* krec;
|
||||||
KanjiRec *krec;
|
|
||||||
|
|
||||||
|
krec = (KanjiRec*)Malloc(sizeof(KanjiRec));
|
||||||
krec = (KanjiRec *)Malloc(sizeof(KanjiRec));
|
if(!krec) {
|
||||||
if (!krec) {
|
|
||||||
fprintf(stderr, "\245\341\245\342\245\352\244\254\311\324\302\255\244\267\244\336\244\267\244\277");
|
fprintf(stderr, "\245\341\245\342\245\352\244\254\311\324\302\255\244\267\244\336\244\267\244\277");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
krec->klen = klen;
|
||||||
krec -> klen = klen;
|
krec->kptr = kcode;
|
||||||
krec -> kptr = kcode;
|
krec->alen = 0;
|
||||||
krec -> alen = 0;
|
krec->aptr = NULL;
|
||||||
krec -> aptr = NULL;
|
krec->knext = NULL;
|
||||||
krec -> knext = NULL;
|
|
||||||
|
|
||||||
return krec;
|
return krec;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static HinshiRec*
|
||||||
|
make_hrec(int hinshi) {
|
||||||
|
HinshiRec* hrec;
|
||||||
|
|
||||||
|
hrec = (HinshiRec*)Malloc(sizeof(HinshiRec));
|
||||||
static HinsiRec*
|
if(!hrec) {
|
||||||
make_hrec(int hinsi)
|
|
||||||
{
|
|
||||||
HinsiRec *hrec;
|
|
||||||
|
|
||||||
|
|
||||||
hrec = (HinsiRec *)Malloc(sizeof(HinsiRec));
|
|
||||||
if (!hrec) {
|
|
||||||
fprintf(stderr, "\245\341\245\342\245\352\244\254\311\324\302\255\244\267\244\336\244\267\244\277");
|
fprintf(stderr, "\245\341\245\342\245\352\244\254\311\324\302\255\244\267\244\336\244\267\244\277");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
hrec->hinshi = hinshi;
|
||||||
hrec -> hinsi = hinsi;
|
hrec->krec = NULL;
|
||||||
hrec -> krec = NULL;
|
hrec->hnext = NULL;
|
||||||
hrec -> hnext = NULL;
|
|
||||||
|
|
||||||
return hrec;
|
return hrec;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static DouonRec*
|
static DouonRec*
|
||||||
make_drec(unsigned char* ycode)
|
make_drec(unsigned char* ycode) {
|
||||||
{
|
DouonRec* drec;
|
||||||
DouonRec *drec;
|
|
||||||
|
|
||||||
|
drec = (DouonRec*)Malloc(sizeof(DouonRec));
|
||||||
drec = (DouonRec *)Malloc(sizeof(DouonRec));
|
if(!drec) {
|
||||||
if (!drec) {
|
|
||||||
fprintf(stderr, "\245\341\245\342\245\352\244\254\311\324\302\255\244\267\244\336\244\267\244\277");
|
fprintf(stderr, "\245\341\245\342\245\352\244\254\311\324\302\255\244\267\244\336\244\267\244\277");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
drec->yptr = ycode;
|
||||||
drec -> yptr = ycode;
|
drec->hrec_num = 0;
|
||||||
drec -> hrec_num = 0;
|
drec->hrec = NULL;
|
||||||
drec -> hrec = NULL;
|
drec->dnext = NULL;
|
||||||
drec -> dnext = NULL;
|
|
||||||
|
|
||||||
return drec;
|
return drec;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
diff_ylen(DouonRec *drec)
|
diff_ylen(DouonRec* drec) {
|
||||||
{
|
DouonRec* dptr;
|
||||||
DouonRec *dptr;
|
DouonRec* dprev;
|
||||||
DouonRec *dprev;
|
unsigned char* p1;
|
||||||
unsigned char *p1;
|
unsigned char* p2;
|
||||||
unsigned char *p2;
|
|
||||||
int ylen = 0;
|
int ylen = 0;
|
||||||
|
|
||||||
|
dptr = douon_ptr;
|
||||||
dptr = douon_ptr; dprev = NULL;
|
dprev = NULL;
|
||||||
while (dptr) {
|
while(dptr) {
|
||||||
dprev = dptr;
|
dprev = dptr;
|
||||||
dptr = dptr -> dnext;
|
dptr = dptr->dnext;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dprev) {
|
if(dprev) {
|
||||||
|
|
||||||
p1 = dprev -> yptr; p2 = drec -> yptr;
|
p1 = dprev->yptr;
|
||||||
while (*p1 && (*p1 == *p2)) { p1++; p2++; }
|
p2 = drec->yptr;
|
||||||
|
while(*p1 && (*p1 == *p2)) {
|
||||||
|
p1++;
|
||||||
|
p2++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(*p1 == *p2) {
|
||||||
if (*p1 == *p2) {
|
|
||||||
fprintf(stderr, "\305\371\244\267\244\244\306\311\244\337\244\316\306\261\262\273\270\354\245\326\245\355\245\303\245\257\244\254\244\242\244\353\n");
|
fprintf(stderr, "\305\371\244\267\244\244\306\311\244\337\244\316\306\261\262\273\270\354\245\326\245\355\245\303\245\257\244\254\244\242\244\353\n");
|
||||||
output_yomi(stderr, dprev -> yptr); fputc('\n', stderr);
|
output_yomi(stderr, dprev->yptr);
|
||||||
|
fputc('\n', stderr);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (*p1 > *p2) {
|
else if(*p1 > *p2) {
|
||||||
fprintf(stderr, "\306\311\244\337\244\316\275\347\275\370\244\254\244\252\244\253\244\267\244\244\n");
|
fprintf(stderr, "\306\311\244\337\244\316\275\347\275\370\244\254\244\252\244\253\244\267\244\244\n");
|
||||||
output_yomi(stderr, dprev->yptr); fputc('\n', stderr);
|
output_yomi(stderr, dprev->yptr);
|
||||||
output_yomi(stderr, drec->yptr); fputc('\n', stderr);
|
fputc('\n', stderr);
|
||||||
|
output_yomi(stderr, drec->yptr);
|
||||||
|
fputc('\n', stderr);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
while(*p2++) ylen++;
|
||||||
while (*p2++) ylen++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return ylen;
|
return ylen;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
douon_knj(DouonRec* drec)
|
douon_knj(DouonRec* drec) {
|
||||||
{
|
|
||||||
int i;
|
int i;
|
||||||
int len = 0;
|
int len = 0;
|
||||||
unsigned char *p;
|
unsigned char* p;
|
||||||
unsigned char *knjofscvt();
|
unsigned char* knjofscvt();
|
||||||
HinsiRec *hrec;
|
HinshiRec* hrec;
|
||||||
KanjiRec *krec;
|
KanjiRec* krec;
|
||||||
|
|
||||||
|
for(hrec = drec->hrec; hrec; hrec = hrec->hnext) {
|
||||||
|
|
||||||
for (hrec = drec -> hrec ; hrec ; hrec = hrec -> hnext) {
|
for(krec = hrec->krec; krec; krec = krec->knext) {
|
||||||
|
|
||||||
for (krec = hrec -> krec ; krec ; krec = krec -> knext) {
|
|
||||||
|
|
||||||
p = knjofscvt(krec -> kptr, krec -> klen, &i);
|
|
||||||
|
|
||||||
|
p = knjofscvt(krec->kptr, krec->klen, &i);
|
||||||
|
|
||||||
len += i + 1;
|
len += i + 1;
|
||||||
|
|
||||||
|
|
||||||
knjhnd_set(p, i);
|
knjhnd_set(p, i);
|
||||||
|
|
||||||
|
krec->alen = i;
|
||||||
|
krec->aptr = p;
|
||||||
|
|
||||||
krec -> alen = i;
|
set_ofsrec(krec->kptr, krec->klen, 0);
|
||||||
krec -> aptr = p;
|
|
||||||
|
|
||||||
|
|
||||||
set_ofsrec(krec -> kptr, krec -> klen, 0);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
make_d_list(DouonRec* drec)
|
make_d_list(DouonRec* drec) {
|
||||||
{
|
|
||||||
DouonRec *dptr, *dprev;
|
DouonRec *dptr, *dprev;
|
||||||
HinsiRec *hptr;
|
HinshiRec* hptr;
|
||||||
KanjiRec *kptr;
|
KanjiRec* kptr;
|
||||||
int ylen;
|
int ylen;
|
||||||
int klen;
|
int klen;
|
||||||
int hnum;
|
int hnum;
|
||||||
|
|
@ -417,201 +353,161 @@ make_d_list(DouonRec* drec)
|
||||||
|
|
||||||
start:
|
start:
|
||||||
|
|
||||||
if (douon_ptr == NULL) {
|
if(douon_ptr == NULL) {
|
||||||
douon_num = 0;
|
douon_num = 0;
|
||||||
yomi_len = 0;
|
yomi_len = 0;
|
||||||
hinsi_num = 0;
|
hinshi_num = 0;
|
||||||
kanji_len = 0;
|
kanji_len = 0;
|
||||||
assyuku = NULL;
|
asshuku = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
klen = douon_knj(drec);
|
klen = douon_knj(drec);
|
||||||
|
|
||||||
|
|
||||||
ylen = diff_ylen(drec);
|
ylen = diff_ylen(drec);
|
||||||
|
|
||||||
|
hnum = drec->hrec_num;
|
||||||
hnum = drec -> hrec_num;
|
|
||||||
|
|
||||||
|
|
||||||
i = 1 +
|
i = 1 +
|
||||||
MaxKnjAskNumber +
|
MaxKnjAskNumber +
|
||||||
|
|
||||||
douon_num * DouonBlkSizeNumber + DouonBlkSizeNumber +
|
douon_num * DouonBlkSizeNumber + DouonBlkSizeNumber +
|
||||||
yomi_len + ylen +
|
yomi_len + ylen +
|
||||||
hinsi_num + hnum +
|
hinshi_num + hnum +
|
||||||
hinsi_num + hnum +
|
hinshi_num + hnum +
|
||||||
kanji_len + klen;
|
kanji_len + klen;
|
||||||
|
|
||||||
|
|
||||||
len = (i <= MainSegmentLength) ? 0 : decide_knjask();
|
len = (i <= MainSegmentLength) ? 0 : decide_knjask();
|
||||||
|
|
||||||
|
if((i - len) <= MainSegmentLength) {
|
||||||
|
|
||||||
if ((i - len) <= MainSegmentLength) {
|
if(douon_ptr) {
|
||||||
|
|
||||||
if (douon_ptr) {
|
dptr = douon_ptr;
|
||||||
|
dprev = NULL;
|
||||||
dptr = douon_ptr; dprev = NULL;
|
while(dptr) {
|
||||||
while (dptr) {
|
|
||||||
dprev = dptr;
|
dprev = dptr;
|
||||||
dptr = dptr -> dnext;
|
dptr = dptr->dnext;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dprev->dnext = drec;
|
||||||
dprev -> dnext = drec;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
else {
|
else {
|
||||||
|
|
||||||
douon_ptr = drec;
|
douon_ptr = drec;
|
||||||
}
|
}
|
||||||
drec -> dnext = NULL;
|
drec->dnext = NULL;
|
||||||
|
|
||||||
|
|
||||||
drec -> dlen = ylen;
|
|
||||||
|
|
||||||
|
drec->dlen = ylen;
|
||||||
|
|
||||||
douon_num += 1;
|
douon_num += 1;
|
||||||
|
|
||||||
|
|
||||||
yomi_len += ylen;
|
yomi_len += ylen;
|
||||||
|
|
||||||
|
hinshi_num += hnum;
|
||||||
hinsi_num += hnum;
|
|
||||||
|
|
||||||
|
|
||||||
kanji_len += klen;
|
kanji_len += klen;
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (douon_ptr == NULL) {
|
else if(douon_ptr == NULL) {
|
||||||
fprintf(stderr, "\243\261\306\261\262\273\270\354\245\326\245\355\245\303\245\257\244\254\302\347\244\255\244\271\244\256\244\336\244\271\n");
|
fprintf(stderr, "\243\261\306\261\262\273\270\354\245\326\245\355\245\303\245\257\244\254\302\347\244\255\244\271\244\256\244\336\244\271\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for(hptr = drec->hrec; hptr; hptr = hptr->hnext) {
|
||||||
|
for(kptr = hptr->krec; kptr; kptr = kptr->knext) {
|
||||||
|
|
||||||
for (hptr = drec -> hrec ; hptr ; hptr = hptr -> hnext) {
|
knjhnd_reset(kptr->aptr, kptr->alen);
|
||||||
for (kptr = hptr -> krec ; kptr ; kptr = kptr -> knext) {
|
|
||||||
|
|
||||||
|
Free(kptr->aptr);
|
||||||
knjhnd_reset(kptr -> aptr, kptr -> alen);
|
kptr->aptr = NULL;
|
||||||
|
|
||||||
|
|
||||||
Free(kptr -> aptr);
|
|
||||||
kptr -> aptr = NULL;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
len = decide_knjask();
|
len = decide_knjask();
|
||||||
|
|
||||||
|
|
||||||
makeseg();
|
makeseg();
|
||||||
|
|
||||||
|
|
||||||
clear_list();
|
clear_list();
|
||||||
|
|
||||||
|
|
||||||
clear_hindo();
|
clear_hindo();
|
||||||
|
|
||||||
|
|
||||||
clear_ofsrec();
|
clear_ofsrec();
|
||||||
|
|
||||||
|
|
||||||
askknj_num = 0;
|
askknj_num = 0;
|
||||||
|
|
||||||
|
clear_asshuku();
|
||||||
clear_assyuku();
|
|
||||||
|
|
||||||
goto start;
|
goto start;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void flush_douon(void) {
|
||||||
void
|
if(drectmp) {
|
||||||
flush_douon(void)
|
|
||||||
{
|
|
||||||
if (drectmp) {
|
|
||||||
|
|
||||||
make_d_list(drectmp);
|
make_d_list(drectmp);
|
||||||
|
|
||||||
drectmp = NULL;
|
drectmp = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (douon_ptr) {
|
if(douon_ptr) {
|
||||||
|
|
||||||
decide_knjask();
|
decide_knjask();
|
||||||
|
|
||||||
|
|
||||||
makeseg();
|
makeseg();
|
||||||
|
|
||||||
|
|
||||||
clear_list();
|
clear_list();
|
||||||
|
|
||||||
|
|
||||||
clear_hindo();
|
clear_hindo();
|
||||||
|
|
||||||
|
|
||||||
clear_ofsrec();
|
clear_ofsrec();
|
||||||
|
|
||||||
|
|
||||||
askknj_num = 0;
|
askknj_num = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void makelist(int* yomi, int* kanji, int hinshi, int* atr) {
|
||||||
void
|
unsigned char* ycode;
|
||||||
makelist(int* yomi, int* kanji, int hinsi, int* atr)
|
unsigned char* kcode;
|
||||||
{
|
|
||||||
unsigned char *ycode;
|
|
||||||
unsigned char *kcode;
|
|
||||||
int klen;
|
int klen;
|
||||||
HinsiRec *hrec;
|
HinshiRec* hrec;
|
||||||
KanjiRec *krec, *kprev;
|
KanjiRec * krec, *kprev;
|
||||||
|
|
||||||
|
|
||||||
ycode = makeyomi(yomi);
|
ycode = makeyomi(yomi);
|
||||||
|
|
||||||
|
|
||||||
kcode = makekanji(yomi, kanji, atr, &klen);
|
kcode = makekanji(yomi, kanji, atr, &klen);
|
||||||
|
|
||||||
|
if(drectmp && strcmp(ycode, drectmp->yptr)) {
|
||||||
if (drectmp && strcmp(ycode, drectmp -> yptr)) {
|
|
||||||
|
|
||||||
make_d_list(drectmp);
|
make_d_list(drectmp);
|
||||||
|
|
||||||
drectmp = NULL;
|
drectmp = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!drectmp) {
|
||||||
if (!drectmp) {
|
|
||||||
|
|
||||||
drectmp = make_drec(ycode);
|
drectmp = make_drec(ycode);
|
||||||
|
|
||||||
|
hrec = make_hrec(hinshi);
|
||||||
hrec = make_hrec(hinsi);
|
drectmp->hrec = hrec;
|
||||||
drectmp -> hrec = hrec;
|
drectmp->hrec_num = 1;
|
||||||
drectmp -> hrec_num = 1;
|
|
||||||
|
|
||||||
|
|
||||||
krec = make_krec(kcode, klen);
|
krec = make_krec(kcode, klen);
|
||||||
hrec -> krec = krec;
|
hrec->krec = krec;
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for(hrec = drectmp->hrec; hrec->hnext; hrec = hrec->hnext)
|
||||||
|
if(hrec->hinshi == hinshi) break;
|
||||||
|
|
||||||
for (hrec = drectmp -> hrec ; hrec -> hnext ; hrec = hrec -> hnext)
|
if(hrec->hinshi == hinshi) {
|
||||||
if (hrec -> hinsi == hinsi) break;
|
|
||||||
|
|
||||||
|
for(krec = hrec->krec; krec; krec = krec->knext) {
|
||||||
|
|
||||||
if (hrec -> hinsi == hinsi) {
|
if((krec->klen == klen) &&
|
||||||
|
!memcmp(krec->kptr, kcode, klen)) {
|
||||||
for (krec=hrec->krec ; krec ; krec=krec->knext) {
|
|
||||||
|
|
||||||
if ((krec -> klen == klen) &&
|
|
||||||
!memcmp(krec -> kptr, kcode, klen)) {
|
|
||||||
fprintf(stderr, "\306\261\260\354\244\316\275\317\270\354\244\254\302\270\272\337\244\267\244\277\n");
|
fprintf(stderr, "\306\261\260\354\244\316\275\317\270\354\244\254\302\270\272\337\244\267\244\277\n");
|
||||||
fprintf(stderr, "\t\306\311\244\337:");
|
fprintf(stderr, "\t\306\311\244\337:");
|
||||||
output_int(stderr, yomi);
|
output_int(stderr, yomi);
|
||||||
|
|
@ -620,7 +516,6 @@ makelist(int* yomi, int* kanji, int hinsi, int* atr)
|
||||||
output_int(stderr, kanji);
|
output_int(stderr, kanji);
|
||||||
fprintf(stderr, "\n");
|
fprintf(stderr, "\n");
|
||||||
|
|
||||||
|
|
||||||
Free(kcode);
|
Free(kcode);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
@ -628,18 +523,15 @@ makelist(int* yomi, int* kanji, int hinsi, int* atr)
|
||||||
kprev = krec;
|
kprev = krec;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
kprev->knext = make_krec(kcode, klen);
|
||||||
kprev -> knext = make_krec(kcode, klen);
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
hrec->hnext = make_hrec(hinshi);
|
||||||
hrec -> hnext = make_hrec(hinsi);
|
hrec = hrec->hnext;
|
||||||
hrec = hrec -> hnext;
|
drectmp->hrec_num += 1;
|
||||||
drectmp -> hrec_num += 1;
|
|
||||||
|
|
||||||
|
|
||||||
krec = make_krec(kcode, klen);
|
krec = make_krec(kcode, klen);
|
||||||
hrec -> krec = krec;
|
hrec->krec = krec;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
259
makeseg.c
259
makeseg.c
|
|
@ -27,15 +27,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: makeseg.c,v $
|
|
||||||
* $SonyRevision: 1.2 $
|
|
||||||
* $SonyDate: 1994/12/09 11:27:05 $
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
@ -46,32 +37,29 @@
|
||||||
#include "Dict.h"
|
#include "Dict.h"
|
||||||
#include "dicttool.h"
|
#include "dicttool.h"
|
||||||
|
|
||||||
extern HindoRec *askknj[];
|
extern HindoRec* askknj[];
|
||||||
extern int askknj_num;
|
extern int askknj_num;
|
||||||
extern DouonRec *douon_ptr;
|
extern DouonRec* douon_ptr;
|
||||||
extern FILE *outfp;
|
extern FILE* outfp;
|
||||||
extern int douon_num;
|
extern int douon_num;
|
||||||
|
|
||||||
static unsigned char segindex[MainSegmentLength];
|
static unsigned char segindex[MainSegmentLength];
|
||||||
static int idxpos = 0;
|
static int idxpos = 0;
|
||||||
static int idxnum = 0;
|
static int idxnum = 0;
|
||||||
|
|
||||||
|
|
||||||
static unsigned char*
|
static unsigned char*
|
||||||
set_ofsask(unsigned char* src, unsigned char* dst)
|
set_ofsask(unsigned char* src, unsigned char* dst) {
|
||||||
{
|
|
||||||
int len;
|
int len;
|
||||||
unsigned char *ptr;
|
unsigned char* ptr;
|
||||||
OffsetRec *ofsrec;
|
OffsetRec* ofsrec;
|
||||||
|
|
||||||
|
|
||||||
ofsrec = real_ofsrec(src);
|
ofsrec = real_ofsrec(src);
|
||||||
|
|
||||||
for (len = ofsrec->klen, ptr = ofsrec->kptr ; len > 0 ; ) {
|
for(len = ofsrec->klen, ptr = ofsrec->kptr; len > 0;) {
|
||||||
switch (*ptr & KanjiModeMask) {
|
switch(*ptr & KanjiModeMask) {
|
||||||
case ZenHiraAssyuku:
|
case ZenHiraAsshuku:
|
||||||
case ZenKataAssyuku:
|
case ZenKataAsshuku:
|
||||||
case KanjiAssyuku:
|
case KanjiAsshuku:
|
||||||
*dst++ = *ptr++;
|
*dst++ = *ptr++;
|
||||||
len -= 1;
|
len -= 1;
|
||||||
break;
|
break;
|
||||||
|
|
@ -85,7 +73,7 @@ set_ofsask(unsigned char* src, unsigned char* dst)
|
||||||
len -= 2;
|
len -= 2;
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
case OffsetAssyuku:
|
case OffsetAsshuku:
|
||||||
fprintf(stderr, "\306\363\275\305\244\313\245\252\245\325\245\273\245\303\245\310\244\254\273\262\276\310\244\265\244\354\244\306\244\244\244\353\n");
|
fprintf(stderr, "\306\363\275\305\244\313\245\252\245\325\245\273\245\303\245\310\244\254\273\262\276\310\244\265\244\354\244\306\244\244\244\353\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
case AiAttribute:
|
case AiAttribute:
|
||||||
|
|
@ -107,17 +95,15 @@ set_ofsask(unsigned char* src, unsigned char* dst)
|
||||||
return dst;
|
return dst;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
size_t
|
size_t
|
||||||
make_knjstr(unsigned char* src, int len, unsigned char* dst)
|
make_knjstr(unsigned char* src, int len, unsigned char* dst) {
|
||||||
{
|
unsigned char* keep = dst;
|
||||||
unsigned char *keep = dst;
|
|
||||||
|
|
||||||
while (len > 0) {
|
while(len > 0) {
|
||||||
switch (*src & KanjiModeMask) {
|
switch(*src & KanjiModeMask) {
|
||||||
case ZenHiraAssyuku:
|
case ZenHiraAsshuku:
|
||||||
case ZenKataAssyuku:
|
case ZenKataAsshuku:
|
||||||
case KanjiAssyuku:
|
case KanjiAsshuku:
|
||||||
*dst++ = *src++;
|
*dst++ = *src++;
|
||||||
len -= 1;
|
len -= 1;
|
||||||
break;
|
break;
|
||||||
|
|
@ -131,7 +117,7 @@ make_knjstr(unsigned char* src, int len, unsigned char* dst)
|
||||||
len -= 2;
|
len -= 2;
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
case OffsetAssyuku:
|
case OffsetAsshuku:
|
||||||
dst = set_ofsask(src, dst);
|
dst = set_ofsask(src, dst);
|
||||||
src += 2;
|
src += 2;
|
||||||
len -= 2;
|
len -= 2;
|
||||||
|
|
@ -151,41 +137,32 @@ make_knjstr(unsigned char* src, int len, unsigned char* dst)
|
||||||
len -= 2;
|
len -= 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return(dst - keep);
|
return (dst - keep);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
make_knjask(void)
|
make_knjask(void) {
|
||||||
{
|
|
||||||
int i;
|
int i;
|
||||||
unsigned char *p;
|
unsigned char* p;
|
||||||
unsigned char buf[128];
|
unsigned char buf[128];
|
||||||
int len;
|
int len;
|
||||||
int tlen = 0;
|
int tlen = 0;
|
||||||
|
|
||||||
|
for(i = 0; i < askknj_num; i++) {
|
||||||
|
|
||||||
for (i = 0 ; i < askknj_num ; i++) {
|
len = make_knjstr(askknj[i]->kptr, askknj[i]->klen, buf);
|
||||||
|
|
||||||
|
Free(askknj[i]->kptr);
|
||||||
|
|
||||||
len = make_knjstr(askknj[i] -> kptr, askknj[i] -> klen, buf);
|
p = (unsigned char*)Malloc(len);
|
||||||
|
if(!p) {
|
||||||
|
|
||||||
Free(askknj[i] -> kptr);
|
|
||||||
|
|
||||||
|
|
||||||
p = (unsigned char *)Malloc(len);
|
|
||||||
if (!p) {
|
|
||||||
fprintf(stderr, "\245\341\245\342\245\352\244\254\302\255\244\352\244\336\244\273\244\363\n");
|
fprintf(stderr, "\245\341\245\342\245\352\244\254\302\255\244\352\244\336\244\273\244\363\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
memcpy(p, buf, len);
|
memcpy(p, buf, len);
|
||||||
askknj[i] -> kptr = p;
|
askknj[i]->kptr = p;
|
||||||
askknj[i] -> klen = len;
|
askknj[i]->klen = len;
|
||||||
|
|
||||||
|
|
||||||
tlen += len + 1;
|
tlen += len + 1;
|
||||||
}
|
}
|
||||||
|
|
@ -193,172 +170,161 @@ make_knjask(void)
|
||||||
return tlen;
|
return tlen;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void makeseg(void) {
|
||||||
void
|
|
||||||
makeseg(void)
|
|
||||||
{
|
|
||||||
unsigned char buf[MainSegmentLength];
|
unsigned char buf[MainSegmentLength];
|
||||||
DouonRec *drec;
|
DouonRec* drec;
|
||||||
HinsiRec *hrec;
|
HinshiRec* hrec;
|
||||||
KanjiRec *krec;
|
KanjiRec* krec;
|
||||||
int i, j, k;
|
int i, j, k;
|
||||||
int slen;
|
int slen;
|
||||||
unsigned char *dst;
|
unsigned char* dst;
|
||||||
unsigned char *sdst;
|
unsigned char* sdst;
|
||||||
unsigned char *p, *q;
|
unsigned char *p, *q;
|
||||||
|
|
||||||
#ifndef HEHE
|
#ifndef HEHE
|
||||||
#define datset(i) { if (dst >= buf+sizeof(buf)) goto err; *dst++ = i; }
|
#define datset(i) \
|
||||||
|
{ \
|
||||||
|
if(dst >= buf + sizeof(buf)) goto err; \
|
||||||
|
*dst++ = i; \
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
#define datset(i) { *dst++; i; }
|
#define datset(i) \
|
||||||
|
{ \
|
||||||
|
*dst++; \
|
||||||
|
i; \
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
dst = buf;
|
dst = buf;
|
||||||
|
|
||||||
|
|
||||||
i = make_knjask();
|
i = make_knjask();
|
||||||
if (i >= 0x100) {
|
if(i >= 0x100) {
|
||||||
fprintf(stderr, "\264\301\273\372\260\265\275\314\312\270\273\372\316\363\244\254\304\271\244\271\244\256\244\353\n");
|
fprintf(stderr, "\264\301\273\372\260\265\275\314\312\270\273\372\316\363\244\254\304\271\244\271\244\256\244\353\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
datset(i);
|
datset(i);
|
||||||
for (i = 0 ; i < askknj_num ; i++) {
|
for(i = 0; i < askknj_num; i++) {
|
||||||
p = askknj[i] -> kptr;
|
p = askknj[i]->kptr;
|
||||||
j = askknj[i] -> klen;
|
j = askknj[i]->klen;
|
||||||
while (j > 0) {
|
while(j > 0) {
|
||||||
k = codesize(*p);
|
k = codesize(*p);
|
||||||
datset(*p); p++;
|
datset(*p);
|
||||||
if (k > 2) {
|
p++;
|
||||||
datset(*p); p++;
|
if(k > 2) {
|
||||||
datset(*p); p++;
|
datset(*p);
|
||||||
} else if (k > 1) {
|
p++;
|
||||||
datset(*p); p++;
|
datset(*p);
|
||||||
|
p++;
|
||||||
|
} else if(k > 1) {
|
||||||
|
datset(*p);
|
||||||
|
p++;
|
||||||
}
|
}
|
||||||
j -= k;
|
j -= k;
|
||||||
}
|
}
|
||||||
datset(KanjiStrEnd);
|
datset(KanjiStrEnd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
clear_ofsrec();
|
clear_ofsrec();
|
||||||
|
|
||||||
|
for(drec = douon_ptr; drec; drec = drec->dnext) {
|
||||||
|
|
||||||
for (drec = douon_ptr ; drec ; drec = drec->dnext) {
|
sdst = dst;
|
||||||
|
dst += DouonBlkSizeNumber;
|
||||||
|
|
||||||
|
p = drec->yptr;
|
||||||
sdst = dst; dst += DouonBlkSizeNumber;
|
slen = strlen(p) - drec->dlen;
|
||||||
|
|
||||||
|
|
||||||
p = drec -> yptr;
|
|
||||||
slen = strlen(p) - drec -> dlen;
|
|
||||||
p += slen;
|
p += slen;
|
||||||
for (i = drec -> dlen ; i > 0 ; i--) {
|
for(i = drec->dlen; i > 0; i--) {
|
||||||
datset(*p); p++;
|
datset(*p);
|
||||||
|
p++;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (hrec = drec->hrec ; hrec ; hrec = hrec->hnext) {
|
for(hrec = drec->hrec; hrec; hrec = hrec->hnext) {
|
||||||
|
|
||||||
|
datset(hrec->hinshi);
|
||||||
|
|
||||||
datset(hrec -> hinsi);
|
for(krec = hrec->krec; krec; krec = krec->knext) {
|
||||||
|
|
||||||
|
|
||||||
for (krec = hrec->krec ; krec ; krec = krec->knext) {
|
|
||||||
|
|
||||||
|
|
||||||
p = q = knjcvt(krec -> kptr, krec -> klen, &i);
|
|
||||||
|
|
||||||
|
p = q = knjcvt(krec->kptr, krec->klen, &i);
|
||||||
|
|
||||||
set_ofsrec(krec->kptr, krec->klen, dst - buf);
|
set_ofsrec(krec->kptr, krec->klen, dst - buf);
|
||||||
|
|
||||||
|
while(i-- > 0) {
|
||||||
while (i-- > 0) {
|
datset(*p);
|
||||||
datset(*p); p++;
|
p++;
|
||||||
}
|
}
|
||||||
datset(KanjiStrEnd);
|
datset(KanjiStrEnd);
|
||||||
|
|
||||||
Free(q);
|
Free(q);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
datset(HinshiBlkTerm);
|
||||||
datset(HinsiBlkTerm);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
i = dst - sdst;
|
i = dst - sdst;
|
||||||
*sdst = ((i >> 8) & 0x0f);
|
*sdst = ((i >> 8) & 0x0f);
|
||||||
*(sdst + 1) = (i & 0xff);
|
*(sdst + 1) = (i & 0xff);
|
||||||
|
|
||||||
|
if(drec->dlen > 0x0f) *sdst |= 0x40;
|
||||||
|
*(sdst + 2) = (drec->dlen & 0x0f);
|
||||||
|
|
||||||
if (drec -> dlen > 0x0f) *sdst |= 0x40;
|
if(slen > 0x0f) *sdst |= 0x80;
|
||||||
*(sdst + 2) = (drec -> dlen & 0x0f);
|
|
||||||
|
|
||||||
|
|
||||||
if (slen > 0x0f) *sdst |= 0x80;
|
|
||||||
*(sdst + 2) |= ((slen << 4) & 0xf0);
|
*(sdst + 2) |= ((slen << 4) & 0xf0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dst < buf + sizeof(buf)) {
|
if(dst < buf + sizeof(buf)) {
|
||||||
datset(DouonBlkTerm);
|
datset(DouonBlkTerm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for(p = douon_ptr->yptr;;) {
|
||||||
for (p = douon_ptr -> yptr ; ; ) {
|
if(idxpos < MainIndexLength) {
|
||||||
if (idxpos < MainIndexLength) {
|
|
||||||
segindex[idxpos++] = *p;
|
segindex[idxpos++] = *p;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
fprintf(stderr, "\245\244\245\363\245\307\245\303\245\257\245\271\244\254\244\242\244\325\244\354\244\336\244\267\244\277\n");
|
fprintf(stderr, "\245\244\245\363\245\307\245\303\245\257\245\271\244\254\244\242\244\325\244\354\244\336\244\267\244\277\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
if (!*p++) break;
|
if(!*p++) break;
|
||||||
}
|
}
|
||||||
if (idxpos < MainIndexLength) {
|
if(idxpos < MainIndexLength) {
|
||||||
segindex[idxpos] = 0;
|
segindex[idxpos] = 0;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
fprintf(stderr, "\245\244\245\363\245\307\245\303\245\257\245\271\244\254\244\242\244\325\244\354\244\336\244\267\244\277\n");
|
fprintf(stderr, "\245\244\245\363\245\307\245\303\245\257\245\271\244\254\244\242\244\325\244\354\244\336\244\267\244\277\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
i = dst - buf;
|
i = dst - buf;
|
||||||
|
|
||||||
while (dst < buf + sizeof(buf)) *dst++ = DouonBlkTerm;
|
while(dst < buf + sizeof(buf)) *dst++ = DouonBlkTerm;
|
||||||
|
|
||||||
|
if(Fseek(outfp,
|
||||||
if (Fseek(outfp,
|
(long)(HeaderLength + CommentLength + MainIndexLength + idxnum * MainSegmentLength),
|
||||||
(long)(HeaderLength + CommentLength + MainIndexLength
|
|
||||||
+ idxnum * MainSegmentLength),
|
|
||||||
0) < 0) {
|
0) < 0) {
|
||||||
fprintf(stderr, "\275\320\316\317\245\325\245\241\245\244\245\353\244\307\245\267\241\274\245\257\245\250\245\351\241\274\n");
|
fprintf(stderr, "\275\320\316\317\245\325\245\241\245\244\245\353\244\307\245\267\241\274\245\257\245\250\245\351\241\274\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
if (Fwrite(buf, sizeof(buf), 1, outfp) != 1) {
|
if(Fwrite(buf, sizeof(buf), 1, outfp) != 1) {
|
||||||
fprintf(stderr, "\275\320\316\317\245\325\245\241\245\244\245\353\244\307\245\351\245\244\245\310\245\250\245\351\241\274\n");
|
fprintf(stderr, "\275\320\316\317\245\325\245\241\245\244\245\353\244\307\245\351\245\244\245\310\245\250\245\351\241\274\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
Fflush(outfp);
|
Fflush(outfp);
|
||||||
|
|
||||||
|
|
||||||
printf("\245\273\245\260\245\341\245\363\245\310\310\326\271\346:%d:", idxnum++);
|
printf("\245\273\245\260\245\341\245\363\245\310\310\326\271\346:%d:", idxnum++);
|
||||||
output_yomi(stdout, douon_ptr -> yptr);
|
output_yomi(stdout, douon_ptr->yptr);
|
||||||
printf("\t\245\273\245\260\245\341\245\363\245\310\304\271:%d", i);
|
printf("\t\245\273\245\260\245\341\245\363\245\310\304\271:%d", i);
|
||||||
printf("\t\306\261\262\273\270\354\277\364:%d\n", douon_num);
|
printf("\t\306\261\262\273\270\354\277\364:%d\n", douon_num);
|
||||||
printf("\264\301\273\372\260\265\275\314\312\270\273\372\316\363:");
|
printf("\264\301\273\372\260\265\275\314\312\270\273\372\316\363:");
|
||||||
for (i = j = 0 ; i < askknj_num ; i++) {
|
for(i = j = 0; i < askknj_num; i++) {
|
||||||
putchar('\t');
|
putchar('\t');
|
||||||
if (i && j == 0) putchar('\t');
|
if(i && j == 0) putchar('\t');
|
||||||
output_knj(stdout, askknj[i] -> kptr, askknj[i] -> klen);
|
output_knj(stdout, askknj[i]->kptr, askknj[i]->klen);
|
||||||
printf(":%d", askknj[i] -> hindo + askknj[i] -> exist);
|
printf(":%d", askknj[i]->hindo + askknj[i]->exist);
|
||||||
if (++j >= 4) {
|
if(++j >= 4) {
|
||||||
putchar('\n');
|
putchar('\n');
|
||||||
j = 0;
|
j = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (j) putchar('\n');
|
if(j) putchar('\n');
|
||||||
putchar('\n');
|
putchar('\n');
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
|
|
||||||
|
|
@ -367,7 +333,7 @@ makeseg(void)
|
||||||
err:
|
err:
|
||||||
fprintf(stderr, "\245\273\245\260\245\341\245\363\245\310\271\275\300\256\303\346\244\313\245\320\245\303\245\325\245\241\244\254\244\242\244\325\244\354\244\277\n");
|
fprintf(stderr, "\245\273\245\260\245\341\245\363\245\310\271\275\300\256\303\346\244\313\245\320\245\303\245\325\245\241\244\254\244\242\244\325\244\354\244\277\n");
|
||||||
fprintf(stderr, "\245\273\245\260\245\341\245\363\245\310\300\350\306\254\244\316\306\311\244\337:");
|
fprintf(stderr, "\245\273\245\260\245\341\245\363\245\310\300\350\306\254\244\316\306\311\244\337:");
|
||||||
output_yomi(stderr, douon_ptr -> yptr);
|
output_yomi(stderr, douon_ptr->yptr);
|
||||||
fputc('\n', stderr);
|
fputc('\n', stderr);
|
||||||
|
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|
@ -375,21 +341,21 @@ err:
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
put4byte(unsigned char* p, size_t n)
|
put4byte(unsigned char* p, size_t n) {
|
||||||
{
|
|
||||||
p += 3;
|
p += 3;
|
||||||
*p-- = n; n >>= 8;
|
*p-- = n;
|
||||||
*p-- = n; n >>= 8;
|
n >>= 8;
|
||||||
*p-- = n; n >>= 8;
|
*p-- = n;
|
||||||
|
n >>= 8;
|
||||||
|
*p-- = n;
|
||||||
|
n >>= 8;
|
||||||
*p = n;
|
*p = n;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void makehead(unsigned char* dict_name) {
|
||||||
makehead(unsigned char* dict_name)
|
|
||||||
{
|
|
||||||
unsigned char header[HeaderLength + CommentLength];
|
unsigned char header[HeaderLength + CommentLength];
|
||||||
long i;
|
long i;
|
||||||
unsigned char *p;
|
unsigned char* p;
|
||||||
time_t curtime;
|
time_t curtime;
|
||||||
|
|
||||||
#define IndexPos (HeaderLength + CommentLength)
|
#define IndexPos (HeaderLength + CommentLength)
|
||||||
|
|
@ -398,9 +364,12 @@ makehead(unsigned char* dict_name)
|
||||||
put4byte(header + VersionPos, DictVersion);
|
put4byte(header + VersionPos, DictVersion);
|
||||||
time(&curtime);
|
time(&curtime);
|
||||||
p = header + CommentPos;
|
p = header + CommentPos;
|
||||||
sprintf((char *)p, "%s : %s", dict_name, ctime(&curtime));
|
sprintf((char*)p, "%s : %s", dict_name, ctime(&curtime));
|
||||||
while (*p) {
|
while(*p) {
|
||||||
if (*p == '\n') { *p = 0; break; }
|
if(*p == '\n') {
|
||||||
|
*p = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
p++;
|
p++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
23
memory.c
23
memory.c
|
|
@ -27,37 +27,24 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: memory.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:00:42 $
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include "dicttool.h"
|
#include "dicttool.h"
|
||||||
|
|
||||||
void*
|
void* Malloc(size_t size) {
|
||||||
Malloc(size_t size)
|
|
||||||
{
|
|
||||||
void* p;
|
void* p;
|
||||||
|
|
||||||
p = malloc(size);
|
p = malloc(size);
|
||||||
if (p == NULL) {
|
if(p == NULL) {
|
||||||
fprintf(stderr, "\245\341\245\342\245\352\244\254\263\316\312\335\244\307\244\255\244\336\244\273\244\363\244\307\244\267\244\277\241\243\n");
|
fprintf(stderr, "\245\341\245\342\245\352\244\254\263\316\312\335\244\307\244\255\244\336\244\273\244\363\244\307\244\267\244\277\241\243\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
void*
|
void* Zalloc(size_t size) {
|
||||||
Zalloc (size_t size)
|
|
||||||
{
|
|
||||||
void* p;
|
void* p;
|
||||||
|
|
||||||
p = Malloc(size);
|
p = Malloc(size);
|
||||||
|
|
@ -65,8 +52,6 @@ Zalloc (size_t size)
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void Free(void* p) {
|
||||||
Free(void *p)
|
|
||||||
{
|
|
||||||
free(p);
|
free(p);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
88
memory2.c
88
memory2.c
|
|
@ -27,34 +27,26 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: memory.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:01:58 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include "sj_kcnv.h"
|
#include "sj_kcnv.h"
|
||||||
|
|
||||||
void free_jrec(), free_clrec();
|
void free_jrec(), free_clrec();
|
||||||
|
|
||||||
JREC *free_jlst(p)
|
JREC* free_jlst(p)
|
||||||
JREC *p;
|
JREC* p;
|
||||||
{
|
{
|
||||||
JREC *jpk;
|
JREC* jpk;
|
||||||
JREC *jp;
|
JREC* jp;
|
||||||
JREC *jn;
|
JREC* jn;
|
||||||
|
|
||||||
jp = NULL;
|
jp = NULL;
|
||||||
|
|
||||||
for ( ; p ; p = jn) {
|
for(; p; p = jn) {
|
||||||
|
|
||||||
jn = p -> jsort;
|
jn = p->jsort;
|
||||||
|
|
||||||
if (p -> count) {
|
if(p->count) {
|
||||||
if (jp)
|
if(jp)
|
||||||
jp -> jsort = p;
|
jp->jsort = p;
|
||||||
else
|
else
|
||||||
jpk = p;
|
jpk = p;
|
||||||
jp = p;
|
jp = p;
|
||||||
|
|
@ -65,38 +57,36 @@ JREC *p;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (jp) jp -> jsort = NULL;
|
if(jp) jp->jsort = NULL;
|
||||||
|
|
||||||
return jpk;
|
return jpk;
|
||||||
}
|
}
|
||||||
|
|
||||||
CLREC *free_clst(p, l)
|
CLREC* free_clst(p, l)
|
||||||
CLREC *p;
|
CLREC* p;
|
||||||
int l;
|
int l;
|
||||||
{
|
{
|
||||||
CLREC *cpk;
|
CLREC* cpk;
|
||||||
CLREC *cp;
|
CLREC* cp;
|
||||||
CLREC *cn;
|
CLREC* cn;
|
||||||
int i = FALSE;
|
int i = FALSE;
|
||||||
|
|
||||||
cp = cpk = NULL;
|
cp = cpk = NULL;
|
||||||
|
|
||||||
for ( ; p ; p = cn) {
|
for(; p; p = cn) {
|
||||||
|
|
||||||
cn = p -> clsort;
|
cn = p->clsort;
|
||||||
|
|
||||||
if ((int)p -> cllen == l) {
|
if((int)p->cllen == l) {
|
||||||
if (p == selcl) {
|
if(p == selcl) {
|
||||||
if (cp) {
|
if(cp) {
|
||||||
p -> clsort = cpk;
|
p->clsort = cpk;
|
||||||
cpk = p;
|
cpk = p;
|
||||||
}
|
} else
|
||||||
else
|
|
||||||
cpk = cp = p;
|
cpk = cp = p;
|
||||||
}
|
} else {
|
||||||
else {
|
if(cp)
|
||||||
if (cp)
|
cp->clsort = p;
|
||||||
cp -> clsort = p;
|
|
||||||
else
|
else
|
||||||
cpk = p;
|
cpk = p;
|
||||||
cp = p;
|
cp = p;
|
||||||
|
|
@ -104,48 +94,46 @@ int l;
|
||||||
}
|
}
|
||||||
|
|
||||||
else {
|
else {
|
||||||
(p -> jnode -> count)--;
|
(p->jnode->count)--;
|
||||||
|
|
||||||
free_clrec(p);
|
free_clrec(p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cp) cp -> clsort = NULL;
|
if(cp) cp->clsort = NULL;
|
||||||
|
|
||||||
return cpk;
|
return cpk;
|
||||||
}
|
}
|
||||||
|
|
||||||
void free_clall(p)
|
void free_clall(p)
|
||||||
CLREC *p;
|
CLREC* p;
|
||||||
{
|
{
|
||||||
CLREC *next;
|
CLREC* next;
|
||||||
|
|
||||||
while (p) {
|
while(p) {
|
||||||
(p -> jnode -> count)--;
|
(p->jnode->count)--;
|
||||||
next = p -> clsort;
|
next = p->clsort;
|
||||||
free_clrec(p);
|
free_clrec(p);
|
||||||
p = next;
|
p = next;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void free_jall(p)
|
void free_jall(p)
|
||||||
JREC *p;
|
JREC* p;
|
||||||
{
|
{
|
||||||
JREC *next;
|
JREC* next;
|
||||||
|
|
||||||
while (p) {
|
while(p) {
|
||||||
next = p -> jsort;
|
next = p->jsort;
|
||||||
free_jrec(p);
|
free_jrec(p);
|
||||||
p = next;
|
p = next;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void freework()
|
void freework() {
|
||||||
{
|
|
||||||
free_clall(maxclptr);
|
free_clall(maxclptr);
|
||||||
clt1st = maxclptr = NULL;
|
clt1st = maxclptr = NULL;
|
||||||
|
|
||||||
free_jall(maxjptr);
|
free_jall(maxjptr);
|
||||||
jrt1st = maxjptr = NULL;
|
jrt1st = maxjptr = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
74
mk2claus.c
74
mk2claus.c
|
|
@ -27,49 +27,40 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: mk2claus.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:02:00 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include "sj_kcnv.h"
|
#include "sj_kcnv.h"
|
||||||
#include "sj_right.h"
|
#include "sj_right.h"
|
||||||
|
|
||||||
int terminate(), priority();
|
int terminate(), priority();
|
||||||
void mkjiritu(), mkbunsetu(), wakachi(), pritiny();
|
void mkjiritsu(), mkbunsetsu(), wakachi(), pritiny();
|
||||||
void free_clall(), free_jall();
|
void free_clall(), free_jall();
|
||||||
|
|
||||||
static int set2nd(clrec)
|
static int set2nd(clrec)
|
||||||
CLREC *clrec;
|
CLREC* clrec;
|
||||||
{
|
{
|
||||||
|
|
||||||
CLREC *rec2;
|
CLREC* rec2;
|
||||||
|
|
||||||
mkjiritu(DO_IKKATU | DO_CLSTUDY);
|
mkjiritsu(DO_IKKATU | DO_CLSTUDY);
|
||||||
|
|
||||||
mkbunsetu();
|
mkbunsetsu();
|
||||||
|
|
||||||
if (!maxclptr) {
|
if(!maxclptr) {
|
||||||
wakachi();
|
wakachi();
|
||||||
return clrec -> cllen;
|
return clrec->cllen;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (rec2 = maxclptr ; rec2 ; rec2 = rec2 -> clsort) {
|
for(rec2 = maxclptr; rec2; rec2 = rec2->clsort) {
|
||||||
if (terminate(rec2->right, cnvstart+rec2->cllen) != SHU)
|
if(terminate(rec2->right, cnvstart + rec2->cllen) != SHU)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return rec2 ? (clrec -> cllen + rec2 -> cllen) : (clrec -> cllen);
|
return rec2 ? (clrec->cllen + rec2->cllen) : (clrec->cllen);
|
||||||
}
|
}
|
||||||
|
|
||||||
void mk2claus()
|
void mk2claus() {
|
||||||
{
|
unsigned char* keepptr;
|
||||||
unsigned char *keepptr;
|
|
||||||
int keeplen;
|
int keeplen;
|
||||||
CLREC *clrec;
|
CLREC* clrec;
|
||||||
int len;
|
int len;
|
||||||
int save2ln;
|
int save2ln;
|
||||||
int prty;
|
int prty;
|
||||||
|
|
@ -84,12 +75,12 @@ void mk2claus()
|
||||||
|
|
||||||
selcl = clt1st;
|
selcl = clt1st;
|
||||||
|
|
||||||
if (selcl -> right == R_FZKKGU) {
|
if(selcl->right == R_FZKKGU) {
|
||||||
pritiny();
|
pritiny();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cnvlen == selcl -> cllen) {
|
if(cnvlen == selcl->cllen) {
|
||||||
pritiny();
|
pritiny();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -98,13 +89,13 @@ void mk2claus()
|
||||||
keeplen = cnvlen;
|
keeplen = cnvlen;
|
||||||
|
|
||||||
len = count = 0;
|
len = count = 0;
|
||||||
for (clrec = selcl ; clrec && count < 5 ; clrec = clrec -> clsort) {
|
for(clrec = selcl; clrec && count < 5; clrec = clrec->clsort) {
|
||||||
|
|
||||||
cnvstart = keepptr + clrec -> cllen;
|
cnvstart = keepptr + clrec->cllen;
|
||||||
cnvlen = keeplen - clrec -> cllen;
|
cnvlen = keeplen - clrec->cllen;
|
||||||
|
|
||||||
if (len != clrec -> cllen) {
|
if(len != clrec->cllen) {
|
||||||
if (clt2nd != maxclptr) {
|
if(clt2nd != maxclptr) {
|
||||||
free_clall(maxclptr);
|
free_clall(maxclptr);
|
||||||
free_jall(maxjptr);
|
free_jall(maxjptr);
|
||||||
}
|
}
|
||||||
|
|
@ -112,37 +103,37 @@ void mk2claus()
|
||||||
save2ln = set2nd(clrec);
|
save2ln = set2nd(clrec);
|
||||||
|
|
||||||
count++;
|
count++;
|
||||||
len = clrec -> cllen;
|
len = clrec->cllen;
|
||||||
prty2 = 0;
|
prty2 = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Termtbl[clrec -> right] & T_SHUUJO)
|
if(Termtbl[clrec->right] & T_SHUUJO)
|
||||||
clrec -> cl2len = (unsigned char)len;
|
clrec->cl2len = (unsigned char)len;
|
||||||
else
|
else
|
||||||
clrec -> cl2len = (unsigned char)save2ln;
|
clrec->cl2len = (unsigned char)save2ln;
|
||||||
|
|
||||||
if (selcl -> cl2len > clrec -> cl2len) continue;
|
if(selcl->cl2len > clrec->cl2len) continue;
|
||||||
|
|
||||||
prty = priority(clrec) - prty2;
|
prty = priority(clrec) - prty2;
|
||||||
|
|
||||||
prty2++;
|
prty2++;
|
||||||
|
|
||||||
if (selcl -> cl2len == clrec -> cl2len) {
|
if(selcl->cl2len == clrec->cl2len) {
|
||||||
if (clrec -> cllen == nextcllen) {
|
if(clrec->cllen == nextcllen) {
|
||||||
if (selcl -> cllen != nextcllen)
|
if(selcl->cllen != nextcllen)
|
||||||
;
|
;
|
||||||
else if (prty <= maxprty)
|
else if(prty <= maxprty)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (prty <= maxprty)
|
else if(prty <= maxprty)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
selcl = clrec;
|
selcl = clrec;
|
||||||
maxprty = prty;
|
maxprty = prty;
|
||||||
|
|
||||||
if (clt2nd == maxclptr) continue;
|
if(clt2nd == maxclptr) continue;
|
||||||
|
|
||||||
free_clall(clt2nd);
|
free_clall(clt2nd);
|
||||||
free_jall(jrt2nd);
|
free_jall(jrt2nd);
|
||||||
|
|
@ -150,7 +141,7 @@ void mk2claus()
|
||||||
clt2nd = maxclptr;
|
clt2nd = maxclptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (clt2nd != maxclptr) {
|
if(clt2nd != maxclptr) {
|
||||||
free_clall(maxclptr);
|
free_clall(maxclptr);
|
||||||
maxclptr = NULL;
|
maxclptr = NULL;
|
||||||
free_jall(maxjptr);
|
free_jall(maxjptr);
|
||||||
|
|
@ -160,4 +151,3 @@ void mk2claus()
|
||||||
cnvstart = keepptr;
|
cnvstart = keepptr;
|
||||||
cnvlen = keeplen;
|
cnvlen = keeplen;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -27,34 +27,23 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: mkbunset.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:02:02 $
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "sj_kcnv.h"
|
#include "sj_kcnv.h"
|
||||||
#include "sj_hinsi.h"
|
#include "sj_hinshi.h"
|
||||||
#include "kanakan.h"
|
#include "kanakan.h"
|
||||||
|
|
||||||
int terminate();
|
int terminate();
|
||||||
void setclrec(), srchfzk();
|
void setclrec(), srchfzk();
|
||||||
|
|
||||||
void
|
void mkbunsetsu(void) {
|
||||||
mkbunsetu(void)
|
JREC* jrec;
|
||||||
{
|
TypeGram hinshi;
|
||||||
JREC *jrec;
|
unsigned char* cnj;
|
||||||
TypeGram hinsi;
|
|
||||||
unsigned char *cnj;
|
|
||||||
CREC crec[4];
|
CREC crec[4];
|
||||||
int count;
|
int count;
|
||||||
TypeCnct right;
|
TypeCnct right;
|
||||||
unsigned char *next;
|
unsigned char* next;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
fzkcount = 0;
|
fzkcount = 0;
|
||||||
|
|
@ -63,18 +52,18 @@ mkbunsetu(void)
|
||||||
|
|
||||||
jrec = maxjptr;
|
jrec = maxjptr;
|
||||||
|
|
||||||
while (jrec) {
|
while(jrec) {
|
||||||
|
|
||||||
if (jrec -> stbofs && (cnj = getstb(jrec -> hinsi)))
|
if(jrec->stbofs && (cnj = getstb(jrec->hinshi)))
|
||||||
hinsi = StbHinsi(cnj + jrec -> stbofs - 1);
|
hinshi = StbHinshi(cnj + jrec->stbofs - 1);
|
||||||
else
|
else
|
||||||
hinsi = jrec -> hinsi;
|
hinshi = jrec->hinshi;
|
||||||
|
|
||||||
if ((right = Connadr[hinsi]) != '\0') {
|
if((right = Connadr[hinshi]) != '\0') {
|
||||||
gobilen = 0;
|
gobilen = 0;
|
||||||
next = cnvstart + jrec->jlen;
|
next = cnvstart + jrec->jlen;
|
||||||
|
|
||||||
if (terminate(right, next)) {
|
if(terminate(right, next)) {
|
||||||
fzk_ka_flg = 0;
|
fzk_ka_flg = 0;
|
||||||
setclrec(jrec, next, right);
|
setclrec(jrec, next, right);
|
||||||
}
|
}
|
||||||
|
|
@ -82,15 +71,15 @@ mkbunsetu(void)
|
||||||
srchfzk(jrec, next, right, 0);
|
srchfzk(jrec, next, right, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
else if ((count = setconj(hinsi, jrec, crec)) != 0) {
|
else if((count = setconj(hinshi, jrec, crec)) != 0) {
|
||||||
|
|
||||||
for (i = count ; i-- > 0 ; ) {
|
for(i = count; i-- > 0;) {
|
||||||
|
|
||||||
right = crec[i].right;
|
right = crec[i].right;
|
||||||
gobilen = crec[i].len;
|
gobilen = crec[i].len;
|
||||||
next = cnvstart + jrec->jlen + gobilen;
|
next = cnvstart + jrec->jlen + gobilen;
|
||||||
|
|
||||||
if (terminate(right, next)) {
|
if(terminate(right, next)) {
|
||||||
fzk_ka_flg = 0;
|
fzk_ka_flg = 0;
|
||||||
setclrec(jrec, next, right);
|
setclrec(jrec, next, right);
|
||||||
}
|
}
|
||||||
|
|
@ -99,70 +88,66 @@ mkbunsetu(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
jrec = jrec -> jsort;
|
jrec = jrec->jsort;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
CLREC*
|
CLREC*
|
||||||
argclrec(int len)
|
argclrec(int len) {
|
||||||
{
|
CLREC* ptr;
|
||||||
CLREC *ptr;
|
CLREC* rec;
|
||||||
CLREC *rec;
|
CLREC* child;
|
||||||
CLREC *child;
|
|
||||||
|
|
||||||
rec = alloc_clrec();
|
rec = alloc_clrec();
|
||||||
|
|
||||||
if (!rec) {
|
if(!rec) {
|
||||||
if (maxclptr == NULL) return NULL;
|
if(maxclptr == NULL) return NULL;
|
||||||
|
|
||||||
ptr = NULL;
|
ptr = NULL;
|
||||||
rec = maxclptr;
|
rec = maxclptr;
|
||||||
while ((child = rec -> clsort) != NULL) {
|
while((child = rec->clsort) != NULL) {
|
||||||
ptr = rec;
|
ptr = rec;
|
||||||
rec = child;
|
rec = child;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (len <= (int) rec -> cllen) return NULL;
|
if(len <= (int)rec->cllen) return NULL;
|
||||||
|
|
||||||
if (ptr)
|
if(ptr)
|
||||||
ptr -> clsort = NULL;
|
ptr->clsort = NULL;
|
||||||
else
|
else
|
||||||
maxclptr = NULL;
|
maxclptr = NULL;
|
||||||
if (rec -> jnode) (rec -> jnode)--;
|
if(rec->jnode) (rec->jnode)--;
|
||||||
}
|
}
|
||||||
|
|
||||||
memset((unsigned char*)rec, 0, sizeof(*rec));
|
memset((unsigned char*)rec, 0, sizeof(*rec));
|
||||||
rec -> cllen = rec -> cl2len = (unsigned char)len;
|
rec->cllen = rec->cl2len = (unsigned char)len;
|
||||||
|
|
||||||
if (!maxclptr) {
|
if(!maxclptr) {
|
||||||
maxclptr = rec;
|
maxclptr = rec;
|
||||||
return rec;
|
return rec;
|
||||||
}
|
}
|
||||||
|
|
||||||
ptr = maxclptr;
|
ptr = maxclptr;
|
||||||
|
|
||||||
if (((int)ptr -> cllen < len) ||
|
if(((int)ptr->cllen < len) ||
|
||||||
(((int)ptr -> cllen == len) &&
|
(((int)ptr->cllen == len) &&
|
||||||
(ptr -> jnode -> hinsi == TANKANJI))) {
|
(ptr->jnode->hinshi == TANKANJI))) {
|
||||||
rec -> clsort = maxclptr;
|
rec->clsort = maxclptr;
|
||||||
maxclptr = rec;
|
maxclptr = rec;
|
||||||
return rec;
|
return rec;
|
||||||
}
|
}
|
||||||
|
|
||||||
while ((child = ptr -> clsort) != NULL) {
|
while((child = ptr->clsort) != NULL) {
|
||||||
if ((int)child -> cllen < len ||
|
if((int)child->cllen < len ||
|
||||||
((int)child -> cllen == len &&
|
((int)child->cllen == len &&
|
||||||
child->jnode->hinsi == TANKANJI)){
|
child->jnode->hinshi == TANKANJI)) {
|
||||||
ptr -> clsort = rec;
|
ptr->clsort = rec;
|
||||||
rec -> clsort = child;
|
rec->clsort = child;
|
||||||
return rec;
|
return rec;
|
||||||
}
|
} else
|
||||||
else
|
|
||||||
ptr = child;
|
ptr = child;
|
||||||
}
|
}
|
||||||
|
|
||||||
ptr -> clsort = rec;
|
ptr->clsort = rec;
|
||||||
return rec;
|
return rec;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -27,15 +27,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: mkjiritu.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:02:03 $
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "sj_kcnv.h"
|
#include "sj_kcnv.h"
|
||||||
|
|
@ -46,13 +37,11 @@ int srchhead();
|
||||||
static void dic_mu(int mode);
|
static void dic_mu(int mode);
|
||||||
static void dic_cl(void);
|
static void dic_cl(void);
|
||||||
|
|
||||||
void
|
void mkjiritsu(int mode) {
|
||||||
mkjiritu(int mode)
|
|
||||||
{
|
|
||||||
unsigned char chkind1;
|
unsigned char chkind1;
|
||||||
unsigned char chkind2;
|
unsigned char chkind2;
|
||||||
JREC *jrec;
|
JREC* jrec;
|
||||||
unsigned char *stb;
|
unsigned char* stb;
|
||||||
|
|
||||||
headcode = headlen = 0;
|
headcode = headlen = 0;
|
||||||
|
|
||||||
|
|
@ -60,25 +49,25 @@ mkjiritu(int mode)
|
||||||
|
|
||||||
chkind1 = Chrtbl[*cnvstart];
|
chkind1 = Chrtbl[*cnvstart];
|
||||||
|
|
||||||
if (chkind1 & DICTOP) {
|
if(chkind1 & DICTOP) {
|
||||||
dic_mu(mode);
|
dic_mu(mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mode & DO_CLSTUDY) dic_cl();
|
if(mode & DO_CLSTUDY) dic_cl();
|
||||||
|
|
||||||
srchnum();
|
srchnum();
|
||||||
|
|
||||||
if (srchhead() && cnvlen != headlen) {
|
if(srchhead() && cnvlen != headlen) {
|
||||||
cnvstart += headlen;
|
cnvstart += headlen;
|
||||||
cnvlen -= headlen;
|
cnvlen -= headlen;
|
||||||
|
|
||||||
chkind2 = Chrtbl[*cnvstart];
|
chkind2 = Chrtbl[*cnvstart];
|
||||||
|
|
||||||
if (chkind2 & DICTOP) {
|
if(chkind2 & DICTOP) {
|
||||||
dic_mu(mode);
|
dic_mu(mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (headcode == SETTOU_DAI) {
|
if(headcode == SETTOU_DAI) {
|
||||||
srchnum();
|
srchnum();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -86,111 +75,106 @@ mkjiritu(int mode)
|
||||||
cnvlen += headlen;
|
cnvlen += headlen;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (jrec = maxjptr ; jrec ; jrec = jrec -> jsort) {
|
for(jrec = maxjptr; jrec; jrec = jrec->jsort) {
|
||||||
if ((stb = getstb(jrec -> hinsi)) != NULL)
|
if((stb = getstb(jrec->hinshi)) != NULL)
|
||||||
setubi(jrec, stb);
|
setsubi(jrec, stb);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
dic_mu(int mode)
|
dic_mu(int mode) {
|
||||||
{
|
unsigned char* tagp;
|
||||||
unsigned char *tagp;
|
DICTL* dp;
|
||||||
DICTL *dp;
|
|
||||||
|
|
||||||
for (dp = dictlist ; dp ; dp = dp -> next) {
|
for(dp = dictlist; dp; dp = dp->next) {
|
||||||
curdict = dp -> dict;
|
curdict = dp->dict;
|
||||||
dicinl = 1;
|
dicinl = 1;
|
||||||
dicsaml = 0;
|
dicsaml = 0;
|
||||||
prevseg = -1;
|
prevseg = -1;
|
||||||
|
|
||||||
while ((tagp = srchdict(tagp)) != NULL) setjrec(tagp, mode);
|
while((tagp = srchdict(tagp)) != NULL) setjrec(tagp, mode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
JREC*
|
JREC* argjrec(int len, JREC* rec) {
|
||||||
argjrec(int len, JREC* rec)
|
JREC* ptr;
|
||||||
{
|
JREC* jrec;
|
||||||
JREC *ptr;
|
JREC* child;
|
||||||
JREC *jrec;
|
|
||||||
JREC *child;
|
|
||||||
|
|
||||||
jrec = alloc_jrec();
|
jrec = alloc_jrec();
|
||||||
|
|
||||||
if (!jrec) {
|
if(!jrec) {
|
||||||
if (!maxjptr) return NULL;
|
if(!maxjptr) return NULL;
|
||||||
|
|
||||||
ptr = NULL;
|
ptr = NULL;
|
||||||
jrec = maxjptr;
|
jrec = maxjptr;
|
||||||
while ((child = jrec -> jsort) != NULL) {
|
while((child = jrec->jsort) != NULL) {
|
||||||
ptr = jrec;
|
ptr = jrec;
|
||||||
jrec = child;
|
jrec = child;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (len <= (int) jrec -> jlen) return NULL;
|
if(len <= (int)jrec->jlen) return NULL;
|
||||||
|
|
||||||
if (ptr)
|
if(ptr)
|
||||||
ptr -> jsort = NULL;
|
ptr->jsort = NULL;
|
||||||
else
|
else
|
||||||
maxjptr = NULL;
|
maxjptr = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rec)
|
if(rec)
|
||||||
memcpy((unsigned char*)rec, (unsigned char*)jrec, sizeof(JREC));
|
memcpy((unsigned char*)rec, (unsigned char*)jrec, sizeof(JREC));
|
||||||
else
|
else
|
||||||
memset((unsigned char*)jrec, 0, sizeof(*jrec));
|
memset((unsigned char*)jrec, 0, sizeof(*jrec));
|
||||||
jrec -> jlen = (unsigned char)len;
|
jrec->jlen = (unsigned char)len;
|
||||||
|
|
||||||
if (!maxjptr) {
|
if(!maxjptr) {
|
||||||
maxjptr = jrec;
|
maxjptr = jrec;
|
||||||
jrec -> jsort = NULL;
|
jrec->jsort = NULL;
|
||||||
return jrec;
|
return jrec;
|
||||||
}
|
}
|
||||||
|
|
||||||
ptr = maxjptr;
|
ptr = maxjptr;
|
||||||
|
|
||||||
if ((int)ptr -> jlen < len) {
|
if((int)ptr->jlen < len) {
|
||||||
jrec -> jsort = maxjptr;
|
jrec->jsort = maxjptr;
|
||||||
maxjptr = jrec;
|
maxjptr = jrec;
|
||||||
return jrec;
|
return jrec;
|
||||||
}
|
}
|
||||||
|
|
||||||
while ((child = ptr -> jsort) != NULL) {
|
while((child = ptr->jsort) != NULL) {
|
||||||
if ((int)child -> jlen < len) break;
|
if((int)child->jlen < len) break;
|
||||||
|
|
||||||
ptr = child;
|
ptr = child;
|
||||||
}
|
}
|
||||||
|
|
||||||
ptr -> jsort = jrec;
|
ptr->jsort = jrec;
|
||||||
jrec -> jsort = child;
|
jrec->jsort = child;
|
||||||
return jrec;
|
return jrec;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
dic_cl(void)
|
dic_cl(void) {
|
||||||
{
|
unsigned char* p;
|
||||||
unsigned char *p;
|
|
||||||
unsigned short pos;
|
unsigned short pos;
|
||||||
int len;
|
int len;
|
||||||
int cmp;
|
int cmp;
|
||||||
|
|
||||||
if (!StudyExist()) return;
|
if(!StudyExist()) return;
|
||||||
|
|
||||||
if ((pos = ClStudyIdx[(short) *cnvstart / ClStudyStep]) != (unsigned short)-1) {
|
if((pos = ClStudyIdx[(short)*cnvstart / ClStudyStep]) != (unsigned short)-1) {
|
||||||
|
|
||||||
for (p = ClStudyDict + pos ; !iseocl(p) ; p = ClNextTag(p)) {
|
for(p = ClStudyDict + pos; !iseocl(p); p = ClNextTag(p)) {
|
||||||
cmp = strncmp(cnvstart, (unsigned char*)ClYomiPos(p),
|
cmp = strncmp(cnvstart, (unsigned char*)ClYomiPos(p),
|
||||||
len = ClYomiLen(p));
|
len = ClYomiLen(p));
|
||||||
|
|
||||||
if (cmp == MATCH) {
|
if(cmp == MATCH) {
|
||||||
if (!isdpnd(*(cnvstart + len))) {
|
if(!isdpnd(*(cnvstart + len))) {
|
||||||
setcrec(p);
|
setcrec(p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (cmp == OVER)
|
else if(cmp == OVER)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
303
mkkouho.c
303
mkkouho.c
|
|
@ -27,61 +27,42 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: mkkouho.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:02:04 $
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include "sj_euc.h"
|
#include "sj_euc.h"
|
||||||
#include "sj_kcnv.h"
|
#include "sj_kcnv.h"
|
||||||
#include "sj_hinsi.h"
|
#include "sj_hinshi.h"
|
||||||
#include "sj_suuji.h"
|
#include "sj_suuji.h"
|
||||||
#include "sj_dict.h"
|
#include "sj_dict.h"
|
||||||
#include "kanakan.h"
|
#include "kanakan.h"
|
||||||
|
|
||||||
|
|
||||||
static void getkhtbl(CLREC* clrec);
|
static void getkhtbl(CLREC* clrec);
|
||||||
static void cl_kanji(JREC* jrec, CLREC* clrec);
|
static void cl_kanji(JREC* jrec, CLREC* clrec);
|
||||||
static unsigned char* makekan(unsigned char* s, unsigned char* d, int flg);
|
static unsigned char* makekan(unsigned char* s, unsigned char* d, int flg);
|
||||||
static int diffknj(JREC* jrec, unsigned char* ptr, int num);
|
static int diffknj(JREC* jrec, unsigned char* ptr, int num);
|
||||||
static void cl_numcmn(JREC* jrec, CLREC* clrec);
|
static void cl_numcmn(JREC* jrec, CLREC* clrec);
|
||||||
|
|
||||||
|
void mkkouho(void) {
|
||||||
void
|
CLREC* clrec;
|
||||||
mkkouho(void)
|
|
||||||
{
|
|
||||||
CLREC *clrec;
|
|
||||||
int keeplen;
|
int keeplen;
|
||||||
|
|
||||||
|
|
||||||
khcount = nkhcount = 0;
|
khcount = nkhcount = 0;
|
||||||
|
|
||||||
|
keeplen = clt1st->cllen;
|
||||||
keeplen = clt1st -> cllen;
|
|
||||||
|
|
||||||
|
|
||||||
clrec = clt1st;
|
clrec = clt1st;
|
||||||
|
|
||||||
|
|
||||||
do {
|
do {
|
||||||
getkhtbl(clrec);
|
getkhtbl(clrec);
|
||||||
clrec = clrec -> clsort;
|
clrec = clrec->clsort;
|
||||||
} while (clrec && (keeplen == clrec -> cllen));
|
} while(clrec && (keeplen == clrec->cllen));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
getkhtbl(CLREC* clrec)
|
getkhtbl(CLREC* clrec) {
|
||||||
{
|
JREC* jrec;
|
||||||
JREC *jrec;
|
|
||||||
|
|
||||||
jrec = clrec -> jnode;
|
jrec = clrec->jnode;
|
||||||
|
|
||||||
switch (jrec -> class) {
|
switch(jrec->class) {
|
||||||
case C_DICT:
|
case C_DICT:
|
||||||
cl_kanji(jrec, clrec);
|
cl_kanji(jrec, clrec);
|
||||||
break;
|
break;
|
||||||
|
|
@ -99,7 +80,7 @@ getkhtbl(CLREC* clrec)
|
||||||
cl_numcmn(jrec, clrec);
|
cl_numcmn(jrec, clrec);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case C_BUNSETU:
|
case C_BUNSETSU:
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -110,164 +91,154 @@ getkhtbl(CLREC* clrec)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
cl_kanji(JREC* jrec, CLREC* clrec)
|
cl_kanji(JREC* jrec, CLREC* clrec) {
|
||||||
{
|
unsigned char* ptr;
|
||||||
unsigned char *ptr;
|
|
||||||
int kcount = khcount;
|
int kcount = khcount;
|
||||||
|
|
||||||
|
if(seldict(jrec->dicid)) {
|
||||||
if (seldict(jrec -> dicid)) {
|
(*curdict->getdic)(curdict, jrec->jseg);
|
||||||
(*curdict->getdic)(curdict, jrec -> jseg);
|
|
||||||
ptr = dicbuf + jrec->jofsst + 1;
|
ptr = dicbuf + jrec->jofsst + 1;
|
||||||
|
|
||||||
get_askknj();
|
get_askknj();
|
||||||
|
|
||||||
|
while(*ptr != HinshiBlkTerm) {
|
||||||
|
|
||||||
while (*ptr != HinsiBlkTerm) {
|
if(diffknj(jrec, ptr, kcount)) {
|
||||||
|
|
||||||
|
|
||||||
if (diffknj(jrec, ptr, kcount)) {
|
|
||||||
|
|
||||||
setkouho(clrec, (TypeDicOfs)(ptr - dicbuf), 0);
|
setkouho(clrec, (TypeDicOfs)(ptr - dicbuf), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ptr = skipkstr(ptr);
|
ptr = skipkstr(ptr);
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
|
|
||||||
setkouho(clrec, (TypeDicOfs)1, 0);
|
setkouho(clrec, (TypeDicOfs)1, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
unsigned char*
|
unsigned char*
|
||||||
makekan_none(unsigned char* s, unsigned char* d, int flg)
|
makekan_none(unsigned char* s, unsigned char* d, int flg) {
|
||||||
{
|
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
unsigned char*
|
unsigned char*
|
||||||
makekan_1byte(unsigned char* s, unsigned char* d, int flg)
|
makekan_1byte(unsigned char* s, unsigned char* d, int flg) {
|
||||||
{
|
if((*s & KanjiModeMask) == ZenHiraAsshuku)
|
||||||
if ((*s & KanjiModeMask) == ZenHiraAssyuku)
|
*d++ = 0x10 | (*s & KnjAsshukuMask);
|
||||||
*d++ = 0x10 | (*s & KnjAssyukuMask);
|
|
||||||
else
|
else
|
||||||
*d++ = 0x90 | (*s & KnjAssyukuMask);
|
*d++ = 0x90 | (*s & KnjAsshukuMask);
|
||||||
|
|
||||||
if (flg) *d++ = KanjiStrEnd;
|
if(flg) *d++ = KanjiStrEnd;
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
unsigned char*
|
unsigned char*
|
||||||
makekan_knj(unsigned char* s, unsigned char* d, int flg)
|
makekan_knj(unsigned char* s, unsigned char* d, int flg) {
|
||||||
{
|
|
||||||
|
|
||||||
return makekan(askknj[*s & KnjAssyukuMask], d, flg);
|
return makekan(askknj[*s & KnjAsshukuMask], d, flg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
unsigned char*
|
unsigned char*
|
||||||
makekan_ofs(unsigned char* s, unsigned char* d, int flg)
|
makekan_ofs(unsigned char* s, unsigned char* d, int flg) {
|
||||||
{
|
|
||||||
|
|
||||||
return makekan(dicbuf + ((*s & KanjiCodeMask) << 8) + *(s + 1),
|
return makekan(dicbuf + ((*s & KanjiCodeMask) << 8) + *(s + 1),
|
||||||
d, flg);
|
d, flg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
unsigned char*
|
unsigned char*
|
||||||
makekan_norm(unsigned char* s, unsigned char* d, int flg)
|
makekan_norm(unsigned char* s, unsigned char* d, int flg) {
|
||||||
{
|
|
||||||
unsigned char c;
|
unsigned char c;
|
||||||
|
|
||||||
if (*s != 0) {
|
if(*s != 0) {
|
||||||
c = s[1];
|
c = s[1];
|
||||||
if (c & 0x80)
|
if(c & 0x80)
|
||||||
*d++ = SS3;
|
*d++ = SS3;
|
||||||
*d++ = *s | 0x80;
|
*d++ = *s | 0x80;
|
||||||
*d++ = c | 0x80;
|
*d++ = c | 0x80;
|
||||||
} else {
|
} else {
|
||||||
*d++ = *s;
|
*d++ = *s;
|
||||||
}
|
}
|
||||||
if (flg) *d++ = KanjiStrEnd;
|
if(flg) *d++ = KanjiStrEnd;
|
||||||
|
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
unsigned char*
|
unsigned char*
|
||||||
makekan_ascii(unsigned char* s, unsigned char* d, int flg)
|
makekan_ascii(unsigned char* s, unsigned char* d, int flg) {
|
||||||
{
|
|
||||||
unsigned char c;
|
unsigned char c;
|
||||||
|
|
||||||
c = s[1];
|
c = s[1];
|
||||||
if (c & 0x80)
|
if(c & 0x80)
|
||||||
*d++ = SS2;
|
*d++ = SS2;
|
||||||
*d++ = c;
|
*d++ = c;
|
||||||
|
|
||||||
if (flg) *d++ = KanjiStrEnd;
|
if(flg) *d++ = KanjiStrEnd;
|
||||||
|
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static unsigned char*
|
static unsigned char*
|
||||||
makekan(unsigned char* s, unsigned char* d, int flg)
|
makekan(unsigned char* s, unsigned char* d, int flg) {
|
||||||
{
|
|
||||||
int csize;
|
int csize;
|
||||||
|
|
||||||
for ( ; ; ) {
|
for(;;) {
|
||||||
csize = codesize(*s);
|
csize = codesize(*s);
|
||||||
if (s[csize] == KanjiStrEnd) {
|
if(s[csize] == KanjiStrEnd) {
|
||||||
switch(*s & KanjiModeMask) {
|
switch(*s & KanjiModeMask) {
|
||||||
case ZenHiraAssyuku:
|
case ZenHiraAsshuku:
|
||||||
d = makekan_1byte(s, d, flg); break;
|
d = makekan_1byte(s, d, flg);
|
||||||
|
break;
|
||||||
|
|
||||||
case ZenKataAssyuku:
|
case ZenKataAsshuku:
|
||||||
d = makekan_1byte(s, d, flg); break;
|
d = makekan_1byte(s, d, flg);
|
||||||
|
break;
|
||||||
|
|
||||||
case OffsetAssyuku:
|
case OffsetAsshuku:
|
||||||
d = makekan_ofs(s, d, flg); break;
|
d = makekan_ofs(s, d, flg);
|
||||||
|
break;
|
||||||
|
|
||||||
case AiAttribute:
|
case AiAttribute:
|
||||||
d = makekan_none(s, d, flg); break;
|
d = makekan_none(s, d, flg);
|
||||||
|
break;
|
||||||
|
|
||||||
case LeadingHankaku:
|
case LeadingHankaku:
|
||||||
d = makekan_ascii(s, d, flg); break;
|
d = makekan_ascii(s, d, flg);
|
||||||
|
break;
|
||||||
|
|
||||||
case KanjiAssyuku:
|
case KanjiAsshuku:
|
||||||
d = makekan_knj(s, d, flg); break;
|
d = makekan_knj(s, d, flg);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
d = makekan_norm(s, d, flg);
|
d = makekan_norm(s, d, flg);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
} else
|
||||||
else
|
|
||||||
switch(*s & KanjiModeMask) {
|
switch(*s & KanjiModeMask) {
|
||||||
case ZenHiraAssyuku:
|
case ZenHiraAsshuku:
|
||||||
d = makekan_1byte(s, d, FALSE); break;
|
d = makekan_1byte(s, d, FALSE);
|
||||||
|
break;
|
||||||
|
|
||||||
case ZenKataAssyuku:
|
case ZenKataAsshuku:
|
||||||
d = makekan_1byte(s, d, FALSE); break;
|
d = makekan_1byte(s, d, FALSE);
|
||||||
|
break;
|
||||||
|
|
||||||
case OffsetAssyuku:
|
case OffsetAsshuku:
|
||||||
d = makekan_ofs(s, d, FALSE); break;
|
d = makekan_ofs(s, d, FALSE);
|
||||||
|
break;
|
||||||
|
|
||||||
case AiAttribute:
|
case AiAttribute:
|
||||||
d = makekan_none(s, d, FALSE); break;
|
d = makekan_none(s, d, FALSE);
|
||||||
|
break;
|
||||||
|
|
||||||
case LeadingHankaku:
|
case LeadingHankaku:
|
||||||
d = makekan_ascii(s, d, FALSE); break;
|
d = makekan_ascii(s, d, FALSE);
|
||||||
|
break;
|
||||||
|
|
||||||
case KanjiAssyuku:
|
case KanjiAsshuku:
|
||||||
d = makekan_knj(s, d, FALSE); break;
|
d = makekan_knj(s, d, FALSE);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
d = makekan_norm(s, d, FALSE);
|
d = makekan_norm(s, d, FALSE);
|
||||||
|
|
@ -279,39 +250,37 @@ makekan(unsigned char* s, unsigned char* d, int flg)
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#define PEND 2
|
#define PEND 2
|
||||||
#define QEND 1
|
#define QEND 1
|
||||||
static int
|
static int
|
||||||
sameknj(unsigned char* p, int plen, unsigned char* q, int qlen)
|
sameknj(unsigned char* p, int plen, unsigned char* q, int qlen) {
|
||||||
{
|
|
||||||
int i;
|
int i;
|
||||||
int j;
|
int j;
|
||||||
int endf = 0;
|
int endf = 0;
|
||||||
int brkf;
|
int brkf;
|
||||||
|
|
||||||
do {
|
do {
|
||||||
if ((i = euc_codesize(*p)) != euc_codesize(*q)) return FALSE;
|
if((i = euc_codesize(*p)) != euc_codesize(*q)) return FALSE;
|
||||||
|
|
||||||
brkf = 0;
|
brkf = 0;
|
||||||
for (j = 0; j < i; j++) {
|
for(j = 0; j < i; j++) {
|
||||||
if (p[j] != q[j] ) {
|
if(p[j] != q[j]) {
|
||||||
brkf = 1;
|
brkf = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (brkf) break;
|
if(brkf) break;
|
||||||
|
|
||||||
if (p[i] == KanjiStrEnd) endf += PEND;
|
if(p[i] == KanjiStrEnd) endf += PEND;
|
||||||
if (q[i] == KanjiStrEnd) endf += QEND;
|
if(q[i] == KanjiStrEnd) endf += QEND;
|
||||||
|
|
||||||
p += i;
|
p += i;
|
||||||
q += i;
|
q += i;
|
||||||
} while (!endf);
|
} while(!endf);
|
||||||
|
|
||||||
switch (endf) {
|
switch(endf) {
|
||||||
case (PEND | QEND):
|
case(PEND | QEND):
|
||||||
if (plen == qlen) return TRUE;
|
if(plen == qlen) return TRUE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PEND:
|
case PEND:
|
||||||
|
|
@ -321,17 +290,17 @@ sameknj(unsigned char* p, int plen, unsigned char* q, int qlen)
|
||||||
p = q;
|
p = q;
|
||||||
|
|
||||||
case QEND:
|
case QEND:
|
||||||
if (p[euc_codesize(*p)] != KanjiStrEnd) break;
|
if(p[euc_codesize(*p)] != KanjiStrEnd) break;
|
||||||
if ((*p & KanjiModeMask) != 0x10 ) break;
|
if((*p & KanjiModeMask) != 0x10) break;
|
||||||
if (qlen != plen - (*p & KanjiCodeMask) - 1) break;
|
if(qlen != plen - (*p & KanjiCodeMask) - 1) break;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
if (q[euc_codesize(*q)] != KanjiStrEnd) break;
|
if(q[euc_codesize(*q)] != KanjiStrEnd) break;
|
||||||
if (p[euc_codesize(*p)] != KanjiStrEnd) break;
|
if(p[euc_codesize(*p)] != KanjiStrEnd) break;
|
||||||
if ((*q & KanjiModeMask) != 0x10 ) break;
|
if((*q & KanjiModeMask) != 0x10) break;
|
||||||
if ((*p & KanjiModeMask) != 0x10 ) break;
|
if((*p & KanjiModeMask) != 0x10) break;
|
||||||
if (plen - (*p & KanjiCodeMask) != qlen - (*q & KanjiCodeMask))
|
if(plen - (*p & KanjiCodeMask) != qlen - (*q & KanjiCodeMask))
|
||||||
break;
|
break;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
@ -341,71 +310,64 @@ sameknj(unsigned char* p, int plen, unsigned char* q, int qlen)
|
||||||
#undef PEND
|
#undef PEND
|
||||||
#undef QEND
|
#undef QEND
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
diffknj(JREC* jrec, unsigned char* ptr, int num)
|
diffknj(JREC* jrec, unsigned char* ptr, int num) {
|
||||||
{
|
KHREC* kptr;
|
||||||
KHREC *kptr;
|
JREC* jptr;
|
||||||
JREC *jptr;
|
|
||||||
int i;
|
int i;
|
||||||
unsigned char kbuf1[MaxWdKanjiLen];
|
unsigned char kbuf1[MaxWdKanjiLen];
|
||||||
unsigned char kbuf2[MaxWdKanjiLen];
|
unsigned char kbuf2[MaxWdKanjiLen];
|
||||||
|
|
||||||
if (jrec -> hinsi == TANKANJI) return TRUE;
|
if(jrec->hinshi == TANKANJI) return TRUE;
|
||||||
|
|
||||||
makekan(ptr, kbuf1, TRUE);
|
makekan(ptr, kbuf1, TRUE);
|
||||||
|
|
||||||
for (i = 0, kptr = kouhotbl ; i < num ; i++, kptr++) {
|
for(i = 0, kptr = kouhotbl; i < num; i++, kptr++) {
|
||||||
if ((jptr = kptr -> clrec -> jnode) == jrec)
|
if((jptr = kptr->clrec->jnode) == jrec)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
if (jptr -> hinsi == TANKANJI) continue;
|
if(jptr->hinshi == TANKANJI) continue;
|
||||||
|
|
||||||
if (jptr -> class != jrec -> class) continue;
|
if(jptr->class != jrec->class) continue;
|
||||||
|
|
||||||
if (jptr -> dicid != jrec -> dicid) continue;
|
if(jptr->dicid != jrec->dicid) continue;
|
||||||
|
|
||||||
if (jptr -> jseg != jrec -> jseg) continue;
|
if(jptr->jseg != jrec->jseg) continue;
|
||||||
|
|
||||||
if (jptr -> sttofs != jrec -> sttofs) continue;
|
if(jptr->sttofs != jrec->sttofs) continue;
|
||||||
|
|
||||||
if (jptr -> stbofs != jrec -> stbofs) continue;
|
if(jptr->stbofs != jrec->stbofs) continue;
|
||||||
|
|
||||||
makekan(dicbuf + kptr -> offs, kbuf2, TRUE);
|
makekan(dicbuf + kptr->offs, kbuf2, TRUE);
|
||||||
|
|
||||||
if (sameknj(kbuf1, jrec -> jlen, kbuf2, jptr -> jlen))
|
if(sameknj(kbuf1, jrec->jlen, kbuf2, jptr->jlen))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
chrck_numtbl(unsigned short flg, unsigned short cond)
|
chrck_numtbl(unsigned short flg, unsigned short cond) {
|
||||||
{
|
|
||||||
unsigned short must;
|
unsigned short must;
|
||||||
|
|
||||||
if ((cond = SelNumCond(cond)) != 0) {
|
if((cond = SelNumCond(cond)) != 0) {
|
||||||
if ((must = (cond & SelNumMust)) != 0) {
|
if((must = (cond & SelNumMust)) != 0) {
|
||||||
if ((flg & must) != must) return FALSE;
|
if((flg & must) != must) return FALSE;
|
||||||
cond &= ~must;
|
cond &= ~must;
|
||||||
}
|
}
|
||||||
if (cond && !(cond & flg)) return FALSE;
|
if(cond && !(cond & flg)) return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int sel_sjmode(JREC* jrec) {
|
||||||
int
|
|
||||||
sel_sjmode(JREC* jrec)
|
|
||||||
{
|
|
||||||
unsigned short i;
|
unsigned short i;
|
||||||
unsigned short *p;
|
unsigned short* p;
|
||||||
unsigned short *q;
|
unsigned short* q;
|
||||||
|
|
||||||
switch (jrec -> class) {
|
switch(jrec->class) {
|
||||||
case C_N_ARABIA:
|
case C_N_ARABIA:
|
||||||
case C_N_ARACMA:
|
case C_N_ARACMA:
|
||||||
case C_N_KAZU:
|
case C_N_KAZU:
|
||||||
|
|
@ -423,55 +385,45 @@ sel_sjmode(JREC* jrec)
|
||||||
return SelArb;
|
return SelArb;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
while((i = *p++) != SelNumTerm) {
|
||||||
|
|
||||||
while ((i = *p++) != SelNumTerm) {
|
if(chrck_numtbl(jrec->flags, i)) break;
|
||||||
|
|
||||||
if (chrck_numtbl(jrec -> flags, i)) break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (i == SelNumTerm) i = *q;
|
if(i == SelNumTerm) i = *q;
|
||||||
|
|
||||||
return SelNumFunc(i);
|
return SelNumFunc(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
cl_numcmn(JREC* jrec, CLREC* clrec)
|
cl_numcmn(JREC* jrec, CLREC* clrec) {
|
||||||
{
|
unsigned char* p;
|
||||||
unsigned char *p;
|
|
||||||
int i;
|
int i;
|
||||||
unsigned short j;
|
unsigned short j;
|
||||||
unsigned short *tbl;
|
unsigned short* tbl;
|
||||||
|
|
||||||
|
|
||||||
p = cnvstart;
|
p = cnvstart;
|
||||||
if ((i = jrec -> sttofs) == SETTOU_DAI)
|
if((i = jrec->sttofs) == SETTOU_DAI)
|
||||||
p += SttYomiLen(Settou_ptr(i));
|
p += SttYomiLen(Settou_ptr(i));
|
||||||
else if (i == SETTOU_KIGOU)
|
else if(i == SETTOU_KIGOU)
|
||||||
p++;
|
p++;
|
||||||
|
|
||||||
|
if(jrec->jofsst) {
|
||||||
if (jrec -> jofsst) {
|
|
||||||
|
|
||||||
i = sel_sjmode(jrec);
|
i = sel_sjmode(jrec);
|
||||||
|
|
||||||
|
if(seldict(jrec->dicid)) {
|
||||||
if (seldict(jrec -> dicid)) {
|
(*curdict->getdic)(curdict, jrec->jseg);
|
||||||
(*curdict->getdic)(curdict, jrec -> jseg);
|
|
||||||
|
|
||||||
|
|
||||||
p = dicbuf + jrec->jofsst + 1;
|
p = dicbuf + jrec->jofsst + 1;
|
||||||
|
|
||||||
|
while(*p != HinshiBlkTerm) {
|
||||||
while (*p != HinsiBlkTerm) {
|
|
||||||
|
|
||||||
setkouho(clrec, (TypeDicOfs)(p - dicbuf), i);
|
setkouho(clrec, (TypeDicOfs)(p - dicbuf), i);
|
||||||
|
|
||||||
|
|
||||||
p = skipkstr(p);
|
p = skipkstr(p);
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
|
|
||||||
setkouho(clrec, (TypeDicOfs)1, i);
|
setkouho(clrec, (TypeDicOfs)1, i);
|
||||||
}
|
}
|
||||||
|
|
@ -480,10 +432,9 @@ cl_numcmn(JREC* jrec, CLREC* clrec)
|
||||||
else {
|
else {
|
||||||
|
|
||||||
tbl = Selsjadrs(jrec->class - C_N_ARABIA);
|
tbl = Selsjadrs(jrec->class - C_N_ARABIA);
|
||||||
while ((j = *tbl++) != SelNumTerm) {
|
while((j = *tbl++) != SelNumTerm) {
|
||||||
|
|
||||||
if (!chrck_numtbl(jrec -> flags, j)) continue;
|
|
||||||
|
|
||||||
|
if(!chrck_numtbl(jrec->flags, j)) continue;
|
||||||
|
|
||||||
setkouho(clrec, (TypeDicOfs)0, (int)SelNumFunc(j));
|
setkouho(clrec, (TypeDicOfs)0, (int)SelNumFunc(j));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
226
mknumber.c
226
mknumber.c
|
|
@ -27,39 +27,28 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: mknumber.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:02:05 $
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include "sj_kcnv.h"
|
#include "sj_kcnv.h"
|
||||||
#include "sj_yomi.h"
|
#include "sj_yomi.h"
|
||||||
#include "sj_suuji.h"
|
#include "sj_suuji.h"
|
||||||
#include "kanakan.h"
|
#include "kanakan.h"
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
word2char(unsigned short wd, unsigned char* tbl, int keta, int flg)
|
word2char(unsigned short wd, unsigned char* tbl, int keta, int flg) {
|
||||||
{
|
|
||||||
int mask;
|
int mask;
|
||||||
int num;
|
int num;
|
||||||
unsigned char* src;
|
unsigned char* src;
|
||||||
|
|
||||||
for (mask = 0x1000 ; mask ; mask >>= 4) {
|
for(mask = 0x1000; mask; mask >>= 4) {
|
||||||
|
|
||||||
switch (num = (unsigned int)wd / mask) {
|
switch(num = (unsigned int)wd / mask) {
|
||||||
case 0:
|
case 0:
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case _Num0:
|
case _Num0:
|
||||||
|
|
||||||
if (!flg) break;
|
if(!flg) break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
src = tbl + (num - _Num0) * 2;
|
src = tbl + (num - _Num0) * 2;
|
||||||
|
|
@ -67,13 +56,12 @@ word2char(unsigned short wd, unsigned char* tbl, int keta, int flg)
|
||||||
*kanjitmp++ = *src;
|
*kanjitmp++ = *src;
|
||||||
flg = TRUE;
|
flg = TRUE;
|
||||||
|
|
||||||
if (keta && !(keta % 3)) {
|
if(keta && !(keta % 3)) {
|
||||||
*kanjitmp++ = CommaHigh;
|
*kanjitmp++ = CommaHigh;
|
||||||
*kanjitmp++ = CommaLow;
|
*kanjitmp++ = CommaLow;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (keta) keta--;
|
if(keta) keta--;
|
||||||
|
|
||||||
|
|
||||||
wd &= (mask - 1);
|
wd &= (mask - 1);
|
||||||
}
|
}
|
||||||
|
|
@ -81,145 +69,99 @@ word2char(unsigned short wd, unsigned char* tbl, int keta, int flg)
|
||||||
return flg;
|
return flg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
words2num(unsigned short* wd, unsigned char* tbl, int flgc)
|
words2num(unsigned short* wd, unsigned char* tbl, int flgc) {
|
||||||
{
|
|
||||||
int i;
|
int i;
|
||||||
int keta;
|
int keta;
|
||||||
int flg;
|
int flg;
|
||||||
unsigned char *kp = kanjitmp;
|
unsigned char* kp = kanjitmp;
|
||||||
|
|
||||||
if (flgc) {
|
if(flgc) {
|
||||||
keta = NumKetaLength - 1;
|
keta = NumKetaLength - 1;
|
||||||
flg = FALSE;
|
flg = FALSE;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
keta = 0;
|
keta = 0;
|
||||||
flg = TRUE;
|
flg = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = NumWordBuf ; i-- > 0 ; ) {
|
for(i = NumWordBuf; i-- > 0;) {
|
||||||
flg = word2char(*(wd + i), tbl, keta, flg);
|
flg = word2char(*(wd + i), tbl, keta, flg);
|
||||||
if (keta) keta -= 4;
|
if(keta) keta -= 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(kp == kanjitmp) {
|
||||||
if (kp == kanjitmp) {
|
|
||||||
|
|
||||||
*kanjitmp++ = *tbl++;
|
*kanjitmp++ = *tbl++;
|
||||||
*kanjitmp++ = *tbl;
|
*kanjitmp++ = *tbl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void num_type00(unsigned char* s1, unsigned char* s2, JREC* jrec) {
|
||||||
void
|
|
||||||
num_type00(unsigned char* s1, unsigned char* s2, JREC* jrec)
|
|
||||||
{
|
|
||||||
unsigned short num[NumWordBuf];
|
unsigned short num[NumWordBuf];
|
||||||
|
|
||||||
|
setwdnum(s1, (int)jrec->numlen, num);
|
||||||
setwdnum(s1, (int)jrec -> numlen, num);
|
|
||||||
|
|
||||||
|
|
||||||
words2num(num, Num1tbl, FALSE);
|
words2num(num, Num1tbl, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void num_type01(unsigned char* s1, unsigned char* s2, JREC* jrec) {
|
||||||
void
|
|
||||||
num_type01(unsigned char* s1, unsigned char* s2, JREC* jrec)
|
|
||||||
{
|
|
||||||
unsigned short num[NumWordBuf];
|
unsigned short num[NumWordBuf];
|
||||||
|
|
||||||
|
setwdnum(s1, (int)jrec->numlen, num);
|
||||||
setwdnum(s1, (int)jrec -> numlen, num);
|
|
||||||
|
|
||||||
|
|
||||||
words2num(num, Num1tbl, FALSE);
|
words2num(num, Num1tbl, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void num_type02(unsigned char* s1, unsigned char* s2, JREC* jrec) {
|
||||||
void
|
|
||||||
num_type02(unsigned char* s1, unsigned char* s2, JREC* jrec)
|
|
||||||
{
|
|
||||||
unsigned short num[NumWordBuf];
|
unsigned short num[NumWordBuf];
|
||||||
|
|
||||||
|
setwdnum(s1, (int)jrec->numlen, num);
|
||||||
setwdnum(s1, (int)jrec -> numlen, num);
|
|
||||||
|
|
||||||
|
|
||||||
words2num(num, Num1tbl, TRUE);
|
words2num(num, Num1tbl, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void num_type03(unsigned char* s1, unsigned char* s2, JREC* jrec) {
|
||||||
void
|
|
||||||
num_type03(unsigned char* s1, unsigned char* s2, JREC* jrec)
|
|
||||||
{
|
|
||||||
unsigned short num[NumWordBuf];
|
unsigned short num[NumWordBuf];
|
||||||
|
|
||||||
|
setwdnum(s1, (int)jrec->numlen, num);
|
||||||
setwdnum(s1, (int)jrec -> numlen, num);
|
|
||||||
|
|
||||||
|
|
||||||
words2num(num, Num2tbl, FALSE);
|
words2num(num, Num2tbl, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void num_type04(unsigned char* s1, unsigned char* s2, JREC* jrec) {
|
||||||
void
|
|
||||||
num_type04(unsigned char* s1, unsigned char* s2, JREC* jrec)
|
|
||||||
{
|
|
||||||
unsigned short num[NumWordBuf];
|
unsigned short num[NumWordBuf];
|
||||||
|
|
||||||
|
setwdnum(s1, (int)jrec->numlen, num);
|
||||||
setwdnum(s1, (int)jrec -> numlen, num);
|
|
||||||
|
|
||||||
|
|
||||||
words2num(num, Num2tbl, FALSE);
|
words2num(num, Num2tbl, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void num_type05(unsigned char* s1, unsigned char* s2, JREC* jrec) {
|
||||||
void
|
|
||||||
num_type05(unsigned char* s1, unsigned char* s2, JREC* jrec)
|
|
||||||
{
|
|
||||||
unsigned short num[NumWordBuf];
|
unsigned short num[NumWordBuf];
|
||||||
|
|
||||||
|
setwdnum(s1, (int)jrec->numlen, num);
|
||||||
setwdnum(s1, (int)jrec -> numlen, num);
|
|
||||||
|
|
||||||
|
|
||||||
words2num(num, Num2tbl, TRUE);
|
words2num(num, Num2tbl, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void num_type06(unsigned char* s1, unsigned char* s2, JREC* jrec) {
|
||||||
void
|
|
||||||
num_type06(unsigned char* s1, unsigned char* s2, JREC* jrec)
|
|
||||||
{
|
|
||||||
unsigned short num[NumWordBuf];
|
unsigned short num[NumWordBuf];
|
||||||
|
|
||||||
|
setwdnum(s1, (int)jrec->numlen, num);
|
||||||
setwdnum(s1, (int)jrec -> numlen, num);
|
|
||||||
|
|
||||||
|
|
||||||
words2num(num, Num3tbl, FALSE);
|
words2num(num, Num3tbl, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void num_type07(unsigned char* s1, unsigned char* s2, JREC* jrec) {
|
||||||
void
|
|
||||||
num_type07(unsigned char* s1, unsigned char* s2, JREC* jrec)
|
|
||||||
{
|
|
||||||
unsigned short num[NumWordBuf];
|
unsigned short num[NumWordBuf];
|
||||||
|
|
||||||
|
setwdnum(s1, (int)jrec->numlen, num);
|
||||||
setwdnum(s1, (int)jrec -> numlen, num);
|
|
||||||
|
|
||||||
|
|
||||||
words2num(num, Num3tbl, FALSE);
|
words2num(num, Num3tbl, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
kan_num(unsigned short* wd, unsigned char* tbl1, unsigned char* tbl2)
|
kan_num(unsigned short* wd, unsigned char* tbl1, unsigned char* tbl2) {
|
||||||
{
|
|
||||||
int ii;
|
int ii;
|
||||||
unsigned short tmp;
|
unsigned short tmp;
|
||||||
int mask;
|
int mask;
|
||||||
|
|
@ -230,22 +172,19 @@ kan_num(unsigned short* wd, unsigned char* tbl1, unsigned char* tbl2)
|
||||||
unsigned char* src;
|
unsigned char* src;
|
||||||
unsigned char* keep = kanjitmp;
|
unsigned char* keep = kanjitmp;
|
||||||
|
|
||||||
|
|
||||||
kurai2 = Num6tbl - 2;
|
kurai2 = Num6tbl - 2;
|
||||||
mask = 0;
|
mask = 0;
|
||||||
wd += NumWordBuf - 1;
|
wd += NumWordBuf - 1;
|
||||||
flg = FALSE;
|
flg = FALSE;
|
||||||
|
|
||||||
|
for(ii = NumKetaLength; ii-- > 0;) {
|
||||||
|
|
||||||
for (ii = NumKetaLength ; ii-- > 0 ; ) {
|
if(!mask) {
|
||||||
|
|
||||||
if (!mask) {
|
if(flg) {
|
||||||
|
|
||||||
if (flg) {
|
|
||||||
*kanjitmp++ = *kurai2++;
|
*kanjitmp++ = *kurai2++;
|
||||||
*kanjitmp++ = *kurai2++;
|
*kanjitmp++ = *kurai2++;
|
||||||
}
|
} else
|
||||||
else
|
|
||||||
kurai2 += 2;
|
kurai2 += 2;
|
||||||
|
|
||||||
mask = 0x1000;
|
mask = 0x1000;
|
||||||
|
|
@ -254,17 +193,15 @@ kan_num(unsigned short* wd, unsigned char* tbl1, unsigned char* tbl2)
|
||||||
kurai1 = tbl2;
|
kurai1 = tbl2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if((num = (unsigned int)tmp / mask) > _Num0) {
|
||||||
|
|
||||||
if ((num = (unsigned int)tmp / mask) > _Num0) {
|
if((num != _Num1) || !*kurai1) {
|
||||||
|
|
||||||
if ((num != _Num1) || !*kurai1) {
|
|
||||||
src = tbl1 + (num - _Num0) * 2;
|
src = tbl1 + (num - _Num0) * 2;
|
||||||
*kanjitmp++ = *src++;
|
*kanjitmp++ = *src++;
|
||||||
*kanjitmp++ = *src;
|
*kanjitmp++ = *src;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(*kurai1) {
|
||||||
if (*kurai1) {
|
|
||||||
*kanjitmp++ = *kurai1++;
|
*kanjitmp++ = *kurai1++;
|
||||||
*kanjitmp++ = *kurai1++;
|
*kanjitmp++ = *kurai1++;
|
||||||
}
|
}
|
||||||
|
|
@ -274,54 +211,38 @@ kan_num(unsigned short* wd, unsigned char* tbl1, unsigned char* tbl2)
|
||||||
else
|
else
|
||||||
kurai1 += 2;
|
kurai1 += 2;
|
||||||
|
|
||||||
|
|
||||||
tmp &= (mask - 1);
|
tmp &= (mask - 1);
|
||||||
mask >>= 4;
|
mask >>= 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(kanjitmp == keep) {
|
||||||
if (kanjitmp == keep) {
|
|
||||||
*kanjitmp++ = *tbl1++;
|
*kanjitmp++ = *tbl1++;
|
||||||
*kanjitmp++ = *tbl1;
|
*kanjitmp++ = *tbl1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void num_type08(unsigned char* s1, unsigned char* s2, JREC* jrec) {
|
||||||
void
|
|
||||||
num_type08(unsigned char* s1, unsigned char* s2, JREC* jrec)
|
|
||||||
{
|
|
||||||
unsigned short num[NumWordBuf];
|
unsigned short num[NumWordBuf];
|
||||||
|
|
||||||
|
setwdnum(s1, (int)jrec->numlen, num);
|
||||||
setwdnum(s1, (int)jrec -> numlen, num);
|
|
||||||
|
|
||||||
|
|
||||||
kan_num(num, Num2tbl, Num4tbl);
|
kan_num(num, Num2tbl, Num4tbl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void num_type09(unsigned char* s1, unsigned char* s2, JREC* jrec) {
|
||||||
void
|
|
||||||
num_type09(unsigned char* s1, unsigned char* s2, JREC* jrec)
|
|
||||||
{
|
|
||||||
unsigned short num[NumWordBuf];
|
unsigned short num[NumWordBuf];
|
||||||
|
|
||||||
|
setwdnum(s1, (int)jrec->numlen, num);
|
||||||
setwdnum(s1, (int)jrec -> numlen, num);
|
|
||||||
|
|
||||||
|
|
||||||
kan_num(num, Num3tbl, Num5tbl);
|
kan_num(num, Num3tbl, Num5tbl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void num_type10(unsigned char* s1, unsigned char* s2, JREC* jrec) {
|
||||||
void
|
|
||||||
num_type10(unsigned char* s1, unsigned char* s2, JREC* jrec)
|
|
||||||
{
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
for(i = jrec->numlen; i > 0; i--) {
|
||||||
|
|
||||||
for (i = jrec -> numlen ; i > 0 ; i--) {
|
if(Chrtbl[*s1++] & NUMBER) {
|
||||||
|
|
||||||
if (Chrtbl[*s1++] & NUMBER) {
|
|
||||||
*kanjitmp++ = *s2++;
|
*kanjitmp++ = *s2++;
|
||||||
*kanjitmp++ = *s2++;
|
*kanjitmp++ = *s2++;
|
||||||
}
|
}
|
||||||
|
|
@ -331,25 +252,20 @@ num_type10(unsigned char* s1, unsigned char* s2, JREC* jrec)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void num_type11(unsigned char* s1, unsigned char* s2, JREC* jrec) {
|
||||||
void
|
|
||||||
num_type11(unsigned char* s1, unsigned char* s2, JREC* jrec)
|
|
||||||
{
|
|
||||||
int i;
|
int i;
|
||||||
int j;
|
int j;
|
||||||
|
|
||||||
|
i = j = jrec->numlen;
|
||||||
|
if(!(Chrtbl[*(s1 + j - 4)] & NUMBER)) j -= (j - 1) / 4;
|
||||||
|
|
||||||
i = j = jrec -> numlen;
|
for(; i > 0; i--) {
|
||||||
if (!(Chrtbl[*(s1 + j - 4)] & NUMBER)) j -= (j - 1) / 4;
|
|
||||||
|
|
||||||
|
if(Chrtbl[*s1++] & NUMBER) {
|
||||||
for ( ; i > 0 ; i--) {
|
|
||||||
|
|
||||||
if (Chrtbl[*s1++] & NUMBER) {
|
|
||||||
*kanjitmp++ = *s2++;
|
*kanjitmp++ = *s2++;
|
||||||
*kanjitmp++ = *s2++;
|
*kanjitmp++ = *s2++;
|
||||||
if (--j > 0) {
|
if(--j > 0) {
|
||||||
if ((j % 3) == 0) {
|
if((j % 3) == 0) {
|
||||||
*kanjitmp++ = CommaHigh;
|
*kanjitmp++ = CommaHigh;
|
||||||
*kanjitmp++ = CommaLow;
|
*kanjitmp++ = CommaLow;
|
||||||
}
|
}
|
||||||
|
|
@ -361,17 +277,13 @@ num_type11(unsigned char* s1, unsigned char* s2, JREC* jrec)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void num_type12(unsigned char* s1, unsigned char* s2, JREC* jrec) {
|
||||||
void
|
|
||||||
num_type12(unsigned char* s1, unsigned char* s2, JREC* jrec)
|
|
||||||
{
|
|
||||||
int i;
|
int i;
|
||||||
int j;
|
int j;
|
||||||
|
|
||||||
|
for(i = jrec->numlen; i > 0; i--) {
|
||||||
|
|
||||||
for (i = jrec -> numlen ; i > 0 ; i--) {
|
if(Chrtbl[j = *s1++] & NUMBER) {
|
||||||
|
|
||||||
if (Chrtbl[j = *s1++] & NUMBER) {
|
|
||||||
j = (j - N_0) * 2;
|
j = (j - N_0) * 2;
|
||||||
*kanjitmp++ = Num2tbl[j];
|
*kanjitmp++ = Num2tbl[j];
|
||||||
*kanjitmp++ = Num2tbl[j + 1];
|
*kanjitmp++ = Num2tbl[j + 1];
|
||||||
|
|
@ -379,54 +291,42 @@ num_type12(unsigned char* s1, unsigned char* s2, JREC* jrec)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
num_kurai(unsigned char* p, int len, unsigned char* tbl)
|
num_kurai(unsigned char* p, int len, unsigned char* tbl) {
|
||||||
{
|
|
||||||
int i;
|
int i;
|
||||||
int j;
|
int j;
|
||||||
unsigned char tmp;
|
unsigned char tmp;
|
||||||
|
|
||||||
for (i = 0 ; i < len ; i++) {
|
for(i = 0; i < len; i++) {
|
||||||
tmp = *p++;
|
tmp = *p++;
|
||||||
|
|
||||||
*kanjitmp++ = tbl[j = ((tmp & 0x0f) - _Num0) * 2];
|
*kanjitmp++ = tbl[j = ((tmp & 0x0f) - _Num0) * 2];
|
||||||
*kanjitmp++ = tbl[j + 1];
|
*kanjitmp++ = tbl[j + 1];
|
||||||
if ((j = ((tmp >> 4) & 3)) != 0) {
|
if((j = ((tmp >> 4) & 3)) != 0) {
|
||||||
*kanjitmp++ = Num4tbl[j = (3 - j) * 2];
|
*kanjitmp++ = Num4tbl[j = (3 - j) * 2];
|
||||||
*kanjitmp++ = Num4tbl[j + 1];
|
*kanjitmp++ = Num4tbl[j + 1];
|
||||||
}
|
}
|
||||||
if ((j = ((tmp >> 6) & 3)) != 0) {
|
if((j = ((tmp >> 6) & 3)) != 0) {
|
||||||
*kanjitmp++ = Num6tbl[j = (3 - j) * 2];
|
*kanjitmp++ = Num6tbl[j = (3 - j) * 2];
|
||||||
*kanjitmp++ = Num6tbl[j + 1];
|
*kanjitmp++ = Num6tbl[j + 1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void num_type13(unsigned char* s1, unsigned char* s2, JREC* jrec) {
|
||||||
void
|
|
||||||
num_type13(unsigned char* s1, unsigned char* s2, JREC* jrec)
|
|
||||||
{
|
|
||||||
unsigned char num[NumKetaLength];
|
unsigned char num[NumKetaLength];
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
|
len = setucnum(s1, (int)jrec->numlen, num);
|
||||||
len = setucnum(s1, (int)jrec -> numlen, num);
|
|
||||||
|
|
||||||
|
|
||||||
num_kurai(num, len, Num1tbl);
|
num_kurai(num, len, Num1tbl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void num_type14(unsigned char* s1, unsigned char* s2, JREC* jrec) {
|
||||||
void
|
|
||||||
num_type14(unsigned char* s1, unsigned char* s2, JREC* jrec)
|
|
||||||
{
|
|
||||||
unsigned char num[NumKetaLength];
|
unsigned char num[NumKetaLength];
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
|
len = setucnum(s1, (int)jrec->numlen, num);
|
||||||
len = setucnum(s1, (int)jrec -> numlen, num);
|
|
||||||
|
|
||||||
|
|
||||||
num_kurai(num, len, Num2tbl);
|
num_kurai(num, len, Num2tbl);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
16
mvmemd.c
16
mvmemd.c
|
|
@ -27,22 +27,12 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: mvmemd.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:02:05 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include "sj_rename.h"
|
#include "sj_rename.h"
|
||||||
#include "sj_typedef.h"
|
#include "sj_typedef.h"
|
||||||
|
|
||||||
void mvmemd(src, dest, len)
|
void mvmemd(src, dest, len) unsigned char* src;
|
||||||
unsigned char *src;
|
unsigned char* dest;
|
||||||
unsigned char *dest;
|
|
||||||
int len;
|
int len;
|
||||||
{
|
{
|
||||||
while (len-- > 0) *(--dest) = *(--src);
|
while(len-- > 0) *(--dest) = *(--src);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
16
mvmemi.c
16
mvmemi.c
|
|
@ -27,22 +27,12 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: mvmemi.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:02:06 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include "sj_rename.h"
|
#include "sj_rename.h"
|
||||||
#include "sj_typedef.h"
|
#include "sj_typedef.h"
|
||||||
|
|
||||||
void mvmemi(src, dest, len)
|
void mvmemi(src, dest, len) unsigned char* src;
|
||||||
unsigned char *src;
|
unsigned char* dest;
|
||||||
unsigned char *dest;
|
|
||||||
int len;
|
int len;
|
||||||
{
|
{
|
||||||
while (len-- > 0) *dest++ = *src++;
|
while(len-- > 0) *dest++ = *src++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
60
nmttyslot.c
60
nmttyslot.c
|
|
@ -27,76 +27,61 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: nmttyslot.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:03:20 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include "sj2.h"
|
#include "sj2.h"
|
||||||
#define LINESIZE 128
|
#define LINESIZE 128
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
|
static char* getttys();
|
||||||
|
static char* ttys = "/etc/ttys";
|
||||||
|
|
||||||
static char *getttys();
|
|
||||||
static char *ttys = "/etc/ttys";
|
|
||||||
|
|
||||||
#define NULL 0
|
#define NULL 0
|
||||||
|
|
||||||
nmttyslot (name)
|
nmttyslot(name) char* name;
|
||||||
char *name;
|
|
||||||
{
|
{
|
||||||
char *tp, *p;
|
char *tp, *p;
|
||||||
int s, tf;
|
int s, tf;
|
||||||
|
|
||||||
tp = name;
|
tp = name;
|
||||||
|
|
||||||
if ((p = strrchr (tp, '/')) == NULL)
|
if((p = strrchr(tp, '/')) == NULL)
|
||||||
p = tp;
|
p = tp;
|
||||||
else
|
else
|
||||||
p++;
|
p++;
|
||||||
if ((tf = open (ttys, 0)) < 0)
|
if((tf = open(ttys, 0)) < 0)
|
||||||
return(0);
|
return (0);
|
||||||
s = 0;
|
s = 0;
|
||||||
while (tp = getttys (tf)) {
|
while(tp = getttys(tf)) {
|
||||||
s++;
|
s++;
|
||||||
if (strcmp (p, tp) == 0) {
|
if(strcmp(p, tp) == 0) {
|
||||||
close (tf);
|
close(tf);
|
||||||
return (s);
|
return (s);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
close (tf);
|
close(tf);
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static char *
|
static char*
|
||||||
getttys (f)
|
getttys(f)
|
||||||
int f;
|
int f;
|
||||||
{
|
{
|
||||||
static char line[LINESIZE];
|
static char line[LINESIZE];
|
||||||
char *lp;
|
char* lp;
|
||||||
top:
|
top:
|
||||||
for (lp = line ; lp < &line[LINESIZE] ; lp ++) {
|
for(lp = line; lp < &line[LINESIZE]; lp++) {
|
||||||
if (read (f, lp, 1) != 1)
|
if(read(f, lp, 1) != 1)
|
||||||
return (NULL);
|
return (NULL);
|
||||||
if (*lp == '\n') {
|
if(*lp == '\n') {
|
||||||
*lp = '\0';
|
*lp = '\0';
|
||||||
break;
|
break;
|
||||||
}
|
} else if(*lp == ' ' || *lp == '\t') {
|
||||||
else if (*lp == ' ' || *lp == '\t') {
|
|
||||||
|
|
||||||
while (1) {
|
while(1) {
|
||||||
if (read (f, lp, 1) != 1)
|
if(read(f, lp, 1) != 1)
|
||||||
break;
|
break;
|
||||||
if (*lp == '\n')
|
if(*lp == '\n')
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
*lp = '\0';
|
*lp = '\0';
|
||||||
|
|
@ -104,10 +89,9 @@ top:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
lp = line;
|
lp = line;
|
||||||
if (*lp == '0' || *lp == '1')
|
if(*lp == '0' || *lp == '1')
|
||||||
lp += 2;
|
lp += 2;
|
||||||
else if (*lp == '#')
|
else if(*lp == '#')
|
||||||
goto top;
|
goto top;
|
||||||
return (lp);
|
return (lp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
113
offset.c
113
offset.c
|
|
@ -27,15 +27,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: offset.c,v $
|
|
||||||
* $SonyRevision: 1.2 $
|
|
||||||
* $SonyDate: 1994/08/17 01:50:26 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
@ -43,142 +34,116 @@
|
||||||
#include "sj_struct.h"
|
#include "sj_struct.h"
|
||||||
#include "dicttool.h"
|
#include "dicttool.h"
|
||||||
|
|
||||||
extern OffsetRec *ofsrec[];
|
extern OffsetRec* ofsrec[];
|
||||||
extern int ofsrec_num;
|
extern int ofsrec_num;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static OffsetRec*
|
static OffsetRec*
|
||||||
makeoffset(unsigned char* ptr, int len, int ofs)
|
makeoffset(unsigned char* ptr, int len, int ofs) {
|
||||||
{
|
OffsetRec* orec;
|
||||||
OffsetRec *orec;
|
unsigned char* p;
|
||||||
unsigned char *p;
|
|
||||||
|
|
||||||
|
orec = (OffsetRec*)Malloc(sizeof(OffsetRec));
|
||||||
|
|
||||||
orec = (OffsetRec *)Malloc(sizeof(OffsetRec));
|
p = (unsigned char*)Malloc(len);
|
||||||
|
|
||||||
|
|
||||||
p = (unsigned char *)Malloc(len);
|
|
||||||
memcpy(p, ptr, len);
|
memcpy(p, ptr, len);
|
||||||
|
|
||||||
|
orec->kptr = p;
|
||||||
orec -> kptr = p;
|
orec->klen = len;
|
||||||
orec -> klen = len;
|
if(ofs)
|
||||||
if (ofs)
|
orec->offset = ofs;
|
||||||
orec -> offset = ofs;
|
|
||||||
else
|
else
|
||||||
orec -> offset = ofsrec_num + 1;
|
orec->offset = ofsrec_num + 1;
|
||||||
|
|
||||||
return orec;
|
return orec;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void set_ofsrec(unsigned char* ptr, int len, int ofs) {
|
||||||
void
|
OffsetRec* orec;
|
||||||
set_ofsrec(unsigned char* ptr, int len, int ofs)
|
|
||||||
{
|
|
||||||
OffsetRec *orec;
|
|
||||||
int low, high, mid;
|
int low, high, mid;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
if(ofsrec_num <= 0) {
|
||||||
if (ofsrec_num <= 0) {
|
|
||||||
orec = makeoffset(ptr, len, ofs);
|
orec = makeoffset(ptr, len, ofs);
|
||||||
ofsrec[0]= orec;
|
ofsrec[0] = orec;
|
||||||
ofsrec_num++;
|
ofsrec_num++;
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
low = 0;
|
||||||
low = 0; high = ofsrec_num - 1;
|
high = ofsrec_num - 1;
|
||||||
while (low <= high) {
|
while(low <= high) {
|
||||||
mid = (low + high) / 2;
|
mid = (low + high) / 2;
|
||||||
i = string_cmp(ofsrec[mid]->kptr, ofsrec[mid]->klen, ptr, len);
|
i = string_cmp(ofsrec[mid]->kptr, ofsrec[mid]->klen, ptr, len);
|
||||||
if (i > 0)
|
if(i > 0)
|
||||||
high = mid - 1;
|
high = mid - 1;
|
||||||
else if (i < 0)
|
else if(i < 0)
|
||||||
low = ++mid;
|
low = ++mid;
|
||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(i) {
|
||||||
if (i) {
|
if(ofsrec_num >= MaxOffsetNumber) {
|
||||||
if (ofsrec_num >= MaxOffsetNumber) {
|
|
||||||
fprintf(stderr, "\245\252\245\325\245\273\245\303\245\310\241\246\245\306\241\274\245\326\245\353\244\254\244\242\244\325\244\354\244\336\244\267\244\277\n");
|
fprintf(stderr, "\245\252\245\325\245\273\245\303\245\310\241\246\245\306\241\274\245\326\245\353\244\254\244\242\244\325\244\354\244\336\244\267\244\277\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
orec = makeoffset(ptr, len, ofs);
|
orec = makeoffset(ptr, len, ofs);
|
||||||
|
|
||||||
|
for(i = ofsrec_num; i > mid; i--) ofsrec[i] = ofsrec[i - 1];
|
||||||
for (i = ofsrec_num ; i > mid ; i--) ofsrec[i] = ofsrec[i - 1];
|
|
||||||
ofsrec[mid] = orec;
|
ofsrec[mid] = orec;
|
||||||
ofsrec_num++;
|
ofsrec_num++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int isknjexist(unsigned char* knj, int len) {
|
||||||
int
|
|
||||||
isknjexist(unsigned char* knj, int len)
|
|
||||||
{
|
|
||||||
int low, high, mid;
|
int low, high, mid;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
if(ofsrec_num <= 0) return 0;
|
||||||
|
|
||||||
if (ofsrec_num <= 0) return 0;
|
low = 0;
|
||||||
|
high = ofsrec_num - 1;
|
||||||
|
while(low <= high) {
|
||||||
low = 0; high = ofsrec_num - 1;
|
|
||||||
while (low <= high) {
|
|
||||||
mid = (low + high) / 2;
|
mid = (low + high) / 2;
|
||||||
i = string_cmp(ofsrec[mid]->kptr, ofsrec[mid]->klen, knj, len);
|
i = string_cmp(ofsrec[mid]->kptr, ofsrec[mid]->klen, knj, len);
|
||||||
if (i > 0)
|
if(i > 0)
|
||||||
high = mid - 1;
|
high = mid - 1;
|
||||||
else if (i < 0)
|
else if(i < 0)
|
||||||
low = ++mid;
|
low = ++mid;
|
||||||
else
|
else
|
||||||
return ofsrec[mid] -> offset;
|
return ofsrec[mid]->offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void clear_ofsrec(void) {
|
||||||
void
|
|
||||||
clear_ofsrec(void)
|
|
||||||
{
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0 ; i < ofsrec_num ; i++) {
|
for(i = 0; i < ofsrec_num; i++) {
|
||||||
Free(ofsrec[i] -> kptr);
|
Free(ofsrec[i]->kptr);
|
||||||
Free(ofsrec[i]);
|
Free(ofsrec[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
ofsrec_num = 0;
|
ofsrec_num = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
OffsetRec*
|
OffsetRec*
|
||||||
real_ofsrec(unsigned char* ptr)
|
real_ofsrec(unsigned char* ptr) {
|
||||||
{
|
|
||||||
int ofs;
|
int ofs;
|
||||||
int i;
|
int i;
|
||||||
OffsetRec **p;
|
OffsetRec** p;
|
||||||
|
|
||||||
|
ofs = (*ptr++ & KnjAsshukuMask);
|
||||||
ofs = (*ptr++ & KnjAssyukuMask);
|
|
||||||
ofs <<= 8;
|
ofs <<= 8;
|
||||||
ofs += *ptr;
|
ofs += *ptr;
|
||||||
|
|
||||||
|
for(i = ofsrec_num, p = ofsrec; i-- > 0; p++)
|
||||||
for (i = ofsrec_num, p = ofsrec ; i-- > 0 ; p++)
|
if((*p)->offset == ofs)
|
||||||
if ((*p) -> offset == ofs)
|
|
||||||
return *p;
|
return *p;
|
||||||
|
|
||||||
|
|
||||||
fprintf(stderr, "real_ofsrec() \244\307\260\333\276\357\244\312\276\365\302\326 %x\n", ofs);
|
fprintf(stderr, "real_ofsrec() \244\307\260\333\276\357\244\312\276\365\302\326 %x\n", ofs);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
217
peepdic.c
217
peepdic.c
|
|
@ -27,39 +27,25 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: peepdic.c,v $
|
|
||||||
* $SonyRevision: 1.2 $
|
|
||||||
* $SonyDate: 1995/07/21 05:22:51 $
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include "sj_kcnv.h"
|
#include "sj_kcnv.h"
|
||||||
#include "sj_yomi.h"
|
#include "sj_yomi.h"
|
||||||
#include "kanakan.h"
|
#include "kanakan.h"
|
||||||
|
|
||||||
|
unsigned char* skiphblk();
|
||||||
|
|
||||||
unsigned char *skiphblk();
|
static void add_yomi(void);
|
||||||
|
static void cd2sjh_chr(unsigned char ch, unsigned char* dst);
|
||||||
|
static int next_douon(void);
|
||||||
|
static int next_hinshi(void);
|
||||||
|
static int next_kanji(void);
|
||||||
|
static int prev_douon(void);
|
||||||
|
static int prev_hinshi(void);
|
||||||
|
static int prev_kanji(void);
|
||||||
|
static void set_buf(unsigned char* buf);
|
||||||
|
static void set_idxyomi(void);
|
||||||
|
static void set_kanji(void);
|
||||||
|
|
||||||
static void add_yomi (void);
|
int getusr(unsigned char* buf) {
|
||||||
static void cd2sjh_chr (unsigned char ch, unsigned char *dst);
|
|
||||||
static int next_douon (void);
|
|
||||||
static int next_hinsi (void);
|
|
||||||
static int next_kanji (void);
|
|
||||||
static int prev_douon (void);
|
|
||||||
static int prev_hinsi (void);
|
|
||||||
static int prev_kanji (void);
|
|
||||||
static void set_buf (unsigned char *buf);
|
|
||||||
static void set_idxyomi (void);
|
|
||||||
static void set_kanji (void);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int
|
|
||||||
getusr (unsigned char *buf)
|
|
||||||
{
|
|
||||||
int nlen;
|
int nlen;
|
||||||
|
|
||||||
peepyomi[0] = peepknj[0] = peepgrm = 0;
|
peepyomi[0] = peepknj[0] = peepgrm = 0;
|
||||||
|
|
@ -69,7 +55,7 @@ getusr (unsigned char *buf)
|
||||||
|
|
||||||
peepdptr = segtop();
|
peepdptr = segtop();
|
||||||
|
|
||||||
if (segend(peepdptr)) return 0;
|
if(segend(peepdptr)) return 0;
|
||||||
|
|
||||||
add_yomi();
|
add_yomi();
|
||||||
|
|
||||||
|
|
@ -87,15 +73,11 @@ getusr (unsigned char *buf)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int nextusr(unsigned char* buf) {
|
||||||
|
|
||||||
int
|
|
||||||
nextusr (unsigned char *buf)
|
|
||||||
{
|
|
||||||
(*curdict->getdic)(curdict, peepidx);
|
(*curdict->getdic)(curdict, peepidx);
|
||||||
get_askknj();
|
get_askknj();
|
||||||
|
|
||||||
if (next_kanji()) {
|
if(next_kanji()) {
|
||||||
set_kanji();
|
set_kanji();
|
||||||
set_buf(buf);
|
set_buf(buf);
|
||||||
return -1;
|
return -1;
|
||||||
|
|
@ -104,15 +86,11 @@ nextusr (unsigned char *buf)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int prevusr(unsigned char* buf) {
|
||||||
|
|
||||||
int
|
|
||||||
prevusr (unsigned char *buf)
|
|
||||||
{
|
|
||||||
(*curdict->getdic)(curdict, peepidx);
|
(*curdict->getdic)(curdict, peepidx);
|
||||||
get_askknj();
|
get_askknj();
|
||||||
|
|
||||||
if (prev_kanji()) {
|
if(prev_kanji()) {
|
||||||
set_kanji();
|
set_kanji();
|
||||||
set_buf(buf);
|
set_buf(buf);
|
||||||
return -1;
|
return -1;
|
||||||
|
|
@ -121,11 +99,8 @@ prevusr (unsigned char *buf)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
set_kanji (void)
|
set_kanji(void) {
|
||||||
{
|
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
len = getkanji(peepyomi, getnlen(peepdptr) + getplen(peepdptr),
|
len = getkanji(peepyomi, getnlen(peepdptr) + getplen(peepdptr),
|
||||||
|
|
@ -133,20 +108,17 @@ set_kanji (void)
|
||||||
*(peepknj + len) = 0;
|
*(peepknj + len) = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
set_buf (unsigned char *buf)
|
set_buf(unsigned char* buf) {
|
||||||
{
|
unsigned char* p;
|
||||||
unsigned char *p;
|
|
||||||
int i, csize;
|
int i, csize;
|
||||||
|
|
||||||
for (p = peepyomi ; *p ; ) *buf++ = *p++;
|
for(p = peepyomi; *p;) *buf++ = *p++;
|
||||||
*buf++ = 0;
|
*buf++ = 0;
|
||||||
|
|
||||||
for (p = peepknj ; *p ; ) {
|
for(p = peepknj; *p;) {
|
||||||
csize = euc_codesize(*p);
|
csize = euc_codesize(*p);
|
||||||
for (i = 0; i < csize; i++ ) *buf++ = *p++;
|
for(i = 0; i < csize; i++) *buf++ = *p++;
|
||||||
}
|
}
|
||||||
*buf++ = 0;
|
*buf++ = 0;
|
||||||
|
|
||||||
|
|
@ -154,19 +126,16 @@ set_buf (unsigned char *buf)
|
||||||
*buf++ = 0;
|
*buf++ = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
prev_kanji (void)
|
prev_kanji(void) {
|
||||||
{
|
unsigned char* p1;
|
||||||
unsigned char *p1;
|
unsigned char* p2;
|
||||||
unsigned char *p2;
|
|
||||||
|
|
||||||
p1 = peephptr + 1;
|
p1 = peephptr + 1;
|
||||||
if (peepkptr <= p1) return prev_hinsi();
|
if(peepkptr <= p1) return prev_hinshi();
|
||||||
|
|
||||||
p2 = peepkptr;
|
p2 = peepkptr;
|
||||||
while (p1 < p2) {
|
while(p1 < p2) {
|
||||||
peepkptr = p1;
|
peepkptr = p1;
|
||||||
p1 = skipkstr(p1);
|
p1 = skipkstr(p1);
|
||||||
}
|
}
|
||||||
|
|
@ -174,22 +143,19 @@ prev_kanji (void)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
prev_hinsi (void)
|
prev_hinshi(void) {
|
||||||
{
|
unsigned char* p1;
|
||||||
unsigned char *p1;
|
unsigned char* p2;
|
||||||
unsigned char *p2;
|
|
||||||
int nlen;
|
int nlen;
|
||||||
|
|
||||||
nlen = getnlen(peepdptr);
|
nlen = getnlen(peepdptr);
|
||||||
p1 = peepdptr + DouonBlkSizeNumber + nlen;
|
p1 = peepdptr + DouonBlkSizeNumber + nlen;
|
||||||
|
|
||||||
if (peephptr <= p1) return prev_douon();
|
if(peephptr <= p1) return prev_douon();
|
||||||
|
|
||||||
p2 = peephptr;
|
p2 = peephptr;
|
||||||
while (p1 < p2) {
|
while(p1 < p2) {
|
||||||
peephptr = p1;
|
peephptr = p1;
|
||||||
p1 = skiphblk(p1);
|
p1 = skiphblk(p1);
|
||||||
}
|
}
|
||||||
|
|
@ -197,7 +163,7 @@ prev_hinsi (void)
|
||||||
peepgrm = *peephptr;
|
peepgrm = *peephptr;
|
||||||
|
|
||||||
p1 = peephptr + 1;
|
p1 = peephptr + 1;
|
||||||
while (*p1 != HinsiBlkTerm) {
|
while(*p1 != HinshiBlkTerm) {
|
||||||
peepkptr = p1;
|
peepkptr = p1;
|
||||||
p1 = skipkstr(p1);
|
p1 = skipkstr(p1);
|
||||||
}
|
}
|
||||||
|
|
@ -205,17 +171,14 @@ prev_hinsi (void)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
prev_douon (void)
|
prev_douon(void) {
|
||||||
{
|
unsigned char* p1;
|
||||||
unsigned char *p1;
|
unsigned char* p2;
|
||||||
unsigned char *p2;
|
|
||||||
int nlen;
|
int nlen;
|
||||||
|
|
||||||
if (peepdptr <= segtop()) {
|
if(peepdptr <= segtop()) {
|
||||||
if (peepidx <= DicSegBase) return 0;
|
if(peepidx <= DicSegBase) return 0;
|
||||||
|
|
||||||
(*curdict->getdic)(curdict, --peepidx);
|
(*curdict->getdic)(curdict, --peepidx);
|
||||||
get_askknj();
|
get_askknj();
|
||||||
|
|
@ -227,9 +190,8 @@ prev_douon (void)
|
||||||
peepdptr = p1;
|
peepdptr = p1;
|
||||||
add_yomi();
|
add_yomi();
|
||||||
p1 = getntag(p1);
|
p1 = getntag(p1);
|
||||||
} while (!segend(p1));
|
} while(!segend(p1));
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
set_idxyomi();
|
set_idxyomi();
|
||||||
|
|
||||||
p1 = segtop();
|
p1 = segtop();
|
||||||
|
|
@ -238,7 +200,7 @@ prev_douon (void)
|
||||||
peepdptr = p1;
|
peepdptr = p1;
|
||||||
add_yomi();
|
add_yomi();
|
||||||
p1 = getntag(p1);
|
p1 = getntag(p1);
|
||||||
} while (p1 < p2);
|
} while(p1 < p2);
|
||||||
}
|
}
|
||||||
|
|
||||||
nlen = getnlen(peepdptr);
|
nlen = getnlen(peepdptr);
|
||||||
|
|
@ -248,7 +210,7 @@ prev_douon (void)
|
||||||
do {
|
do {
|
||||||
peephptr = p1;
|
peephptr = p1;
|
||||||
p1 = skiphblk(p1);
|
p1 = skiphblk(p1);
|
||||||
} while (p1 < p2);
|
} while(p1 < p2);
|
||||||
|
|
||||||
peepgrm = *peephptr;
|
peepgrm = *peephptr;
|
||||||
|
|
||||||
|
|
@ -256,61 +218,50 @@ prev_douon (void)
|
||||||
do {
|
do {
|
||||||
peepkptr = p1;
|
peepkptr = p1;
|
||||||
p1 = skipkstr(p1);
|
p1 = skipkstr(p1);
|
||||||
} while (*p1 != HinsiBlkTerm);
|
} while(*p1 != HinshiBlkTerm);
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
next_kanji (void)
|
next_kanji(void) {
|
||||||
{
|
unsigned char* p1;
|
||||||
unsigned char *p1;
|
|
||||||
|
|
||||||
p1 = skipkstr(peepkptr);
|
p1 = skipkstr(peepkptr);
|
||||||
if (*p1 == HinsiBlkTerm) return next_hinsi();
|
if(*p1 == HinshiBlkTerm) return next_hinshi();
|
||||||
peepkptr = p1;
|
peepkptr = p1;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
next_hinsi (void)
|
next_hinshi(void) {
|
||||||
{
|
unsigned char* p1;
|
||||||
unsigned char *p1;
|
|
||||||
|
|
||||||
p1 = skiphblk(peephptr);
|
p1 = skiphblk(peephptr);
|
||||||
if (p1 >= getntag(peepdptr)) return next_douon();
|
if(p1 >= getntag(peepdptr)) return next_douon();
|
||||||
peephptr = p1;
|
peephptr = p1;
|
||||||
peepgrm = *p1;
|
peepgrm = *p1;
|
||||||
peepkptr = p1 + 1;
|
peepkptr = p1 + 1;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
next_douon (void)
|
next_douon(void) {
|
||||||
{
|
unsigned char* p1;
|
||||||
unsigned char *p1;
|
|
||||||
int nlen;
|
int nlen;
|
||||||
|
|
||||||
p1 = getntag(peepdptr);
|
p1 = getntag(peepdptr);
|
||||||
|
|
||||||
if (segend(p1)) {
|
if(segend(p1)) {
|
||||||
if (peepidx + 1 < curdict->segunit) {
|
if(peepidx + 1 < curdict->segunit) {
|
||||||
(*curdict->getdic)(curdict, ++peepidx);
|
(*curdict->getdic)(curdict, ++peepidx);
|
||||||
get_askknj();
|
get_askknj();
|
||||||
peepdptr = segtop();
|
peepdptr = segtop();
|
||||||
|
|
||||||
set_idxyomi();
|
set_idxyomi();
|
||||||
}
|
} else
|
||||||
else
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
peepdptr = p1;
|
peepdptr = p1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -326,16 +277,13 @@ next_douon (void)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
set_idxyomi (void)
|
set_idxyomi(void) {
|
||||||
{
|
|
||||||
unsigned char *p1, *p2;
|
unsigned char *p1, *p2;
|
||||||
|
|
||||||
if ((p2 = get_idxptr(peepidx)) != NULL) {
|
if((p2 = get_idxptr(peepidx)) != NULL) {
|
||||||
p1 = peepyomi;
|
p1 = peepyomi;
|
||||||
while (*p2) {
|
while(*p2) {
|
||||||
cd2sjh_chr(*p2++, p1);
|
cd2sjh_chr(*p2++, p1);
|
||||||
p1 += 2;
|
p1 += 2;
|
||||||
}
|
}
|
||||||
|
|
@ -343,11 +291,8 @@ set_idxyomi (void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
add_yomi (void)
|
add_yomi(void) {
|
||||||
{
|
|
||||||
int nlen;
|
int nlen;
|
||||||
unsigned char *p1, *p2;
|
unsigned char *p1, *p2;
|
||||||
|
|
||||||
|
|
@ -355,7 +300,7 @@ add_yomi (void)
|
||||||
p1 = peepyomi + getplen(peepdptr) * 2;
|
p1 = peepyomi + getplen(peepdptr) * 2;
|
||||||
p2 = peepdptr + DouonBlkSizeNumber;
|
p2 = peepdptr + DouonBlkSizeNumber;
|
||||||
|
|
||||||
while (nlen--) {
|
while(nlen--) {
|
||||||
cd2sjh_chr(*p2++, p1);
|
cd2sjh_chr(*p2++, p1);
|
||||||
p1 += 2;
|
p1 += 2;
|
||||||
}
|
}
|
||||||
|
|
@ -363,50 +308,36 @@ add_yomi (void)
|
||||||
*p1 = 0;
|
*p1 = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
cd2sjh_chr (unsigned char ch, unsigned char *dst)
|
cd2sjh_chr(unsigned char ch, unsigned char* dst) {
|
||||||
{
|
if(ch == _TYOUON) {
|
||||||
if (ch == _TYOUON) {
|
|
||||||
*dst++ = 0xa1;
|
*dst++ = 0xa1;
|
||||||
*dst++ = 0xbc;
|
*dst++ = 0xbc;
|
||||||
}
|
} else if(ch == _IGETA) {
|
||||||
else if (ch == _IGETA) {
|
|
||||||
*dst++ = 0xa1;
|
*dst++ = 0xa1;
|
||||||
*dst++ = 0xf4;
|
*dst++ = 0xf4;
|
||||||
}
|
} else if(ch == _ATTO) {
|
||||||
else if (ch == _ATTO) {
|
|
||||||
*dst++ = 0xa1;
|
*dst++ = 0xa1;
|
||||||
*dst++ = 0xf7;
|
*dst++ = 0xf7;
|
||||||
}
|
} else if(ch == _YUUBIN) {
|
||||||
else if (ch == _YUUBIN) {
|
|
||||||
*dst++ = 0xa2;
|
*dst++ = 0xa2;
|
||||||
*dst++ = 0xa9;
|
*dst++ = 0xa9;
|
||||||
}
|
} else if(ch < N_0) {
|
||||||
else if (ch < N_0) {
|
} else if(ch <= N_9) {
|
||||||
}
|
|
||||||
else if (ch <= N_9) {
|
|
||||||
*dst++ = 0xa3;
|
*dst++ = 0xa3;
|
||||||
*dst++ = ch + 0xa0;
|
*dst++ = ch + 0xa0;
|
||||||
}
|
} else if(ch <= A_Z) {
|
||||||
else if (ch <= A_Z) {
|
|
||||||
*dst++ = 0xa3;
|
*dst++ = 0xa3;
|
||||||
*dst++ = ch + 0xa7;
|
*dst++ = ch + 0xa7;
|
||||||
}
|
} else if(ch <= A_z) {
|
||||||
else if (ch <= A_z) {
|
|
||||||
*dst++ = 0xa3;
|
*dst++ = 0xa3;
|
||||||
*dst++ = ch + 0xad;
|
*dst++ = ch + 0xad;
|
||||||
}
|
} else if(ch <= _NN) {
|
||||||
else if (ch <= _NN) {
|
|
||||||
*dst++ = 0xa4;
|
*dst++ = 0xa4;
|
||||||
*dst++ = ch + 0x53;
|
*dst++ = ch + 0x53;
|
||||||
}
|
} else if(ch <= _XKE) {
|
||||||
else if (ch <= _XKE) {
|
|
||||||
*dst++ = 0xa5;
|
*dst++ = 0xa5;
|
||||||
*dst++ = ch + 0x53;
|
*dst++ = ch + 0x53;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
58
ph2knj.c
58
ph2knj.c
|
|
@ -27,39 +27,28 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: ph2knj.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:02:09 $
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "sj_kcnv.h"
|
#include "sj_kcnv.h"
|
||||||
#include "sj_yomi.h"
|
#include "sj_yomi.h"
|
||||||
#include "kanakan.h"
|
#include "kanakan.h"
|
||||||
|
|
||||||
|
|
||||||
int sj2cd_chr();
|
int sj2cd_chr();
|
||||||
void mk2claus();
|
void mk2claus();
|
||||||
void freework();
|
void freework();
|
||||||
void selclrec();
|
void selclrec();
|
||||||
CLREC *free_clst();
|
CLREC* free_clst();
|
||||||
JREC *free_jlst();
|
JREC* free_jlst();
|
||||||
|
|
||||||
|
int ph2knj(unsigned char* zyomi, unsigned char* kanji, int knjlen) {
|
||||||
|
unsigned char* ptr;
|
||||||
int ph2knj
|
unsigned char* dst;
|
||||||
(unsigned char *zyomi, unsigned char *kanji, int knjlen)
|
|
||||||
{
|
|
||||||
unsigned char *ptr;
|
|
||||||
unsigned char *dst;
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (ptr = zyomi, dst = hyomi, i = 0 ; *ptr ; ) {
|
for(ptr = zyomi, dst = hyomi, i = 0; *ptr;) {
|
||||||
if (i++ >= MaxPhInputLen) { *kanji = 0; return 0; }
|
if(i++ >= MaxPhInputLen) {
|
||||||
|
*kanji = 0;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
ptr += sj2cd_chr(ptr, dst++);
|
ptr += sj2cd_chr(ptr, dst++);
|
||||||
}
|
}
|
||||||
*dst = 0;
|
*dst = 0;
|
||||||
|
|
@ -78,11 +67,11 @@ int ph2knj
|
||||||
kanjipos = kanji;
|
kanjipos = kanji;
|
||||||
kanjilen = knjlen;
|
kanjilen = knjlen;
|
||||||
|
|
||||||
while (cnvlen && kanjilen) {
|
while(cnvlen && kanjilen) {
|
||||||
if (!clt1st) {
|
if(!clt1st) {
|
||||||
mkjiritu(DO_CLSTUDY | DO_IKKATU);
|
mkjiritsu(DO_CLSTUDY | DO_IKKATU);
|
||||||
mkbunsetu();
|
mkbunsetsu();
|
||||||
if (!maxclptr) wakachi();
|
if(!maxclptr) wakachi();
|
||||||
jrt1st = maxjptr;
|
jrt1st = maxjptr;
|
||||||
clt1st = maxclptr;
|
clt1st = maxclptr;
|
||||||
}
|
}
|
||||||
|
|
@ -91,14 +80,14 @@ int ph2knj
|
||||||
|
|
||||||
selclrec();
|
selclrec();
|
||||||
|
|
||||||
prevclgrm = selcl -> jnode -> hinsi;
|
prevclgrm = selcl->jnode->hinshi;
|
||||||
prevclrow = selcl -> right;
|
prevclrow = selcl->right;
|
||||||
|
|
||||||
clt1st = free_clst(clt1st, (int)selcl -> cllen);
|
clt1st = free_clst(clt1st, (int)selcl->cllen);
|
||||||
jrt1st = free_jlst(jrt1st);
|
jrt1st = free_jlst(jrt1st);
|
||||||
|
|
||||||
cnvstart += selcl -> cllen;
|
cnvstart += selcl->cllen;
|
||||||
cnvlen -= selcl -> cllen;
|
cnvlen -= selcl->cllen;
|
||||||
|
|
||||||
cvtphknj();
|
cvtphknj();
|
||||||
|
|
||||||
|
|
@ -106,13 +95,12 @@ int ph2knj
|
||||||
jrt1st = jrt2nd;
|
jrt1st = jrt2nd;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!kanjilen) {
|
if(!kanjilen) {
|
||||||
free_clall(clt1st);
|
free_clall(clt1st);
|
||||||
free_jall (jrt1st);
|
free_jall(jrt1st);
|
||||||
}
|
}
|
||||||
|
|
||||||
*kanjipos = 0;
|
*kanjipos = 0;
|
||||||
|
|
||||||
return(inputyomi - zyomi);
|
return (inputyomi - zyomi);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
65
ph_khtbl.c
65
ph_khtbl.c
|
|
@ -27,69 +27,52 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: ph_khtbl.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:02:09 $
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include "sj_kcnv.h"
|
#include "sj_kcnv.h"
|
||||||
#include "kanakan.h"
|
#include "kanakan.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
ph_setsty (CLREC *clrec)
|
ph_setsty(CLREC* clrec) {
|
||||||
{
|
JREC* jrec;
|
||||||
JREC *jrec;
|
|
||||||
TypeDicOfs offset;
|
TypeDicOfs offset;
|
||||||
unsigned char *ptr;
|
unsigned char* ptr;
|
||||||
STDYIN *sptr;
|
STDYIN* sptr;
|
||||||
|
|
||||||
if (!seldict((jrec = clrec -> jnode) -> dicid)) {
|
if(!seldict((jrec = clrec->jnode)->dicid)) {
|
||||||
if (!khcount)
|
if(!khcount)
|
||||||
ph_setkouho(clrec, (TypeDicOfs)1, (STDYIN *)NULL);
|
ph_setkouho(clrec, (TypeDicOfs)1, (STDYIN*)NULL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
(*curdict->getdic)(curdict, jrec -> jseg);
|
(*curdict->getdic)(curdict, jrec->jseg);
|
||||||
ptr = dicbuf + jrec->jofsst + 1;
|
ptr = dicbuf + jrec->jofsst + 1;
|
||||||
|
|
||||||
for ( ; *ptr != HinsiBlkTerm ; ptr = skipkstr(ptr)) {
|
for(; *ptr != HinshiBlkTerm; ptr = skipkstr(ptr)) {
|
||||||
offset = ptr - dicbuf;
|
offset = ptr - dicbuf;
|
||||||
sptr = srchstdy(jrec -> jseg, offset, jrec -> dicid);
|
sptr = srchstdy(jrec->jseg, offset, jrec->dicid);
|
||||||
|
|
||||||
if (!khcount){
|
if(!khcount) {
|
||||||
ph_setkouho(clrec, offset, sptr);
|
ph_setkouho(clrec, offset, sptr);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!sptr) continue;
|
if(!sptr) continue;
|
||||||
|
|
||||||
if (sptr -> styno < kouhotbl[0].styno) {
|
if(sptr->styno < kouhotbl[0].styno) {
|
||||||
ph_setkouho(clrec, offset, sptr);
|
ph_setkouho(clrec, offset, sptr);
|
||||||
}
|
} else if(sptr->styno == kouhotbl->styno) {
|
||||||
else if (sptr -> styno == kouhotbl -> styno) {
|
if(!(kouhotbl[0].ka_fg &&
|
||||||
if (!(kouhotbl[0].ka_fg &&
|
sptr->ka_kj == kouhotbl[0].ka_kj)) {
|
||||||
sptr -> ka_kj == kouhotbl[0].ka_kj)) {
|
|
||||||
ph_setkouho(clrec, offset, sptr);
|
ph_setkouho(clrec, offset, sptr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int ph_khtbl(CLREC* clrec) {
|
||||||
|
JREC* jrec;
|
||||||
int
|
|
||||||
ph_khtbl (CLREC *clrec)
|
|
||||||
{
|
|
||||||
JREC *jrec;
|
|
||||||
int flg = FALSE;
|
int flg = FALSE;
|
||||||
|
|
||||||
switch((jrec = clrec -> jnode) -> class) {
|
switch((jrec = clrec->jnode)->class) {
|
||||||
case C_DICT:
|
case C_DICT:
|
||||||
ph_setsty(clrec);
|
ph_setsty(clrec);
|
||||||
break;
|
break;
|
||||||
|
|
@ -104,19 +87,17 @@ ph_khtbl (CLREC *clrec)
|
||||||
case C_N_KAZULONG:
|
case C_N_KAZULONG:
|
||||||
case C_N_KAZULCMA:
|
case C_N_KAZULCMA:
|
||||||
case C_N_SUUJILONG:
|
case C_N_SUUJILONG:
|
||||||
if (jrec -> jofsst) {
|
if(jrec->jofsst) {
|
||||||
ph_setsty(clrec);
|
ph_setsty(clrec);
|
||||||
break;
|
break;
|
||||||
}
|
} else
|
||||||
else
|
|
||||||
flg = TRUE;
|
flg = TRUE;
|
||||||
case C_BUNSETU:
|
case C_BUNSETSU:
|
||||||
case C_MINASI:
|
case C_MINASI:
|
||||||
case C_WAKACHI:
|
case C_WAKACHI:
|
||||||
if (!khcount) ph_setkouho(clrec, (TypeDicOfs)0, (STDYIN *)0);
|
if(!khcount) ph_setkouho(clrec, (TypeDicOfs)0, (STDYIN*)0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return flg;
|
return flg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
191
priority.c
191
priority.c
|
|
@ -27,25 +27,17 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: priority.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:02:10 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include "sj_kcnv.h"
|
#include "sj_kcnv.h"
|
||||||
#include "sj_hinsi.h"
|
#include "sj_hinshi.h"
|
||||||
#include "sj_right.h"
|
#include "sj_right.h"
|
||||||
#include "sj_prty.h"
|
#include "sj_prty.h"
|
||||||
|
|
||||||
static int isfukusi(hinsi)
|
static int isfukusi(hinshi)
|
||||||
TypeGram hinsi;
|
TypeGram hinshi;
|
||||||
{
|
{
|
||||||
if (FUKUSI_1 <= hinsi && hinsi <= FUKUSI_7)
|
if(FUKUSHI_1 <= hinshi && hinshi <= FUKUSHI_7)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
else if (hinsi == MEISI_11 || hinsi == D_MEISI_6)
|
else if(hinshi == MEISHI_11 || hinshi == D_MEISHI_6)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
@ -53,110 +45,106 @@ TypeGram hinsi;
|
||||||
static int istaigen(right)
|
static int istaigen(right)
|
||||||
TypeCnct right;
|
TypeCnct right;
|
||||||
{
|
{
|
||||||
if (right == R_MEISI || right == R_DMEISI || right == R_SMEISI1)
|
if(right == R_MEISHI || right == R_DMEISHI || right == R_SMEISHI1)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
if (right == R_WO_MEISI || right == R_DAIMEISI || right == R_JOSUUSI)
|
if(right == R_WO_MEISHI || right == R_DAIMEISHI || right == R_JOSUUSHI)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
if (right == R_RENYOU1 || (R_RENYOU3 <= right && right <= R_SA5RENYOU4))
|
if(right == R_RENYOU1 || (R_RENYOU3 <= right && right <= R_SA5RENYOU4))
|
||||||
return TRUE;
|
return TRUE;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int taicnt(hinsi1, hinsi2)
|
static int taicnt(hinshi1, hinshi2)
|
||||||
TypeGram hinsi1;
|
TypeGram hinshi1;
|
||||||
TypeGram hinsi2;
|
TypeGram hinshi2;
|
||||||
{
|
{
|
||||||
if (hinsi2 == TANKANJI) return 0;
|
if(hinshi2 == TANKANJI) return 0;
|
||||||
|
|
||||||
if (MYOUJI <= hinsi1 && hinsi1 <= KEN_KU) {
|
if(MYOUJI <= hinshi1 && hinshi1 <= KEN_KU) {
|
||||||
if (MEISI_1 <= hinsi2 && hinsi2 <= SETUBI_9)
|
if(MEISHI_1 <= hinshi2 && hinshi2 <= SETSUBI_9)
|
||||||
return Taipri(hinsi1 - MYOUJI, hinsi2);
|
return Taipri(hinshi1 - MYOUJI, hinshi2);
|
||||||
else
|
else
|
||||||
return 3;
|
return 3;
|
||||||
}
|
} else if((MEISHI_1 <= hinshi1 && hinshi1 <= MEISHI_11) ||
|
||||||
else if ((MEISI_1 <= hinsi1 && hinsi1 <= MEISI_11) ||
|
hinshi1 == D_MEISHI_2) {
|
||||||
hinsi1 == D_MEISI_2) {
|
if(MEISHI_1 <= hinshi2 && hinshi2 <= SETSUBI_9) {
|
||||||
if (MEISI_1 <= hinsi2 && hinsi2 <= SETUBI_9) {
|
return Taipri(5, hinshi2);
|
||||||
return Taipri(5, hinsi2);
|
} else
|
||||||
}
|
|
||||||
else
|
|
||||||
return 5;
|
return 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
else {
|
else {
|
||||||
if (MEISI_1 <= hinsi2 && hinsi2 <= SETUBI_9)
|
if(MEISHI_1 <= hinshi2 && hinshi2 <= SETSUBI_9)
|
||||||
return Taipri(6, hinsi2);
|
return Taipri(6, hinshi2);
|
||||||
else
|
else
|
||||||
return 4;
|
return 4;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sttcnt(hinsi1, hinsi2)
|
static int sttcnt(hinshi1, hinshi2)
|
||||||
TypeGram hinsi1;
|
TypeGram hinshi1;
|
||||||
TypeGram hinsi2;
|
TypeGram hinshi2;
|
||||||
{
|
{
|
||||||
if (SETTOU_1 <= hinsi1 && hinsi1 <= SETTOU_5) {
|
if(SETTOU_1 <= hinshi1 && hinshi1 <= SETTOU_5) {
|
||||||
if (MEISI_1 <= hinsi2 && hinsi2 <= SUUSI)
|
if(MEISHI_1 <= hinshi2 && hinshi2 <= SUUSHI)
|
||||||
return Sttpri(hinsi1 - SETTOU_1, hinsi2);
|
return Sttpri(hinshi1 - SETTOU_1, hinshi2);
|
||||||
}
|
}
|
||||||
return 4;
|
return 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
int priority(clrec)
|
int priority(clrec)
|
||||||
CLREC *clrec;
|
CLREC* clrec;
|
||||||
{
|
{
|
||||||
int prty;
|
int prty;
|
||||||
CLREC *cl2rec;
|
CLREC* cl2rec;
|
||||||
int keeplen;
|
int keeplen;
|
||||||
TypeGram hinsi1;
|
TypeGram hinshi1;
|
||||||
int i;
|
int i;
|
||||||
int prev = 0;
|
int prev = 0;
|
||||||
|
|
||||||
if (clrec->cllen == clrec->cl2len) return 0xff;
|
if(clrec->cllen == clrec->cl2len) return 0xff;
|
||||||
|
|
||||||
if (clrec->jnode->class == C_BUNSETU) {
|
if(clrec->jnode->class == C_BUNSETSU) {
|
||||||
prty = Termtbl[clrec->right] & GETPRI;
|
prty = Termtbl[clrec->right] & GETPRI;
|
||||||
return(0xf0 + prty);
|
return (0xf0 + prty);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
hinshi1 = clrec->jnode->hinshi;
|
||||||
|
|
||||||
hinsi1 = clrec->jnode->hinsi;
|
if(prevclrow == R_WO || prevclrow == R_WO_S ||
|
||||||
|
|
||||||
if (prevclrow == R_WO || prevclrow == R_WO_S ||
|
|
||||||
prevclrow == R_NI1 || prevclrow == R_DRENYOU2) {
|
prevclrow == R_NI1 || prevclrow == R_DRENYOU2) {
|
||||||
if (clrec -> kubun == K_DOUSHI || isfukusi(hinsi1))
|
if(clrec->kubun == K_DOUSHI || isfukusi(hinshi1))
|
||||||
prev = 5;
|
prev = 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (istaigen(prevclrow)) {
|
else if(istaigen(prevclrow)) {
|
||||||
|
|
||||||
if (clrec -> kubun == K_TAIGEN)
|
if(clrec->kubun == K_TAIGEN)
|
||||||
prev = taicnt(prevclgrm, hinsi1);
|
prev = taicnt(prevclgrm, hinshi1);
|
||||||
|
|
||||||
else
|
else
|
||||||
prev = 0;
|
prev = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (prevclrow == R_SETTOU) {
|
else if(prevclrow == R_SETTOU) {
|
||||||
if (clrec -> jnode -> sttofs)
|
if(clrec->jnode->sttofs)
|
||||||
prty = 2;
|
prty = 2;
|
||||||
else
|
else
|
||||||
prty = sttcnt(prevclgrm, hinsi1);
|
prty = sttcnt(prevclgrm, hinshi1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(hinshi1 >= SETSUBI_1 && hinshi1 <= SETSUBI_9 && (!prev)) {
|
||||||
if (hinsi1 >= SETUBI_1 && hinsi1 <= SETUBI_9 && (!prev)) {
|
|
||||||
prty = 1;
|
prty = 1;
|
||||||
goto finish;
|
goto finish;
|
||||||
}
|
}
|
||||||
|
|
||||||
cl2rec = maxclptr;
|
cl2rec = maxclptr;
|
||||||
keeplen = cl2rec -> cllen;
|
keeplen = cl2rec->cllen;
|
||||||
|
|
||||||
if (clrec->right == R_WO || clrec->right == R_WO_S ||
|
if(clrec->right == R_WO || clrec->right == R_WO_S ||
|
||||||
clrec->right == R_NI1 || clrec->right == R_DRENYOU2) {
|
clrec->right == R_NI1 || clrec->right == R_DRENYOU2) {
|
||||||
while (cl2rec && (int)cl2rec->cllen == keeplen) {
|
while(cl2rec && (int)cl2rec->cllen == keeplen) {
|
||||||
if (cl2rec->kubun == K_DOUSHI) {
|
if(cl2rec->kubun == K_DOUSHI) {
|
||||||
prty = 14;
|
prty = 14;
|
||||||
goto finish;
|
goto finish;
|
||||||
}
|
}
|
||||||
|
|
@ -164,42 +152,40 @@ CLREC *clrec;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (clrec->right == R_SETTOU) {
|
else if(clrec->right == R_SETTOU) {
|
||||||
prty = 0;
|
prty = 0;
|
||||||
while (cl2rec && (int)cl2rec -> cllen == keeplen) {
|
while(cl2rec && (int)cl2rec->cllen == keeplen) {
|
||||||
if (cl2rec -> jnode -> sttofs )
|
if(cl2rec->jnode->sttofs)
|
||||||
i = 2;
|
i = 2;
|
||||||
else
|
else
|
||||||
i = sttcnt(hinsi1, cl2rec->jnode->hinsi);
|
i = sttcnt(hinshi1, cl2rec->jnode->hinshi);
|
||||||
|
|
||||||
if (i > prty)
|
if(i > prty)
|
||||||
prty = i;
|
prty = i;
|
||||||
cl2rec = cl2rec -> clsort;
|
cl2rec = cl2rec->clsort;
|
||||||
}
|
}
|
||||||
goto finish;
|
goto finish;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (istaigen(clrec->right)) {
|
else if(istaigen(clrec->right)) {
|
||||||
prty = 0;
|
prty = 0;
|
||||||
while (cl2rec && (int)cl2rec->cllen == keeplen) {
|
while(cl2rec && (int)cl2rec->cllen == keeplen) {
|
||||||
i = taicnt(hinsi1, cl2rec->jnode->hinsi);
|
i = taicnt(hinshi1, cl2rec->jnode->hinshi);
|
||||||
if (i > prty)
|
if(i > prty)
|
||||||
prty = i;
|
prty = i;
|
||||||
cl2rec = cl2rec->clsort;
|
cl2rec = cl2rec->clsort;
|
||||||
}
|
}
|
||||||
if (clrec->jnode->stbofs) {
|
if(clrec->jnode->stbofs) {
|
||||||
prty -= 3;
|
prty -= 3;
|
||||||
}
|
}
|
||||||
goto finish;
|
goto finish;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
prty = Termtbl[clrec->right];
|
prty = Termtbl[clrec->right];
|
||||||
|
|
||||||
|
if(prty & RENTAI) {
|
||||||
if (prty & RENTAI) {
|
while(cl2rec && (int)cl2rec->cllen == keeplen) {
|
||||||
while (cl2rec && (int)cl2rec->cllen == keeplen) {
|
if(cl2rec->kubun == K_TAIGEN) {
|
||||||
if (cl2rec -> kubun == K_TAIGEN) {
|
|
||||||
prty &= GETPRI;
|
prty &= GETPRI;
|
||||||
goto finish;
|
goto finish;
|
||||||
}
|
}
|
||||||
|
|
@ -211,15 +197,14 @@ CLREC *clrec;
|
||||||
else {
|
else {
|
||||||
prty &= GETPRI;
|
prty &= GETPRI;
|
||||||
|
|
||||||
if (prty == P_RENYOU_J || prty == P_RENYOU_M ) {
|
if(prty == P_RENYOU_J || prty == P_RENYOU_M) {
|
||||||
while (clrec->cllen != 1 && cl2rec &&
|
while(clrec->cllen != 1 && cl2rec &&
|
||||||
(int)cl2rec->cllen == keeplen ) {
|
(int)cl2rec->cllen == keeplen) {
|
||||||
if (cl2rec->kubun == K_DOUSHI) {
|
if(cl2rec->kubun == K_DOUSHI) {
|
||||||
prty = 6;
|
prty = 6;
|
||||||
goto finish;
|
goto finish;
|
||||||
}
|
} else if(cl2rec->jnode->hinshi == SETSUBI_1 ||
|
||||||
else if (cl2rec->jnode->hinsi == SETUBI_1 ||
|
cl2rec->jnode->hinshi == SETSUBI_2) {
|
||||||
cl2rec->jnode->hinsi == SETUBI_2) {
|
|
||||||
prty = 7;
|
prty = 7;
|
||||||
goto finish;
|
goto finish;
|
||||||
}
|
}
|
||||||
|
|
@ -229,56 +214,53 @@ CLREC *clrec;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
finish:
|
finish:
|
||||||
cl2rec = maxclptr;
|
cl2rec = maxclptr;
|
||||||
|
|
||||||
if (hinsi1 == SUUSI) prty -= 4;
|
if(hinshi1 == SUUSHI) prty -= 4;
|
||||||
|
|
||||||
if (cl2rec -> jnode -> hinsi == SUUSI) prty -= 3;
|
if(cl2rec->jnode->hinshi == SUUSHI) prty -= 3;
|
||||||
|
|
||||||
if (cl2rec->jnode->class == C_DICT &&
|
if(cl2rec->jnode->class == C_DICT &&
|
||||||
cl2rec->jnode->jlen == 1 && (cl2rec->kubun != K_DOUSHI)) {
|
cl2rec->jnode->jlen == 1 && (cl2rec->kubun != K_DOUSHI)) {
|
||||||
prty -= 2;
|
prty -= 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((!istaigen(clrec->right)) && (cl2rec->jnode->hinsi == SETUBI_2)) {
|
if((!istaigen(clrec->right)) && (cl2rec->jnode->hinshi == SETSUBI_2)) {
|
||||||
prty -= 4;
|
prty -= 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
prty += 20 - clrec->cllen + clrec->jnode->jlen + clrec->gobiln;
|
prty += 20 - clrec->cllen + clrec->jnode->jlen + clrec->gobiln;
|
||||||
return(prty + prev);
|
return (prty + prev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void pritiny() {
|
||||||
void pritiny()
|
CLREC* clrec;
|
||||||
{
|
|
||||||
CLREC *clrec;
|
|
||||||
int keeplen;
|
int keeplen;
|
||||||
int i, prty = 0;
|
int i, prty = 0;
|
||||||
|
|
||||||
clrec = selcl;
|
clrec = selcl;
|
||||||
keeplen = clrec -> cllen;
|
keeplen = clrec->cllen;
|
||||||
|
|
||||||
if (istaigen(prevclrow)) {
|
if(istaigen(prevclrow)) {
|
||||||
while (clrec && (int)clrec -> cllen == keeplen) {
|
while(clrec && (int)clrec->cllen == keeplen) {
|
||||||
i = taicnt(prevclgrm, clrec -> jnode -> hinsi);
|
i = taicnt(prevclgrm, clrec->jnode->hinshi);
|
||||||
if (i > prty) {
|
if(i > prty) {
|
||||||
selcl = clrec;
|
selcl = clrec;
|
||||||
prty = i;
|
prty = i;
|
||||||
}
|
}
|
||||||
clrec = clrec -> clsort;
|
clrec = clrec->clsort;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
else {
|
else {
|
||||||
|
|
||||||
while (clrec && (int)clrec -> cllen == keeplen) {
|
while(clrec && (int)clrec->cllen == keeplen) {
|
||||||
if (clrec -> jnode -> hinsi >= MYOUJI &&
|
if(clrec->jnode->hinshi >= MYOUJI &&
|
||||||
clrec -> jnode -> hinsi <= KEN_KU)
|
clrec->jnode->hinshi <= KEN_KU)
|
||||||
clrec = clrec -> clsort;
|
clrec = clrec->clsort;
|
||||||
|
|
||||||
else if (clrec -> jnode -> hinsi == TANKANJI)
|
else if(clrec->jnode->hinshi == TANKANJI)
|
||||||
return;
|
return;
|
||||||
else {
|
else {
|
||||||
selcl = clrec;
|
selcl = clrec;
|
||||||
|
|
@ -287,4 +269,3 @@ void pritiny()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
208
prtytbl.c
208
prtytbl.c
|
|
@ -27,76 +27,214 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: prtytbl.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:02:11 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include "sj_rename.h"
|
#include "sj_rename.h"
|
||||||
#include "sj_typedef.h"
|
#include "sj_typedef.h"
|
||||||
|
|
||||||
unsigned char taipri[7][45] = {
|
unsigned char taipri[7][45] = {
|
||||||
|
|
||||||
{ 0, 4, 4, 4, 4, 4, 4, 4, 4, 4,
|
{0, 4, 4, 4, 4, 4, 4, 4, 4, 4,
|
||||||
4, 4, 3, 3, 3, 3, 3, 3, 0, 0,
|
4, 4, 3, 3, 3, 3, 3, 3, 0, 0,
|
||||||
0, 3, 20, 4, 3, 3, 4, 4, 4, 4,
|
0, 3, 20, 4, 3, 3, 4, 4, 4, 4,
|
||||||
4, 4, 4, 20, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4},
|
4, 4, 4, 20, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4},
|
||||||
|
|
||||||
{ 0, 4, 4, 4, 4, 4, 4, 4, 4, 4,
|
{0, 4, 4, 4, 4, 4, 4, 4, 4, 4,
|
||||||
4, 4, 3, 3, 3, 3, 3, 3, 0, 0,
|
4, 4, 3, 3, 3, 3, 3, 3, 0, 0,
|
||||||
0, 4, 4, 4, 4, 4, 4, 4, 4, 4,
|
0, 4, 4, 4, 4, 4, 4, 4, 4, 4,
|
||||||
4, 4, 4, 20, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4},
|
4, 4, 4, 20, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4},
|
||||||
|
|
||||||
{ 0, 4, 4, 4, 4, 4, 4, 4, 4, 4,
|
{0, 4, 4, 4, 4, 4, 4, 4, 4, 4,
|
||||||
4, 4, 3, 3, 3, 3, 3, 3, 0, 0,
|
4, 4, 3, 3, 3, 3, 3, 3, 0, 0,
|
||||||
0, 4, 4, 4, 4, 4, 4, 4, 4, 4,
|
0, 4, 4, 4, 4, 4, 4, 4, 4, 4,
|
||||||
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6},
|
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6},
|
||||||
|
|
||||||
{ 0, 5, 5, 5, 5, 5, 5, 5, 5, 5,
|
{0, 5, 5, 5, 5, 5, 5, 5, 5, 5,
|
||||||
5, 5, 3, 3, 3, 3, 3, 3, 0, 0,
|
5, 5, 3, 3, 3, 3, 3, 3, 0, 0,
|
||||||
0, 3, 3, 3, 4, 5, 4, 4, 4, 4,
|
0, 3, 3, 3, 4, 5, 4, 4, 4, 4,
|
||||||
4, 4, 4, 4, 4, 4, 6, 6, 6, 8, 4, 4, 4, 4, 6},
|
4, 4, 4, 4, 4, 4, 6, 6, 6, 8, 4, 4, 4, 4, 6},
|
||||||
|
|
||||||
{ 0, 7, 7, 7, 7, 7, 7, 7, 7, 7,
|
{0, 7, 7, 7, 7, 7, 7, 7, 7, 7,
|
||||||
7, 7, 4, 4, 4, 4, 4, 4, 0, 0,
|
7, 7, 4, 4, 4, 4, 4, 4, 0, 0,
|
||||||
0, 4, 4, 4, 20, 20, 4, 4, 4, 4,
|
0, 4, 4, 4, 20, 20, 4, 4, 4, 4,
|
||||||
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6},
|
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6},
|
||||||
|
|
||||||
{ 0, 8, 8, 8, 8, 8, 7, 8, 8, 8,
|
{0, 8, 8, 8, 8, 8, 7, 8, 8, 8,
|
||||||
8, 8, 3, 6, 7, 3, 3, 5, 0, 0,
|
8, 8, 3, 6, 7, 3, 3, 5, 0, 0,
|
||||||
0, 3, 3, 3, 3, 3, 5, 5, 5, 5,
|
0, 3, 3, 3, 3, 3, 5, 5, 5, 5,
|
||||||
5, 5, 5, 5, 5, 5, 8, 8, 11, 5, 7, 7, 7, 7, 7},
|
5, 5, 5, 5, 5, 5, 8, 8, 11, 5, 7, 7, 7, 7, 7},
|
||||||
|
|
||||||
{ 0, 5, 6, 6, 6, 6, 5, 6, 6, 6,
|
{0, 5, 6, 6, 6, 6, 5, 6, 6, 6,
|
||||||
6, 6, 3, 3, 3, 3, 3, 5, 0, 0,
|
6, 6, 3, 3, 3, 3, 3, 5, 0, 0,
|
||||||
0, 3, 3, 3, 3, 3, 5, 5, 5, 5,
|
0, 3, 3, 3, 3, 3, 5, 5, 5, 5,
|
||||||
4, 5, 5, 5, 5, 5, 5, 6, 6, 5, 5, 5, 5, 5, 5}
|
4, 5, 5, 5, 5, 5, 5, 6, 6, 5, 5, 5, 5, 5, 5}};
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
unsigned char sttpri[5][31] = {
|
unsigned char sttpri[5][31] = {
|
||||||
|
|
||||||
{ 0, 7, 7, 7, 7, 7, 7, 7, 7, 7,
|
{
|
||||||
7, 7, 2, 4, 4, 4, 4, 4, 0, 0,
|
0,
|
||||||
0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, },
|
7,
|
||||||
|
7,
|
||||||
|
7,
|
||||||
|
7,
|
||||||
|
7,
|
||||||
|
7,
|
||||||
|
7,
|
||||||
|
7,
|
||||||
|
7,
|
||||||
|
7,
|
||||||
|
7,
|
||||||
|
2,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
},
|
||||||
|
|
||||||
{ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
|
{
|
||||||
4, 4, 4, 4, 4, 4, 4, 4, 0, 0,
|
4,
|
||||||
0, 4, 4, 4, 10, 10, 4, 4, 4, 4, 4, },
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
10,
|
||||||
|
10,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
},
|
||||||
|
|
||||||
{ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
|
{
|
||||||
4, 4, 4, 4, 4, 4, 4, 4, 0, 0,
|
4,
|
||||||
0, 10, 10, 4, 4, 4, 4, 4, 4, 4, 4, },
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
10,
|
||||||
|
10,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
},
|
||||||
|
|
||||||
{ 0, 4, 4, 4, 4, 4, 4, 4, 4, 4,
|
{
|
||||||
4, 4, 4, 4, 4, 4, 4, 4, 0, 0,
|
0,
|
||||||
0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 15, },
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
15,
|
||||||
|
},
|
||||||
|
|
||||||
{ 0, 12, 12, 12, 12, 12, 12, 12, 12, 12,
|
{
|
||||||
12, 12, 9, 9, 9, 9, 9, 9, 0, 0,
|
0,
|
||||||
0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, }
|
12,
|
||||||
};
|
12,
|
||||||
|
12,
|
||||||
|
12,
|
||||||
|
12,
|
||||||
|
12,
|
||||||
|
12,
|
||||||
|
12,
|
||||||
|
12,
|
||||||
|
12,
|
||||||
|
12,
|
||||||
|
9,
|
||||||
|
9,
|
||||||
|
9,
|
||||||
|
9,
|
||||||
|
9,
|
||||||
|
9,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
}};
|
||||||
|
|
|
||||||
206
readline.c
206
readline.c
|
|
@ -27,15 +27,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: readline.c,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:00:44 $
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include "sj_euc.h"
|
#include "sj_euc.h"
|
||||||
|
|
@ -43,139 +34,122 @@
|
||||||
#include "sj_macro.h"
|
#include "sj_macro.h"
|
||||||
#include "dicttool.h"
|
#include "dicttool.h"
|
||||||
|
|
||||||
|
|
||||||
/* static long lineloc; */
|
/* static long lineloc; */
|
||||||
static int yomi[MaxYomiLength + 1];
|
static int yomi[MaxYomiLength + 1];
|
||||||
static int kanji[MaxKanjiLength + 1];
|
static int kanji[MaxKanjiLength + 1];
|
||||||
static int hinsi[MaxHinsiNumber + 1];
|
static int hinshi[MaxHinshiNumber + 1];
|
||||||
static int atr[MaxAtrNumber + 1];
|
static int atr[MaxAtrNumber + 1];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
error(char *s)
|
error(char* s) {
|
||||||
{
|
if(s) fprintf(stderr, "%s\n", s);
|
||||||
if (s) fprintf(stderr, "%s\n", s);
|
|
||||||
mark_file(stderr);
|
mark_file(stderr);
|
||||||
|
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
readchar(void)
|
readchar(void) {
|
||||||
{
|
|
||||||
int c1;
|
int c1;
|
||||||
int c2;
|
int c2;
|
||||||
|
|
||||||
|
c1 = getch();
|
||||||
|
if(c1 == EOF) return EOF;
|
||||||
|
|
||||||
c1 = getch(); if (c1 == EOF) return EOF;
|
if(c1 != SS3) {
|
||||||
|
if(c1 & 0x80) {
|
||||||
|
c2 = getch();
|
||||||
if (c1 != SS3) {
|
if(c2 == EOF) error(NULL);
|
||||||
if (c1 & 0x80) {
|
|
||||||
c2 = getch(); if (c2 == EOF) error(NULL);
|
|
||||||
c1 = ((c1 & 0xff) << 8) + (c2 & 0xff);
|
c1 = ((c1 & 0xff) << 8) + (c2 & 0xff);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
c2 = getch(); if (c2 == EOF) error(NULL);
|
c2 = getch();
|
||||||
|
if(c2 == EOF) error(NULL);
|
||||||
c1 = ((c1 & 0xff) << 8) + (c2 & 0xff);
|
c1 = ((c1 & 0xff) << 8) + (c2 & 0xff);
|
||||||
c2 = getch(); if (c2 == EOF) error(NULL);
|
c2 = getch();
|
||||||
|
if(c2 == EOF) error(NULL);
|
||||||
c1 = ((c1 & 0xffff) << 8) + (c2 & 0xff);
|
c1 = ((c1 & 0xffff) << 8) + (c2 & 0xff);
|
||||||
}
|
}
|
||||||
|
|
||||||
return c1;
|
return c1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
skip_blank(void)
|
skip_blank(void) {
|
||||||
{
|
|
||||||
int c;
|
int c;
|
||||||
|
|
||||||
c = readchar();
|
c = readchar();
|
||||||
while (Isblank(c)) c = readchar();
|
while(Isblank(c)) c = readchar();
|
||||||
|
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
readhinsi(void)
|
readhinshi(void) {
|
||||||
{
|
|
||||||
static int c = 0;
|
static int c = 0;
|
||||||
int i;
|
int i;
|
||||||
unsigned char hinsi[128];
|
unsigned char hinshi[128];
|
||||||
int flg;
|
int flg;
|
||||||
|
|
||||||
retry:
|
retry:
|
||||||
|
|
||||||
if (c == '\n') {
|
if(c == '\n') {
|
||||||
c = 0;
|
c = 0;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
c = skip_blank();
|
c = skip_blank();
|
||||||
if (c == '\n') {
|
if(c == '\n') {
|
||||||
c = 0;
|
c = 0;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for(i = 0; !Isblank(c);) {
|
||||||
for (i = 0 ; !Isblank(c) ; ) {
|
if(c == '\n' || c == ':') break;
|
||||||
if (c == '\n' || c == ':') break;
|
if(Isillegal(c)) error(IllegalFormat);
|
||||||
if (Isillegal(c)) error(IllegalFormat);
|
if(c > 0xffffff) {
|
||||||
if (c > 0xffffff) {
|
if(i >= 126) error(TooLongHinshi);
|
||||||
if (i >= 126) error(TooLongHinsi);
|
hinshi[i++] = ((c >> 24) & 0xff);
|
||||||
hinsi[i++] = ((c >> 24) & 0xff);
|
if(i >= 126) error(TooLongHinshi);
|
||||||
if (i >= 126) error(TooLongHinsi);
|
hinshi[i++] = ((c >> 16) & 0xff);
|
||||||
hinsi[i++] = ((c >> 16) & 0xff);
|
if(i >= 126) error(TooLongHinshi);
|
||||||
if (i >= 126) error(TooLongHinsi);
|
hinshi[i++] = ((c >> 8) & 0xff);
|
||||||
hinsi[i++] = ((c >> 8) & 0xff);
|
} else if(c > 0xffff) {
|
||||||
} else if (c > 0xffff) {
|
if(i >= 126) error(TooLongHinshi);
|
||||||
if (i >= 126) error(TooLongHinsi);
|
hinshi[i++] = ((c >> 16) & 0xff);
|
||||||
hinsi[i++] = ((c >> 16) & 0xff);
|
if(i >= 126) error(TooLongHinshi);
|
||||||
if (i >= 126) error(TooLongHinsi);
|
hinshi[i++] = ((c >> 8) & 0xff);
|
||||||
hinsi[i++] = ((c >> 8) & 0xff);
|
} else if(c > 0xff) {
|
||||||
} else if (c > 0xff) {
|
if(i >= 126) error(TooLongHinshi);
|
||||||
if (i >= 126) error(TooLongHinsi);
|
hinshi[i++] = ((c >> 8) & 0xff);
|
||||||
hinsi[i++] = ((c >> 8) & 0xff);
|
|
||||||
}
|
}
|
||||||
if (i >= 127) error(TooLongHinsi);
|
if(i >= 127) error(TooLongHinshi);
|
||||||
hinsi[i++] = (c & 0xff);
|
hinshi[i++] = (c & 0xff);
|
||||||
c = readchar();
|
c = readchar();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(i == 0) return 0;
|
||||||
|
|
||||||
if (i == 0) return 0;
|
if(hinshi[0] == '[' && hinshi[i - 1] == ']') {
|
||||||
|
hinshi[i - 1] = 0;
|
||||||
|
i = cnvhinshi(hinshi + 1);
|
||||||
if (hinsi[0] == '[' && hinsi[i - 1] == ']') {
|
if(i > 0) {
|
||||||
hinsi[i - 1] = 0;
|
|
||||||
i = cnvhinsi(hinsi + 1);
|
|
||||||
if (i > 0) {
|
|
||||||
fprintf(stderr, "\311\312\273\354 \"%s\" \244\313\263\347\270\314\244\254\244\304\244\244\244\306\244\244\244\353\n",
|
fprintf(stderr, "\311\312\273\354 \"%s\" \244\313\263\347\270\314\244\254\244\304\244\244\244\306\244\244\244\353\n",
|
||||||
hinsi + 1);
|
hinshi + 1);
|
||||||
}
|
} else if(!i) {
|
||||||
else if (!i) {
|
|
||||||
|
|
||||||
fprintf(stderr, "\"%s\" \244\254\245\263\241\274\245\311\262\275\244\307\244\255\244\336\244\273\244\363\n",
|
fprintf(stderr, "\"%s\" \244\254\245\263\241\274\245\311\262\275\244\307\244\255\244\336\244\273\244\363\n",
|
||||||
hinsi + 1);
|
hinshi + 1);
|
||||||
goto retry;
|
goto retry;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
else {
|
else {
|
||||||
hinsi[i] = 0;
|
hinshi[i] = 0;
|
||||||
i = cnvhinsi(hinsi);
|
i = cnvhinshi(hinshi);
|
||||||
if (!i) {
|
if(!i) {
|
||||||
|
|
||||||
fprintf(stderr, "\"%s\" \244\254\245\263\241\274\245\311\262\275\244\307\244\255\244\336\244\273\244\363\n", hinsi);
|
fprintf(stderr, "\"%s\" \244\254\245\263\241\274\245\311\262\275\244\307\244\255\244\336\244\273\244\363\n", hinshi);
|
||||||
goto retry;
|
goto retry;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -183,93 +157,75 @@ retry:
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int* readline(void) {
|
||||||
|
|
||||||
int*
|
|
||||||
readline(void)
|
|
||||||
{
|
|
||||||
int c;
|
int c;
|
||||||
int i;
|
int i;
|
||||||
int j;
|
int j;
|
||||||
|
|
||||||
|
for(;;) {
|
||||||
for ( ; ; ) {
|
|
||||||
|
|
||||||
mark_file(NULL);
|
mark_file(NULL);
|
||||||
|
|
||||||
c = skip_blank();
|
c = skip_blank();
|
||||||
|
|
||||||
|
if(c == '#') {
|
||||||
if (c == '#') {
|
while(c != '\n') c = skip_blank();
|
||||||
while (c != '\n') c = skip_blank();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(c == EOF) return NULL;
|
||||||
|
|
||||||
if (c == EOF) return NULL;
|
if(c != '\n') break;
|
||||||
|
|
||||||
|
|
||||||
if (c != '\n') break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for(i = 0; !Isblank(c);) {
|
||||||
for (i = 0 ; !Isblank(c) ; ) {
|
if(Isillegal(c)) error(IllegalFormat);
|
||||||
if (Isillegal(c)) error(IllegalFormat);
|
if(i >= MaxYomiLength) error(TooLongYomi);
|
||||||
if (i >= MaxYomiLength) error(TooLongYomi);
|
|
||||||
yomi[i++] = c;
|
yomi[i++] = c;
|
||||||
c = readchar();
|
c = readchar();
|
||||||
}
|
}
|
||||||
yomi[i] = 0;
|
yomi[i] = 0;
|
||||||
if (i == 0) error(NoYomiString);
|
if(i == 0) error(NoYomiString);
|
||||||
|
|
||||||
|
|
||||||
c = skip_blank();
|
c = skip_blank();
|
||||||
|
|
||||||
|
if(c != '"') {
|
||||||
if (c != '"') {
|
for(i = 0; !Isblank(c);) {
|
||||||
for (i = 0 ; !Isblank(c) ; ) {
|
if(Isillegal(c)) error(IllegalFormat);
|
||||||
if (Isillegal(c)) error(IllegalFormat);
|
if(i >= MaxKanjiLength) error(TooLongKanji);
|
||||||
if (i >= MaxKanjiLength) error(TooLongKanji);
|
|
||||||
kanji[i++] = c;
|
kanji[i++] = c;
|
||||||
c = readchar();
|
c = readchar();
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
c = readchar();
|
c = readchar();
|
||||||
for (i = 0 ; c != '"' ; ) {
|
for(i = 0; c != '"';) {
|
||||||
if (Isillegal(c)) error(IllegalFormat);
|
if(Isillegal(c)) error(IllegalFormat);
|
||||||
if (i >= MaxKanjiLength) error(TooLongKanji);
|
if(i >= MaxKanjiLength) error(TooLongKanji);
|
||||||
kanji[i++] = c;
|
kanji[i++] = c;
|
||||||
c = readchar();
|
c = readchar();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
kanji[i] = 0;
|
kanji[i] = 0;
|
||||||
if (i == 0) error(NoKanjiString);
|
if(i == 0) error(NoKanjiString);
|
||||||
|
|
||||||
|
|
||||||
i = j = 0;
|
i = j = 0;
|
||||||
while ((c = readhinsi())!=0) {
|
while((c = readhinshi()) != 0) {
|
||||||
if (c < 0) {
|
if(c < 0) {
|
||||||
if (i >= MaxAtrNumber) error(TooManyAtr);
|
if(i >= MaxAtrNumber) error(TooManyAtr);
|
||||||
atr[i++] = -c;
|
atr[i++] = -c;
|
||||||
}
|
} else {
|
||||||
else {
|
if(j >= MaxHinshiNumber) error(TooManyHinshi);
|
||||||
if (j >= MaxHinsiNumber) error(TooManyHinsi);
|
hinshi[j++] = c;
|
||||||
hinsi[j++] = c;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
atr[i] = 0;
|
atr[i] = 0;
|
||||||
if (j == 0) hinsi[j++] = HinsiTankan;
|
if(j == 0) hinshi[j++] = HinshiTankan;
|
||||||
hinsi[j] = 0;
|
hinshi[j] = 0;
|
||||||
|
|
||||||
|
|
||||||
return yomi;
|
return yomi;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void setline(void (*func)(int*, int*, int, int*)) {
|
||||||
void
|
|
||||||
setline(void (*func)(int*, int*, int, int*))
|
|
||||||
{
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0 ; hinsi[i] ; i++) (*func)(yomi, kanji, hinsi[i], atr);
|
for(i = 0; hinshi[i]; i++) (*func)(yomi, kanji, hinshi[i], atr);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
25
rk.h
25
rk.h
|
|
@ -27,14 +27,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: rk.h,v $
|
|
||||||
* $SonyRevision: 1.1 $
|
|
||||||
* $SonyDate: 1994/06/03 08:03:48 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include "wchar16.h"
|
#include "wchar16.h"
|
||||||
|
|
||||||
|
|
@ -67,16 +59,15 @@
|
||||||
#define GetMojilen(c) ((c & ERRCODE) ? (1) : ((c >> 16) & 0xff))
|
#define GetMojilen(c) ((c & ERRCODE) ? (1) : ((c >> 16) & 0xff))
|
||||||
|
|
||||||
typedef struct rktable_w16 {
|
typedef struct rktable_w16 {
|
||||||
wchar16_t *r_key;
|
wchar16_t* r_key;
|
||||||
unsigned short *k_yomi;
|
unsigned short* k_yomi;
|
||||||
wchar16_t *r_str;
|
wchar16_t* r_str;
|
||||||
struct rktable_w16 *next;
|
struct rktable_w16* next;
|
||||||
} RkTablW16;
|
} RkTablW16;
|
||||||
|
|
||||||
typedef struct rktable {
|
typedef struct rktable {
|
||||||
unsigned char *r_key;
|
unsigned char* r_key;
|
||||||
unsigned short *k_yomi;
|
unsigned short* k_yomi;
|
||||||
unsigned char *r_str;
|
unsigned char* r_str;
|
||||||
struct rktable *next;
|
struct rktable* next;
|
||||||
} RkTabl;
|
} RkTabl;
|
||||||
|
|
||||||
|
|
|
||||||
271
romaji.c
271
romaji.c
|
|
@ -27,27 +27,17 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* $SonyRCSfile: romaji.c,v $
|
|
||||||
* $SonyRevision: 1.2 $
|
|
||||||
* $SonyDate: 1997/01/23 11:09:37 $
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "rk.h"
|
#include "rk.h"
|
||||||
#include "key.h"
|
#include "key.h"
|
||||||
|
|
||||||
extern int rkerrbell;
|
extern int rkerrbell;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
exec_romaji(c)
|
exec_romaji(c)
|
||||||
wchar16_t c;
|
wchar16_t c;
|
||||||
{
|
{
|
||||||
Conversion *cv;
|
Conversion* cv;
|
||||||
wchar16_t *p;
|
wchar16_t* p;
|
||||||
unsigned short c1, cc;
|
unsigned short c1, cc;
|
||||||
unsigned int c2;
|
unsigned int c2;
|
||||||
unsigned short op;
|
unsigned short op;
|
||||||
|
|
@ -56,21 +46,21 @@ wchar16_t c;
|
||||||
unsigned int rkstr[MAXLLEN], *rkp;
|
unsigned int rkstr[MAXLLEN], *rkp;
|
||||||
extern char erase_str[];
|
extern char erase_str[];
|
||||||
|
|
||||||
cv = GetConversion ();
|
cv = GetConversion();
|
||||||
op = cv->out_point;
|
op = cv->out_point;
|
||||||
|
|
||||||
if (!is_bs(c) && BuffYes()) {
|
if(!is_bs(c) && BuffYes()) {
|
||||||
if ((unsigned int) cv->ha_point + hs_point >= BUFFLENGTH - 2 &&
|
if((unsigned int)cv->ha_point + hs_point >= BUFFLENGTH - 2 &&
|
||||||
!iswcntrl(c)) {
|
!iswcntrl(c)) {
|
||||||
beep();
|
beep();
|
||||||
return(1);
|
return (1);
|
||||||
}
|
}
|
||||||
cv->Halpha[cv->ha_point++] = c;
|
cv->Halpha[cv->ha_point++] = c;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((mode = cv->Imode) & MODE_CONV) {
|
if((mode = cv->Imode) & MODE_CONV) {
|
||||||
sj3_rkconvc(c, rkstr);
|
sj3_rkconvc(c, rkstr);
|
||||||
} else if (mode == MODE_CODE) {
|
} else if(mode == MODE_CODE) {
|
||||||
codeconv(c, rkstr);
|
codeconv(c, rkstr);
|
||||||
} else {
|
} else {
|
||||||
rkstr[0] = SetMojilen(1) + c;
|
rkstr[0] = SetMojilen(1) + c;
|
||||||
|
|
@ -81,27 +71,27 @@ wchar16_t c;
|
||||||
i = 1;
|
i = 1;
|
||||||
while(*rkp != RKEND) {
|
while(*rkp != RKEND) {
|
||||||
c1 = ((c2 = *rkp++) & RKMASK);
|
c1 = ((c2 = *rkp++) & RKMASK);
|
||||||
if (c2 == ERRBEL) {
|
if(c2 == ERRBEL) {
|
||||||
beep();
|
beep();
|
||||||
cv->ha_point--;
|
cv->ha_point--;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (is_bs(c1)) {
|
if(is_bs(c1)) {
|
||||||
if (op <= 0) {
|
if(op <= 0) {
|
||||||
if (os_point <= 0) {
|
if(os_point <= 0) {
|
||||||
master_write(erase_str, 1);
|
master_write(erase_str, 1);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (WcIsZENKAKU(cv->out_buf[op - 1])) {
|
if(WcIsZENKAKU(cv->out_buf[op - 1])) {
|
||||||
vbackchar(2);
|
vbackchar(2);
|
||||||
op -=1;
|
op -= 1;
|
||||||
} else {
|
} else {
|
||||||
vbackchar(1);
|
vbackchar(1);
|
||||||
op--;
|
op--;
|
||||||
}
|
}
|
||||||
cv->out_point = op;
|
cv->out_point = op;
|
||||||
if (BuffYes() && is_bs(c)) {
|
if(BuffYes() && is_bs(c)) {
|
||||||
if (!(cv->out_mode[op] & OMODE_MASK))
|
if(!(cv->out_mode[op] & OMODE_MASK))
|
||||||
chhstr(cv->Halpha, cv->out_buf,
|
chhstr(cv->Halpha, cv->out_buf,
|
||||||
cv->out_mode, op);
|
cv->out_mode, op);
|
||||||
cv->ha_point = getipos(op);
|
cv->ha_point = getipos(op);
|
||||||
|
|
@ -109,8 +99,8 @@ wchar16_t c;
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (WcIsZENKAKU(c1)) {
|
if(WcIsZENKAKU(c1)) {
|
||||||
if (op >= 1 && (cc = addten(op - 1, c1)) != 0) {
|
if(op >= 1 && (cc = addten(op - 1, c1)) != 0) {
|
||||||
c1 = cc;
|
c1 = cc;
|
||||||
vbackchar(2);
|
vbackchar(2);
|
||||||
op -= 1;
|
op -= 1;
|
||||||
|
|
@ -118,52 +108,51 @@ wchar16_t c;
|
||||||
len = cv->out_mode[op] + GetMojilen(c2);
|
len = cv->out_mode[op] + GetMojilen(c2);
|
||||||
c2 = SetMojilen(len);
|
c2 = SetMojilen(len);
|
||||||
} else {
|
} else {
|
||||||
if (!GetMojilen(c2) && (mode == MODE_CODE))
|
if(!GetMojilen(c2) && (mode == MODE_CODE))
|
||||||
c2 = SetMojilen(1);
|
c2 = SetMojilen(1);
|
||||||
}
|
}
|
||||||
if (mode == MODE_ZKATA) {
|
if(mode == MODE_ZKATA) {
|
||||||
c1 = sj_tokata(c1);
|
c1 = sj_tokata(c1);
|
||||||
} else if (mode == MODE_HKATA) {
|
} else if(mode == MODE_HKATA) {
|
||||||
c1 = sj_zen2han(c1);
|
c1 = sj_zen2han(c1);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if ((c2 & ERRCODE) && is_bs(c))
|
if((c2 & ERRCODE) && is_bs(c))
|
||||||
cv->Halpha[cv->ha_point++] = c1;
|
cv->Halpha[cv->ha_point++] = c1;
|
||||||
if (WcIsKANJI(c1)) {
|
if(WcIsKANJI(c1)) {
|
||||||
c2 = SetMojilen(1);
|
c2 = SetMojilen(1);
|
||||||
} else if (iswcntrl(c1) && !(c2 & ERRCODE)) {
|
} else if(iswcntrl(c1) && !(c2 & ERRCODE)) {
|
||||||
if (BuffYes())
|
if(BuffYes())
|
||||||
cv->ha_point--;
|
cv->ha_point--;
|
||||||
sj3_rkreset();
|
sj3_rkreset();
|
||||||
i = 0;
|
i = 0;
|
||||||
break;
|
break;
|
||||||
} else if (mode & MODE_ZEN) {
|
} else if(mode & MODE_ZEN) {
|
||||||
c1 = sj_han2zen(c1);
|
c1 = sj_han2zen(c1);
|
||||||
if (mode == MODE_ZKATA)
|
if(mode == MODE_ZKATA)
|
||||||
c1 = sj_tokata(c1);
|
c1 = sj_tokata(c1);
|
||||||
if (op >=1 && (cc = addten(op-1, c1)) != 0){
|
if(op >= 1 && (cc = addten(op - 1, c1)) != 0) {
|
||||||
c1 = cc;
|
c1 = cc;
|
||||||
vbackchar(2);
|
vbackchar(2);
|
||||||
op --;
|
op--;
|
||||||
cv->out_point = op;
|
cv->out_point = op;
|
||||||
len = cv->out_mode[op]
|
len = cv->out_mode[op] + GetMojilen(c2);
|
||||||
+ GetMojilen(c2);
|
|
||||||
c2 = SetMojilen(len);
|
c2 = SetMojilen(len);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ((unsigned int)cv->out_point + os_point >= BUFFLENGTH * 2 - 2) {
|
if((unsigned int)cv->out_point + os_point >= BUFFLENGTH * 2 - 2) {
|
||||||
beep();
|
beep();
|
||||||
op = cv->out_point;
|
op = cv->out_point;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (WcIsZENKAKU(c1)) {
|
if(WcIsZENKAKU(c1)) {
|
||||||
cv->out_buf[op] = c1;
|
cv->out_buf[op] = c1;
|
||||||
cv->in_mode[op] = mode;
|
cv->in_mode[op] = mode;
|
||||||
cv->out_mode[op++] = GetMojilen(c2);
|
cv->out_mode[op++] = GetMojilen(c2);
|
||||||
if (mode == MODE_HKATA || WcIsKANA(cv->out_buf[op - 1])) {
|
if(mode == MODE_HKATA || WcIsKANA(cv->out_buf[op - 1])) {
|
||||||
cv->out_buf[op - 1] = c1 >> 8;
|
cv->out_buf[op - 1] = c1 >> 8;
|
||||||
cv->out_buf[op] = c1 &MASK;
|
cv->out_buf[op] = c1 & MASK;
|
||||||
cv->in_mode[op] = mode;
|
cv->in_mode[op] = mode;
|
||||||
cv->out_mode[op++] = 0;
|
cv->out_mode[op++] = 0;
|
||||||
sj3_rkreset();
|
sj3_rkreset();
|
||||||
|
|
@ -173,7 +162,7 @@ wchar16_t c;
|
||||||
cv->in_mode[op] = mode;
|
cv->in_mode[op] = mode;
|
||||||
cv->out_mode[op++] = GetMojilen(c2);
|
cv->out_mode[op++] = GetMojilen(c2);
|
||||||
}
|
}
|
||||||
if (!BuffYes() && !(c2 & ERRCODE)) {
|
if(!BuffYes() && !(c2 & ERRCODE)) {
|
||||||
cv->out_buf[op] = '\0';
|
cv->out_buf[op] = '\0';
|
||||||
master_out(cv->out_buf, op);
|
master_out(cv->out_buf, op);
|
||||||
sj3_rkreset();
|
sj3_rkreset();
|
||||||
|
|
@ -182,37 +171,35 @@ wchar16_t c;
|
||||||
}
|
}
|
||||||
cv->out_buf[op] = '\0';
|
cv->out_buf[op] = '\0';
|
||||||
cv->Halpha[cv->ha_point] = '\0';
|
cv->Halpha[cv->ha_point] = '\0';
|
||||||
if (is_bs(c) && op <= 0 && os_point <= 0) {
|
if(is_bs(c) && op <= 0 && os_point <= 0) {
|
||||||
ResetHenkan();
|
ResetHenkan();
|
||||||
if (BuffYes()) {
|
if(BuffYes()) {
|
||||||
SetCflag();
|
SetCflag();
|
||||||
buffers_clear();
|
buffers_clear();
|
||||||
}
|
}
|
||||||
}
|
} else if((len = op - cv->out_point) > 0) {
|
||||||
else if ((len = op - cv->out_point) > 0) {
|
|
||||||
p = &cv->out_buf[cv->out_point];
|
p = &cv->out_buf[cv->out_point];
|
||||||
if (BuffYes() && IsCflag ()) {
|
if(BuffYes() && IsCflag()) {
|
||||||
Csave ();
|
Csave();
|
||||||
ClearCflag ();
|
ClearCflag();
|
||||||
}
|
}
|
||||||
if (mode & MODE_ZEN) {
|
if(mode & MODE_ZEN) {
|
||||||
if (!BuffYes() && len == 2)
|
if(!BuffYes() && len == 2)
|
||||||
Csave();
|
Csave();
|
||||||
vprintU(p, 1);
|
vprintU(p, 1);
|
||||||
} else {
|
} else {
|
||||||
if (!BuffYes() && len == 1)
|
if(!BuffYes() && len == 1)
|
||||||
Csave();
|
Csave();
|
||||||
vprintU(p, 0);
|
vprintU(p, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
cv->out_point = op;
|
cv->out_point = op;
|
||||||
return(i);
|
return (i);
|
||||||
}
|
}
|
||||||
|
|
||||||
move_cur(kval)
|
move_cur(kval) int kval;
|
||||||
int kval;
|
|
||||||
{
|
{
|
||||||
Conversion *cv;
|
Conversion* cv;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
cv = GetConversion();
|
cv = GetConversion();
|
||||||
|
|
@ -225,73 +212,71 @@ int kval;
|
||||||
cv->ha_point = cv->ha_epoint;
|
cv->ha_point = cv->ha_epoint;
|
||||||
break;
|
break;
|
||||||
case KEY_LEFT:
|
case KEY_LEFT:
|
||||||
if ((i = cv->out_point) > 0) {
|
if((i = cv->out_point) > 0) {
|
||||||
i--;
|
i--;
|
||||||
if (i > 0 && (WcIsZENKAKU(cv->out_buf[i])))
|
if(i > 0 && (WcIsZENKAKU(cv->out_buf[i])))
|
||||||
i--;
|
i--;
|
||||||
cv->out_point = i;
|
cv->out_point = i;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case KEY_RIGHT:
|
case KEY_RIGHT:
|
||||||
if ((i = cv->out_point) < cv->out_epoint) {
|
if((i = cv->out_point) < cv->out_epoint) {
|
||||||
i++;
|
i++;
|
||||||
if (i < cv->out_epoint && (WcIsZENKAKU(cv->out_buf[i])))
|
if(i < cv->out_epoint && (WcIsZENKAKU(cv->out_buf[i])))
|
||||||
i++;
|
i++;
|
||||||
cv->out_point = i;
|
cv->out_point = i;
|
||||||
if (cv->out_point >= cv->out_epoint)
|
if(cv->out_point >= cv->out_epoint)
|
||||||
cv->ha_point = cv->ha_epoint;
|
cv->ha_point = cv->ha_epoint;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (cv->out_point != cv->Vlen) {
|
if(cv->out_point != cv->Vlen) {
|
||||||
Cgoto(cv->out_point);
|
Cgoto(cv->out_point);
|
||||||
if (cv->out_point == cv->out_epoint) {
|
if(cv->out_point == cv->out_epoint) {
|
||||||
os_point = 0;
|
os_point = 0;
|
||||||
hs_point = 0;
|
hs_point = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
addten(pos, c)
|
addten(pos, c) unsigned short pos, c;
|
||||||
unsigned short pos, c;
|
|
||||||
{
|
{
|
||||||
unsigned short prefix;
|
unsigned short prefix;
|
||||||
Conversion *cv;
|
Conversion* cv;
|
||||||
|
|
||||||
cv = GetConversion();
|
cv = GetConversion();
|
||||||
prefix = cv->out_buf[pos];
|
prefix = cv->out_buf[pos];
|
||||||
return(sj_addten(prefix, c));
|
return (sj_addten(prefix, c));
|
||||||
}
|
}
|
||||||
|
|
||||||
getipos(pos)
|
getipos(pos) unsigned short pos;
|
||||||
unsigned short pos;
|
|
||||||
{
|
{
|
||||||
Conversion *cv;
|
Conversion* cv;
|
||||||
|
|
||||||
cv = GetConversion();
|
cv = GetConversion();
|
||||||
return(getipos2(cv->out_mode, pos));
|
return (getipos2(cv->out_mode, pos));
|
||||||
}
|
}
|
||||||
|
|
||||||
getipos2(omode, pos)
|
getipos2(omode, pos) unsigned short* omode;
|
||||||
unsigned short *omode;
|
|
||||||
unsigned short pos;
|
unsigned short pos;
|
||||||
{
|
{
|
||||||
unsigned short ipos;
|
unsigned short ipos;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
ipos = 0;
|
ipos = 0;
|
||||||
for (i = 0; i < (unsigned int)pos; i++) {
|
for(i = 0; i < (unsigned int)pos; i++) {
|
||||||
ipos += omode[i] & OMODE_MASK;
|
ipos += omode[i] & OMODE_MASK;
|
||||||
}
|
}
|
||||||
return(ipos);
|
return (ipos);
|
||||||
}
|
}
|
||||||
|
|
||||||
sj_rkconv(s1, s2, len)
|
sj_rkconv(s1, s2, len)
|
||||||
wchar16_t *s1, *s2;
|
wchar16_t* s1,
|
||||||
|
*s2;
|
||||||
int len;
|
int len;
|
||||||
{
|
{
|
||||||
int i, rlen;
|
int i, rlen;
|
||||||
unsigned int *kp;
|
unsigned int* kp;
|
||||||
int res, klen;
|
int res, klen;
|
||||||
wchar16_t roma[SHORTBUFFSIZE + 1];
|
wchar16_t roma[SHORTBUFFSIZE + 1];
|
||||||
unsigned int kstr[MAXLLEN];
|
unsigned int kstr[MAXLLEN];
|
||||||
|
|
@ -299,8 +284,8 @@ int len;
|
||||||
sj3_rkebell(0);
|
sj3_rkebell(0);
|
||||||
klen = 0;
|
klen = 0;
|
||||||
res = 0;
|
res = 0;
|
||||||
while (len > 0) {
|
while(len > 0) {
|
||||||
if (len + res > SHORTBUFFSIZE) {
|
if(len + res > SHORTBUFFSIZE) {
|
||||||
i = SHORTBUFFSIZE - res;
|
i = SHORTBUFFSIZE - res;
|
||||||
len -= i;
|
len -= i;
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -312,22 +297,22 @@ int len;
|
||||||
roma[res + i] = '\0';
|
roma[res + i] = '\0';
|
||||||
rlen = sj3_rkconv2(roma, kstr, i + res - 1);
|
rlen = sj3_rkconv2(roma, kstr, i + res - 1);
|
||||||
res = wslen(roma);
|
res = wslen(roma);
|
||||||
if (rlen > 0) {
|
if(rlen > 0) {
|
||||||
kp = kstr;
|
kp = kstr;
|
||||||
while (*kp != 0) {
|
while(*kp != 0) {
|
||||||
*s1++ = (wchar16_t) *kp++;
|
*s1++ = (wchar16_t)*kp++;
|
||||||
klen++;
|
klen++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (res > 0) {
|
if(res > 0) {
|
||||||
roma[res] = 0x0a;
|
roma[res] = 0x0a;
|
||||||
roma[res + 1] = '\0';
|
roma[res + 1] = '\0';
|
||||||
rlen = sj3_rkconv2(roma, kstr, res);
|
rlen = sj3_rkconv2(roma, kstr, res);
|
||||||
if (rlen > 0) {
|
if(rlen > 0) {
|
||||||
kp = kstr;
|
kp = kstr;
|
||||||
while ((*kp & RKMASK) != 0x0a && *kp != 0) {
|
while((*kp & RKMASK) != 0x0a && *kp != 0) {
|
||||||
*s1++ = (wchar16_t) *kp++;
|
*s1++ = (wchar16_t)*kp++;
|
||||||
klen++;
|
klen++;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -339,16 +324,17 @@ int len;
|
||||||
}
|
}
|
||||||
*s1 = '\0';
|
*s1 = '\0';
|
||||||
sj3_rkebell(rkerrbell);
|
sj3_rkebell(rkerrbell);
|
||||||
return(klen);
|
return (klen);
|
||||||
}
|
}
|
||||||
|
|
||||||
sj_rkconv2(s1, s2, omode, len)
|
sj_rkconv2(s1, s2, omode, len)
|
||||||
wchar16_t *s1, *s2;
|
wchar16_t* s1,
|
||||||
unsigned short *omode;
|
*s2;
|
||||||
|
unsigned short* omode;
|
||||||
int len;
|
int len;
|
||||||
{
|
{
|
||||||
int i, rlen;
|
int i, rlen;
|
||||||
unsigned int *kp;
|
unsigned int* kp;
|
||||||
int res, klen, mlen;
|
int res, klen, mlen;
|
||||||
unsigned short cc, c, prefix;
|
unsigned short cc, c, prefix;
|
||||||
wchar16_t roma[SHORTBUFFSIZE + 1];
|
wchar16_t roma[SHORTBUFFSIZE + 1];
|
||||||
|
|
@ -358,8 +344,8 @@ int len;
|
||||||
klen = 0;
|
klen = 0;
|
||||||
res = 0;
|
res = 0;
|
||||||
prefix = 0;
|
prefix = 0;
|
||||||
while (len > 0) {
|
while(len > 0) {
|
||||||
if (len + res > SHORTBUFFSIZE) {
|
if(len + res > SHORTBUFFSIZE) {
|
||||||
i = SHORTBUFFSIZE - res;
|
i = SHORTBUFFSIZE - res;
|
||||||
len -= i;
|
len -= i;
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -370,17 +356,17 @@ int len;
|
||||||
s2 += i;
|
s2 += i;
|
||||||
roma[res + i] = '\0';
|
roma[res + i] = '\0';
|
||||||
rlen = sj3_rkconv2(roma, kstr, i + res - 1);
|
rlen = sj3_rkconv2(roma, kstr, i + res - 1);
|
||||||
/*
|
/*
|
||||||
* Remove warning.
|
* Remove warning.
|
||||||
* Patched by Hidekazu Kuroki(hidekazu@cs.titech.ac.jp) 1996/8/10
|
* Patched by Hidekazu Kuroki(hidekazu@cs.titech.ac.jp) 1996/8/10
|
||||||
*/
|
*/
|
||||||
res = strlen((char *)roma);
|
res = strlen((char*)roma);
|
||||||
if (rlen <= 0)
|
if(rlen <= 0)
|
||||||
continue;
|
continue;
|
||||||
kp = kstr;
|
kp = kstr;
|
||||||
while ((c = *kp & RKMASK) != 0) {
|
while((c = *kp & RKMASK) != 0) {
|
||||||
if (c & RKZEN) {
|
if(c & RKZEN) {
|
||||||
if ((cc = sj_addten(prefix, c)) != 0) {
|
if((cc = sj_addten(prefix, c)) != 0) {
|
||||||
omode -= 1;
|
omode -= 1;
|
||||||
s1 -= 1;
|
s1 -= 1;
|
||||||
*omode += GetMojilen(*kp);
|
*omode += GetMojilen(*kp);
|
||||||
|
|
@ -391,7 +377,7 @@ int len;
|
||||||
klen += 1;
|
klen += 1;
|
||||||
prefix = c;
|
prefix = c;
|
||||||
}
|
}
|
||||||
*s1++ = (wchar16_t) c;
|
*s1++ = (wchar16_t)c;
|
||||||
omode++;
|
omode++;
|
||||||
kp++;
|
kp++;
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -400,15 +386,15 @@ int len;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (res > 0) {
|
if(res > 0) {
|
||||||
roma[res] = 0x0a;
|
roma[res] = 0x0a;
|
||||||
roma[res + 1] = '\0';
|
roma[res + 1] = '\0';
|
||||||
rlen = sj3_rkconv2(roma, kstr, res);
|
rlen = sj3_rkconv2(roma, kstr, res);
|
||||||
if (rlen > 0) {
|
if(rlen > 0) {
|
||||||
kp = kstr;
|
kp = kstr;
|
||||||
while ((c = *kp & RKMASK) != 0x0a && c != 0) {
|
while((c = *kp & RKMASK) != 0x0a && c != 0) {
|
||||||
if (*kp & RKZEN) {
|
if(*kp & RKZEN) {
|
||||||
if ((cc = sj_addten(prefix, c)) != 0) {
|
if((cc = sj_addten(prefix, c)) != 0) {
|
||||||
omode -= 1;
|
omode -= 1;
|
||||||
s1 -= 1;
|
s1 -= 1;
|
||||||
*omode += GetMojilen(*kp);
|
*omode += GetMojilen(*kp);
|
||||||
|
|
@ -419,7 +405,7 @@ int len;
|
||||||
klen += 1;
|
klen += 1;
|
||||||
prefix = c;
|
prefix = c;
|
||||||
}
|
}
|
||||||
*s1++ = (wchar16_t) c;
|
*s1++ = (wchar16_t)c;
|
||||||
omode++;
|
omode++;
|
||||||
kp++;
|
kp++;
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -428,15 +414,15 @@ int len;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
for (i = 0; i < res; i++) {
|
for(i = 0; i < res; i++) {
|
||||||
if (WcIsKANJI(roma[i])) {
|
if(WcIsKANJI(roma[i])) {
|
||||||
c = roma[i];
|
c = roma[i];
|
||||||
mlen = 1;
|
mlen = 1;
|
||||||
} else {
|
} else {
|
||||||
c = sj_han2zen(roma[i]);
|
c = sj_han2zen(roma[i]);
|
||||||
mlen = 1;
|
mlen = 1;
|
||||||
}
|
}
|
||||||
if ((cc = sj_addten(prefix, c)) != 0) {
|
if((cc = sj_addten(prefix, c)) != 0) {
|
||||||
s1 -= 1;
|
s1 -= 1;
|
||||||
omode -= 1;
|
omode -= 1;
|
||||||
*omode += mlen;
|
*omode += mlen;
|
||||||
|
|
@ -454,14 +440,13 @@ int len;
|
||||||
}
|
}
|
||||||
*s1 = '\0';
|
*s1 = '\0';
|
||||||
sj3_rkebell(rkerrbell);
|
sj3_rkebell(rkerrbell);
|
||||||
return(klen);
|
return (klen);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
exec_romaji2(c, hbuf, kbuf, omode, cur, hcur)
|
exec_romaji2(c, hbuf, kbuf, omode, cur, hcur)
|
||||||
wchar16_t c, *hbuf, *kbuf;
|
wchar16_t c,
|
||||||
unsigned short *omode;
|
*hbuf, *kbuf;
|
||||||
|
unsigned short* omode;
|
||||||
int cur, hcur;
|
int cur, hcur;
|
||||||
{
|
{
|
||||||
unsigned short c1, cc;
|
unsigned short c1, cc;
|
||||||
|
|
@ -472,79 +457,77 @@ int cur, hcur;
|
||||||
|
|
||||||
retv = 1;
|
retv = 1;
|
||||||
ocur = cur;
|
ocur = cur;
|
||||||
if (hcur >= 0 && !is_bs(c))
|
if(hcur >= 0 && !is_bs(c))
|
||||||
hbuf[hcur++] = c;
|
hbuf[hcur++] = c;
|
||||||
sj3_rkconvc(c, rkstr);
|
sj3_rkconvc(c, rkstr);
|
||||||
|
|
||||||
rkp = rkstr;
|
rkp = rkstr;
|
||||||
while(*rkp != RKEND) {
|
while(*rkp != RKEND) {
|
||||||
c1 = ((c2 = *rkp++) & RKMASK);
|
c1 = ((c2 = *rkp++) & RKMASK);
|
||||||
if (c2 == ERRBEL) {
|
if(c2 == ERRBEL) {
|
||||||
if (c != 0)
|
if(c != 0)
|
||||||
beep();
|
beep();
|
||||||
hcur--;
|
hcur--;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (is_bs(c1)) {
|
if(is_bs(c1)) {
|
||||||
if (cur <= 0) {
|
if(cur <= 0) {
|
||||||
beep();
|
beep();
|
||||||
} else {
|
} else {
|
||||||
vbackchar(2);
|
vbackchar(2);
|
||||||
cur -= 1;
|
cur -= 1;
|
||||||
ocur = cur;
|
ocur = cur;
|
||||||
}
|
}
|
||||||
if (hcur >= 0 && is_bs(c)) {
|
if(hcur >= 0 && is_bs(c)) {
|
||||||
for (i = cur; i > 0 ; i--){
|
for(i = cur; i > 0; i--) {
|
||||||
if (omode[i] & OMODE_MASK)
|
if(omode[i] & OMODE_MASK)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
hcur -= omode[i];
|
hcur -= omode[i];
|
||||||
while (i < cur) {
|
while(i < cur) {
|
||||||
len = sj_zentohan(&hbuf[hcur],&kbuf[i],1);
|
len = sj_zentohan(&hbuf[hcur], &kbuf[i], 1);
|
||||||
omode[i] = len;
|
omode[i] = len;
|
||||||
hcur += len;
|
hcur += len;
|
||||||
i ++;
|
i++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (!WcIsZENKAKU(c1)) {
|
if(!WcIsZENKAKU(c1)) {
|
||||||
if (hcur >= 0 && (c2 & ERRCODE) && is_bs(c))
|
if(hcur >= 0 && (c2 & ERRCODE) && is_bs(c))
|
||||||
hbuf[hcur++] = c1;
|
hbuf[hcur++] = c1;
|
||||||
if (c1 == 0) {
|
if(c1 == 0) {
|
||||||
hcur--;
|
hcur--;
|
||||||
break;
|
break;
|
||||||
} else {
|
} else {
|
||||||
if (c2 & ERRCODE)
|
if(c2 & ERRCODE)
|
||||||
retv = 0;
|
retv = 0;
|
||||||
c1 = sj_han2zen(c1);
|
c1 = sj_han2zen(c1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (cur >= 1) {
|
if(cur >= 1) {
|
||||||
cc = kbuf[cur - 1];
|
cc = kbuf[cur - 1];
|
||||||
if ((cc = sj_addten(cc, c1)) != 0){
|
if((cc = sj_addten(cc, c1)) != 0) {
|
||||||
c1 = cc;
|
c1 = cc;
|
||||||
vbackchar(2);
|
vbackchar(2);
|
||||||
cur --;
|
cur--;
|
||||||
ocur = cur;
|
ocur = cur;
|
||||||
if (hcur >= 0) {
|
if(hcur >= 0) {
|
||||||
len = omode[cur] + GetMojilen(c2);
|
len = omode[cur] + GetMojilen(c2);
|
||||||
c2 = SetMojilen(len);
|
c2 = SetMojilen(len);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
kbuf[cur] = c1;
|
kbuf[cur] = c1;
|
||||||
if (hcur >= 0) {
|
if(hcur >= 0) {
|
||||||
omode[cur] = GetMojilen(c2);
|
omode[cur] = GetMojilen(c2);
|
||||||
}
|
}
|
||||||
cur ++;
|
cur++;
|
||||||
}
|
}
|
||||||
kbuf[cur] = '\0';
|
kbuf[cur] = '\0';
|
||||||
if (hcur >= 0)
|
if(hcur >= 0)
|
||||||
hbuf[hcur] = '\0';
|
hbuf[hcur] = '\0';
|
||||||
if (cur > ocur)
|
if(cur > ocur)
|
||||||
vprintU(&kbuf[ocur], 1);
|
vprintU(&kbuf[ocur], 1);
|
||||||
return(retv);
|
return (retv);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
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