return a;
}
+char *
+ao_lisp_string_copy(char *a)
+{
+ int alen = strlen(a);
+
+ char *r = ao_lisp_alloc(alen + 1);
+ if (!r)
+ return NULL;
+ strcpy(r, a);
+ return r;
+}
+
char *
ao_lisp_string_cat(char *a, char *b)
{
return r;
}
-const struct ao_lisp_mem_type ao_lisp_string_type = {
+const struct ao_lisp_type ao_lisp_string_type = {
.mark = string_mark,
.size = string_size,
.move = string_move,
};
void
-ao_lisp_string_print(char *s)
+ao_lisp_string_print(ao_poly p)
{
+ char *s = ao_lisp_poly_string(p);
char c;
+
putchar('"');
while ((c = *s++)) {
switch (c) {