# HG changeset patch # User Matti Hamalainen # Date 1529922290 -10800 # Node ID e69de47d24199a45ea5e7620965ce74f578a0eb9 # Parent 47fe47f01fead42368c8fb96f7e52b51c6d2c989 Implement resource helper functions dmfprintf() and dmvfprintf(). diff -r 47fe47f01fea -r e69de47d2419 src/dmres.c --- 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; diff -r 47fe47f01fea -r e69de47d2419 src/dmres.h --- 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);