From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jaroslav Kysela Subject: Re: Anyone using alsactl preinit / postinit scripts? Date: Thu, 14 Jun 2012 15:07:40 +0200 Message-ID: <4FD9E21C.9030002@perex.cz> References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail1.perex.cz (mail1.perex.cz [77.48.224.245]) by alsa0.perex.cz (Postfix) with ESMTP id 83BA624492 for ; Thu, 14 Jun 2012 15:07:13 +0200 (CEST) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: alsa-devel-bounces@alsa-project.org Errors-To: alsa-devel-bounces@alsa-project.org To: Takashi Iwai , ALSA development List-Id: alsa-devel@alsa-project.org 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 > 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 > --- > 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 Linux Kernel Sound Maintainer ALSA Project; Red Hat, Inc.