[alsa-devel] Anyone using alsactl preinit / postinit scripts?
Takashi Iwai
tiwai at suse.de
Thu Jun 14 14:10:20 CEST 2012
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 at 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 at 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) {
--
1.7.10.3
More information about the Alsa-devel
mailing list