Hi,
is anyone already using preinit / postinit scripts of alsactl init? I'm thinking of appliny the patch below, but before that, I'd like to make sure that *.conf is the appropriate extension.
thanks,
Takashi
--- From: Takashi Iwai tiwai@suse.de Subject: [PATCH] alsactl: Read only *.conf files when a directory is passed via INCLUDE
When alsactl init is invoked and a directory path is passed to INCLUDE command in the config file, read only *.conf files in that directory. This will avoid reading backup files or invalid files that have been created accidentally.
Signed-off-by: Takashi Iwai tiwai@suse.de --- alsactl/init_parse.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/alsactl/init_parse.c b/alsactl/init_parse.c index 51b515c..83d12ba 100644 --- a/alsactl/init_parse.c +++ b/alsactl/init_parse.c @@ -1502,12 +1502,16 @@ static int parse_line(struct space *space, char *line, size_t linesize) if (dir) { count = strlen(string); while ((dirent = readdir(dir)) != NULL) { - if (strcmp(dirent->d_name, ".") == 0 || - strcmp(dirent->d_name, "..") == 0) + const char *name = dirent->d_name; + const char *ext; + if (*name == '.') + continue; + ext = strrchr(name, ','); + if (!ext || strcmp(ext, ".conf")) continue; string[count] = '\0'; strlcat(string, "/", sizeof(string)); - strlcat(string, dirent->d_name, sizeof(string)); + strlcat(string, name, sizeof(string)); space->go_to = NULL; space->rootdir = new_root_dir(string); if (space->rootdir) {