1.1 --- a/yum.c Mon Feb 04 14:25:45 2008 -0500
1.2 +++ b/yum.c Mon Mar 10 11:30:00 2008 -0400
1.3 @@ -62,7 +62,7 @@
1.4 yum_primary_start_element(void *data, const char *name, const char **atts)
1.5 {
1.6 struct yum_context *ctx = data;
1.7 - const char *n, *version, *release, *flags;
1.8 + const char *n, *epoch, *version, *release, *flags;
1.9 char buffer[128];
1.10 int i;
1.11
1.12 @@ -70,10 +70,13 @@
1.13 ctx->state = YUM_STATE_PACKAGE_NAME;
1.14 ctx->p = ctx->name;
1.15 } else if (strcmp(name, "version") == 0) {
1.16 + epoch = NULL;
1.17 version = NULL;
1.18 release = NULL;
1.19 for (i = 0; atts[i]; i += 2) {
1.20 - if (strcmp(atts[i], "ver") == 0)
1.21 + if (strcmp(atts[i], "epoch") == 0)
1.22 + epoch = atts[i + 1];
1.23 + else if (strcmp(atts[i], "ver") == 0)
1.24 version = atts[i + 1];
1.25 else if (strcmp(atts[i], "rel") == 0)
1.26 release = atts[i + 1];
1.27 @@ -84,7 +87,7 @@
1.28 return;
1.29 }
1.30
1.31 - snprintf(buffer, sizeof buffer, "%s-%s", version, release);
1.32 + razor_build_evr(buffer, sizeof buffer, epoch, version, release);
1.33 razor_importer_begin_package(ctx->importer, ctx->name, buffer);
1.34 } else if (strcmp(name, "checksum") == 0) {
1.35 ctx->p = ctx->pkgid;
1.36 @@ -100,12 +103,15 @@
1.37 } else if (strcmp(name, "rpm:entry") == 0 &&
1.38 ctx->state != YUM_STATE_BEGIN) {
1.39 n = NULL;
1.40 + epoch = NULL;
1.41 version = NULL;
1.42 release = NULL;
1.43 flags = NULL;
1.44 for (i = 0; atts[i]; i += 2) {
1.45 if (strcmp(atts[i], "name") == 0)
1.46 n = atts[i + 1];
1.47 + else if (strcmp(atts[i], "epoch") == 0)
1.48 + epoch = atts[i + 1];
1.49 else if (strcmp(atts[i], "ver") == 0)
1.50 version = atts[i + 1];
1.51 else if (strcmp(atts[i], "rel") == 0)
1.52 @@ -120,14 +126,7 @@
1.53 return;
1.54 }
1.55
1.56 - if (version && release)
1.57 - snprintf(buffer, sizeof buffer,
1.58 - "%s-%s", version, release);
1.59 - else if (version)
1.60 - strcpy(buffer, version);
1.61 - else
1.62 - buffer[0] = '\0';
1.63 -
1.64 + razor_build_evr(buffer, sizeof buffer, epoch, version, release);
1.65 switch (ctx->state) {
1.66 case YUM_STATE_REQUIRES:
1.67 razor_importer_add_property(ctx->importer, n,