Import sj3-patches-20040916

Original description for the changes:

sj3 の patch をまとめました。
基本的に、SUS v2 の範囲に対応しているシステムを考えています。ですので、
autoconf 的な #ifdef はあまり使うつもりはありません。
FreeBSD の ports 向けを第一目的にしているので、strlcpy() のような非標準の
関数も使ってしまっていますが、それについては要望があれば存在しないシステム
でも make できるように対応するつもりです。

この patch set に関する要望がもしもあるようでしたら、
	小野 寛生 (hiroo+sj3 at oikumene.gcd.org)
までご連絡ください。

---- patch 部分の Changelog
2004年 9月16日 木曜日 02時57分06秒 JST
* server/execute.c で malloc が失敗したときに dictlist を消去する処理が
  バグで動かない状態だったのを修正した。ただし、その直後に segfault する
  ようなコードになっているので問題は解消されていない。
  エラー回復時にどのような処理が意図されていたか理解しないと、修正は無理
  なので、そのままにしておく。

2004年 8月28日 土曜日 15時04分33秒 JST
* Move include/sj3lowlib.h and sj3lib/sj3lib_func.h to sj3lib/sj3lib.h.
  It will enable softwares depending on sj3lib.h compile again.

2004年 7月24日 土曜日
* ヘッダの重複 include を許容する。
	include/sj3lowlib.h, sj3lib/sj3lib_func.h
* 必要な型宣言のため、ヘッダを include する。

2004年 7月21日 水曜日 01時00分11秒 JST
* ISO C に適合するよういろいろ修正。(ただし、部分的)。
  修正内容は7/3に準ずる。
  修正したファイル名は省略する。
* dict/tool/makeseg.c の static index[] が <string.h> の index() と衝突
  しないように、segindex[] に改名した。
  (FreeBSD 4-stable/GCC 2.95.4 で compile に失敗していたものの修正)。

2004年 7月 4日 日曜日 17時47分33秒 JST
* ISO C に適合するよういろいろ修正。(ただし、部分的)。
  修正内容は7/3に準ずる。
  FreeBSD/amd64 上の gcc version 3.3.3 [FreeBSD] 20031106 では、致命的と
  思われる error/warning はなくなった。動作確認は sj3serv が起動すること
  のみ。

2004年 7月 3日 土曜日 03時53分23秒 JST
* スタイル修正を以下のファイルについて行なった。
  - 関数宣言を ISO C スタイルにした。
  - register キーワードを削除した。
  - 構造体、配列の初期化に適切な {} をつけた。
  - 条件判定文を if((something) != NULL) のような形式に変更した。
	kanakan/alloc.c,
	server/comuni.c, error.c, execute.c, setup.c
	sj3/funckey.c, sj3.c, sjgetchar.c
	sj3lib/Imakefile, sj.c, sj3lib.h
  - プロトタイプ宣言をいれたヘッダファイルを追加作成。
  	kanakan/kanakan.h, sj3/sj3.h, sj3lib/sj3lib_func.h

2004年 7月 2日 金曜日 01時09分09秒 JST
* FreeBSD の ports にある patch を大部分もってきた。
  注意点:
  - server/execute.c, setup.c
    snprintf と strlcpy を使っているコードがあり、将来は存在しない system の
    ためにコードをもってきて、sj3.tmpl あたりに knob を設けるべきである。
    現時点では、上記関数が存在しないシステムは、単にコンパイルに失敗する。
  - FreeBSD の -lxpg4 は外した。古い release では、有効にする必要あり。(sj3.tmpl)
* dict/tool を ISO C style に変更した。
  - amd64/FreeBSD で build できるようになったのを確認。
    (sporsored by: AMD64JP Project, AMD developer support program).
  - server は起動する。動作確認は未実施。

Signed-off-by: Masanori Ogino <mogino@acm.org>
This commit is contained in:
Hiroo Ono 2023-12-04 14:18:05 +09:00 • committed by Masanori Ogino
commit 4a2d141541
77 changed files with 3421 additions and 3850 deletions

View file

@ -31,32 +31,24 @@
* $SonyRCSfile: mknumber.c,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:02:05 $
*
* $Id$
*/
#include <sys/types.h>
#include "sj_kcnv.h"
#include "sj_yomi.h"
#include "sj_suuji.h"
#include "kanakan.h"
Void setwdnum();
Int setucnum();
Static Int word2char(wd, tbl, keta, flg)
Ushort wd;
Uchar TFar *tbl;
Int keta;
Int flg;
static int
word2char(u_short wd, u_char* tbl, int keta, int flg)
{
Int mask;
Int num;
Uchar TFar *src;
int mask;
int num;
u_char* src;
for (mask = 0x1000 ; mask ; mask >>= 4) {
@ -90,16 +82,13 @@ Int flg;
}
Static Void words2num(wd, tbl, flgc)
Ushort *wd;
Uchar TFar *tbl;
Int flgc;
static void
words2num(u_short* wd, u_char* tbl, int flgc)
{
Int i;
Int keta;
Int flg;
Uchar *kp = kanjitmp;
int i;
int keta;
int flg;
u_char *kp = kanjitmp;
if (flgc) {
keta = NumKetaLength - 1;
@ -124,149 +113,122 @@ Int flgc;
}
Void num_type00(s1, s2, jrec)
Uchar *s1;
Uchar *s2;
JREC *jrec;
void
num_type00(u_char* s1, u_char* s2, JREC* jrec)
{
Ushort num[NumWordBuf];
u_short num[NumWordBuf];
setwdnum(s1, (Int)jrec -> numlen, num);
setwdnum(s1, (int)jrec -> numlen, num);
words2num(num, Num1tbl, FALSE);
}
Void num_type01(s1, s2, jrec)
Uchar *s1;
Uchar *s2;
JREC *jrec;
void
num_type01(u_char* s1, u_char* s2, JREC* jrec)
{
Ushort num[NumWordBuf];
u_short num[NumWordBuf];
setwdnum(s1, (Int)jrec -> numlen, num);
setwdnum(s1, (int)jrec -> numlen, num);
words2num(num, Num1tbl, FALSE);
}
Void num_type02(s1, s2, jrec)
Uchar *s1;
Uchar *s2;
JREC *jrec;
void
num_type02(u_char* s1, u_char* s2, JREC* jrec)
{
Ushort num[NumWordBuf];
u_short num[NumWordBuf];
setwdnum(s1, (Int)jrec -> numlen, num);
setwdnum(s1, (int)jrec -> numlen, num);
words2num(num, Num1tbl, TRUE);
}
Void num_type03(s1, s2, jrec)
Uchar *s1;
Uchar *s2;
JREC *jrec;
void
num_type03(u_char* s1, u_char* s2, JREC* jrec)
{
Ushort num[NumWordBuf];
u_short num[NumWordBuf];
setwdnum(s1, (Int)jrec -> numlen, num);
setwdnum(s1, (int)jrec -> numlen, num);
words2num(num, Num2tbl, FALSE);
}
Void num_type04(s1, s2, jrec)
Uchar *s1;
Uchar *s2;
JREC *jrec;
void
num_type04(u_char* s1, u_char* s2, JREC* jrec)
{
Ushort num[NumWordBuf];
u_short num[NumWordBuf];
setwdnum(s1, (Int)jrec -> numlen, num);
setwdnum(s1, (int)jrec -> numlen, num);
words2num(num, Num2tbl, FALSE);
}
Void num_type05(s1, s2, jrec)
Uchar *s1;
Uchar *s2;
JREC *jrec;
void
num_type05(u_char* s1, u_char* s2, JREC* jrec)
{
Ushort num[NumWordBuf];
u_short num[NumWordBuf];
setwdnum(s1, (Int)jrec -> numlen, num);
setwdnum(s1, (int)jrec -> numlen, num);
words2num(num, Num2tbl, TRUE);
}
Void num_type06(s1, s2, jrec)
Uchar *s1;
Uchar *s2;
JREC *jrec;
void
num_type06(u_char* s1, u_char* s2, JREC* jrec)
{
Ushort num[NumWordBuf];
u_short num[NumWordBuf];
setwdnum(s1, (Int)jrec -> numlen, num);
setwdnum(s1, (int)jrec -> numlen, num);
words2num(num, Num3tbl, FALSE);
}
Void num_type07(s1, s2, jrec)
Uchar *s1;
Uchar *s2;
JREC *jrec;
void
num_type07(u_char* s1, u_char* s2, JREC* jrec)
{
Ushort num[NumWordBuf];
u_short num[NumWordBuf];
setwdnum(s1, (Int)jrec -> numlen, num);
setwdnum(s1, (int)jrec -> numlen, num);
words2num(num, Num3tbl, FALSE);
}
Static Void kan_num(wd, tbl1, tbl2)
Ushort *wd;
Uchar TFar *tbl1;
Uchar TFar *tbl2;
static void
kan_num(u_short* wd, u_char* tbl1, u_char* tbl2)
{
Int ii;
Ushort tmp;
Int mask;
Int num;
Int flg;
Uchar TFar *kurai1;
Uchar TFar *kurai2;
Uchar TFar *src;
Uchar *keep = kanjitmp;
int ii;
u_short tmp;
int mask;
int num;
int flg;
u_char* kurai1;
u_char* kurai2;
u_char* src;
u_char* keep = kanjitmp;
kurai2 = Num6tbl - 2;
@ -325,45 +287,36 @@ Uchar TFar *tbl2;
}
Void num_type08(s1, s2, jrec)
Uchar *s1;
Uchar *s2;
JREC *jrec;
void
num_type08(u_char* s1, u_char* s2, JREC* jrec)
{
Ushort num[NumWordBuf];
u_short num[NumWordBuf];
setwdnum(s1, (Int)jrec -> numlen, num);
setwdnum(s1, (int)jrec -> numlen, num);
kan_num(num, Num2tbl, Num4tbl);
}
Void num_type09(s1, s2, jrec)
Uchar *s1;
Uchar *s2;
JREC *jrec;
void
num_type09(u_char* s1, u_char* s2, JREC* jrec)
{
Ushort num[NumWordBuf];
u_short num[NumWordBuf];
setwdnum(s1, (Int)jrec -> numlen, num);
setwdnum(s1, (int)jrec -> numlen, num);
kan_num(num, Num3tbl, Num5tbl);
}
Void num_type10(s1, s2, jrec)
Uchar *s1;
Uchar *s2;
JREC *jrec;
void
num_type10(u_char* s1, u_char* s2, JREC* jrec)
{
Int i;
int i;
for (i = jrec -> numlen ; i > 0 ; i--) {
@ -379,14 +332,11 @@ JREC *jrec;
}
Void num_type11(s1, s2, jrec)
Uchar *s1;
Uchar *s2;
JREC *jrec;
void
num_type11(u_char* s1, u_char* s2, JREC* jrec)
{
Int i;
Int j;
int i;
int j;
i = j = jrec -> numlen;
@ -412,14 +362,11 @@ JREC *jrec;
}
Void num_type12(s1, s2, jrec)
Uchar *s1;
Uchar *s2;
JREC *jrec;
void
num_type12(u_char* s1, u_char* s2, JREC* jrec)
{
Int i;
Int j;
int i;
int j;
for (i = jrec -> numlen ; i > 0 ; i--) {
@ -433,26 +380,23 @@ JREC *jrec;
}
Static Void num_kurai(p, len, tbl)
Uchar *p;
Int len;
Uchar TFar *tbl;
static void
num_kurai(u_char* p, int len, u_char* tbl)
{
Int i;
Int j;
Uchar tmp;
int i;
int j;
u_char tmp;
for (i = 0 ; i < len ; i++) {
tmp = *p++;
*kanjitmp++ = tbl[j = ((tmp & 0x0f) - _Num0) * 2];
*kanjitmp++ = tbl[j + 1];
if (j = ((tmp >> 4) & 3)) {
if ((j = ((tmp >> 4) & 3)) != 0) {
*kanjitmp++ = Num4tbl[j = (3 - j) * 2];
*kanjitmp++ = Num4tbl[j + 1];
}
if (j = ((tmp >> 6) & 3)) {
if ((j = ((tmp >> 6) & 3)) != 0) {
*kanjitmp++ = Num6tbl[j = (3 - j) * 2];
*kanjitmp++ = Num6tbl[j + 1];
}
@ -460,34 +404,28 @@ Uchar TFar *tbl;
}
Void num_type13(s1, s2, jrec)
Uchar *s1;
Uchar *s2;
JREC *jrec;
void
num_type13(u_char* s1, u_char* s2, JREC* jrec)
{
Uchar num[NumKetaLength];
Int len;
u_char num[NumKetaLength];
int len;
len = setucnum(s1, (Int)jrec -> numlen, num);
len = setucnum(s1, (int)jrec -> numlen, num);
num_kurai(num, len, Num1tbl);
}
Void num_type14(s1, s2, jrec)
Uchar *s1;
Uchar *s2;
JREC *jrec;
void
num_type14(u_char* s1, u_char* s2, JREC* jrec)
{
Uchar num[NumKetaLength];
Int len;
u_char num[NumKetaLength];
int len;
len = setucnum(s1, (Int)jrec -> numlen, num);
len = setucnum(s1, (int)jrec -> numlen, num);
num_kurai(num, len, Num2tbl);