the CLI functions we hit the fact that the evbuffer functions in libevent
are not properly constified.
It's better to deconst the error messages and just "let it be known" that
argv[0] is const (or NULL).
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@110
d4fa192b-c00b-0410-8231-
f00ffab90ce4
struct cli; /* NB: struct cli is opaque at this level. */
-typedef void cli_func_t(struct cli*, const char **av, void *priv);
+typedef void cli_func_t(struct cli*, char **av, void *priv);
struct cli_proto {
/* These must match the CLI_* macros in cli.h */
*/
/* from libvarnish/argv.c */
-void FreeArgv(const char **argv);
-const char **ParseArgv(const char *s, int comment);
+void FreeArgv(char **argv);
+char **ParseArgv(const char *s, int comment);
/* Assert zero return value */
return (p);
}
-const char **
+char **
ParseArgv(const char *s, int comment)
{
- const char **argv;
+ char **argv;
const char *p;
int nargv, largv;
int i, quote;
if (*s == '\\') {
i = BackSlash(s, NULL);
if (i == 0) {
- argv[0] = "Illegal backslash sequence";
+ argv[0] = (void*)(uintptr_t)"Illegal backslash sequence";
return (argv);
}
s += i;
if (*s == '"')
break;
if (*s == '\0') {
- argv[0] = "Missing '\"'";
+ argv[0] = (void*)(uintptr_t)"Missing '\"'";
return (argv);
}
s++;
}
void
-FreeArgv(const char **argv)
+FreeArgv(char **argv)
{
int i;
for (i = 1; argv[i] != NULL; i++)
- free((void *)(uintptr_t)argv[i]);
+ free(argv[i]);
free(argv);
}
*/
void
-cli_func_help(struct cli *cli, const char **av, void *priv)
+cli_func_help(struct cli *cli, char **av, void *priv)
{
struct cli_proto *cp;
void
cli_dispatch(struct cli *cli, struct cli_proto *clp, const char *line)
{
- const char **av;
+ char **av;
unsigned u;
struct cli_proto *cp;