static Seq *FindPackages(const char *database_filename, PackagePattern *pattern) { Seq *db = ReadPackageEntries(database_filename); Seq *matching = SeqNew(1000, NULL); for (size_t i = 0; i < SeqLength(db); i++) { Package *package = SeqAt(db, i); if (MatchPackage(pattern, package)) { SeqAppend(matching, package); } } return matching; }
static Rlist *FindPackages(const char *database_filename, PackagePattern *pattern) { Rlist *db = ReadPackageEntries(database_filename); Rlist *matching = NULL; Rlist *rp = NULL; for (rp = db; rp != NULL; rp = rp->next) { Package *package = (Package *) rp->item; if (MatchPackage(pattern, package)) { RlistAppendAlien(&matching, package); } } return matching; }