conf: fix the include paths support

I omitted to use parent paths and the proper error code
when no paths are defined.

Fixes: f600310954 ("conf: improve the include paths code")

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
This commit is contained in:
Jaroslav Kysela 2019-11-18 19:01:45 +01:00
parent 6a76c01a01
commit 39fda8a69a

View file

@ -610,12 +610,12 @@ static char *_snd_config_path(const char *name)
* These directories should be subdirectories of /usr/share/alsa.
*/
static int input_stdio_open(snd_input_t **inputp, const char *file,
struct list_head *include_paths)
struct filedesc *current)
{
struct list_head *pos;
struct include_path *path;
char full_path[PATH_MAX];
int err = 0;
int err;
if (file[0] == '/')
return snd_input_stdio_open(inputp, file, "r");
@ -623,7 +623,9 @@ static int input_stdio_open(snd_input_t **inputp, const char *file,
/* search file in user specified include paths. These directories
* are subdirectories of /usr/share/alsa.
*/
list_for_each(pos, include_paths) {
err = -ENOENT;
while (current) {
list_for_each(pos, &current->include_paths) {
path = list_entry(pos, struct include_path, list);
if (!path->dir)
continue;
@ -633,6 +635,8 @@ static int input_stdio_open(snd_input_t **inputp, const char *file,
if (err == 0)
return 0;
}
current = current->next;
}
return err;
}
@ -804,8 +808,7 @@ static int get_char_skip_comments(input_t *input)
str = tmp;
err = snd_input_stdio_open(&in, str, "r");
} else { /* absolute or relative file path */
err = input_stdio_open(&in, str,
&input->current->include_paths);
err = input_stdio_open(&in, str, input->current);
}
if (err < 0) {