diff options
Diffstat (limited to 'stdlib/util.c')
| -rw-r--r-- | stdlib/util.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/stdlib/util.c b/stdlib/util.c new file mode 100644 index 00000000..7749b22c --- /dev/null +++ b/stdlib/util.c @@ -0,0 +1,28 @@ +// Built-in utility functions +#include <ctype.h> +#include <gc.h> +#include <stdarg.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include "text.h" +#include "util.h" + +public bool USE_COLOR; + +__attribute__((format(printf, 1, 2))) +public char *heap_strf(const char *fmt, ...) +{ + va_list args; + va_start(args, fmt); + char *tmp = NULL; + int len = vasprintf(&tmp, fmt, args); + if (len < 0) return NULL; + va_end(args); + char *ret = GC_strndup(tmp, (size_t)len); + free(tmp); + return ret; +} + +// vim: ts=4 sw=0 et cino=L2,l1,(0,W4,m1,\:0 |
