$NetBSD: patch-ag,v 1.5 2005/09/28 18:22:11 rillig Exp $

- Don't abuse an int as a pointer (optarg).
- Consistently provide lowercase and MixedCase options.

--- server/setup.c.orig	Mon Mar 23 11:48:02 1998
+++ server/setup.c	Wed Sep 28 20:06:34 2005
@@ -139,10 +139,13 @@ u_char	*src, *dst;
 
 
 
-static	u_char	*get_str(p, dst)
+static	u_char	*get_str(p, pv_dst)
 u_char	*p;
-char	**dst;
+void	*pv_dst;
 {
+	char		**dst;
+
+	dst = pv_dst;
 	if (!*dst) {
 		*dst = malloc(strlen((char *)p) + 1);
 		if (!*dst) RcError("no more memory");
@@ -151,21 +154,26 @@ char	**dst;
 	while (*p++) ;
 	return p;
 }
-static	u_char	*get_int(p, dst)
+static	u_char	*get_int(p, pv_dst)
 u_char	*p;
-int	*dst;
+void	*pv_dst;
 {
 	register char	*fmt;
+	int		*dst;
 
+	dst = pv_dst;
 	fmt = (*p == '0') ? "%o" : "%d";
 	if (sscanf((char *)p, fmt, dst) != 1) RcError("bad integer");
 	while (*p++) ;
 	return p;
 }
-static	u_char	*get_flag(p, dst)
+static	u_char	*get_flag(p, pv_dst)
 u_char	*p;
-int	*dst;
+void	*pv_dst;
 {
+	int		*dst;
+
+	dst = pv_dst;
 	if (sscanf((char *)p, "%d", dst) == 1)
 		;
 	else if (!cmpstr("on", p))
@@ -219,33 +227,56 @@ StrList	**dst;
 struct	optlist {
 	char	*optname;
 	u_char	*(*optfunc)();
-	int	optarg;
+	void	*optarg;
 } option[] = {
-	"DebugOut",	get_str,	(int)&debug_file,
-	"DebugLevel",	get_int,	(int)&debug_level,
-	"ForkFlag",	get_flag,	(int)&fork_flag,
+/*
+ * 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,	(int)&port_name,
+	"PortName",	get_str,	&port_name,
+	"portname",	get_str,	&port_name,
 #ifdef TLI
-	"PortNumber",	get_str,	(int)&port_number,
-        "ProtoName",    get_str,        (int)&proto_name,
+	"PortNumber",	get_str,	&port_number,
+	"portnumber",	get_str,	&port_number,
+	"ProtoName",    get_str,        &proto_name,
+	"protoname",    get_str,        &proto_name,
 #else
-	"PortNumber",	get_int,	(int)&port_number,
+	"PortNumber",	get_int,	&port_number,
+	"portnumber",	get_int,	&port_number,
 #endif
-	"SocketName",	get_str,	(int)&socket_name,
+	"SocketName",	get_str,	&socket_name,
+	"socketname",	get_str,	&socket_name,
 #ifdef	LOCK_FILE
-	"LockFile",	get_str,	(int)&lock_file;
+	"LockFile",	get_str,	&lock_file;
+	"lockfile",	get_str,	&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,
+	"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
 };
 
