From fdf5d0df32e7cd7eb9001ba17aab40c73f37509a Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ale=C5=A1=20Mat=C4=9Bj?= Date: Tue, 8 Sep 2020 12:30:28 +0200 Subject: [PATCH] Add collections to updateinfo xml parser --- ext/repo_updateinfoxml.c | 14 ++++++++++++++ src/knownid.h | 2 ++ 2 files changed, 16 insertions(+) diff --git a/ext/repo_updateinfoxml.c b/ext/repo_updateinfoxml.c index d90d906f..22f7093d 100644 --- a/ext/repo_updateinfoxml.c +++ b/ext/repo_updateinfoxml.c @@ -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; + /* @@ -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; diff --git a/src/knownid.h b/src/knownid.h index 4c1730b5..b013d656 100644 --- a/src/knownid.h +++ b/src/knownid.h @@ -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 -- 2.47.2