From ba5ee94871e670fbe1ea091dd5731e593df0b29f Mon Sep 17 00:00:00 2001 From: Zuhaitz Méndez Fernández de Aránguiz Date: Sun, 11 Jan 2026 17:47:30 +0000 Subject: Some std for you --- std/io.zc | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 std/io.zc (limited to 'std/io.zc') diff --git a/std/io.zc b/std/io.zc new file mode 100644 index 0000000..e7b6300 --- /dev/null +++ b/std/io.zc @@ -0,0 +1,43 @@ + +import "./core.zc" + +raw { + char* format(const char* fmt, ...) { + static char buffer[1024]; + va_list args; + va_start(args, fmt); + vsnprintf(buffer, sizeof(buffer), fmt, args); + va_end(args); + return buffer; + } + + char* format_new(const char* fmt, ...) { + char* buffer = malloc(1024); + va_list args; + va_start(args, fmt); + vsnprintf(buffer, 1024, fmt, args); + va_end(args); + return buffer; + } +} + +raw { + char* readln() { + char* line = NULL; + size_t len = 0; + ssize_t read; + + read = getline(&line, &len, stdin); + + if (read != -1) { + // Remove newline if present + if (line[read - 1] == '\n') { + line[read - 1] = '\0'; + } + return line; + } + + if (line) free(line); + return NULL; + } +} -- cgit v1.2.3