From 44cfcd337ad418e613c6434c181dafe5bf67057e Mon Sep 17 00:00:00 2001 From: mrb0nk500 Date: Wed, 3 Aug 2022 15:27:11 -0300 Subject: misc: Add `vformat_len()` This works exactly like `format_len()`, except that it uses `va_list` rather than variadic arguments. --- misc.c | 4 ++++ misc.h | 3 +++ 2 files changed, 7 insertions(+) diff --git a/misc.c b/misc.c index 4c0cab0..6e10a57 100644 --- a/misc.c +++ b/misc.c @@ -201,6 +201,10 @@ char *skip_whitespace(const char *str) { } } +int vformat_len(const char *fmt, va_list args) { + return vsnprintf(NULL, 0, fmt, args); +} + int format_len(const char *fmt, ...) { int len = 0; va_list args; diff --git a/misc.h b/misc.h index 3a653e2..9110197 100644 --- a/misc.h +++ b/misc.h @@ -1,6 +1,8 @@ #ifndef MISC_H #define MISC_H +#include + extern char *read_file(const char *filename, long *size); extern char *find_delm(char *str, const char *delm, int skip_delm); extern char *get_str_delm_range(char *str, const char *start_delm, const char *end_delm, char **rhs); @@ -16,6 +18,7 @@ extern char *find_alpha(const char *str); extern char *create_num_str(const char *str, int num); extern int is_empty(const char *str); extern char *skip_whitespace(const char *str); +extern int vformat_len(const char *fmt, va_list args); extern int format_len(const char *fmt, ...); extern int is_dir(const char *path); extern void mkdirp(const char *path, int mode); -- cgit v1.2.3-13-gbd6f