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:
parent
109af13829
commit
4a2d141541
77 changed files with 3421 additions and 3850 deletions
130
sj3dic/sj3dic.c
130
sj3dic/sj3dic.c
|
|
@ -31,31 +31,31 @@
|
|||
* $SonyRCSfile: sj3dic.c,v $
|
||||
* $SonyRevision: 1.2 $
|
||||
* $SonyDate: 1996/02/15 02:22:58 $
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
#include "sj_sysvdef.h"
|
||||
#include <stdio.h>
|
||||
#ifdef SVR4
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#else
|
||||
#include <strings.h>
|
||||
#endif
|
||||
#include <sys/types.h>
|
||||
#include <ctype.h>
|
||||
#include <pwd.h>
|
||||
#include <locale.h>
|
||||
#include <unistd.h>
|
||||
#include "sjtool.h"
|
||||
#include "sj3lib.h"
|
||||
#include "sj3dic.h"
|
||||
|
||||
char *getlogin(), *getenv();
|
||||
struct passwd *getpwnam(), *getpwuid();
|
||||
|
||||
static _open_error();
|
||||
static _close_error();
|
||||
void make_dicname();
|
||||
void setsjserv();
|
||||
static void _open_error(int err);
|
||||
static void _close_error(int err);
|
||||
static void init_env(void);
|
||||
static void make_dicname(void);
|
||||
static int parsearg(int argc, char* argv[]);
|
||||
static void usage(int ret);
|
||||
|
||||
#ifdef __sony_news
|
||||
extern int _sys_code;
|
||||
|
|
@ -71,14 +71,14 @@ static struct option {
|
|||
char *str;
|
||||
int code;
|
||||
} options[] = {
|
||||
"text", EXEC_TEXT,
|
||||
"dict", EXEC_DICT,
|
||||
"init", EXEC_INIT,
|
||||
"verbose", EXEC_VERBOSE,
|
||||
"host", EXEC_SERVER,
|
||||
"server", EXEC_SERVER,
|
||||
"force", EXEC_FORCE,
|
||||
0, 0
|
||||
{ "text", EXEC_TEXT },
|
||||
{ "dict", EXEC_DICT },
|
||||
{ "init", EXEC_INIT },
|
||||
{ "verbose", EXEC_VERBOSE },
|
||||
{ "host", EXEC_SERVER },
|
||||
{ "server", EXEC_SERVER },
|
||||
{ "force", EXEC_FORCE },
|
||||
{ 0, 0 }
|
||||
};
|
||||
|
||||
char prog_name[LONGLENGTH];
|
||||
|
|
@ -92,9 +92,9 @@ int verbose_flag = 0;
|
|||
int init_flag = 0;
|
||||
int force_flag = 0;
|
||||
|
||||
main(argc, argv)
|
||||
int argc;
|
||||
char **argv;
|
||||
|
||||
int
|
||||
main(int argc, char** argv)
|
||||
{
|
||||
int err;
|
||||
int mode;
|
||||
|
|
@ -109,7 +109,10 @@ char **argv;
|
|||
getsjrc();
|
||||
make_dicname();
|
||||
|
||||
if (err = sj3_open(serv_name, user_name, prog_name)) _open_error(err);
|
||||
/* XXX: is this progname intentional? or old variable left? */
|
||||
/* if (err = sj3_open(serv_name, user_name, prog_name)) */
|
||||
if (err = sj3_open(serv_name, user_name))
|
||||
_open_error(err);
|
||||
|
||||
switch (mode) {
|
||||
case EXEC_TEXT:
|
||||
|
|
@ -126,7 +129,8 @@ char **argv;
|
|||
if (err = sj3_close()) _close_error(err);
|
||||
}
|
||||
|
||||
init_env()
|
||||
static void
|
||||
init_env(void)
|
||||
{
|
||||
char *un, *hp, *tn;
|
||||
struct passwd *pwd;
|
||||
|
|
@ -159,8 +163,8 @@ init_env()
|
|||
strcpy(term_name, tn);
|
||||
}
|
||||
|
||||
usage(ret)
|
||||
int ret;
|
||||
static void
|
||||
usage(int ret)
|
||||
{
|
||||
fprintf(stderr,
|
||||
"Usage: %s -{text|dict} [-H host_name] [file_name]\n",
|
||||
|
|
@ -168,9 +172,8 @@ int ret;
|
|||
exit(ret);
|
||||
}
|
||||
|
||||
parsearg(argc, argv)
|
||||
int argc;
|
||||
char *argv[];
|
||||
static int
|
||||
parsearg(int argc, char* argv[])
|
||||
{
|
||||
int errflg = 0;
|
||||
int i, j;
|
||||
|
|
@ -240,8 +243,8 @@ char *argv[];
|
|||
return mode;
|
||||
}
|
||||
|
||||
void
|
||||
make_dicname()
|
||||
static void
|
||||
make_dicname(void)
|
||||
{
|
||||
if (dict_name[0] != '\0') return;
|
||||
|
||||
|
|
@ -251,8 +254,7 @@ make_dicname()
|
|||
}
|
||||
|
||||
void
|
||||
setdicname(dictname)
|
||||
char *dictname;
|
||||
setdicname(char* dictname)
|
||||
{
|
||||
if (dict_name[0] != '\0') return;
|
||||
if (dictname == NULL) return;
|
||||
|
|
@ -260,8 +262,7 @@ char *dictname;
|
|||
}
|
||||
|
||||
void
|
||||
setsjserv(hostname)
|
||||
char *hostname;
|
||||
setsjserv(char* hostname)
|
||||
{
|
||||
if (serv_name[0] != '\0') return;
|
||||
if (hostname == NULL) return;
|
||||
|
|
@ -274,9 +275,8 @@ struct errlist {
|
|||
int flg;
|
||||
};
|
||||
|
||||
static _error_and(err, list)
|
||||
int err;
|
||||
struct errlist *list;
|
||||
static void
|
||||
_error_and(int err, struct errlist* list)
|
||||
{
|
||||
int flag = 0;
|
||||
|
||||
|
|
@ -291,41 +291,41 @@ struct errlist *list;
|
|||
if (flag) exit(1);
|
||||
}
|
||||
|
||||
static _open_error(err)
|
||||
int err;
|
||||
static void
|
||||
_open_error(int err)
|
||||
{
|
||||
static struct errlist err_msg[] = {
|
||||
SJ3_SERVER_DEAD, "\245\265\241\274\245\320\244\254\273\340\244\363\244\307\244\244\244\336\244\271", 1,
|
||||
SJ3_CONNECT_ERROR, "\245\265\241\274\245\320\244\310\300\334\302\263\244\307\244\255\244\336\244\273\244\363\244\307\244\267\244\277", 1,
|
||||
SJ3_ALREADY_CONNECTED, "\245\265\241\274\245\320\244\310\300\334\302\263\272\321\244\307\244\271", 1,
|
||||
SJ3_CANNOT_OPEN_MDICT, "\245\341\245\244\245\363\274\255\275\361\244\254\245\252\241\274\245\327\245\363\244\307\244\255\244\336\244\273\244\363", 0,
|
||||
SJ3_CANNOT_OPEN_UDICT, "\245\346\241\274\245\266\274\255\275\361\244\254\245\252\241\274\245\327\245\363\244\307\244\255\244\336\244\273\244\363", 1,
|
||||
SJ3_CANNOT_OPEN_STUDY, "\263\330\275\254\245\325\245\241\245\244\245\353\244\254\245\252\241\274\245\327\245\363\244\307\244\255\244\336\244\273\244\363", 0,
|
||||
SJ3_CANNOT_MAKE_UDIR, "\245\346\241\274\245\266\241\274\245\307\245\243\245\354\245\257\245\310\245\352\244\254\272\356\300\256\244\307\244\255\244\336\244\273\244\363", 1,
|
||||
SJ3_CANNOT_MAKE_UDICT, "\245\346\241\274\245\266\274\255\275\361\244\254\272\356\300\256\244\307\244\255\244\336\244\273\244\363", 1,
|
||||
SJ3_CANNOT_MAKE_STUDY, "\263\330\275\254\245\325\245\241\245\244\245\353\244\254\272\356\300\256\244\307\244\255\244\336\244\273\244\363", 0,
|
||||
-1, "\245\250\245\351\241\274", 1,
|
||||
0, 0, 0
|
||||
{ SJ3_SERVER_DEAD, "\245\265\241\274\245\320\244\254\273\340\244\363\244\307\244\244\244\336\244\271", 1 },
|
||||
{ SJ3_CONNECT_ERROR, "\245\265\241\274\245\320\244\310\300\334\302\263\244\307\244\255\244\336\244\273\244\363\244\307\244\267\244\277", 1 },
|
||||
{ SJ3_ALREADY_CONNECTED, "\245\265\241\274\245\320\244\310\300\334\302\263\272\321\244\307\244\271", 1 },
|
||||
{ SJ3_CANNOT_OPEN_MDICT, "\245\341\245\244\245\363\274\255\275\361\244\254\245\252\241\274\245\327\245\363\244\307\244\255\244\336\244\273\244\363", 0 },
|
||||
{ SJ3_CANNOT_OPEN_UDICT, "\245\346\241\274\245\266\274\255\275\361\244\254\245\252\241\274\245\327\245\363\244\307\244\255\244\336\244\273\244\363", 1 },
|
||||
{ SJ3_CANNOT_OPEN_STUDY, "\263\330\275\254\245\325\245\241\245\244\245\353\244\254\245\252\241\274\245\327\245\363\244\307\244\255\244\336\244\273\244\363", 0 },
|
||||
{ SJ3_CANNOT_MAKE_UDIR, "\245\346\241\274\245\266\241\274\245\307\245\243\245\354\245\257\245\310\245\352\244\254\272\356\300\256\244\307\244\255\244\336\244\273\244\363", 1 },
|
||||
{ SJ3_CANNOT_MAKE_UDICT, "\245\346\241\274\245\266\274\255\275\361\244\254\272\356\300\256\244\307\244\255\244\336\244\273\244\363", 1 },
|
||||
{ SJ3_CANNOT_MAKE_STUDY, "\263\330\275\254\245\325\245\241\245\244\245\353\244\254\272\356\300\256\244\307\244\255\244\336\244\273\244\363", 0 },
|
||||
{ -1, "\245\250\245\351\241\274", 1 },
|
||||
{ 0, 0, 0 }
|
||||
};
|
||||
|
||||
_error_and(err, err_msg);
|
||||
}
|
||||
|
||||
static _close_error(err)
|
||||
int err;
|
||||
static void
|
||||
_close_error(int err)
|
||||
{
|
||||
static struct errlist err_msg[] = {
|
||||
SJ3_SERVER_DEAD, "\245\265\241\274\245\320\241\274\244\254\273\340\244\363\244\307\244\244\244\336\244\271", 1,
|
||||
SJ3_DISCONNECT_ERROR, "\300\332\244\352\312\374\244\267\244\307\245\250\245\351\241\274\244\254\244\242\244\352\244\336\244\267\244\277", 1,
|
||||
SJ3_NOT_CONNECTED, "\245\265\241\274\245\320\244\310\300\334\302\263\244\265\244\354\244\306\244\244\244\336\244\273\244\363", 1,
|
||||
SJ3_NOT_OPENED_MDICT, "\245\341\245\244\245\363\274\255\275\361\244\317\245\252\241\274\245\327\245\363\244\265\244\354\244\306\244\244\244\336\244\273\244\363", 0,
|
||||
SJ3_NOT_OPENED_UDICT, "\245\346\241\274\245\266\274\255\275\361\244\317\245\252\241\274\245\327\245\363\244\265\244\354\244\306\244\244\244\336\244\273\244\363", 1,
|
||||
SJ3_NOT_OPENED_STUDY, "\263\330\275\254\245\325\245\241\245\244\245\353\244\317\245\252\241\274\245\327\245\363\244\265\244\354\244\306\244\244\244\336\244\273\244\363", 0,
|
||||
SJ3_CLOSE_MDICT_ERROR, "\245\341\245\244\245\363\274\255\275\361\244\254\245\257\245\355\241\274\245\272\244\307\244\255\244\336\244\273\244\363", 0,
|
||||
SJ3_CLOSE_UDICT_ERROR, "\245\346\241\274\245\266\274\255\275\361\244\254\245\257\245\355\241\274\245\272\244\307\244\255\244\336\244\273\244\363", 1,
|
||||
SJ3_CLOSE_STUDY_ERROR, "\263\330\275\254\245\325\245\241\245\244\245\353\244\254\245\257\245\355\241\274\245\272\244\307\244\255\244\336\244\273\244\363", 0,
|
||||
-1, "\245\250\245\351\241\274", 1,
|
||||
0, 0, 0
|
||||
{ SJ3_SERVER_DEAD, "\245\265\241\274\245\320\241\274\244\254\273\340\244\363\244\307\244\244\244\336\244\271", 1 },
|
||||
{ SJ3_DISCONNECT_ERROR, "\300\332\244\352\312\374\244\267\244\307\245\250\245\351\241\274\244\254\244\242\244\352\244\336\244\267\244\277", 1 },
|
||||
{ SJ3_NOT_CONNECTED, "\245\265\241\274\245\320\244\310\300\334\302\263\244\265\244\354\244\306\244\244\244\336\244\273\244\363", 1 },
|
||||
{ SJ3_NOT_OPENED_MDICT, "\245\341\245\244\245\363\274\255\275\361\244\317\245\252\241\274\245\327\245\363\244\265\244\354\244\306\244\244\244\336\244\273\244\363", 0 },
|
||||
{ SJ3_NOT_OPENED_UDICT, "\245\346\241\274\245\266\274\255\275\361\244\317\245\252\241\274\245\327\245\363\244\265\244\354\244\306\244\244\244\336\244\273\244\363", 1 },
|
||||
{ SJ3_NOT_OPENED_STUDY, "\263\330\275\254\245\325\245\241\245\244\245\353\244\317\245\252\241\274\245\327\245\363\244\265\244\354\244\306\244\244\244\336\244\273\244\363", 0 },
|
||||
{ SJ3_CLOSE_MDICT_ERROR, "\245\341\245\244\245\363\274\255\275\361\244\254\245\257\245\355\241\274\245\272\244\307\244\255\244\336\244\273\244\363", 0 },
|
||||
{ SJ3_CLOSE_UDICT_ERROR, "\245\346\241\274\245\266\274\255\275\361\244\254\245\257\245\355\241\274\245\272\244\307\244\255\244\336\244\273\244\363", 1 },
|
||||
{ SJ3_CLOSE_STUDY_ERROR, "\263\330\275\254\245\325\245\241\245\244\245\353\244\254\245\257\245\355\241\274\245\272\244\307\244\255\244\336\244\273\244\363", 0 },
|
||||
{ -1, "\245\250\245\351\241\274", 1 },
|
||||
{ 0, 0, 0 }
|
||||
};
|
||||
|
||||
_error_and(err, err_msg);
|
||||
|
|
|
|||
42
sj3dic/sj3dic.h
Normal file
42
sj3dic/sj3dic.h
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
/*
|
||||
* Copyright (c) 2004 Hiroo Ono <hiroo+sj3 at oikumene.gcd.org>
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
* $Id: sj3dic.h,v 1.1 2004/07/03 02:26:56 hiroo Exp $
|
||||
*/
|
||||
|
||||
#ifndef _SJ3DIC_H_
|
||||
#define _SJ3DIC_H_ 1
|
||||
|
||||
/* sj3dic.c */
|
||||
void setdicname(char *dictname);
|
||||
void setsjserv(char *hostname);
|
||||
|
||||
#endif /* _SJ3DIC_H_ */
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue