STATE_TITLE, /* 4 */
STATE_RELEASE, /* 5 */
STATE_ISSUED, /* 6 */
- STATE_REFERENCES, /* 7 */
- STATE_REFERENCE, /* 8 */
- STATE_DESCRIPTION, /* 9 */
- STATE_PKGLIST, /* 10 */
- STATE_COLLECTION, /* 11 */
- STATE_NAME, /* 12 */
- STATE_PACKAGE, /* 13 */
- STATE_FILENAME, /* 14 */
- STATE_REBOOT, /* 15 */
- STATE_RESTART, /* 16 */
+ STATE_MESSAGE, /* 7 */
+ STATE_REFERENCES, /* 8 */
+ STATE_REFERENCE, /* 9 */
+ STATE_DESCRIPTION, /* 10 */
+ STATE_PKGLIST, /* 11 */
+ STATE_COLLECTION, /* 12 */
+ STATE_NAME, /* 13 */
+ STATE_PACKAGE, /* 14 */
+ STATE_FILENAME, /* 15 */
+ STATE_REBOOT, /* 16 */
+ STATE_RESTART, /* 17 */
NUMSTATES
};
{ STATE_UPDATE, "release", STATE_RELEASE, 1 },
{ STATE_UPDATE, "issued", STATE_ISSUED, 1 },
{ STATE_UPDATE, "description", STATE_DESCRIPTION, 1 },
+ { STATE_UPDATE, "message", STATE_MESSAGE , 1 },
{ STATE_UPDATE, "references", STATE_REFERENCES, 0 },
{ STATE_UPDATE, "pkglist", STATE_PKGLIST, 0 },
{ STATE_REFERENCES, "reference", STATE_REFERENCE, 0 },
Solvable *solvable;
unsigned int timestamp;
+
struct stateswitch *swtab[NUMSTATES];
enum state sbtab[NUMSTATES];
char *tempstr;
* if we have seen a <filename>...
* inside of <package>...
*
+ *
* If not, we must insert an empty filename to UPDATE_COLLECTION_FILENAME
* at </package> in order to keep all UPDATE_COLLECTION_* arrays in sync
*/
if (!strcmp(sw->ename, name))
break;
+
if (sw->from != pd->state)
{
#if 1
version = atts[1];
}
+
solvable = pd->solvable = pool_id2solvable(pool, repo_add_solvable(pd->repo));
pd->datanum = (pd->solvable - pool->solvables) - pd->repo->start;
repodata_extend(pd->data, pd->solvable - pool->solvables);
+ repodata_extend(pd->data, pd->solvable - pool->solvables);
pd->datanum = repodata_get_handle(pd->data, pd->datanum);
+
solvable->vendor = str2id(pool, from, 1);
solvable->evr = str2id(pool, version, 1);
solvable->arch = ARCH_NOARCH;
/* <description>This update ...</description> */
case STATE_DESCRIPTION:
break;
+ /* <message type="confirm">This update ...</message> */
+ case STATE_MESSAGE:
+ break;
case STATE_PKGLIST:
break;
/* <collection short="F8"> */
* src="http://download.fedoraproject.org/pub/fedora/linux/updates/8/ppc64/imlib-debuginfo-1.9.15-6.fc8.ppc64.rpm"
* version="1.9.15">
*
+ *
* -> patch.conflicts: {name} < {version}.{release}
*/
case STATE_PACKAGE:
Id n, a, na;
Id rel_id;
+
/* reset package_* markers, to be evaluated at </package> */
package_filename_seen = 0;
package_flags = 0;
+
for (; *atts; atts += 2)
{
if (!strcmp(*atts, "arch"))
/* now combine both to a single Id */
na = rel2id(pool, n, a, REL_ARCH, 1);
+
rel_id = rel2id(pool, na, evr, REL_LT, 1);
solvable->conflicts = repo_addid_dep(pd->repo, solvable->conflicts, rel_id, 0);
}
break;
/* <filename>libntlm-0.4.2-1.fc8.x86_64.rpm</filename> */
+ /* <filename>libntlm-0.4.2-1.fc8.x86_64.rpm</filename> */
case STATE_FILENAME:
break;
/* <reboot_suggested>True</reboot_suggested> */
struct parsedata *pd = userData;
Pool *pool = pd->pool;
Solvable *s = pd->solvable;
+ Repo *repo = pd->repo;
#if 0
fprintf(stderr, "end: %s\n", name);
case STATE_UPDATES:
break;
case STATE_UPDATE:
+ s->provides = repo_addid_dep(repo, s->provides, rel2id(pool, s->name, s->evr, REL_EQ, 1), 0);
break;
case STATE_ID:
{
repodata_set_str(pd->data, pd->datanum, SOLVABLE_DESCRIPTION, pd->content);
}
break;
+ break;
+ /*
+ * <message>Warning! ...</message>
+ */
+ case STATE_MESSAGE:
+ {
+ repodata_set_str(pd->data, pd->datanum, UPDATE_MESSAGE, pd->content);
+ }
+ break;
case STATE_PKGLIST:
break;
case STATE_COLLECTION:
}
break;
/* <filename>libntlm-0.4.2-1.fc8.x86_64.rpm</filename> */
+ /* <filename>libntlm-0.4.2-1.fc8.x86_64.rpm</filename> */
case STATE_FILENAME:
{
#if DO_ARRAY
pd->state = pd->sbtab[pd->state];
pd->docontent = 0;
+
return;
}