Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Add a `type` to pkgdb_it.
jlaffaye committed 14 years ago
commit 48fa84cf2e59aeba1da4bea595abdda4c8a3804b
parent 4ca34a2
4 files changed +22 -16
modified libpkg/pkg.h
@@ -446,7 +446,6 @@ struct pkgdb_it * pkgdb_query_which(struct pkgdb *db, const char *path);
#define PKG_LOAD_SCRIPTS (1<<5)
#define PKG_LOAD_OPTIONS (1<<6)
#define PKG_LOAD_MTREE (1<<7)
-
#define PKG_LOAD_NEWVERSION (1<<8)

/**
 * Get the next pkg.
modified libpkg/pkgdb.c
@@ -18,7 +18,7 @@
#include "pkgdb.h"
#include "pkg_util.h"

-
static struct pkgdb_it * pkgdb_it_new(struct pkgdb *, sqlite3_stmt *);
+
static struct pkgdb_it * pkgdb_it_new(struct pkgdb *, sqlite3_stmt *, int);
static void pkgdb_regex(sqlite3_context *, int, sqlite3_value **, int);
static void pkgdb_regex_basic(sqlite3_context *, int, sqlite3_value **);
static void pkgdb_regex_extended(sqlite3_context *, int, sqlite3_value **);
@@ -299,7 +299,7 @@ pkgdb_close(struct pkgdb *db)
}

static struct pkgdb_it *
-
pkgdb_it_new(struct pkgdb *db, sqlite3_stmt *s)
+
pkgdb_it_new(struct pkgdb *db, sqlite3_stmt *s, int type)
{
	struct pkgdb_it *it;

@@ -311,6 +311,7 @@ pkgdb_it_new(struct pkgdb *db, sqlite3_stmt *s)

	it->db = db;
	it->stmt = s;
+
	it->type = type;
	return (it);
}

@@ -346,6 +347,15 @@ pkgdb_it_next(struct pkgdb_it *it, struct pkg **pkg_p, int flags)
		pkg_set(pkg, PKG_PREFIX, sqlite3_column_text(it->stmt, 11));
		pkg_setflatsize(pkg, sqlite3_column_int64(it->stmt, 12));

+
		if (it->type == IT_UPGRADE) {
+
			pkg->type = PKG_UPGRADE;
+

+
			pkg_set(pkg, PKG_NEWVERSION, sqlite3_column_text(it->stmt, 13));
+
			pkg_setnewflatsize(pkg, sqlite3_column_int64(it->stmt, 14));
+
			pkg_setnewpkgsize(pkg, sqlite3_column_int64(it->stmt, 15));
+
			pkg_set(pkg, PKG_NEWPATH, sqlite3_column_text(it->stmt, 16));
+
		}
+

		if (flags & PKG_LOAD_DEPS)
			if ((ret = pkgdb_loaddeps(it->db, pkg)) != EPKG_OK)
				return (ret);
@@ -378,13 +388,6 @@ pkgdb_it_next(struct pkgdb_it *it, struct pkg **pkg_p, int flags)
			if ((ret = pkgdb_loadmtree(it->db, pkg)) != EPKG_OK)
				return (ret);

-
		if (flags & PKG_LOAD_NEWVERSION) {
-
			pkg_set(pkg, PKG_NEWVERSION, sqlite3_column_text(it->stmt, 13));
-
			pkg_setnewflatsize(pkg, sqlite3_column_int64(it->stmt, 14));
-
			pkg_setnewpkgsize(pkg, sqlite3_column_int64(it->stmt, 15));
-
			pkg_set(pkg, PKG_NEWPATH, sqlite3_column_text(it->stmt, 16));
-
		}
-

		return (EPKG_OK);
	case SQLITE_DONE:
		return (EPKG_END);
@@ -463,7 +466,7 @@ pkgdb_query(struct pkgdb *db, const char *pattern, match_t match)
	if (match != MATCH_ALL)
		sqlite3_bind_text(stmt, 1, pattern, -1, SQLITE_TRANSIENT);

-
	return (pkgdb_it_new(db, stmt));
+
	return (pkgdb_it_new(db, stmt, IT_LOCAL));
}

struct pkgdb_it *
@@ -485,7 +488,7 @@ pkgdb_query_which(struct pkgdb *db, const char *path)

	sqlite3_bind_text(stmt, 1, path, -1, SQLITE_TRANSIENT);

-
	return (pkgdb_it_new(db, stmt));
+
	return (pkgdb_it_new(db, stmt, IT_LOCAL));
}

int
@@ -1272,7 +1275,7 @@ pkgdb_query_upgrades(struct pkgdb *db)
	if (sqlite3_prepare_v2(db->sqlite, sql, -1, &stmt, NULL) != SQLITE_OK)
		return (NULL);

-
	return (pkgdb_it_new(db, stmt));
+
	return (pkgdb_it_new(db, stmt, IT_UPGRADE));
}

struct pkgdb_it *
@@ -1296,5 +1299,5 @@ pkgdb_query_downgrades(struct pkgdb *db)
	if (sqlite3_prepare_v2(db->sqlite, sql, -1, &stmt, NULL) != SQLITE_OK)
		return (NULL);

-
	return (pkgdb_it_new(db, stmt));
+
	return (pkgdb_it_new(db, stmt, IT_UPGRADE));
}
modified libpkg/pkgdb.h
@@ -10,9 +10,13 @@ struct pkgdb {
	pkgdb_t remote;
};

+
#define IT_LOCAL 0
+
#define IT_UPGRADE 1
+

struct pkgdb_it {
	struct pkgdb *db;
	sqlite3_stmt *stmt;
+
	int type;
};

#endif
modified pkg/upgrade.c
@@ -54,7 +54,7 @@ exec_upgrade(int argc, char **argv)
	}

	printf("Packages to be upgraded: \n");
-
	while ((retcode = pkgdb_it_next(it, &pkg, PKG_LOAD_BASIC|PKG_LOAD_NEWVERSION)) == EPKG_OK) {
+
	while ((retcode = pkgdb_it_next(it, &pkg, PKG_LOAD_BASIC)) == EPKG_OK) {
		oldsize += pkg_flatsize(pkg);
		newsize += pkg_new_flatsize(pkg);
		dlsize += pkg_new_pkgsize(pkg);
@@ -69,7 +69,7 @@ exec_upgrade(int argc, char **argv)
	}

	printf("Packages to be downgraded: \n");
-
	while ((retcode = pkgdb_it_next(it, &pkg, PKG_LOAD_BASIC|PKG_LOAD_NEWVERSION)) == EPKG_OK) {
+
	while ((retcode = pkgdb_it_next(it, &pkg, PKG_LOAD_BASIC)) == EPKG_OK) {
		oldsize += pkg_flatsize(pkg);
		newsize += pkg_new_flatsize(pkg);
		dlsize += pkg_new_pkgsize(pkg);