]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
os-util: merge parse_{extension,os}_release()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Sat, 8 Apr 2023 09:16:04 +0000 (18:16 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 11 Apr 2023 09:49:23 +0000 (18:49 +0900)
src/basic/os-util.c
src/basic/os-util.h

index ff31a48d3e1dada1fe928861a7a68c94a1077781..16fe123ce649883db885032a230ee86a9f8f7d50 100644 (file)
@@ -242,40 +242,25 @@ int open_extension_release(
         return 0;
 }
 
-static int parse_release_internal(const char *root, ImageClass image_class, bool relax_extension_release_check, const char *extension, va_list ap) {
+int parse_extension_release_sentinel(
+                const char *root,
+                ImageClass image_class,
+                bool relax_extension_release_check,
+                const char *extension,
+                ...) {
+
         _cleanup_close_ int fd = -EBADF;
         _cleanup_free_ char *p = NULL;
+        va_list ap;
         int r;
 
         r = open_extension_release(root, image_class, extension, relax_extension_release_check, &p, &fd);
         if (r < 0)
                 return r;
 
-        return parse_env_file_fdv(fd, p, ap);
-}
-
-int _parse_extension_release(const char *root, ImageClass image_class, bool relax_extension_release_check, const char *extension, ...) {
-        va_list ap;
-        int r;
-
-        assert(image_class >= 0);
-        assert(image_class < _IMAGE_CLASS_MAX);
-
         va_start(ap, extension);
-        r = parse_release_internal(root, image_class, relax_extension_release_check, extension, ap);
-        va_end(ap);
-
-        return r;
-}
-
-int _parse_os_release(const char *root, ...) {
-        va_list ap;
-        int r;
-
-        va_start(ap, root);
-        r = parse_release_internal(root, _IMAGE_CLASS_INVALID, /* relax_extension_release_check= */ false, NULL, ap);
+        r = parse_env_file_fdv(fd, p, ap);
         va_end(ap);
-
         return r;
 }
 
index e6acf211954f78cf62cb5a6af786988835422872..243d3c58ead218a512a52cf93c1ff2a532eaa09a 100644 (file)
@@ -31,10 +31,11 @@ static inline int path_is_os_tree(const char *path) {
 int open_extension_release(const char *root, ImageClass image_class, const char *extension, bool relax_extension_release_check, char **ret_path, int *ret_fd);
 int open_os_release(const char *root, char **ret_path, int *ret_fd);
 
-int _parse_extension_release(const char *root, ImageClass image_class, bool relax_extension_release_check, const char *extension, ...) _sentinel_;
-int _parse_os_release(const char *root, ...) _sentinel_;
-#define parse_extension_release(root, image_class, extension, relax_extension_release_check, ...) _parse_extension_release(root, image_class, relax_extension_release_check, extension, __VA_ARGS__, NULL)
-#define parse_os_release(root, ...) _parse_os_release(root, __VA_ARGS__, NULL)
+int parse_extension_release_sentinel(const char *root, ImageClass image_class, bool relax_extension_release_check, const char *extension, ...) _sentinel_;
+#define parse_extension_release(root, image_class, extension, relax_extension_release_check, ...) \
+        parse_extension_release_sentinel(root, image_class, relax_extension_release_check, extension, __VA_ARGS__, NULL)
+#define parse_os_release(root, ...)                                     \
+        parse_extension_release_sentinel(root, _IMAGE_CLASS_INVALID, false, NULL, __VA_ARGS__, NULL)
 
 int load_extension_release_pairs(const char *root, ImageClass image_class, const char *extension, bool relax_extension_release_check, char ***ret);
 static inline int load_os_release_pairs(const char *root, char ***ret) {