int ul_path_read_buffer(struct path_cxt *pc, char *buf, size_t bufsz, const char *path);
int ul_path_readf_buffer(struct path_cxt *pc, char *buf, size_t bufsz, const char *path, ...)
__attribute__ ((__format__ (__printf__, 4, 5)));
+int ul_path_vreadf_buffer(struct path_cxt *pc, char *buf, size_t bufsz, const char *path, va_list ap)
+ __attribute__ ((__format__ (__printf__, 4, 0)));
int ul_path_scanf(struct path_cxt *pc, const char *path, const char *fmt, ...)
__attribute__ ((__format__ (__scanf__, 3, 4)));
return rc;
}
-int ul_path_readf_buffer(struct path_cxt *pc, char *buf, size_t bufsz, const char *path, ...)
+int ul_path_vreadf_buffer(struct path_cxt *pc, char *buf, size_t bufsz, const char *path, va_list ap)
{
const char *p;
+
+ p = ul_path_mkpath(pc, path, ap);
+
+ return !p ? -errno : ul_path_read_buffer(pc, buf, bufsz, p);
+}
+
+int ul_path_readf_buffer(struct path_cxt *pc, char *buf, size_t bufsz, const char *path, ...)
+{
va_list ap;
+ int rc;
va_start(ap, path);
- p = ul_path_mkpath(pc, path, ap);
+ rc = ul_path_vreadf_buffer(pc, buf, bufsz, path, ap);
va_end(ap);
- return !p ? -errno : ul_path_read_buffer(pc, buf, bufsz, p);
+ return rc;
}
int ul_path_scanf(struct path_cxt *pc, const char *path, const char *fmt, ...)