summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2017-12-12 17:54:03 -0800
committerKeith Packard <keithp@keithp.com>2017-12-12 18:09:11 -0800
commit4bfce37e7567d9c2a09ea4da8113e7639516ed6e (patch)
treebb2e679a33302d5bc655dc5b150f4edccdd29959
parent28dbe9a04b16f79db255baecbf0cd486c510ef58 (diff)
altos/scheme: apply const to places taking const strings.
Mostly printf and friends. Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r--src/scheme/ao_scheme.h12
-rw-r--r--src/scheme/ao_scheme_builtin.c6
-rw-r--r--src/scheme/ao_scheme_error.c10
-rw-r--r--src/scheme/ao_scheme_make_builtin2
-rw-r--r--src/scheme/ao_scheme_make_const.c46
5 files changed, 40 insertions, 36 deletions
diff --git a/src/scheme/ao_scheme.h b/src/scheme/ao_scheme.h
index db4417e5..7e4b3697 100644
--- a/src/scheme/ao_scheme.h
+++ b/src/scheme/ao_scheme.h
@@ -63,7 +63,7 @@ extern uint8_t ao_scheme_const[AO_SCHEME_POOL_CONST] __attribute__((aligned(4)))
#define ao_scheme_pool ao_scheme_const
#define AO_SCHEME_POOL AO_SCHEME_POOL_CONST
-#define _atom(n) ao_scheme_atom_poly(ao_scheme_atom_intern(n))
+#define _atom(n) ao_scheme_atom_poly(ao_scheme_atom_intern((char *) n))
#define _bool(v) ao_scheme_bool_poly(ao_scheme_bool_get(v))
#define _ao_scheme_bool_true _bool(1)
@@ -940,19 +940,19 @@ ao_scheme_stack_eval(void);
/* error */
void
-ao_scheme_vprintf(char *format, va_list args);
+ao_scheme_vprintf(const char *format, va_list args);
void
-ao_scheme_printf(char *format, ...);
+ao_scheme_printf(const char *format, ...);
void
-ao_scheme_error_poly(char *name, ao_poly poly, ao_poly last);
+ao_scheme_error_poly(const char *name, ao_poly poly, ao_poly last);
void
-ao_scheme_error_frame(int indent, char *name, struct ao_scheme_frame *frame);
+ao_scheme_error_frame(int indent, const char *name, struct ao_scheme_frame *frame);
ao_poly
-ao_scheme_error(int error, char *format, ...);
+ao_scheme_error(int error, const char *format, ...);
/* builtins */
diff --git a/src/scheme/ao_scheme_builtin.c b/src/scheme/ao_scheme_builtin.c
index c0f636fa..4def5704 100644
--- a/src/scheme/ao_scheme_builtin.c
+++ b/src/scheme/ao_scheme_builtin.c
@@ -52,7 +52,7 @@ char *ao_scheme_args_name(uint8_t args) {
case AO_SCHEME_FUNC_LAMBDA: return ao_scheme_poly_atom(_ao_scheme_atom_lambda)->name;
case AO_SCHEME_FUNC_NLAMBDA: return ao_scheme_poly_atom(_ao_scheme_atom_nlambda)->name;
case AO_SCHEME_FUNC_MACRO: return ao_scheme_poly_atom(_ao_scheme_atom_macro)->name;
- default: return "???";
+ default: return (char *) "???";
}
}
#else
@@ -64,7 +64,7 @@ static char *
ao_scheme_builtin_name(enum ao_scheme_builtin_id b) {
if (b < _builtin_last)
return ao_scheme_poly_atom(builtin_names[b])->name;
- return "???";
+ return (char *) "???";
}
static const ao_poly ao_scheme_args_atoms[] = {
@@ -79,7 +79,7 @@ ao_scheme_args_name(uint8_t args)
args &= AO_SCHEME_FUNC_MASK;
if (args < sizeof ao_scheme_args_atoms / sizeof ao_scheme_args_atoms[0])
return ao_scheme_poly_atom(ao_scheme_args_atoms[args])->name;
- return "(unknown)";
+ return (char *) "(unknown)";
}
#endif
diff --git a/src/scheme/ao_scheme_error.c b/src/scheme/ao_scheme_error.c
index d580a2c0..c015c76a 100644
--- a/src/scheme/ao_scheme_error.c
+++ b/src/scheme/ao_scheme_error.c
@@ -16,7 +16,7 @@
#include <stdarg.h>
void
-ao_scheme_error_poly(char *name, ao_poly poly, ao_poly last)
+ao_scheme_error_poly(const char *name, ao_poly poly, ao_poly last)
{
int first = 1;
printf("\t\t%s(", name);
@@ -50,7 +50,7 @@ static void tabs(int indent)
}
void
-ao_scheme_error_frame(int indent, char *name, struct ao_scheme_frame *frame)
+ao_scheme_error_frame(int indent, const char *name, struct ao_scheme_frame *frame)
{
int f;
@@ -83,7 +83,7 @@ ao_scheme_error_frame(int indent, char *name, struct ao_scheme_frame *frame)
}
void
-ao_scheme_vprintf(char *format, va_list args)
+ao_scheme_vprintf(const char *format, va_list args)
{
char c;
@@ -112,7 +112,7 @@ ao_scheme_vprintf(char *format, va_list args)
}
void
-ao_scheme_printf(char *format, ...)
+ao_scheme_printf(const char *format, ...)
{
va_list args;
va_start(args, format);
@@ -121,7 +121,7 @@ ao_scheme_printf(char *format, ...)
}
ao_poly
-ao_scheme_error(int error, char *format, ...)
+ao_scheme_error(int error, const char *format, ...)
{
va_list args;
diff --git a/src/scheme/ao_scheme_make_builtin b/src/scheme/ao_scheme_make_builtin
index 78f97789..a4d8326f 100644
--- a/src/scheme/ao_scheme_make_builtin
+++ b/src/scheme/ao_scheme_make_builtin
@@ -101,7 +101,7 @@ dump_casename(builtin_t[*] builtins) {
builtins[i].c_name, builtins[i].lisp_names[0]);
dump_endif(builtins[i]);
}
- printf("\tdefault: return \"???\";\n");
+ printf("\tdefault: return (char *) \"???\";\n");
printf("\t}\n");
printf("}\n");
printf("#endif /* AO_SCHEME_BUILTIN_CASENAME */\n");
diff --git a/src/scheme/ao_scheme_make_const.c b/src/scheme/ao_scheme_make_const.c
index 6bd552f5..d0a51ec8 100644
--- a/src/scheme/ao_scheme_make_const.c
+++ b/src/scheme/ao_scheme_make_const.c
@@ -30,15 +30,15 @@ ao_scheme_make_builtin(enum ao_scheme_builtin_id func, int args) {
}
struct builtin_func {
- char *feature;
- char *name;
- int args;
+ const char *feature;
+ const char *name;
+ int args;
enum ao_scheme_builtin_id func;
};
struct builtin_atom {
- char *feature;
- char *name;
+ const char *feature;
+ const char *name;
};
#define AO_SCHEME_BUILTIN_CONSTS
@@ -306,8 +306,8 @@ ao_scheme_add_feature(struct feature **list, char *name)
*list = feature;
}
-bool
-ao_scheme_has_feature(struct feature *list, char *name)
+static bool
+ao_scheme_has_feature(struct feature *list, const char *name)
{
while (list) {
if (!strcmp(list->name, name))
@@ -317,17 +317,20 @@ ao_scheme_has_feature(struct feature *list, char *name)
return false;
}
-void
-ao_scheme_add_features(struct feature **list, char *names)
+static void
+ao_scheme_add_features(struct feature **list, const char *names)
{
char *saveptr = NULL;
char *name;
+ char *copy = strdup(names);
+ char *save = copy;
- while ((name = strtok_r(names, ",", &saveptr)) != NULL) {
- names = NULL;
+ while ((name = strtok_r(copy, ",", &saveptr)) != NULL) {
+ copy = NULL;
if (!ao_scheme_has_feature(*list, name))
ao_scheme_add_feature(list, name);
}
+ free(save);
}
int
@@ -407,7 +410,7 @@ main(int argc, char **argv)
*/
func_map[prev_func] = target_func++;
}
- a = ao_scheme_atom_intern(funcs[f].name);
+ a = ao_scheme_atom_intern((char *) funcs[f].name);
ao_scheme_atom_def(ao_scheme_atom_poly(a),
ao_scheme_builtin_poly(b));
}
@@ -474,32 +477,33 @@ main(int argc, char **argv)
fprintf(out, "#define _ao_scheme_bool_true 0x%04x\n", ao_scheme_bool_poly(ao_scheme_true));
for (a = ao_scheme_atoms; a; a = ao_scheme_poly_atom(a->next)) {
- char *n = a->name, c;
+ const char *n = a->name;
+ char ch;
fprintf(out, "#define _ao_scheme_atom_");
- while ((c = *n++)) {
- if (isalnum(c))
- fprintf(out, "%c", c);
+ while ((ch = *n++)) {
+ if (isalnum(ch))
+ fprintf(out, "%c", ch);
else
- fprintf(out, "%02x", c);
+ fprintf(out, "%02x", ch);
}
fprintf(out, " 0x%04x\n", ao_scheme_atom_poly(a));
}
fprintf(out, "#ifdef AO_SCHEME_CONST_BITS\n");
fprintf(out, "const uint8_t ao_scheme_const[AO_SCHEME_POOL_CONST] __attribute((aligned(4))) = {");
for (o = 0; o < ao_scheme_top; o++) {
- uint8_t c;
+ uint8_t ch;
if ((o & 0xf) == 0)
fprintf(out, "\n\t");
else
fprintf(out, " ");
- c = ao_scheme_const[o];
+ ch = ao_scheme_const[o];
if (!in_atom)
in_atom = is_atom(o);
if (in_atom) {
- fprintf(out, " '%c',", c);
+ fprintf(out, " '%c',", ch);
in_atom--;
} else {
- fprintf(out, "0x%02x,", c);
+ fprintf(out, "0x%02x,", ch);
}
}
fprintf(out, "\n};\n");