lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Tue, 3 Nov 2015 21:15:14 +0900
From:	Namhyung Kim <namhyung@...nel.org>
To:	Taeung Song <treeze.taeung@...il.com>
Cc:	Arnaldo Carvalho de Melo <acme@...nel.org>,
	linux-kernel@...r.kernel.org, jolsa@...hat.com,
	Ingo Molnar <mingo@...hat.com>
Subject: Re: [PATCH v9 4/9] perf config: Add comparing name treating '_' and
 '-' as being the same thing.

On Tue, Nov 03, 2015 at 10:50:15AM +0900, Taeung Song wrote:
> The comparing name functionality is that
> two config name are compared treating '-' or '_' as
> being the same thing. For example, both 'print_percent'
> and 'print-percent' in 'call-graph' section
> are regarded as the same thing.

Hmm.. but this code only does it for 'perf config' command, right?
What we want is treating them in all other commands which use
perf_config() callbacks.  I think it'd be better to convert the
character when parsing the config files..

Thanks,
Namhyung


> 
> Signed-off-by: Taeung Song <treeze.taeung@...il.com>
> ---
>  tools/perf/builtin-config.c | 23 ++++++++++++++++++++++-
>  1 file changed, 22 insertions(+), 1 deletion(-)
> 
> diff --git a/tools/perf/builtin-config.c b/tools/perf/builtin-config.c
> index f99c39d..d4e2899 100644
> --- a/tools/perf/builtin-config.c
> +++ b/tools/perf/builtin-config.c
> @@ -32,6 +32,27 @@ static struct option config_options[] = {
>  	OPT_END()
>  };
>  
> +static int compare_name(const char *name1, const char *name2)
> +{
> +	while (true) {
> +		/*
> +		 * If two names have '-' or '_', them are treated
> +		 * as being the same thing.
> +		 */
> +		if ((*name1 == '-' || *name1 == '_')
> +		    && (*name2 == '-' || *name2 == '_')) {
> +			name1++, name2++;
> +			continue;
> +		}
> +
> +		if (*name1 && (*name1 == *name2))
> +			name1++, name2++;
> +		else
> +			break;
> +	}
> +	return *(const unsigned char *)name1-*(const unsigned char *)name2;
> +}
> +
>  static struct config_section *find_section(struct list_head *sections,
>  					   const char *section_name)
>  {
> @@ -50,7 +71,7 @@ static struct config_element *find_element(const char *name,
>  	struct config_element *element;
>  
>  	list_for_each_entry(element, &section->element_head, list)
> -		if (!strcmp(element->name, name))
> +		if (!compare_name(element->name, name))
>  			return element;
>  
>  	return NULL;
> -- 
> 1.9.1
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ