static void construct_dirlist(struct wh_dirlist **ls, int type, const char **paths) { size_t i; DBG(STATIC, ul_debugobj(*ls, "construct %s dirlist from static array", whereis_type_to_name(type))); for (i = 0; paths[i]; i++) { if (!strchr(paths[i], '*')) dirlist_add_dir(ls, type, paths[i]); else dirlist_add_subdir(ls, type, paths[i]); } return; }
static void construct_dirlist_from_env(const char *env, struct wh_dirlist **ls, int type) { char *key = NULL, *tok = NULL, *pathcp, *path = getenv(env); if (!path) return; pathcp = xstrdup(path); DBG(ENV, ul_debugobj(*ls, "construct %s dirlist from: %s", whereis_type_to_name(type), path)); for (tok = strtok_r(pathcp, ":", &key); tok; tok = strtok_r(NULL, ":", &key)) dirlist_add_dir(ls, type, tok); free(pathcp); return; }
static void construct_dirlist_from_argv(struct wh_dirlist **ls, int *idx, int argc, char *argv[], int type) { int i; DBG(ARGV, ul_debugobj(*ls, "construct %s dirlist from argv[%d..]", whereis_type_to_name(type), *idx)); for (i = *idx; i < argc; i++) { if (*argv[i] == '-') /* end of the list */ break; DBG(ARGV, ul_debugobj(*ls, " using argv[%d]: %s", *idx, argv[*idx])); dirlist_add_dir(ls, type, argv[i]); *idx = i; } return; }