[alsa-devel] Anyone using alsactl preinit / postinit scripts?

Jaroslav Kysela perex at perex.cz
Thu Jun 14 15:07:40 CEST 2012


Date 14.6.2012 14:10, Takashi Iwai wrote:
> 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.

Hi,

This filename filter looks good to me. I have no objections to use the
.conf extension.

While improving this code, adding a filename sort might be also useful ;-)

> ---
> 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, ',');

'.' should be matched here...

> +					if (!ext || strcmp(ext, ".conf"))
>  						continue;

Please, update also the documentation in alsactl_init.xml .

				Thanks,
					Jaroslav

-- 
Jaroslav Kysela <perex at perex.cz>
Linux Kernel Sound Maintainer
ALSA Project; Red Hat, Inc.


More information about the Alsa-devel mailing list