yum.c
changeset 197 d29026900856
parent 143 59a9513fac54
child 212 e8f493d8ff9a
     1.1 --- a/yum.c	Tue Mar 04 10:55:01 2008 -0500
     1.2 +++ b/yum.c	Mon Apr 07 00:35:27 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);