ref: 0a04c0ef0e6f891e7b1342f862f4c8d5719e2cfa
dir: /unix/seprint.c/
#include <stdio.h> #include <stdarg.h> char * seprint(char *buf, char *e, char *fmt, ...) { va_list a; int n, m; if(e <= buf) return e; va_start(a, fmt); m = e-buf-1; n = vsnprintf(buf, m, fmt, a); va_end(a); return buf + (n < m ? n : m); }