- if(isGenericFieldType("Recommends", *lines))
- pkg->recommends_str = parseDependsString(*lines, &pkg->recommends_count);
- else if(isGenericFieldType("Replaces", *lines))
- pkg->replaces_str = parseDependsString(*lines, &pkg->replaces_count);
-
- break;
+ if ((mask & PFM_RECOMMENDS) && is_field("Recommends", line))
+ pkg->recommends_str = parse_comma_separated(line, &pkg->recommends_count);
+ else if ((mask & PFM_REPLACES) && is_field("Replaces", line))
+ pkg->replaces_str = parse_comma_separated(line, &pkg->replaces_count);
+
+ break;
+
+ case 'S':
+ if ((mask & PFM_SECTION) && is_field("Section", line))
+ pkg->section = parse_simple("Section", line);
+#ifdef HAVE_SHA256
+ else if ((mask & PFM_SHA256SUM) && is_field("SHA256sum", line))
+ pkg->sha256sum = parse_simple("SHA256sum", line);
+#endif
+ else if ((mask & PFM_SIZE) && is_field("Size", line)) {
+ char *tmp = parse_simple("Size", line);
+ pkg->size = strtoul(tmp, NULL, 0);
+ free (tmp);
+ } else if ((mask & PFM_SOURCE) && is_field("Source", line))
+ pkg->source = parse_simple("Source", line);
+ else if ((mask & PFM_STATUS) && is_field("Status", line))
+ parse_status(pkg, line);
+ else if ((mask & PFM_SUGGESTS) && is_field("Suggests", line))
+ pkg->suggests_str = parse_comma_separated(line, &pkg->suggests_count);
+ break;
+
+ case 'T':
+ if ((mask & PFM_TAGS) && is_field("Tags", line))
+ pkg->tags = parse_simple("Tags", line);
+ break;
+
+ case 'V':
+ if ((mask & PFM_VERSION) && is_field("Version", line))
+ parse_version(pkg, line);
+ break;