1.1 --- a/librazor/razor.h Thu Feb 16 17:44:25 2012 +0000
1.2 +++ b/librazor/razor.h Fri Feb 17 18:35:10 2012 +0000
1.3 @@ -453,7 +453,7 @@
1.4 void razor_relocations_destroy(struct razor_relocations *relocations);
1.5
1.6 struct razor_rpm *razor_rpm_open(const char *filename,
1.7 - struct razor_atomic *atomic);
1.8 + struct razor_error **error);
1.9 void razor_rpm_get_details(struct razor_rpm *rpm, ...);
1.10 void razor_rpm_set_relocations(struct razor_rpm *rpm,
1.11 struct razor_relocations *relocations);
2.1 --- a/librazor/rpm.c Thu Feb 16 17:44:25 2012 +0000
2.2 +++ b/librazor/rpm.c Fri Feb 17 18:35:10 2012 +0000
2.3 @@ -602,28 +602,24 @@
2.4 }
2.5
2.6 RAZOR_EXPORT struct razor_rpm *
2.7 -razor_rpm_open(const char *filename, struct razor_atomic *atomic)
2.8 +razor_rpm_open(const char *filename, struct razor_error **error)
2.9 {
2.10 struct razor_rpm *rpm;
2.11 struct rpm_header_index *base, *index;
2.12 - struct razor_error *error = NULL;
2.13 unsigned int count, i, nindex, hsize;
2.14 const char *name, *prefix;
2.15 - char *s;
2.16
2.17 assert (filename != NULL);
2.18
2.19 rpm = zalloc(sizeof *rpm);
2.20 if (rpm == NULL) {
2.21 - razor_atomic_abort(atomic, "Not enough memory");
2.22 + razor_set_error(error, NULL, "Not enough memory");
2.23 return NULL;
2.24 }
2.25 memset(rpm, 0, sizeof *rpm);
2.26
2.27 - rpm->map = razor_file_get_contents(filename, &rpm->size, 0, &error);
2.28 + rpm->map = razor_file_get_contents(filename, &rpm->size, 0, error);
2.29 if (!rpm->map) {
2.30 - razor_atomic_abort(atomic, razor_error_get_msg(error));
2.31 - razor_error_free(error);
2.32 free(rpm);
2.33 return NULL;
2.34 }
2.35 @@ -654,10 +650,8 @@
2.36 &count);
2.37 if (name) {
2.38 razor_rpm_close(rpm);
2.39 - s = razor_concat(filename,
2.40 - ": Old filenames not supported", NULL);
2.41 - razor_atomic_abort(atomic, s);
2.42 - free(s);
2.43 + razor_set_error(error, filename,
2.44 + "Old filenames not supported");
2.45 return NULL;
2.46 }
2.47 }
2.48 @@ -676,11 +670,8 @@
2.49 &count);
2.50 if (prefix) {
2.51 razor_rpm_close(rpm);
2.52 - s = razor_concat(filename,
2.53 - ": Default prefix not supported",
2.54 - NULL);
2.55 - razor_atomic_abort(atomic, s);
2.56 - free(s);
2.57 + razor_set_error(error, filename,
2.58 + "Default prefix not supported");
2.59 return NULL;
2.60 }
2.61 }
3.1 --- a/src/main.c Thu Feb 16 17:44:25 2012 +0000
3.2 +++ b/src/main.c Fri Feb 17 18:35:10 2012 +0000
3.3 @@ -699,6 +699,7 @@
3.4 struct razor_importer *importer;
3.5 struct razor_set *set;
3.6 struct razor_rpm *rpm;
3.7 + struct razor_error *error=NULL;
3.8 struct razor_atomic *atomic;
3.9 int len, imported_count = 0;
3.10 char filename[256];
3.11 @@ -724,14 +725,13 @@
3.12 continue;
3.13 snprintf(filename, sizeof filename,
3.14 "%s/%s", dirname, de->d_name);
3.15 - atomic = razor_atomic_open("Read RPM");
3.16 - rpm = razor_rpm_open(filename, atomic);
3.17 - if (rpm == NULL)
3.18 - fprintf(stderr, "%s\n",
3.19 - razor_atomic_get_error_msg(atomic));
3.20 - razor_atomic_destroy(atomic);
3.21 - if (rpm == NULL)
3.22 + rpm = razor_rpm_open(filename, &error);
3.23 + if (rpm == NULL) {
3.24 + fprintf(stderr, "%s\n", razor_error_get_msg(error));
3.25 + razor_error_free(error);
3.26 + error=NULL;
3.27 continue;
3.28 + }
3.29 if (razor_importer_add_rpm(importer, rpm)) {
3.30 fprintf(stderr, "couldn't import %s\n", filename);
3.31 break;
3.32 @@ -830,6 +830,7 @@
3.33 struct razor_package *package;
3.34 struct razor_property *property;
3.35 struct razor_rpm *rpm;
3.36 + struct razor_error *error=NULL;
3.37 const char *name, *version, *arch, *summary, *desc, *url, *license;
3.38 const char *preunprog, *preun, *postunprog, *postun;
3.39 const char *install_prefix;
3.40 @@ -856,9 +857,11 @@
3.41 s = rpm_filename(name, version, arch);
3.42 file = razor_concat("rpms/", s, NULL);
3.43 free(s);
3.44 - rpm = razor_rpm_open(file, atomic);
3.45 + rpm = razor_rpm_open(file, &error);
3.46 free(file);
3.47 if (rpm == NULL) {
3.48 + razor_atomic_abort(atomic, razor_error_get_msg(error));
3.49 + razor_error_free(error);
3.50 razor_package_iterator_destroy(pkg_iter);
3.51 razor_importer_destroy(importer);
3.52 return NULL;
3.53 @@ -917,6 +920,7 @@
3.54 const char *name, *version, *arch;
3.55 char *file, *s;
3.56 struct razor_rpm *rpm;
3.57 + struct razor_error *error=NULL;
3.58
3.59 razor_package_get_details(set, package,
3.60 RAZOR_DETAIL_NAME, &name,
3.61 @@ -930,11 +934,12 @@
3.62 s = rpm_filename(name, version, arch);
3.63 file = razor_concat("rpms/", s, NULL);
3.64 free(s);
3.65 - rpm = razor_rpm_open(file, atomic);
3.66 + rpm = razor_rpm_open(file, &error);
3.67 free(file);
3.68 if (rpm == NULL) {
3.69 - fprintf(stderr, "%s\n",
3.70 - razor_atomic_get_error_msg(atomic));
3.71 + razor_atomic_abort(atomic, razor_error_get_msg(error));
3.72 + fprintf(stderr, "%s\n", razor_error_get_msg(error));
3.73 + razor_error_free(error);
3.74 return -1;
3.75 }
3.76 if (relocations)
4.1 --- a/src/rpm.c Thu Feb 16 17:44:25 2012 +0000
4.2 +++ b/src/rpm.c Fri Feb 17 18:35:10 2012 +0000
4.3 @@ -447,16 +447,13 @@
4.4 create_set_from_command_line(int argc, const char *argv[])
4.5 {
4.6 struct razor_importer *importer;
4.7 - struct razor_atomic *atomic;
4.8 struct razor_rpm *rpm;
4.9 int i;
4.10
4.11 importer = razor_importer_create();
4.12
4.13 for (i = 0; i < argc; i++) {
4.14 - atomic = razor_atomic_open("Read RPM");
4.15 - rpm = razor_rpm_open(argv[i], atomic);
4.16 - razor_atomic_destroy(atomic);
4.17 + rpm = razor_rpm_open(argv[i], NULL);
4.18 if (rpm == NULL)
4.19 continue;
4.20 if (razor_importer_add_rpm(importer, rpm))