1.1 --- a/yum.c Tue Mar 04 10:55:01 2008 -0500
1.2 +++ b/yum.c Sun Apr 06 23:36:45 2008 -0400
1.3 @@ -17,6 +17,7 @@
1.4 enum {
1.5 YUM_STATE_BEGIN,
1.6 YUM_STATE_PACKAGE_NAME,
1.7 + YUM_STATE_PACKAGE_ARCH,
1.8 YUM_STATE_CHECKSUM,
1.9 YUM_STATE_REQUIRES,
1.10 YUM_STATE_PROVIDES,
1.11 @@ -32,7 +33,7 @@
1.12
1.13 struct razor_importer *importer;
1.14 struct import_property_context *current_property_context;
1.15 - char name[256], buffer[512], *p;
1.16 + char name[256], arch[64], buffer[512], *p;
1.17 char pkgid[128];
1.18 int state;
1.19 };
1.20 @@ -69,6 +70,9 @@
1.21 if (strcmp(name, "name") == 0) {
1.22 ctx->state = YUM_STATE_PACKAGE_NAME;
1.23 ctx->p = ctx->name;
1.24 + } else if (strcmp(name, "arch") == 0) {
1.25 + ctx->state = YUM_STATE_PACKAGE_ARCH;
1.26 + ctx->p = ctx->arch;
1.27 } else if (strcmp(name, "version") == 0) {
1.28 epoch = NULL;
1.29 version = NULL;
1.30 @@ -88,7 +92,8 @@
1.31 }
1.32
1.33 razor_build_evr(buffer, sizeof buffer, epoch, version, release);
1.34 - razor_importer_begin_package(ctx->importer, ctx->name, buffer);
1.35 + razor_importer_begin_package(ctx->importer,
1.36 + ctx->name, buffer, ctx->arch);
1.37 } else if (strcmp(name, "checksum") == 0) {
1.38 ctx->p = ctx->pkgid;
1.39 ctx->state = YUM_STATE_CHECKSUM;
1.40 @@ -163,6 +168,7 @@
1.41
1.42 switch (ctx->state) {
1.43 case YUM_STATE_PACKAGE_NAME:
1.44 + case YUM_STATE_PACKAGE_ARCH:
1.45 case YUM_STATE_CHECKSUM:
1.46 case YUM_STATE_FILE:
1.47 ctx->state = YUM_STATE_BEGIN;
1.48 @@ -182,6 +188,7 @@
1.49
1.50 switch (ctx->state) {
1.51 case YUM_STATE_PACKAGE_NAME:
1.52 + case YUM_STATE_PACKAGE_ARCH:
1.53 case YUM_STATE_CHECKSUM:
1.54 case YUM_STATE_FILE:
1.55 memcpy(ctx->p, s, len);