]> git.ipfire.org Git - thirdparty/libsolv.git/commitdiff
Add collections to updateinfo xml parser 402/head
authorAleš Matěj <amatej@redhat.com>
Tue, 8 Sep 2020 10:30:28 +0000 (12:30 +0200)
committerAleš Matěj <amatej@redhat.com>
Mon, 21 Sep 2020 08:03:20 +0000 (10:03 +0200)
ext/repo_updateinfoxml.c
src/knownid.h

index d90d906f37025e901e0fe1e9300c09cef34fde26..22f7093d81e88b2087bc235f9f1d2d53be1285a4 100644 (file)
@@ -113,6 +113,7 @@ struct parsedata {
   Id pkghandle;
   struct solv_xmlparser xmlp;
   struct joindata jd;
+  Id collhandle;
 };
 
 /*
@@ -287,6 +288,12 @@ startElement(struct solv_xmlparser *xmlp, int state, const char *name, const cha
       }
       break;
 
+    case STATE_COLLECTION:
+      {
+        pd->collhandle = repodata_new_handle(pd->data);
+      }
+      break;
+
       /*   <package arch="ppc64" name="imlib-debuginfo" release="6.fc8"
        *            src="http://download.fedoraproject.org/pub/fedora/linux/updates/8/ppc64/imlib-debuginfo-1.9.15-6.fc8.ppc64.rpm"
        *            version="1.9.15">
@@ -364,6 +371,7 @@ startElement(struct solv_xmlparser *xmlp, int state, const char *name, const cha
         if (arch)
           repodata_set_poolstr(pd->data, module_handle, UPDATE_MODULE_ARCH, arch);
         repodata_add_flexarray(pd->data, pd->handle, UPDATE_MODULE, module_handle);
+        repodata_add_flexarray(pd->data, pd->collhandle, UPDATE_MODULE, module_handle);
         break;
       }
 
@@ -427,8 +435,14 @@ endElement(struct solv_xmlparser *xmlp, int state, char *content)
       repodata_set_str(pd->data, pd->handle, UPDATE_MESSAGE, content);
       break;
 
+    case STATE_COLLECTION:
+      repodata_add_flexarray(pd->data, pd->handle, UPDATE_COLLECTIONLIST, pd->collhandle);
+      pd->collhandle = 0;
+      break;
+
     case STATE_PACKAGE:
       repodata_add_flexarray(pd->data, pd->handle, UPDATE_COLLECTION, pd->pkghandle);
+      repodata_add_flexarray(pd->data, pd->collhandle, UPDATE_COLLECTION, pd->pkghandle);
       pd->pkghandle = 0;
       break;
 
index 4c1730b579f16789cec6302ecb16bbc1dcca6cde..b013d6564165a39d03670e370d3dc98ff1a85f25 100644 (file)
@@ -268,6 +268,8 @@ KNOWNID(LIBSOLV_SELF_DESTRUCT_PKG,      "libsolv-self-destruct-pkg()"),     /* this
 KNOWNID(SOLVABLE_CONSTRAINS,           "solvable:constrains"),         /* conda */
 KNOWNID(SOLVABLE_TRACK_FEATURES,       "solvable:track_features"),     /* conda */
 
+KNOWNID(UPDATE_COLLECTIONLIST,      "update:collectionlist"),  /* list of UPDATE_COLLECTION (actually packages) and UPDATE_MODULE */
+
 KNOWNID(ID_NUM_INTERNAL,               0)
 
 #ifdef KNOWNID_INITIALIZE