libpkgconf: pkg: pkgconf_pkg_new_from_file() and children do not need the resolver flags anymore, so remove them
parent
6e4fd027c3
commit
062f0fd331
|
@ -215,7 +215,7 @@ pkgconf_pkg_t *pkgconf_scan_all(pkgconf_client_t *client, void *ptr, pkgconf_pkg
|
||||||
void pkgconf_pkg_dir_list_build(pkgconf_client_t *client, unsigned int flags);
|
void pkgconf_pkg_dir_list_build(pkgconf_client_t *client, unsigned int flags);
|
||||||
|
|
||||||
/* parse.c */
|
/* parse.c */
|
||||||
pkgconf_pkg_t *pkgconf_pkg_new_from_file(const pkgconf_client_t *client, const char *path, FILE *f, unsigned int flags);
|
pkgconf_pkg_t *pkgconf_pkg_new_from_file(const pkgconf_client_t *client, const char *path, FILE *f);
|
||||||
void pkgconf_dependency_parse_str(pkgconf_list_t *deplist_head, const char *depends);
|
void pkgconf_dependency_parse_str(pkgconf_list_t *deplist_head, const char *depends);
|
||||||
void pkgconf_dependency_parse(const pkgconf_client_t *client, pkgconf_pkg_t *pkg, pkgconf_list_t *deplist_head, const char *depends);
|
void pkgconf_dependency_parse(const pkgconf_client_t *client, pkgconf_pkg_t *pkg, pkgconf_list_t *deplist_head, const char *depends);
|
||||||
void pkgconf_dependency_append(pkgconf_list_t *list, pkgconf_dependency_t *tail);
|
void pkgconf_dependency_append(pkgconf_list_t *list, pkgconf_dependency_t *tail);
|
||||||
|
|
|
@ -119,7 +119,7 @@ pkgconf_pkg_dir_list_build(pkgconf_client_t *client, unsigned int flags)
|
||||||
pkgconf_path_build_from_environ("PKG_CONFIG_LIBDIR", get_default_pkgconfig_path(), &client->dir_list);
|
pkgconf_path_build_from_environ("PKG_CONFIG_LIBDIR", get_default_pkgconfig_path(), &client->dir_list);
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef void (*pkgconf_pkg_parser_keyword_func_t)(const pkgconf_client_t *client, pkgconf_pkg_t *pkg, const ptrdiff_t offset, char *value, unsigned int flags);
|
typedef void (*pkgconf_pkg_parser_keyword_func_t)(const pkgconf_client_t *client, pkgconf_pkg_t *pkg, const ptrdiff_t offset, char *value);
|
||||||
typedef struct {
|
typedef struct {
|
||||||
const char *keyword;
|
const char *keyword;
|
||||||
const pkgconf_pkg_parser_keyword_func_t func;
|
const pkgconf_pkg_parser_keyword_func_t func;
|
||||||
|
@ -133,29 +133,23 @@ static int pkgconf_pkg_parser_keyword_pair_cmp(const void *key, const void *ptr)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
pkgconf_pkg_parser_tuple_func(const pkgconf_client_t *client, pkgconf_pkg_t *pkg, const ptrdiff_t offset, char *value, unsigned int flags)
|
pkgconf_pkg_parser_tuple_func(const pkgconf_client_t *client, pkgconf_pkg_t *pkg, const ptrdiff_t offset, char *value)
|
||||||
{
|
{
|
||||||
char **dest = ((void *) pkg + offset);
|
char **dest = ((void *) pkg + offset);
|
||||||
(void) flags;
|
|
||||||
|
|
||||||
*dest = pkgconf_tuple_parse(client, &pkg->vars, value);
|
*dest = pkgconf_tuple_parse(client, &pkg->vars, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
pkgconf_pkg_parser_fragment_func(const pkgconf_client_t *client, pkgconf_pkg_t *pkg, const ptrdiff_t offset, char *value, unsigned int flags)
|
pkgconf_pkg_parser_fragment_func(const pkgconf_client_t *client, pkgconf_pkg_t *pkg, const ptrdiff_t offset, char *value)
|
||||||
{
|
{
|
||||||
pkgconf_list_t *dest = ((void *) pkg + offset);
|
pkgconf_list_t *dest = ((void *) pkg + offset);
|
||||||
(void) flags;
|
|
||||||
|
|
||||||
pkgconf_fragment_parse(client, dest, &pkg->vars, value);
|
pkgconf_fragment_parse(client, dest, &pkg->vars, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
pkgconf_pkg_parser_dependency_func(const pkgconf_client_t *client, pkgconf_pkg_t *pkg, const ptrdiff_t offset, char *value, unsigned int flags)
|
pkgconf_pkg_parser_dependency_func(const pkgconf_client_t *client, pkgconf_pkg_t *pkg, const ptrdiff_t offset, char *value)
|
||||||
{
|
{
|
||||||
pkgconf_list_t *dest = ((void *) pkg + offset);
|
pkgconf_list_t *dest = ((void *) pkg + offset);
|
||||||
(void) flags;
|
|
||||||
|
|
||||||
pkgconf_dependency_parse(client, pkg, dest, value);
|
pkgconf_dependency_parse(client, pkg, dest, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -175,7 +169,7 @@ static const pkgconf_pkg_parser_keyword_pair_t pkgconf_pkg_parser_keyword_funcs[
|
||||||
};
|
};
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
pkgconf_pkg_parser_keyword_set(const pkgconf_client_t *client, pkgconf_pkg_t *pkg, const char *keyword, char *value, unsigned int flags)
|
pkgconf_pkg_parser_keyword_set(const pkgconf_client_t *client, pkgconf_pkg_t *pkg, const char *keyword, char *value)
|
||||||
{
|
{
|
||||||
const pkgconf_pkg_parser_keyword_pair_t *pair = bsearch(keyword,
|
const pkgconf_pkg_parser_keyword_pair_t *pair = bsearch(keyword,
|
||||||
pkgconf_pkg_parser_keyword_funcs, PKGCONF_ARRAY_SIZE(pkgconf_pkg_parser_keyword_funcs),
|
pkgconf_pkg_parser_keyword_funcs, PKGCONF_ARRAY_SIZE(pkgconf_pkg_parser_keyword_funcs),
|
||||||
|
@ -184,17 +178,17 @@ pkgconf_pkg_parser_keyword_set(const pkgconf_client_t *client, pkgconf_pkg_t *pk
|
||||||
if (pair == NULL || pair->func == NULL)
|
if (pair == NULL || pair->func == NULL)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
pair->func(client, pkg, pair->offset, value, flags);
|
pair->func(client, pkg, pair->offset, value);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* pkgconf_pkg_new_from_file(filename, file, flags)
|
* pkgconf_pkg_new_from_file(client, filename, file)
|
||||||
*
|
*
|
||||||
* Parse a .pc file into a pkgconf_pkg_t object structure.
|
* Parse a .pc file into a pkgconf_pkg_t object structure.
|
||||||
*/
|
*/
|
||||||
pkgconf_pkg_t *
|
pkgconf_pkg_t *
|
||||||
pkgconf_pkg_new_from_file(const pkgconf_client_t *client, const char *filename, FILE *f, unsigned int flags)
|
pkgconf_pkg_new_from_file(const pkgconf_client_t *client, const char *filename, FILE *f)
|
||||||
{
|
{
|
||||||
pkgconf_pkg_t *pkg;
|
pkgconf_pkg_t *pkg;
|
||||||
char readbuf[PKGCONF_BUFSIZE];
|
char readbuf[PKGCONF_BUFSIZE];
|
||||||
|
@ -245,7 +239,7 @@ pkgconf_pkg_new_from_file(const pkgconf_client_t *client, const char *filename,
|
||||||
switch (op)
|
switch (op)
|
||||||
{
|
{
|
||||||
case ':':
|
case ':':
|
||||||
if (!pkgconf_pkg_parser_keyword_set(client, pkg, key, value, flags))
|
if (!pkgconf_pkg_parser_keyword_set(client, pkg, key, value))
|
||||||
/* XXX: warning? */
|
/* XXX: warning? */
|
||||||
;
|
;
|
||||||
break;
|
break;
|
||||||
|
@ -338,11 +332,11 @@ pkgconf_pkg_try_specific_path(const pkgconf_client_t *client, const char *path,
|
||||||
|
|
||||||
if (!(flags & PKGCONF_PKG_PKGF_NO_UNINSTALLED) && (f = fopen(uninst_locbuf, "r")) != NULL)
|
if (!(flags & PKGCONF_PKG_PKGF_NO_UNINSTALLED) && (f = fopen(uninst_locbuf, "r")) != NULL)
|
||||||
{
|
{
|
||||||
pkg = pkgconf_pkg_new_from_file(client, uninst_locbuf, f, flags);
|
pkg = pkgconf_pkg_new_from_file(client, uninst_locbuf, f);
|
||||||
pkg->flags |= PKGCONF_PKG_PROPF_UNINSTALLED;
|
pkg->flags |= PKGCONF_PKG_PROPF_UNINSTALLED;
|
||||||
}
|
}
|
||||||
else if ((f = fopen(locbuf, "r")) != NULL)
|
else if ((f = fopen(locbuf, "r")) != NULL)
|
||||||
pkg = pkgconf_pkg_new_from_file(client, locbuf, f, flags);
|
pkg = pkgconf_pkg_new_from_file(client, locbuf, f);
|
||||||
|
|
||||||
return pkg;
|
return pkg;
|
||||||
}
|
}
|
||||||
|
@ -377,7 +371,7 @@ pkgconf_pkg_scan_dir(pkgconf_client_t *client, const char *path, void *data, pkg
|
||||||
if (f == NULL)
|
if (f == NULL)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
pkg = pkgconf_pkg_new_from_file(client, filebuf, f, 0);
|
pkg = pkgconf_pkg_new_from_file(client, filebuf, f);
|
||||||
if (pkg != NULL)
|
if (pkg != NULL)
|
||||||
{
|
{
|
||||||
if (func(pkg, data))
|
if (func(pkg, data))
|
||||||
|
@ -464,7 +458,7 @@ pkgconf_pkg_find(pkgconf_client_t *client, const char *name, unsigned int flags)
|
||||||
{
|
{
|
||||||
pkgconf_pkg_t *pkg;
|
pkgconf_pkg_t *pkg;
|
||||||
|
|
||||||
pkg = pkgconf_pkg_new_from_file(client, name, f, flags);
|
pkg = pkgconf_pkg_new_from_file(client, name, f);
|
||||||
pkgconf_path_add(pkg_get_parent_dir(pkg), &client->dir_list);
|
pkgconf_path_add(pkg_get_parent_dir(pkg), &client->dir_list);
|
||||||
|
|
||||||
return pkg;
|
return pkg;
|
||||||
|
|
Loading…
Reference in New Issue