- 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))
+ parse_deplist(pkg, RECOMMEND, line + strlen("Recommends") + 1);
+ else if ((mask & PFM_REPLACES) && is_field("Replaces", line))
+ parse_replacelist(pkg, line + strlen("Replaces") + 1);
+ break;
+
+ case 'S':
+ if ((mask & PFM_SECTION) && is_field("Section", line))
+ pkg_set_string(pkg, PKG_SECTION, line + strlen("Section") + 1);
+#ifdef HAVE_SHA256
+ else if ((mask & PFM_SHA256SUM) && is_field("SHA256sum", line))
+ pkg_set_string(pkg, PKG_SHA256SUM, line + strlen("SHA256sum") + 1);
+#endif
+ else if ((mask & PFM_SIZE) && is_field("Size", line)) {
+ pkg_set_int(pkg, PKG_SIZE, strtoul(line + strlen("Size") + 1, NULL, 0));
+ } else if ((mask & PFM_SOURCE) && is_field("Source", line))
+ pkg_set_string(pkg, PKG_SOURCE, line + strlen("Source") + 1);
+ else if ((mask & PFM_STATUS) && is_field("Status", line))
+ parse_status(pkg, line);
+ else if ((mask & PFM_SUGGESTS) && is_field("Suggests", line))
+ parse_deplist(pkg, SUGGEST, line + strlen("Suggests") + 1);
+ break;
+
+ case 'T':
+ if ((mask & PFM_TAGS) && is_field("Tags", line))
+ pkg_set_string(pkg, PKG_TAGS, line + strlen("Tags") + 1);
+ break;
+
+ case 'V':
+ if ((mask & PFM_VERSION) && is_field("Version", line))
+ parse_version(pkg, line);
+ break;