#include "io.h" #include "../cstr/cstr.h" void __wstdn(const char *buf, u64 n) { write(STDOUT_FD, buf, n); } void wstd(const char *buf) { __wstdn(buf, cstr_length(buf)); } void rstd(char *buf, unsigned long count) { read(STDIN_FD, buf, count); } void wstdf__(const char *buf, const void **args) { const char *start = buf; for (; *buf; ++buf) { if (*buf == '%') { if (buf - start > 0) __wstdn(start, buf - start); ++buf; switch (*buf) { case '%': __wstdn("%", 1); break; case 's': __wstdn(((const char **)args)[0], cstr_length(((const char**)args)[0])); ++args; break; } start = buf + 1; } } if (buf - start > 0) __wstdn(start, buf - start); } #ifdef IO_LIB_UNIT_TEST int main() { void *args[] = { "hallo", "welt" }; wstdf__("%s %s\n", args); } #endif