diff options
| author | Zuhaitz Méndez Fernández de Aránguiz <zuhaitz@debian> | 2026-01-23 01:54:51 +0000 |
|---|---|---|
| committer | Zuhaitz Méndez Fernández de Aránguiz <zuhaitz@debian> | 2026-01-23 01:54:51 +0000 |
| commit | 98623f2fdd63232edf0ebab1b9680cf4e33e6f10 (patch) | |
| tree | 46e05b4953ea873bc5e52339a333f7911fc22867 /std/io.zc | |
| parent | 8cb7089b2eb09d40d9497cea40d088d94676a8c6 (diff) | |
More docs, and a few improvements for the standard library
Diffstat (limited to 'std/io.zc')
| -rw-r--r-- | std/io.zc | 22 |
1 files changed, 22 insertions, 0 deletions
@@ -1,5 +1,6 @@ import "./core.zc" +import "./string.zc" raw { char* format(const char* fmt, ...) { @@ -34,8 +35,29 @@ raw { { return fgetc((FILE*)stream); } + + char* _z_format_alloc(const char* fmt, va_list args) { + int len = vsnprintf(NULL, 0, fmt, args); + if (len < 0) return NULL; + char* buffer = malloc(len + 1); + if (!buffer) return NULL; + vsnprintf(buffer, len + 1, fmt, args); + return buffer; + } + + char* format_s_raw(char* fmt, ...) { + va_list args; + va_start(args, fmt); + char* ret = _z_format_alloc(fmt, args); + va_end(args); + return ret; + } } +extern fn format_s_raw(fmt: char*, ...) -> char*; + +// TODO: add format function. We will need to do a few updates... +// like adding support for varargs in Zen C functions. fn readln() -> char* { |
