]> git.ipfire.org Git - people/ric9/pakfire.git/commitdiff
path: Add function to format a path and normalize it straight away
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 11 Jan 2025 15:25:42 +0000 (15:25 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 11 Jan 2025 15:25:42 +0000 (15:25 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/pakfire/path.c
src/pakfire/path.h

index f90017a8533f8e12f59ce76a85c47d58bead2e44..5c31b44abb129442a4828115d52d399c47b273e8 100644 (file)
@@ -287,6 +287,22 @@ ERROR:
        return r;
 }
 
+int __pakfire_path_format(char* buffer, const size_t length, const char* format, ...) {
+       va_list args;
+       int r;
+
+       va_start(args, format);
+       r = __pakfire_string_vformat(buffer, length, format, args);
+       va_end(args);
+
+       // Return any errors
+       if (r < 0)
+               return r;
+
+       // Normalize the path
+       return __pakfire_path_normalize(buffer, length);
+}
+
 int __pakfire_path_append(char* buffer, const size_t length, const char* s1, const char* s2) {
        struct pakfire_path* path = NULL;
        int r;
index b58e871a7ac94656b84538a60c12cc1b7d8e9286..6ee180d3d43168e88c7f08256d7a017caa7814c5 100644 (file)
        __pakfire_path_normalize(path, sizeof(path))
 int __pakfire_path_normalize(char* p, const size_t length);
 
+#define pakfire_path_format(path, format, ...) \
+       __pakfire_path_format(path, sizeof(path), format, __VA_ARGS__)
+int __pakfire_path_format(char* buffer, const size_t length, const char* format, ...);
+
 #define pakfire_path_append(path, s1, s2) \
        __pakfire_path_append(path, sizeof(path), s1, s2)
 int __pakfire_path_append(char* buffer, const size_t length, const char* s1, const char* s2);