txlyre 15 órája
szülő
commit
9a80655e4f
2 módosított fájl, 22 hozzáadás és 0 törlés
  1. 21 0
      qirt.c
  2. 1 0
      qirt.h

+ 21 - 0
qirt.c

@@ -668,6 +668,27 @@ void qi_buffer_append_str(qi_buffer_t *buf, char *s)
     qi_buffer_append(buf, *s++);
 }
 
+void qi_buffer_format(qi_buffer_t *buf, const char *fmt, ...)
+{
+  va_list args;
+  va_list largs;
+
+  va_start(largs, fmt);
+  va_copy(args, largs);
+
+  qi_size_t size = vsnprintf(NULL, 0, fmt, largs) + 1;
+  char *str = qi_malloc_atomic(sizeof(char) * size);
+
+  vsnprintf(str, size, fmt, args);
+
+  va_end(args);
+  va_end(largs);
+
+  qi_buffer_append_str(buf, str);
+  
+  qi_free(str);
+}
+
 void qi_buffer_appendn(qi_buffer_t *buf, char *s, qi_size_t z)
 {
   for (qi_size_t i = 0; i < z; i++)

+ 1 - 0
qirt.h

@@ -90,6 +90,7 @@ qi_buffer_t *qi_buffer_make(void);
 void qi_buffer_append(qi_buffer_t *buf, char c);
 void qi_buffer_appendn(qi_buffer_t *buf, char *s, qi_size_t z);
 void qi_buffer_append_str(qi_buffer_t *buf, char *s);
+void qi_buffer_format(qi_buffer_t *buf, const char *fmt, ...);
 void qi_buffer_append_str_escaped(qi_buffer_t *buf, char *s);
 char *qi_buffer_read(qi_buffer_t *buf);
 char *qi_buffer_get(qi_buffer_t *buf);