]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
lib/path: introduce ul_path_vreadf_buffer
authorThomas Weißschuh <thomas@t-8ch.de>
Mon, 13 May 2024 19:01:16 +0000 (21:01 +0200)
committerThomas Weißschuh <thomas@t-8ch.de>
Mon, 13 May 2024 19:02:23 +0000 (21:02 +0200)
Signed-off-by: Thomas Weißschuh <thomas@t-8ch.de>
include/path.h
lib/path.c

index 4c84dd31f691bbe00924a3c7946158709798f60a..f413ea3f9da74aa95c2df8d7cbbc85cb52104561 100644 (file)
@@ -95,6 +95,8 @@ int ul_path_readf_string(struct path_cxt *pc, char **str, const char *path, ...)
 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)));
index 6381cc5d8fa35c7c1ee8acdf6023e6e6f0645743..6a70ad45f7d1cfeb180bef8527f01c36bcc6d115 100644 (file)
@@ -701,16 +701,25 @@ int ul_path_read_buffer(struct path_cxt *pc, char *buf, size_t bufsz, const char
        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, ...)