]> git.ipfire.org Git - pakfire.git/commitdiff
parser: Set name for all packages
authorMichael Tremer <michael.tremer@ipfire.org>
Mon, 24 May 2021 12:10:52 +0000 (12:10 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 24 May 2021 12:10:52 +0000 (12:10 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/parser/grammar.y

index c6518a74a3a235cff328231fcb9f2d5cd0377146..83ca76c594b973f07aaf39b7e58ef0909831971c 100644 (file)
@@ -304,9 +304,28 @@ line                                               : T_STRING T_EOL
 
 subparser                                      : subparser_name T_EOL block T_END T_EOL
                                                        {
-                                                               pakfire_parser_set_namespace($3, $1);
-
                                                                $$ = $3;
+
+                                                               pakfire_parser_set_namespace($$, $1);
+
+                                                               char* key;
+                                                               char* value;
+
+                                                               int r = pakfire_string_partition($1, ":", &key, &value);
+                                                               if (r == 0) {
+                                                                       if (strcmp("package", key) == 0) {
+                                                                               char* name = pakfire_parser_expand($$, NULL, value);
+                                                                               if (name) {
+                                                                                       pakfire_parser_set($$, NULL, "name", name);
+                                                                                       free(name);
+                                                                               }
+                                                                       }
+
+                                                                       if (key)
+                                                                               free(key);
+                                                                       if (value)
+                                                                               free(value);
+                                                               }
                                                        }
                                                        | subparser_name T_EOL
                                                        {