+int find_globs(struct search_ctl *opt) {
+ glob_t *repos;
+ int rv;
+
+ repos = &opt->repos;
+ repos->gl_offs = 0;
+
+ int globopts = 0;
+
+ if (opt->repodir) {
+ char *globstr = pathcat(opt->repodir, "*.repo");
+ rv = glob(globstr, globopts, NULL, repos);
+ switch (rv) {
+ case GLOB_NOSPACE:
+ fprintf(stderr, "glob no mem\n");
+ return 0;
+ case GLOB_ABORTED:
+ fprintf(stderr, "glob abort\n");
+ return 0;
+ case GLOB_NOMATCH:
+ break;
+ case 0:
+ break;
+ default:
+ break;
+ }
+ globopts = GLOB_APPEND;
+ free(globstr);
+ }
+
+ if (opt->pkgdir) {
+ char *globstr = pathcat(opt->pkgdir, "*.zpm");
+ rv = glob(globstr, globopts, NULL, repos);
+ switch (rv) {
+ case GLOB_NOSPACE:
+ fprintf(stderr, "glob no mem\n");
+ return 0;
+ case GLOB_ABORTED:
+ fprintf(stderr, "glob abort\n");
+ return 0;
+ case GLOB_NOMATCH:
+ break;
+ case 0:
+ break;
+ default:
+ break;
+ }
+ globopts = GLOB_APPEND;
+ free(globstr);
+ }
+
+ return 1;
+}
+
+int find_lib(char *soname, struct search_ctl *opt, struct pkgloc *pkg) {