2014-12-20 12:48:20

by Rickard Strandqvist

[permalink] [raw]
Subject: [PATCH] tools: perf: util: color.c: Remove some unused functions

Removes some functions that are not used anywhere:
color_parse_mem() color_parse()

This was partially found by using a static code analysis program called cppcheck.

Signed-off-by: Rickard Strandqvist <[email protected]>
---
tools/perf/util/color.c | 90 -----------------------------------------------
tools/perf/util/color.h | 2 --
2 files changed, 92 deletions(-)

diff --git a/tools/perf/util/color.c b/tools/perf/util/color.c
index f465418..b5f1579 100644
--- a/tools/perf/util/color.c
+++ b/tools/perf/util/color.c
@@ -41,96 +41,6 @@ static int parse_attr(const char *name, int len)
return -1;
}

-void color_parse(const char *value, const char *var, char *dst)
-{
- color_parse_mem(value, strlen(value), var, dst);
-}
-
-void color_parse_mem(const char *value, int value_len, const char *var,
- char *dst)
-{
- const char *ptr = value;
- int len = value_len;
- int attr = -1;
- int fg = -2;
- int bg = -2;
-
- if (!strncasecmp(value, "reset", len)) {
- strcpy(dst, PERF_COLOR_RESET);
- return;
- }
-
- /* [fg [bg]] [attr] */
- while (len > 0) {
- const char *word = ptr;
- int val, wordlen = 0;
-
- while (len > 0 && !isspace(word[wordlen])) {
- wordlen++;
- len--;
- }
-
- ptr = word + wordlen;
- while (len > 0 && isspace(*ptr)) {
- ptr++;
- len--;
- }
-
- val = parse_color(word, wordlen);
- if (val >= -1) {
- if (fg == -2) {
- fg = val;
- continue;
- }
- if (bg == -2) {
- bg = val;
- continue;
- }
- goto bad;
- }
- val = parse_attr(word, wordlen);
- if (val < 0 || attr != -1)
- goto bad;
- attr = val;
- }
-
- if (attr >= 0 || fg >= 0 || bg >= 0) {
- int sep = 0;
-
- *dst++ = '\033';
- *dst++ = '[';
- if (attr >= 0) {
- *dst++ = '0' + attr;
- sep++;
- }
- if (fg >= 0) {
- if (sep++)
- *dst++ = ';';
- if (fg < 8) {
- *dst++ = '3';
- *dst++ = '0' + fg;
- } else {
- dst += sprintf(dst, "38;5;%d", fg);
- }
- }
- if (bg >= 0) {
- if (sep++)
- *dst++ = ';';
- if (bg < 8) {
- *dst++ = '4';
- *dst++ = '0' + bg;
- } else {
- dst += sprintf(dst, "48;5;%d", bg);
- }
- }
- *dst++ = 'm';
- }
- *dst = 0;
- return;
-bad:
- die("bad color value '%.*s' for variable '%s'", value_len, value, var);
-}
-
int perf_config_colorbool(const char *var, const char *value, int stdout_is_tty)
{
if (value) {
diff --git a/tools/perf/util/color.h b/tools/perf/util/color.h
index 0a594b8..38146f9 100644
--- a/tools/perf/util/color.h
+++ b/tools/perf/util/color.h
@@ -30,8 +30,6 @@ extern int perf_use_color_default;
int perf_color_default_config(const char *var, const char *value, void *cb);

int perf_config_colorbool(const char *var, const char *value, int stdout_is_tty);
-void color_parse(const char *value, const char *var, char *dst);
-void color_parse_mem(const char *value, int len, const char *var, char *dst);
int color_vsnprintf(char *bf, size_t size, const char *color,
const char *fmt, va_list args);
int color_vfprintf(FILE *fp, const char *color, const char *fmt, va_list args);
--
1.7.10.4


2014-12-22 14:50:19

by Arnaldo Carvalho de Melo

[permalink] [raw]
Subject: Re: [PATCH] tools: perf: util: color.c: Remove some unused functions

Em Sat, Dec 20, 2014 at 01:51:05PM +0100, Rickard Strandqvist escreveu:
> Removes some functions that are not used anywhere:
> color_parse_mem() color_parse()
>
> This was partially found by using a static code analysis program called cppcheck.

Thanks, applied.

> Signed-off-by: Rickard Strandqvist <[email protected]>
> ---
> tools/perf/util/color.c | 90 -----------------------------------------------
> tools/perf/util/color.h | 2 --
> 2 files changed, 92 deletions(-)
>
> diff --git a/tools/perf/util/color.c b/tools/perf/util/color.c
> index f465418..b5f1579 100644
> --- a/tools/perf/util/color.c
> +++ b/tools/perf/util/color.c
> @@ -41,96 +41,6 @@ static int parse_attr(const char *name, int len)
> return -1;
> }
>
> -void color_parse(const char *value, const char *var, char *dst)
> -{
> - color_parse_mem(value, strlen(value), var, dst);
> -}
> -
> -void color_parse_mem(const char *value, int value_len, const char *var,
> - char *dst)
> -{
> - const char *ptr = value;
> - int len = value_len;
> - int attr = -1;
> - int fg = -2;
> - int bg = -2;
> -
> - if (!strncasecmp(value, "reset", len)) {
> - strcpy(dst, PERF_COLOR_RESET);
> - return;
> - }
> -
> - /* [fg [bg]] [attr] */
> - while (len > 0) {
> - const char *word = ptr;
> - int val, wordlen = 0;
> -
> - while (len > 0 && !isspace(word[wordlen])) {
> - wordlen++;
> - len--;
> - }
> -
> - ptr = word + wordlen;
> - while (len > 0 && isspace(*ptr)) {
> - ptr++;
> - len--;
> - }
> -
> - val = parse_color(word, wordlen);
> - if (val >= -1) {
> - if (fg == -2) {
> - fg = val;
> - continue;
> - }
> - if (bg == -2) {
> - bg = val;
> - continue;
> - }
> - goto bad;
> - }
> - val = parse_attr(word, wordlen);
> - if (val < 0 || attr != -1)
> - goto bad;
> - attr = val;
> - }
> -
> - if (attr >= 0 || fg >= 0 || bg >= 0) {
> - int sep = 0;
> -
> - *dst++ = '\033';
> - *dst++ = '[';
> - if (attr >= 0) {
> - *dst++ = '0' + attr;
> - sep++;
> - }
> - if (fg >= 0) {
> - if (sep++)
> - *dst++ = ';';
> - if (fg < 8) {
> - *dst++ = '3';
> - *dst++ = '0' + fg;
> - } else {
> - dst += sprintf(dst, "38;5;%d", fg);
> - }
> - }
> - if (bg >= 0) {
> - if (sep++)
> - *dst++ = ';';
> - if (bg < 8) {
> - *dst++ = '4';
> - *dst++ = '0' + bg;
> - } else {
> - dst += sprintf(dst, "48;5;%d", bg);
> - }
> - }
> - *dst++ = 'm';
> - }
> - *dst = 0;
> - return;
> -bad:
> - die("bad color value '%.*s' for variable '%s'", value_len, value, var);
> -}
> -
> int perf_config_colorbool(const char *var, const char *value, int stdout_is_tty)
> {
> if (value) {
> diff --git a/tools/perf/util/color.h b/tools/perf/util/color.h
> index 0a594b8..38146f9 100644
> --- a/tools/perf/util/color.h
> +++ b/tools/perf/util/color.h
> @@ -30,8 +30,6 @@ extern int perf_use_color_default;
> int perf_color_default_config(const char *var, const char *value, void *cb);
>
> int perf_config_colorbool(const char *var, const char *value, int stdout_is_tty);
> -void color_parse(const char *value, const char *var, char *dst);
> -void color_parse_mem(const char *value, int len, const char *var, char *dst);
> int color_vsnprintf(char *bf, size_t size, const char *color,
> const char *fmt, va_list args);
> int color_vfprintf(FILE *fp, const char *color, const char *fmt, va_list args);
> --
> 1.7.10.4

2014-12-22 14:54:05

by Arnaldo Carvalho de Melo

[permalink] [raw]
Subject: Re: [PATCH] tools: perf: util: color.c: Remove some unused functions

Em Mon, Dec 22, 2014 at 11:50:13AM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Sat, Dec 20, 2014 at 01:51:05PM +0100, Rickard Strandqvist escreveu:
> > Removes some functions that are not used anywhere:
> > color_parse_mem() color_parse()
> >
> > This was partially found by using a static code analysis program called cppcheck.
>
> Thanks, applied.

Take that back, can you please check this:

[acme@ssdandy linux]$ am /wb/1.patch
Applying: tools: perf: util: color.c: Remove some unused functions
[perf/core b419f879f2a0] perf tools: Remove some unused functions from color.c
Author: Rickard Strandqvist <[email protected]>
2 files changed, 92 deletions(-)
[acme@ssdandy linux]$ time make -C tools/perf build-test
make: Entering directory `/home/acme/git/linux/tools/perf'
- make_pure: cd . && make -f Makefile DESTDIR=/tmp/tmp.4b0BVUu9ff
cd . && make -f Makefile DESTDIR=/tmp/tmp.4b0BVUu9ff
BUILD: Doing 'make -j8' parallel build
config/Makefile:390: No libunwind found. Please install libunwind-dev[el] >= 1.1 and/or set LIBUNWIND_DIR

Auto-detecting system features:
... dwarf: [ on ]
... glibc: [ on ]
... gtk2: [ on ]
... libaudit: [ on ]
... libbfd: [ on ]
... libelf: [ on ]
... libnuma: [ on ]
... libperl: [ on ]
... libpython: [ on ]
... libslang: [ on ]
... libunwind: [ OFF ]
... libdw-dwarf-unwind: [ on ]
... zlib: [ on ]
... DWARF post unwind library: libdw

GEN common-cmds.h
FLAGS: * new build flags or prefix
CC bench/mem-memcpy-x86-64-asm.o
CC bench/mem-memset-x86-64-asm.o
CC bench/mem-memcpy.o
CC bench/futex-hash.o
CC bench/futex-wake.o
CC bench/futex-requeue.o
CC builtin-diff.o
CC builtin-evlist.o
CC builtin-sched.o
CC builtin-buildid-list.o
CC builtin-buildid-cache.o
CC builtin-list.o
CC builtin-record.o
CC builtin-report.o
CC builtin-stat.o
CC builtin-top.o
CC builtin-script.o
CC builtin-probe.o
CC builtin-kmem.o
CC builtin-lock.o
CC builtin-kvm.o
CC builtin-inject.o
CC tests/builtin-test.o
CC builtin-mem.o
CC builtin-trace.o
CC bench/numa.o
CC util/abspath.o
CC util/alias.o
CC util/annotate.o
CC util/build-id.o
CC util/config.o
CC util/ctype.o
CC util/db-export.o
BISON util/pmu-bison.c
CC util/environment.o
CC util/event.o
CC util/evlist.o
CC util/evsel.o
CC util/exec_cmd.o
CC util/find_next_bit.o
PERF_VERSION = 3.18.gb419f8
CC util/help.o
CC util/kallsyms.o
CC util/levenshtein.o
CC util/parse-options.o
BISON util/parse-events-bison.c
CC util/path.o
CC util/rbtree.o
CC util/bitmap.o
CC util/hweight.o
CC util/run-command.o
CC util/quote.o
CC util/strbuf.o
CC util/string.o
CC util/strlist.o
CC util/strfilter.o
CC util/top.o
CC util/usage.o
CC util/wrapper.o
CC util/sigchain.o
CC util/dso.o
CC util/symbol.o
CC util/symbol-elf.o
CC util/color.o
CC util/pager.o
CC util/header.o
CC util/callchain.o
CC util/values.o
CC util/debug.o
util/color.c:8:12: error: ‘parse_color’ defined but not used [-Werror=unused-function]
static int parse_color(const char *name, int len)
^
util/color.c:28:12: error: ‘parse_attr’ defined but not used [-Werror=unused-function]
static int parse_attr(const char *name, int len)
^
cc1: all warnings being treated as errors
make[3]: *** [util/color.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [all] Error 2
test: test -x ./perf
make[1]: *** [make_pure] Error 1
make: *** [build-test] Error 2
make: Leaving directory `/home/acme/git/linux/tools/perf'

real 0m6.359s
user 0m16.198s
sys 0m2.000s
[acme@ssdandy linux]$

2014-12-22 14:56:20

by Arnaldo Carvalho de Melo

[permalink] [raw]
Subject: Re: [PATCH] tools: perf: util: color.c: Remove some unused functions

Em Mon, Dec 22, 2014 at 11:53:58AM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Mon, Dec 22, 2014 at 11:50:13AM -0300, Arnaldo Carvalho de Melo escreveu:
> > Em Sat, Dec 20, 2014 at 01:51:05PM +0100, Rickard Strandqvist escreveu:
> > > Removes some functions that are not used anywhere:
> > > color_parse_mem() color_parse()
> > >
> > > This was partially found by using a static code analysis program called cppcheck.
> >
> > Thanks, applied.
>
> Take that back, can you please check this:
>
> [acme@ssdandy linux]$ am /wb/1.patch
> Applying: tools: perf: util: color.c: Remove some unused functions
> [perf/core b419f879f2a0] perf tools: Remove some unused functions from color.c
> Author: Rickard Strandqvist <[email protected]>
> 2 files changed, 92 deletions(-)
> [acme@ssdandy linux]$ time make -C tools/perf build-test
> make: Entering directory `/home/acme/git/linux/tools/perf'
> - make_pure: cd . && make -f Makefile DESTDIR=/tmp/tmp.4b0BVUu9ff
> cd . && make -f Makefile DESTDIR=/tmp/tmp.4b0BVUu9ff
> BUILD: Doing 'make -j8' parallel build
> config/Makefile:390: No libunwind found. Please install libunwind-dev[el] >= 1.1 and/or set LIBUNWIND_DIR

Removed the now unused parse_{attr,color} static routines and I'm
running 'make -C tools/perf build-test' again to see if all goes well.

- Arnaldo

2014-12-22 14:56:28

by Jiri Olsa

[permalink] [raw]
Subject: Re: [PATCH] tools: perf: util: color.c: Remove some unused functions

On Sat, Dec 20, 2014 at 01:51:05PM +0100, Rickard Strandqvist wrote:
> Removes some functions that are not used anywhere:
> color_parse_mem() color_parse()
>
> This was partially found by using a static code analysis program called cppcheck.

and partially removed ;-)

[jolsa@krava perf]$ make
BUILD: Doing 'make -j4' parallel build
CC util/debug.o
CC util/color.o
CC util/machine.o
CC util/map.o
util/color.c:8:12: error: ‘parse_color’ defined but not used [-Werror=unused-function]
static int parse_color(const char *name, int len)
^
util/color.c:28:12: error: ‘parse_attr’ defined but not used [-Werror=unused-function]
static int parse_attr(const char *name, int len)
^
cc1: all warnings being treated as errors
make[1]: *** [util/color.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [all] Error 2


any clue why this (color name parsing) is in?

thanks,
jirka

2014-12-22 15:05:17

by Arnaldo Carvalho de Melo

[permalink] [raw]
Subject: Re: [PATCH] tools: perf: util: color.c: Remove some unused functions

Em Mon, Dec 22, 2014 at 03:56:10PM +0100, Jiri Olsa escreveu:
> On Sat, Dec 20, 2014 at 01:51:05PM +0100, Rickard Strandqvist wrote:
> > Removes some functions that are not used anywhere:
> > color_parse_mem() color_parse()
> >
> > This was partially found by using a static code analysis program called cppcheck.
>
> and partially removed ;-)
>
> [jolsa@krava perf]$ make
> BUILD: Doing 'make -j4' parallel build
> CC util/debug.o
> CC util/color.o
> CC util/machine.o
> CC util/map.o
> util/color.c:8:12: error: ‘parse_color’ defined but not used [-Werror=unused-function]
> static int parse_color(const char *name, int len)
> ^
> util/color.c:28:12: error: ‘parse_attr’ defined but not used [-Werror=unused-function]
> static int parse_attr(const char *name, int len)
> ^
> cc1: all warnings being treated as errors
> make[1]: *** [util/color.o] Error 1
> make[1]: *** Waiting for unfinished jobs....
> make: *** [all] Error 2
>
>
> any clue why this (color name parsing) is in?

Humm, there is support for changing the TUI colors in ~/.perfconfig, but
probably it doesn't uses those functions?

- Arnaldo

2014-12-22 15:13:26

by Arnaldo Carvalho de Melo

[permalink] [raw]
Subject: Re: [PATCH] tools: perf: util: color.c: Remove some unused functions

Em Mon, Dec 22, 2014 at 12:05:12PM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Mon, Dec 22, 2014 at 03:56:10PM +0100, Jiri Olsa escreveu:
> > On Sat, Dec 20, 2014 at 01:51:05PM +0100, Rickard Strandqvist wrote:
> > > Removes some functions that are not used anywhere:
> > > color_parse_mem() color_parse()
> > >
> > > This was partially found by using a static code analysis program called cppcheck.
> >
> > and partially removed ;-)
> >
> > [jolsa@krava perf]$ make
> > BUILD: Doing 'make -j4' parallel build
> > CC util/debug.o
> > CC util/color.o
> > CC util/machine.o
> > CC util/map.o
> > util/color.c:8:12: error: ‘parse_color’ defined but not used [-Werror=unused-function]
> > static int parse_color(const char *name, int len)
> > ^
> > util/color.c:28:12: error: ‘parse_attr’ defined but not used [-Werror=unused-function]
> > static int parse_attr(const char *name, int len)
> > ^
> > cc1: all warnings being treated as errors
> > make[1]: *** [util/color.o] Error 1
> > make[1]: *** Waiting for unfinished jobs....
> > make: *** [all] Error 2
> >
> >
> > any clue why this (color name parsing) is in?
>
> Humm, there is support for changing the TUI colors in ~/.perfconfig, but
> probably it doesn't uses those functions?

void ui_browser__init(void)
{
int i = 0;

perf_config(ui_browser__color_config, NULL);

while (ui_browser__colorsets[i].name) {
struct ui_browser_colorset *c = &ui_browser__colorsets[i++];
sltt_set_color(c->colorset, c->name, c->fg, c->bg);
}

annotate_browser__init();
}

And ui_browser__color_config does really simple parsing, using straight
away the color strings provided in the config file.

Looking again, we could even use those, after adapting it to what
libslang expects, not what ncurses do, but I haven't checked, perhaps
libslang will do that validation for us, in the meantime, I'm applying
the patch.

- Arnaldo