forked from ariadne/pkgconf
pkg: add path_split() helper function
parent
281d69eec3
commit
538317f6c5
28
pkg.c
28
pkg.c
|
@ -30,17 +30,38 @@
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
/* pkg-config uses ';' on win32 as ':' is part of path */
|
/* pkg-config uses ';' on win32 as ':' is part of path */
|
||||||
#define PKG_CONFIG_PATH_SEP_S ";"
|
#define PKG_CONFIG_PATH_SEP_S ";"
|
||||||
#define PKG_CONFIG_PATH_SEP ';'
|
#define PKG_CONFIG_PATH_SEP ':'
|
||||||
#else
|
#else
|
||||||
#define PKG_CONFIG_PATH_SEP_S ":"
|
#define PKG_CONFIG_PATH_SEP_S ":"
|
||||||
#define PKG_CONFIG_PATH_SEP ':'
|
#define PKG_CONFIG_PATH_SEP ':'
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static inline int
|
||||||
|
path_split(char *text, char ***parv)
|
||||||
|
{
|
||||||
|
int count = 0;
|
||||||
|
char *p;
|
||||||
|
|
||||||
|
if (text == NULL)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
*parv = malloc(sizeof (void *));
|
||||||
|
|
||||||
|
p = text;
|
||||||
|
while ((*parv[count] = strtok(p, " ")) != NULL)
|
||||||
|
{
|
||||||
|
count++, p = NULL;
|
||||||
|
*parv = realloc(*parv, sizeof (void *) * count);
|
||||||
|
}
|
||||||
|
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
|
||||||
pkg_t *
|
pkg_t *
|
||||||
pkg_find(const char *name)
|
pkg_find(const char *name)
|
||||||
{
|
{
|
||||||
char locbuf[BUFSIZ];
|
char locbuf[PKG_CONFIG_PATH_SZ];
|
||||||
char path[BUFSIZ];
|
char *path;
|
||||||
const char *env_path;
|
const char *env_path;
|
||||||
int count = 0, pcount = 0;
|
int count = 0, pcount = 0;
|
||||||
FILE *f;
|
FILE *f;
|
||||||
|
@ -51,6 +72,7 @@ pkg_find(const char *name)
|
||||||
{
|
{
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (env_path[count] && env_path[count] != PKG_CONFIG_PATH_SEP)
|
if (env_path[count] && env_path[count] != PKG_CONFIG_PATH_SEP)
|
||||||
{
|
{
|
||||||
path[pcount] = env_path[count];
|
path[pcount] = env_path[count];
|
||||||
|
|
Loading…
Reference in New Issue