* [PATCH] tools: perf: util: color.c: Remove some unused functions @ 2014-12-20 12:51 Rickard Strandqvist 2014-12-22 14:50 ` Arnaldo Carvalho de Melo ` (2 more replies) 0 siblings, 3 replies; 8+ messages in thread From: Rickard Strandqvist @ 2014-12-20 12:51 UTC (permalink / raw) To: Peter Zijlstra, Paul Mackerras Cc: Rickard Strandqvist, Ingo Molnar, Arnaldo Carvalho de Melo, Ramkumar Ramachandra, Jiri Olsa, Namhyung Kim, linux-kernel 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 <rickard_strandqvist@spectrumdigital.se> --- 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 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH] tools: perf: util: color.c: Remove some unused functions 2014-12-20 12:51 [PATCH] tools: perf: util: color.c: Remove some unused functions Rickard Strandqvist @ 2014-12-22 14:50 ` Arnaldo Carvalho de Melo 2014-12-22 14:53 ` Arnaldo Carvalho de Melo 2014-12-22 14:56 ` Jiri Olsa 2015-01-28 15:05 ` [tip:perf/core] perf tools: Remove some unused functions from color.c tip-bot for Rickard Strandqvist 2 siblings, 1 reply; 8+ messages in thread From: Arnaldo Carvalho de Melo @ 2014-12-22 14:50 UTC (permalink / raw) To: Rickard Strandqvist Cc: Peter Zijlstra, Paul Mackerras, Ingo Molnar, Ramkumar Ramachandra, Jiri Olsa, Namhyung Kim, linux-kernel 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 <rickard_strandqvist@spectrumdigital.se> > --- > 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 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] tools: perf: util: color.c: Remove some unused functions 2014-12-22 14:50 ` Arnaldo Carvalho de Melo @ 2014-12-22 14:53 ` Arnaldo Carvalho de Melo 2014-12-22 14:56 ` Arnaldo Carvalho de Melo 0 siblings, 1 reply; 8+ messages in thread From: Arnaldo Carvalho de Melo @ 2014-12-22 14:53 UTC (permalink / raw) To: Rickard Strandqvist Cc: Peter Zijlstra, Paul Mackerras, Ingo Molnar, Ramkumar Ramachandra, Jiri Olsa, Namhyung Kim, linux-kernel 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 <rickard_strandqvist@spectrumdigital.se> 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]$ ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] tools: perf: util: color.c: Remove some unused functions 2014-12-22 14:53 ` Arnaldo Carvalho de Melo @ 2014-12-22 14:56 ` Arnaldo Carvalho de Melo 0 siblings, 0 replies; 8+ messages in thread From: Arnaldo Carvalho de Melo @ 2014-12-22 14:56 UTC (permalink / raw) To: Rickard Strandqvist Cc: Peter Zijlstra, Paul Mackerras, Ingo Molnar, Ramkumar Ramachandra, Jiri Olsa, Namhyung Kim, linux-kernel 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 <rickard_strandqvist@spectrumdigital.se> > 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 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] tools: perf: util: color.c: Remove some unused functions 2014-12-20 12:51 [PATCH] tools: perf: util: color.c: Remove some unused functions Rickard Strandqvist 2014-12-22 14:50 ` Arnaldo Carvalho de Melo @ 2014-12-22 14:56 ` Jiri Olsa 2014-12-22 15:05 ` Arnaldo Carvalho de Melo 2015-01-28 15:05 ` [tip:perf/core] perf tools: Remove some unused functions from color.c tip-bot for Rickard Strandqvist 2 siblings, 1 reply; 8+ messages in thread From: Jiri Olsa @ 2014-12-22 14:56 UTC (permalink / raw) To: Rickard Strandqvist Cc: Peter Zijlstra, Paul Mackerras, Ingo Molnar, Arnaldo Carvalho de Melo, Ramkumar Ramachandra, Namhyung Kim, linux-kernel 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 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] tools: perf: util: color.c: Remove some unused functions 2014-12-22 14:56 ` Jiri Olsa @ 2014-12-22 15:05 ` Arnaldo Carvalho de Melo 2014-12-22 15:13 ` Arnaldo Carvalho de Melo 0 siblings, 1 reply; 8+ messages in thread From: Arnaldo Carvalho de Melo @ 2014-12-22 15:05 UTC (permalink / raw) To: Jiri Olsa Cc: Rickard Strandqvist, Peter Zijlstra, Paul Mackerras, Ingo Molnar, Ramkumar Ramachandra, Namhyung Kim, linux-kernel 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 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] tools: perf: util: color.c: Remove some unused functions 2014-12-22 15:05 ` Arnaldo Carvalho de Melo @ 2014-12-22 15:13 ` Arnaldo Carvalho de Melo 0 siblings, 0 replies; 8+ messages in thread From: Arnaldo Carvalho de Melo @ 2014-12-22 15:13 UTC (permalink / raw) To: Jiri Olsa Cc: Rickard Strandqvist, Peter Zijlstra, Paul Mackerras, Ingo Molnar, Ramkumar Ramachandra, Namhyung Kim, linux-kernel 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 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [tip:perf/core] perf tools: Remove some unused functions from color.c 2014-12-20 12:51 [PATCH] tools: perf: util: color.c: Remove some unused functions Rickard Strandqvist 2014-12-22 14:50 ` Arnaldo Carvalho de Melo 2014-12-22 14:56 ` Jiri Olsa @ 2015-01-28 15:05 ` tip-bot for Rickard Strandqvist 2 siblings, 0 replies; 8+ messages in thread From: tip-bot for Rickard Strandqvist @ 2015-01-28 15:05 UTC (permalink / raw) To: linux-tip-commits Cc: a.p.zijlstra, namhyung, acme, mingo, artagnon, jolsa, linux-kernel, paulus, tglx, rickard_strandqvist, mingo, hpa Commit-ID: c8defe249460b6fa3103797273f590372cc62efc Gitweb: http://git.kernel.org/tip/c8defe249460b6fa3103797273f590372cc62efc Author: Rickard Strandqvist <rickard_strandqvist@spectrumdigital.se> AuthorDate: Sat, 20 Dec 2014 13:51:05 +0100 Committer: Arnaldo Carvalho de Melo <acme@redhat.com> CommitDate: Wed, 21 Jan 2015 13:24:32 -0300 perf tools: Remove some unused functions from color.c 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 <rickard_strandqvist@spectrumdigital.se> Cc: Ingo Molnar <mingo@redhat.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Ramkumar Ramachandra <artagnon@gmail.com> Link: http://lkml.kernel.org/r/1419079865-354-1-git-send-email-rickard_strandqvist@spectrumdigital.se [ Remove now unused parse_{attr,color} routines too ] Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/util/color.c | 126 ------------------------------------------------ tools/perf/util/color.h | 2 - 2 files changed, 128 deletions(-) diff --git a/tools/perf/util/color.c b/tools/perf/util/color.c index f465418..55355b3 100644 --- a/tools/perf/util/color.c +++ b/tools/perf/util/color.c @@ -5,132 +5,6 @@ int perf_use_color_default = -1; -static int parse_color(const char *name, int len) -{ - static const char * const color_names[] = { - "normal", "black", "red", "green", "yellow", - "blue", "magenta", "cyan", "white" - }; - char *end; - int i; - - for (i = 0; i < (int)ARRAY_SIZE(color_names); i++) { - const char *str = color_names[i]; - if (!strncasecmp(name, str, len) && !str[len]) - return i - 1; - } - i = strtol(name, &end, 10); - if (end - name == len && i >= -1 && i <= 255) - return i; - return -2; -} - -static int parse_attr(const char *name, int len) -{ - static const int attr_values[] = { 1, 2, 4, 5, 7 }; - static const char * const attr_names[] = { - "bold", "dim", "ul", "blink", "reverse" - }; - unsigned int i; - - for (i = 0; i < ARRAY_SIZE(attr_names); i++) { - const char *str = attr_names[i]; - if (!strncasecmp(name, str, len) && !str[len]) - return attr_values[i]; - } - 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); ^ permalink raw reply related [flat|nested] 8+ messages in thread
end of thread, other threads:[~2015-01-28 20:50 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2014-12-20 12:51 [PATCH] tools: perf: util: color.c: Remove some unused functions Rickard Strandqvist 2014-12-22 14:50 ` Arnaldo Carvalho de Melo 2014-12-22 14:53 ` Arnaldo Carvalho de Melo 2014-12-22 14:56 ` Arnaldo Carvalho de Melo 2014-12-22 14:56 ` Jiri Olsa 2014-12-22 15:05 ` Arnaldo Carvalho de Melo 2014-12-22 15:13 ` Arnaldo Carvalho de Melo 2015-01-28 15:05 ` [tip:perf/core] perf tools: Remove some unused functions from color.c tip-bot for Rickard Strandqvist
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.