diff -arcN ../sj3-2.0.1.13.org/doc/doc/sj3lib.ms ./doc/doc/sj3lib.ms
*** ../sj3-2.0.1.13.org/doc/doc/sj3lib.ms	Fri Jun  3 17:00:49 1994
--- ./doc/doc/sj3lib.ms	Tue Aug 13 03:17:26 1996
***************
*** 56,62 ****
  .IP 
  ᥤ󼭽񡢥桼񡢳ؽեϡ³륵ФưƤޥΤΤѤޤ
  .br
! ΥեϡǥեȤǤϥǥ쥯ȥ \fB/usr/dict/sj3\fP βˤޤФΥåȥåץեˤѹǽǤ
  .IP 
  桼ȳؽեϡؿ sj3_open ǻꤵ줿桼̾ USER 
  С\fBuser/USER/private.dic\fP  \fBuser/USER/study.dat\fP Ǥ
--- 56,62 ----
  .IP 
  ᥤ󼭽񡢥桼񡢳ؽեϡ³륵ФưƤޥΤΤѤޤ
  .br
! ΥեϡǥեȤǤϥǥ쥯ȥ \fB/usr/local/lib/sj3/dict\fP βˤޤФΥåȥåץեˤѹǽǤ
  .IP 
  桼ȳؽեϡؿ sj3_open ǻꤵ줿桼̾ USER 
  С\fBuser/USER/private.dic\fP  \fBuser/USER/study.dat\fP Ǥ
***************
*** 91,97 ****
  Ф³ǤȤˤ 0 򡢲顼ΤäȤˤ 0 ʳ
  顼ơ֤ޤ
  .sp
! 顼ơϥإåե \fB/usr/include/sj3lib.h\fP 
  ӥåȥ󤵤줿ͤǡܺ٤ϰʲΤȤǤ
  .sp
  .IP "\fBSJ3_SERVER_DEAD\fP
--- 91,97 ----
  Ф³ǤȤˤ 0 򡢲顼ΤäȤˤ 0 ʳ
  顼ơ֤ޤ
  .sp
! 顼ơϥإåե \fB/usr/local/include/sj3lib.h\fP 
  ӥåȥ󤵤줿ͤǡܺ٤ϰʲΤȤǤ
  .sp
  .IP "\fBSJ3_SERVER_DEAD\fP
***************
*** 138,144 ****
  ФȤλѤ˽λǤȤˤ 0 
  顼ΤäȤˤ 0 ʳΥ顼ơ֤ޤ
  .sp
! 顼ơϥإåե \fB/usr/include/sj3lib.h\fP 
  ӥåȥ󤵤줿ͤǡܺ٤ϰʲΤȤǤ
  .sp
  .IP "\fBSJ3_SERVER_DEAD\fP
--- 138,144 ----
  ФȤλѤ˽λǤȤˤ 0 
  顼ΤäȤˤ 0 ʳΥ顼ơ֤ޤ
  .sp
! 顼ơϥإåե \fB/usr/local/include/sj3lib.h\fP 
  ӥåȥ󤵤줿ͤǡܺ٤ϰʲΤȤǤ
  .sp
  .IP "\fBSJ3_SERVER_DEAD\fP
***************
*** 187,193 ****
  Ѵ̤δʸ \fBstruct bunsetu bun[]\fP 
  ʸ˴ؤ򥻥åȤޤ
  .br
! \fBstruct bunsetu\fP ϥإåե \fB/usr/include/sj3lib.h\fP 
  ƤʲΤ褦ʹ¤ΤǤ
  .sp
  .RS
--- 187,193 ----
  Ѵ̤δʸ \fBstruct bunsetu bun[]\fP 
  ʸ˴ؤ򥻥åȤޤ
  .br
! \fBstruct bunsetu\fP ϥإåե \fB/usr/local/include/sj3lib.h\fP 
  ƤʲΤ褦ʹ¤ΤǤ
  .sp
  .RS
***************
*** 417,423 ****
  ʤޤ
  ޤĹϡǤ 32 ʸۤƤϤʤޤ
  .sp
! ʻ쥳ɤϥإåե \fB/usr/include/sj3lib.h\fP 
  ʲʻΤΰĤǤ
  .sp
  .RS
--- 417,423 ----
  ʤޤ
  ޤĹϡǤ 32 ʸۤƤϤʤޤ
  .sp
! ʻ쥳ɤϥإåե \fB/usr/local/include/sj3lib.h\fP 
  ʲʻΤΰĤǤ
  .sp
  .RS
***************
*** 445,451 ****
  ϿǤȤˤ 0 ϿǤʤäȤˤϤʳ
  顼ơ֤ޤ
  .sp
! 顼ơϥإåե \fB/usr/include/sj3lib.h\fP 
  졢ܺ٤ϰʲΤȤǤ
  .sp
  .IP "\fBSJ3_DICT_ERROR\fP
--- 445,451 ----
  ϿǤȤˤ 0 ϿǤʤäȤˤϤʳ
  顼ơ֤ޤ
  .sp
! 顼ơϥإåե \fB/usr/local/include/sj3lib.h\fP 
  졢ܺ٤ϰʲΤȤǤ
  .sp
  .IP "\fBSJ3_DICT_ERROR\fP
***************
*** 519,525 ****
  ʤޤ
  ޤĹϡǤ 32 ʸۤƤϤʤޤ
  .sp
! ʻ쥳ɤ \fB/usr/include/sj3lib.h\fP ʲʻ
  ΰĤǤ
  .sp
  .RS
--- 519,525 ----
  ʤޤ
  ޤĹϡǤ 32 ʸۤƤϤʤޤ
  .sp
! ʻ쥳ɤ \fB/usr/local/include/sj3lib.h\fP ʲʻ
  ΰĤǤ
  .sp
  .RS
***************
*** 547,553 ****
  ǤȤˤ 0 ǤʤäȤˤϤʳ
  顼ơ֤ޤ
  .sp
! 顼ơ \fB/usr/include/sj3lib.h\fP 졢
  ܺ٤ϰʲΤȤǤ
  .sp
  .IP "\fBSJ3_DICT_ERROR\fP
--- 547,553 ----
  ǤȤˤ 0 ǤʤäȤˤϤʳ
  顼ơ֤ޤ
  .sp
! 顼ơ \fB/usr/local/include/sj3lib.h\fP 졢
  ܺ٤ϰʲΤȤǤ
  .sp
  .IP "\fBSJ3_DICT_ERROR\fP
diff -arcN ../sj3-2.0.1.13.org/doc/doc/sj3serv.ms ./doc/doc/sj3serv.ms
*** ../sj3-2.0.1.13.org/doc/doc/sj3serv.ms	Fri Jun  3 17:00:50 1994
--- ./doc/doc/sj3serv.ms	Tue Aug 13 03:18:01 1996
***************
*** 111,117 ****
  Υե̾ХѥȤƼ˥ޤ\'/\'ʳΤȤˤϡ
  ǻꤵǥ쥯ȥ꤫ХѥȤƼ˥ޤ
  .br
! ǥեȤ /usr/dict/sj3 Ǥ
  .RE
  .sp
  .NH 3
--- 111,117 ----
  Υե̾ХѥȤƼ˥ޤ\'/\'ʳΤȤˤϡ
  ǻꤵǥ쥯ȥ꤫ХѥȤƼ˥ޤ
  .br
! ǥեȤ /usr/local/lib/sj3/dict Ǥ
  .RE
  .sp
  .NH 3
diff -arcN ../sj3-2.0.1.13.org/doc/man/sj3.1 ./doc/man/sj3.1
*** ../sj3-2.0.1.13.org/doc/man/sj3.1	Fri Jun  3 17:00:51 1994
--- ./doc/man/sj3.1	Tue Aug 13 03:18:59 1996
***************
*** 109,121 ****
  .SH Ϣե
  .PD 0
  .TP 15
! /usr/dict/sj3/user/$USER/private.dic
  ̾Ѵ桼
  .TP
! /usr/dict/sj3/user/$USER/study.dat
  ̾Ѵؽե
  .TP
! /usr/lib/sj3/sjrk
  ǥեȥ޻̾Ѵ§ե
  .SH Ϣ
  sj3serv(1), sj3lib(3) 
--- 109,121 ----
  .SH Ϣե
  .PD 0
  .TP 15
! /usr/local/lib/sj3/dict/user/$USER/private.dic
  ̾Ѵ桼
  .TP
! /usr/local/lib/sj3/dict/user/$USER/study.dat
  ̾Ѵؽե
  .TP
! /usr/local/lib/sj3/sjrk
  ǥեȥ޻̾Ѵ§ե
  .SH Ϣ
  sj3serv(1), sj3lib(3) 
diff -arcN ../sj3-2.0.1.13.org/doc/man/sj3dic.1 ./doc/man/sj3dic.1
*** ../sj3-2.0.1.13.org/doc/man/sj3dic.1	Fri Jun  3 17:00:52 1994
--- ./doc/man/sj3dic.1	Tue Aug 13 03:19:55 1996
***************
*** 105,120 ****
  .SH Ϣե
  .PD 0
  .TP \w'\ \ \ \ user/\fIusername\fP/private.dic'u+2n
! /usr/bin/sj3serv
  ʴѴ
  .TP
! /usr/lib/sj3/serverrc
  ʴѴ åȥåץե
  .TP
! /usr/bin/sj3
  ܸϥեȥɥץå
  .TP
! /usr/dict/sj3/
  ʴѴ ǥեȼǥ쥯ȥ
  .TP
      sj3main.dic
--- 105,120 ----
  .SH Ϣե
  .PD 0
  .TP \w'\ \ \ \ user/\fIusername\fP/private.dic'u+2n
! /usr/local/bin/sj3serv
  ʴѴ
  .TP
! /usr/local/lib/sj3/serverrc
  ʴѴ åȥåץե
  .TP
! /usr/local/bin/sj3
  ܸϥեȥɥץå
  .TP
! /usr/local/lib/sj3/dict/
  ʴѴ ǥեȼǥ쥯ȥ
  .TP
      sj3main.dic
***************
*** 126,135 ****
      user/\fIusername\fP/study.dat
  ʴѴؽե
  .TP
! /usr/include/sj3lib.h
  ʴѴ饤֥ѥ󥯥롼ɥե
  .TP
! /usr/lib/libsj3lib.a
  ʴѴ饤֥
  .\".TP
  .\"/usr/sony/demo/sj3/*
--- 126,135 ----
      user/\fIusername\fP/study.dat
  ʴѴؽե
  .TP
! /usr/local/include/sj3lib.h
  ʴѴ饤֥ѥ󥯥롼ɥե
  .TP
! /usr/local/lib/libsj3lib.a
  ʴѴ饤֥
  .\".TP
  .\"/usr/sony/demo/sj3/*
diff -arcN ../sj3-2.0.1.13.org/doc/man/sj3mkdic.1 ./doc/man/sj3mkdic.1
*** ../sj3-2.0.1.13.org/doc/man/sj3mkdic.1	Fri Dec  9 18:15:37 1994
--- ./doc/man/sj3mkdic.1	Tue Aug 13 03:20:17 1996
***************
*** 550,565 ****
  .SH ե
  .PD 0
  .TP \w'\ \ \ \ user/\f2username\f1/private.dic'u+2n
! .B /usr/bin/sj3serv
  ʴѴ
  .TP
! .B /usr/lib/sj3/serverrc
  ʴѴ åȥåץե
  .TP
! .B /usr/bin/sj3
  ܸϥեȥɥץå
  .TP
! .B /usr/dict/sj3/
  ʴѴ ǥեȼǥ쥯ȥ
  .TP
  .B "   sj3main.dic
--- 550,565 ----
  .SH ե
  .PD 0
  .TP \w'\ \ \ \ user/\f2username\f1/private.dic'u+2n
! .B /usr/local/bin/sj3serv
  ʴѴ
  .TP
! .B /usr/local/lib/sj3/serverrc
  ʴѴ åȥåץե
  .TP
! .B /usr/local/bin/sj3
  ܸϥեȥɥץå
  .TP
! .B /usr/local/lib/sj3/dict/
  ʴѴ ǥեȼǥ쥯ȥ
  .TP
  .B "   sj3main.dic
***************
*** 571,584 ****
  .B "   user/\f2username\f1/study.dat
  ʴѴؽե
  .TP
! .B /usr/include/sj3lib.h
  ʴѴ饤֥ѥ󥯥롼ɥե
  .TP
! .B /usr/lib/libsj3lib.a
  ʴѴ饤֥
! .TP
! \f3/usr/demo/sj3/ *\f1
! ʴѴ饤֥ ˡץ
  .PD
  .SH Ϣ
  \f4sj3\f1 (1),
--- 571,584 ----
  .B "   user/\f2username\f1/study.dat
  ʴѴؽե
  .TP
! .B /usr/local/include/sj3lib.h
  ʴѴ饤֥ѥ󥯥롼ɥե
  .TP
! .B /usr/local/lib/libsj3lib.a
  ʴѴ饤֥
! .\".TP
! .\"\f3/usr/local/demo/sj3/ *\f1
! .\"ʴѴ饤֥ ˡץ
  .PD
  .SH Ϣ
  \f4sj3\f1 (1),
diff -arcN ../sj3-2.0.1.13.org/doc/man/sj3serv.1 ./doc/man/sj3serv.1
*** ../sj3-2.0.1.13.org/doc/man/sj3serv.1	Fri Jun  3 17:00:53 1994
--- ./doc/man/sj3serv.1	Tue Aug 13 03:20:41 1996
***************
*** 47,63 ****
  Υץϡ\fIsj3serv\fP ɤ߹ॻåȥåץեꤷޤ
  .br
  \fIsj3serv\fP ϥǥեȤǤϥåȥåץե
! /usr/lib/sj3/serverrcǤɤ߹ߤޤ
  Υץ󤬻ꤵ줿ȤˤϤ
  ޥɥ饤ǻꤵ줿åȥåץեɤ߹ߤޤ
  .br
  .SH Ϣե
  .PD 0
  .TP \w'\ \ \ \ user/\fIusername\fP/private.dic'u+2n
! /usr/lib/sj3/serverrc
  ǥեȲ̾Ѵ åȥåץե
  .TP
! /usr/sony/dict/sj3/
  ʴѴ ǥեȼǥ쥯ȥ
  .TP
      sj3main.dic
--- 47,63 ----
  Υץϡ\fIsj3serv\fP ɤ߹ॻåȥåץեꤷޤ
  .br
  \fIsj3serv\fP ϥǥեȤǤϥåȥåץե
! /usr/local/lib/sj3/serverrcǤɤ߹ߤޤ
  Υץ󤬻ꤵ줿ȤˤϤ
  ޥɥ饤ǻꤵ줿åȥåץեɤ߹ߤޤ
  .br
  .SH Ϣե
  .PD 0
  .TP \w'\ \ \ \ user/\fIusername\fP/private.dic'u+2n
! /usr/local/lib/sj3/serverrc
  ǥեȲ̾Ѵ åȥåץե
  .TP
! /usr/local/lib/sj3/dict/
  ʴѴ ǥեȼǥ쥯ȥ
  .TP
      sj3main.dic
*** server/setup.c.orig	Mon Mar 23 05:48:02 1998
--- server/setup.c	Fri Feb  2 19:53:37 2001
***************
*** 217,251 ****
  
  
  struct	optlist {
! 	char	*optname;
  	u_char	*(*optfunc)();
! 	int	optarg;
  } option[] = {
! 	"DebugOut",	get_str,	(int)&debug_file,
! 	"DebugLevel",	get_int,	(int)&debug_level,
! 	"ForkFlag",	get_flag,	(int)&fork_flag,
  
! 	"PortName",	get_str,	(int)&port_name,
  #ifdef TLI
! 	"PortNumber",	get_str,	(int)&port_number,
!         "ProtoName",    get_str,        (int)&proto_name,
  #else
! 	"PortNumber",	get_int,	(int)&port_number,
  #endif
! 	"SocketName",	get_str,	(int)&socket_name,
  #ifdef	LOCK_FILE
! 	"LockFile",	get_str,	(int)&lock_file;
  #endif
  
! 	"maxclient",	get_int,	(int)&max_client,
! 	"dictdir",	get_str,	(int)&dict_dir,
! 	"readdict",	get_list,	(int)&read_dict,
! 	"opendict",	get_list,	(int)&open_dict,
! 	"errorout",	get_str,	(int)&error_file,
! 	"logout",	get_str,	(int)&log_file,
! 	"dirmode",	get_int,	(int)&dir_mode,
! 	"filemode",	get_int,	(int)&file_mode,
! 	"allowuser",	get_list,	(int)&allow_user,
  	0, 0, 0
  };
  
--- 217,274 ----
  
  
  struct	optlist {
! 	const char	*optname;
  	u_char	*(*optfunc)();
! 	void	*optarg;
  } option[] = {
! /*
!  * Add option flag.
!  * Because They are lacked in here. See document.
!  * Patched by Hidekazu Kuroki(hidekazu@cs.titech.ac.jp)		1996/8/10
!  */
! 	"DebugOut",	get_str,	&debug_file,
! 	"debugout",	get_str,	&debug_file,
! 	"DebugLevel",	get_int,	&debug_level,
! 	"debuglevel",	get_int,	&debug_level,
! 	"ForkFlag",	get_flag,	&fork_flag,
! 	"forkflag",	get_flag,	&fork_flag,
  
! 	"PortName",	get_str,	&port_name,
! 	"portname",	get_str,	&port_name,
  #ifdef TLI
! 	"PortNumber",	get_str,	&port_number,
! 	"portnumber",	get_str,	&port_number,
! 	"ProtoName",    get_str,        &proto_name,
! 	"protoname",    get_str,        &proto_name,
  #else
! 	"PortNumber",	get_int,	&port_number,
! 	"portnumber",	get_int,	&port_number,
  #endif
! 	"SocketName",	get_str,	&socket_name,
! 	"socketname",	get_str,	&socket_name,
  #ifdef	LOCK_FILE
! 	"LockFile",	get_str,	&lock_file;
! 	"lockfile",	get_str,	&lock_file;
  #endif
  
! 	"MaxClient",	get_int,	&max_client,
! 	"maxclient",	get_int,	&max_client,
! 	"DictDir",	get_str,	&dict_dir,
! 	"dictdir",	get_str,	&dict_dir,
! 	"ReadDict",	get_list,	&read_dict,
! 	"readdict",	get_list,	&read_dict,
! 	"OpenDict",	get_list,	&open_dict,
! 	"opendict",	get_list,	&open_dict,
! 	"ErrorOut",	get_str,	&error_file,
! 	"errorout",	get_str,	&error_file,
! 	"LogOut",	get_str,	&log_file,
! 	"logout",	get_str,	&log_file,
! 	"DirMode",	get_int,	&dir_mode,
! 	"dirmode",	get_int,	&dir_mode,
! 	"FileMode",	get_int,	&file_mode,
! 	"filemode",	get_int,	&file_mode,
! 	"AllowUser",	get_list,	&allow_user,
! 	"allowuser",	get_list,	&allow_user,
  	0, 0, 0
  };
  
***************
*** 424,441 ****
  	int	c;
  	int	errflg = 0;
  	char	*p;
  
  	extern	char	*optarg, *strrchr();
  	extern	int	optind;
  
  	p = (p = strrchr(argv[0], '/')) ? p + 1 : argv[0];
! 	strcpy(program_name,	p);
! 	strcpy(runcmd_file,	RunCmdFile);
  
  	while ((c = getopt(argc, argv, "f:")) != EOF) {
  		switch (c) {
  		case 'f':
! 			strcpy(runcmd_file, optarg);
  			break;
  
  		case '?':
--- 447,467 ----
  	int	c;
  	int	errflg = 0;
  	char	*p;
+ 	size_t	ret;
  
  	extern	char	*optarg, *strrchr();
  	extern	int	optind;
  
  	p = (p = strrchr(argv[0], '/')) ? p + 1 : argv[0];
! 	strlcpy(program_name,	p, sizeof(program_name));
! 	strlcpy(runcmd_file,	RunCmdFile, sizeof(runcmd_file));
  
  	while ((c = getopt(argc, argv, "f:")) != EOF) {
  		switch (c) {
  		case 'f':
! 			ret = strlcpy(runcmd_file, optarg, sizeof(runcmd_file));
! 			if (ret > sizeof(runcmd_file))
! 				errflg++;
  			break;
  
  		case '?':
