Tweak cord formatting

This commit is contained in:
Bruce Hill 2024-02-17 14:47:14 -05:00
parent 605eb45626
commit 5d2d54ae0e
4 changed files with 9 additions and 9 deletions

View File

@ -318,7 +318,7 @@ CORD compile(env_t *env, ast_t *ast)
CORD_appendf(&cord_func, "\treturn use_color ? \"\\x1b[0;1m%s\\x1b[m(\\x1b[2m...\\x1b[m)\" : \"%s(...)\";\n}",
def->name, def->name);
} else {
CORD_appendf(&cord_func, "\treturn CORD_asprintf(use_color ? \"\\x1b[0;1m%s\\x1b[m(", def->name);
CORD_appendf(&cord_func, "\treturn StrF(use_color ? \"\\x1b[0;1m%s\\x1b[m(", def->name);
for (arg_ast_t *field = def->fields; field; field = field->next) {
CORD_appendf(&cord_func, "%s=\\x1b[35m%%r\\x1b[m", field->name);
if (field->next) cord_func = CORD_cat(cord_func, ", ");
@ -379,7 +379,7 @@ CORD compile(env_t *env, ast_t *ast)
for (ast_list_t *target = assign->targets; target; target = target->next)
CORD_appendf(&code, "%r = $%ld;\n", compile(env, target->ast), i++);
CORD expr_cord = "CORD_asprintf(\"";
CORD expr_cord = "StrF(\"";
for (ast_list_t *target = assign->targets; target; target = target->next)
expr_cord = CORD_cat(expr_cord, target->next ? "%r, " : "%r");
expr_cord = CORD_cat(expr_cord, "\"");

View File

@ -40,13 +40,13 @@
CORD as_cord(void *x, bool use_color, const char *fmt, ...);
#define CORD_asprintf(...) ({ CORD $c; CORD_sprintf(&$c, __VA_ARGS__); $c; })
#define StrF(...) ({ CORD $c; CORD_sprintf(&$c, __VA_ARGS__); $c; })
#define $var(var, val) __typeof(val) var = val
#define $cord(x) _Generic(x, bool: x ? "yes" : "no", \
int8_t: CORD_asprintf("%d", x), \
int16_t: CORD_asprintf("%d", x), \
int32_t: CORD_asprintf("%d", x), int64_t: CORD_asprintf("%ld", x), \
double: CORD_asprintf("%g", x), float: CORD_asprintf("%g", x), \
int8_t: StrF("%d", x), \
int16_t: StrF("%d", x), \
int32_t: StrF("%d", x), int64_t: StrF("%ld", x), \
double: StrF("%g", x), float: StrF("%g", x), \
CORD: x, \
array_t: as_cord($stack(x), false, "[ ]"), \
default: "???")

2
util.c
View File

@ -70,7 +70,7 @@ public char *mangle(const char *name)
return mangled;
}
CORD CORD_asprintf(const char *fmt, ...)
CORD CORD_asprintf(CORD fmt, ...)
{
va_list args;
va_start(args, fmt);

2
util.h
View File

@ -25,7 +25,7 @@
char *heap_strn(const char *str, size_t len);
char *heap_str(const char *str);
char *heap_strf(const char *fmt, ...);
CORD CORD_asprintf(const char *fmt, ...);
CORD CORD_asprintf(CORD fmt, ...);
#define CORD_appendf(cord, fmt, ...) CORD_sprintf(cord, "%r" fmt, *(cord) __VA_OPT__(,) __VA_ARGS__)
#define asprintfa(...) ({ char *_buf = alloca(snprintf(0, 0, __VA_ARGS__)); sprintf(_buf, __VA_ARGS__); _buf; })