Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
pkgdb_query now check if the pattern concern origin or name
Baptiste Daroussin committed 15 years ago
commit 0ccf079782516d4a7b777af6417d23cec9248e9c
parent fc7e176
1 file changed +18 -4
modified libpkg/pkgdb.c
@@ -453,27 +453,41 @@ pkgdb_query(struct pkgdb *db, const char *pattern, match_t match)
	char sql[BUFSIZ];
	sqlite3_stmt *stmt;
	const char *comp = NULL;
+
	char *checkorigin = NULL;

	if (match != MATCH_ALL && pattern == NULL) {
		pkgdb_set_error(db, 0, "missing pattern");
		return (NULL);
	}

+
	checkorigin = strchr(pattern, '/');
	switch (match) {
	case MATCH_ALL:
		comp = "";
		break;
	case MATCH_EXACT:
-
		comp = " WHERE name = ?1";
+
		if (checkorigin == NULL)
+
			comp = " WHERE name = ?1";
+
		else
+
			comp = " WHERE origin = ?1";
		break;
	case MATCH_GLOB:
-
		comp = " WHERE name GLOB ?1";
+
		if (checkorigin == NULL)
+
			comp = " WHERE name GLOB ?1";
+
		else
+
			comp = " WHERE origin GLOB ?1";
		break;
	case MATCH_REGEX:
-
		comp = " WHERE name REGEXP ?1";
+
		if (checkorigin == NULL)
+
			comp = " WHERE name REGEXP ?1";
+
		else
+
			comp = " WHERE origin REGEXP ?1";
		break;
	case MATCH_EREGEX:
-
		comp = " WHERE EREGEXP(?1, name)";
+
		if (checkorigin == NULL)
+
			comp = " WHERE EREGEXP(?1, name)";
+
		else
+
			comp = " WHERE EREGEXP(?1, origin)";
		break;
	}