summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chat.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/chat.h b/chat.h
index e48799c..e9bee8b 100644
--- a/chat.h
+++ b/chat.h
@@ -44,6 +44,18 @@
typedef unsigned uint;
typedef unsigned char byte;
+static inline char *seprintf(char *ptr, char *end, const char *fmt, ...)
+ __attribute__((format(printf, 3, 4)));
+static inline char *seprintf(char *ptr, char *end, const char *fmt, ...) {
+ va_list ap;
+ va_start(ap, fmt);
+ int n = vsnprintf(ptr, end - ptr, fmt, ap);
+ va_end(ap);
+ if (n < 0) return NULL;
+ ptr += n;
+ return (ptr > end ? end : ptr);
+}
+
struct Cat {
char *buf;
size_t cap;