]> git.ipfire.org Git - pakfire.git/commitdiff
path: Move pakfire_path_is_absolute to the path library
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 25 Oct 2024 11:28:17 +0000 (11:28 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 25 Oct 2024 11:28:17 +0000 (11:28 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/include/pakfire/path.h
src/libpakfire/include/pakfire/util.h
src/libpakfire/path.c
src/libpakfire/util.c

index 9059ddc7c85175ba2431f8cb780cdc659d6df082..820b02c5c74f6d411a71c827199048bd7e092779 100644 (file)
@@ -47,6 +47,8 @@ int __pakfire_path_dirname(char* buffer, const size_t length, const char* s);
        __pakfire_path_relative(path, sizeof(path), root, s)
 int __pakfire_path_relative(char* buffer, const size_t length, const char* root, const char* s);
 
+int pakfire_path_is_absolute(const char* s);
+
 #define pakfire_path_absolute(path, s) \
        __pakfire_path_absolute(path, sizeof(path), s)
 int __pakfire_path_absolute(char* buffer, const size_t length, const char* s);
index 7bb432b7c5f28a7f4ed64cceb610ff93856ebeba..dbbb7306dc9a2fdc2e95ce51606d9a54634893b9 100644 (file)
@@ -68,7 +68,6 @@ char* __pakfire_hexlify(const unsigned char* digest, const size_t length);
 #define pakfire_unhexlify(dst, src) __pakfire_unhexlify(dst, sizeof(dst), src)
 int __pakfire_unhexlify(unsigned char* dst, const size_t l, const char* src);
 
-int pakfire_path_is_absolute(const char* path);
 const char* pakfire_path_relpath(const char* root, const char* path);
 
 #define pakfire_path_realpath(dest, path) \
index af8cd32ea61e44c0a0b52ef55e8f2ca14cedccdb..1bf0c02554e63eab9ec3baec6635f55a2d7b2b4d 100644 (file)
@@ -506,6 +506,23 @@ ERROR:
        return r;
 }
 
+int pakfire_path_is_absolute(const char* s) {
+       struct pakfire_path* path = NULL;
+       int r;
+
+       // Parse the path
+       r = pakfire_path_parse(&path, s);
+       if (r < 0)
+               return r;
+
+       // Is this absolute?
+       r = path->is_absolute;
+
+       pakfire_path_free(path);
+
+       return r;
+}
+
 int __pakfire_path_absolute(char* buffer, const size_t length, const char* s) {
        struct pakfire_path* path = NULL;
        int r;
index b8798036ba07d1f42d82942294553da231dd525d..96a29aa751bd8c529dd4d6a3b66b0f0d0c290bb6 100644 (file)
 #define BUFFER_SIZE 64 * 1024
 #define NSEC_PER_SEC 1000000000
 
-int pakfire_path_is_absolute(const char* path) {
-       if (!path) {
-               errno = EINVAL;
-               return -1;
-       }
-
-       return (*path == '/');
-}
-
 const char* pakfire_path_relpath(const char* root, const char* path) {
        // Check inputs
        if (!root || !path) {