Mostly printf and friends.
Signed-off-by: Keith Packard <keithp@keithp.com>
#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)
/* 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 */
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
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[] = {
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
#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);
}
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;
}
void
-ao_scheme_vprintf(char *format, va_list args)
+ao_scheme_vprintf(const char *format, va_list args)
{
char c;
}
void
-ao_scheme_printf(char *format, ...)
+ao_scheme_printf(const char *format, ...)
{
va_list args;
va_start(args, format);
}
ao_poly
-ao_scheme_error(int error, char *format, ...)
+ao_scheme_error(int error, const char *format, ...)
{
va_list args;
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");
}
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
*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))
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
*/
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));
}
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");