Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
conflict is only a list of glob files
Baptiste Daroussin committed 15 years ago
commit dca7e2dc8cdb1137ed903cc6acf6d2d741286d59
parent d4769e7
4 files changed +17 -36
modified libpkg/pkg.h
@@ -45,9 +45,7 @@ const char * pkg_file_md5(struct pkg_file *);
int pkg_conflict_new(struct pkg_conflict **);
void pkg_conflict_reset(struct pkg_conflict *);
void pkg_conflict_free(struct pkg_conflict *);
-
const char * pkg_conflict_origin(struct pkg_conflict *);
-
const char * pkg_conflict_version(struct pkg_conflict *);
-
const char * pkg_conflict_name(struct pkg_conflict *);
+
const char * pkg_conflict_glob(struct pkg_conflict *);

/* pkgdb */
int pkgdb_open(struct pkgdb **);
modified libpkg/pkg_conflict.c
@@ -4,21 +4,9 @@
#include "pkg_private.h"

const char *
-
pkg_conflict_origin(struct pkg_conflict *c)
+
pkg_conflict_glob(struct pkg_conflict *c)
{
-
	return (sbuf_data(c->origin));
-
}
-

-
const char *
-
pkg_conflict_name(struct pkg_conflict *c)
-
{
-
	return (sbuf_data(c->name));
-
}
-

-
const char *
-
pkg_conflict_version(struct pkg_conflict *c)
-
{
-
	return (sbuf_data(c->version));
+
	return (sbuf_data(c->glob));
}

int
@@ -27,9 +15,7 @@ pkg_conflict_new(struct pkg_conflict **c)
	if ((*c = calloc(1, sizeof(struct pkg_conflict))))
		return (-1);

-
	(*c)->origin = sbuf_new_auto();
-
	(*c)->name = sbuf_new_auto();
-
	(*c)->version = sbuf_new_auto();
+
	(*c)->glob = sbuf_new_auto();

	return (0);
}
@@ -37,17 +23,13 @@ pkg_conflict_new(struct pkg_conflict **c)
void
pkg_conflict_reset(struct pkg_conflict *c)
{
-
	sbuf_clear(c->origin);
-
	sbuf_clear(c->name);
-
	sbuf_clear(c->version);
+
	sbuf_clear(c->glob);
}

void
pkg_conflict_free(struct pkg_conflict *c)
{
-
	sbuf_delete(c->origin);
-
	sbuf_delete(c->name);
-
	sbuf_delete(c->version);
+
	sbuf_delete(c->glob);

	free(c);
}
modified libpkg/pkg_private.h
@@ -26,9 +26,7 @@ struct pkg {
};

struct pkg_conflict {
-
	struct sbuf *origin;
-
	struct sbuf *name;
-
	struct sbuf *version;
+
	struct sbuf *glob;
};

struct pkg_file {
modified libpkg/pkgdb.c
@@ -402,14 +402,9 @@ pkgdb_it_next_conflict(struct pkgdb_it *it, struct pkg_conflict **c_p)
			pkg_conflict_reset(*c_p);
		c = *c_p;

-
		sbuf_cat(c->origin, sqlite3_column_text(it->stmt, 0));
-
		sbuf_finish(c->origin);
+
		sbuf_cat(c->glob, sqlite3_column_text(it->stmt, 0));
+
		sbuf_finish(c->glob);

-
		sbuf_cat(c->name, sqlite3_column_text(it->stmt, 1));
-
		sbuf_finish(c->name);
-

-
		sbuf_cat(c->version, sqlite3_column_text(it->stmt, 2));
-
		sbuf_finish(c->version);
		return (0);
	case SQLITE_DONE:
		return (1);
@@ -591,6 +586,7 @@ pkgdb_register_pkg(struct pkgdb *db, struct pkg *pkg)
{
	struct pkg **deps;
	struct pkg_file **files;
+
	struct pkg_conflict **conflicts;
	sqlite3_stmt *stmt_pkg;
	sqlite3_stmt *stmt_dep;
	sqlite3_stmt *stmt_conflicts;
@@ -636,6 +632,13 @@ pkgdb_register_pkg(struct pkgdb *db, struct pkg *pkg)
		sqlite3_reset(stmt_dep);
	}

+
	conflicts = pkg_conflicts(pkg);
+
	for (i = 0; conflicts[i] != NULL; i++) {
+
		sqlite3_bind_text(stmt_conflicts, 1, pkg_conflict_glob(conflicts[i]), -1, SQLITE_STATIC);
+
		sqlite3_bind_text(stmt_conflicts, 2, pkg_origin(pkg), -1, SQLITE_STATIC);
+
	}
+

+

	files = pkg_files(pkg);
	for (i = 0; files[i] != NULL; i++) {
		sqlite3_bind_text(stmt_file, 1, pkg_file_path(files[i]), -1, SQLITE_STATIC);