changeset 1885:e69de47d2419

Implement resource helper functions dmfprintf() and dmvfprintf().
author Matti Hamalainen <ccr@tnsp.org>
date Mon, 25 Jun 2018 13:24:50 +0300
parents 47fe47f01fea
children 1af79412f249
files src/dmres.c src/dmres.h
diffstat 2 files changed, 29 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/dmres.c	Mon Jun 25 13:24:27 2018 +0300
+++ b/src/dmres.c	Mon Jun 25 13:24:50 2018 +0300
@@ -1263,6 +1263,33 @@
 
 /* Helper resource access routines
  */
+int dmvfprintf(DMResource *fh, const char *fmt, va_list ap)
+{
+    int len;
+    char *str = dm_strdup_vprintf_len(fmt, ap, &len);
+    if (str == NULL)
+    {
+        fh->error = DMERR_MALLOC;
+        return -1;
+    }
+
+    return dmfwrite(str, 1, len, fh);
+}
+
+
+int dmfprintf(DMResource *fh, const char *fmt, ...)
+{
+    int res;
+    va_list ap;
+
+    va_start(ap, fmt);
+    res = dmvfprintf(fh, fmt, ap);
+    va_end(ap);
+
+    return res;
+}
+
+
 BOOL dmf_read_str(DMResource *fh, void *ptr, const size_t len)
 {
     return dmfread(ptr, len, 1, fh) == 1;
--- a/src/dmres.h	Mon Jun 25 13:24:27 2018 +0300
+++ b/src/dmres.h	Mon Jun 25 13:24:50 2018 +0300
@@ -171,7 +171,8 @@
 size_t       dmfwrite(const void *ptr, const size_t size, const size_t nmemb, DMResource *fh);
 char *       dmfgets(char *str, const int size, DMResource *fh);
 int          dmfputs(const char *str, DMResource *fh);
-
+int          dmvfprintf(DMResource *fh, const char *fmt, va_list ap);
+int          dmfprintf(DMResource *fh, const char *fmt, ...);
 
 // Helper functions for endianess based reading etc
 BOOL         dmf_read_str(DMResource *fh, void *ptr, const size_t len);