Mercurial > hg > dmlib
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);