extern struct lgetopt myopts[];
-void usage(char *);
-void parseargs(int *, char ***, struct lgetopt *);
+void usage(const char *);
+void parseargs(int *, char * const **, struct lgetopt *);
#endif /* __GETOPT_H_INCLUDED__ */
# define OPTCHAR '-'
void
-parseargs(int *argc, char ***argv, struct lgetopt *opts)
+parseargs(int *argc, char * const **argv, struct lgetopt *opts)
{
int i;
- char *progname = (*argv)[0];
+ const char *progname = (*argv)[0];
/* loop through each argument */
for (;;)
return;
}
- (*argv)[0]++;
-
/* search through our argument list, and see if it matches */
for (i = 0; opts[i].opt; i++)
{
- if(!strcmp(opts[i].opt, (*argv)[0]))
+ if(!strcmp(opts[i].opt, &(*argv)[0][1]))
{
/* found our argument */
found = 1;
fprintf(stderr,
"Error: option '%c%s' requires an argument\n",
OPTCHAR, opts[i].opt);
- usage((*argv)[0]);
+ usage(progname);
}
*((int *) opts[i].argloc) = atoi((*argv)[1]);
}
if(!found)
{
- fprintf(stderr, "error: unknown argument '%c%s'\n", OPTCHAR, (*argv)[0]);
+ fprintf(stderr, "error: unknown argument '%c%s'\n", OPTCHAR, &(*argv)[0][1]);
usage(progname);
}
}
}
void
-usage(char *name)
+usage(const char *name)
{
int i = 0;
rb_dlink_list local_oper_list; /* our opers, duplicated in lclient_list */
rb_dlink_list oper_list; /* network opers */
-char **myargv;
+char * const *myargv;
volatile sig_atomic_t dorehash = false;
volatile sig_atomic_t dorehashbans = false;
volatile sig_atomic_t doremotd = false;
* Side Effects - this is where the ircd gets going right now
*/
int
-charybdis_main(int argc, char *argv[])
+charybdis_main(int argc, char * const argv[])
{
int fd;