]> git.ipfire.org Git - people/ric9/pakfire.git/commitdiff
parser: Fix return code handling when merging parsers
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 11 Jan 2025 13:31:04 +0000 (13:31 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 11 Jan 2025 13:31:04 +0000 (13:31 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/pakfire/parser.c

index 85eeedba20b3023ef36d792ea0b7b4b85b524009..60caedfb45503b8c488480b8d5709285039f98a7 100644 (file)
@@ -860,7 +860,7 @@ int pakfire_parser_merge(struct pakfire_parser* parser1, struct pakfire_parser*
 
        // Do not try to merge a parser with itself
        if (parser1 == parser2)
-               return -EINVAL;
+               return -ENOTSUP;
 
        DEBUG(parser1->ctx, "Merging parsers %p and %p\n", parser1, parser2);
 
@@ -872,7 +872,7 @@ int pakfire_parser_merge(struct pakfire_parser* parser1, struct pakfire_parser*
                // Make the new namespace
                namespace = pakfire_parser_join(".", parser2->namespace, d->namespace);
                if (!namespace) {
-                       r = 1;
+                       r = -errno;
                        goto OUT;
                }
 
@@ -892,13 +892,13 @@ int pakfire_parser_merge(struct pakfire_parser* parser1, struct pakfire_parser*
                // Make the new value
                value = pakfire_parser_join(" ", old_value, d->value);
                if (!value) {
-                       r = 1;
+                       r = -errno;
                        goto OUT;
                }
 
                // Set everything in parser 1
                r = pakfire_parser_set(parser1, namespace, d->name, value, d->flags);
-               if (r)
+               if (r < 0)
                        goto OUT;
 
 OUT: