perf tui: Reset use_browser if stdout is not a tty
Arnaldo Carvalho de Melo [Wed, 26 May 2010 16:22:26 +0000 (13:22 -0300)]
The newt initialization routines weren't being called because the output
was a file (perf annotate > /tmp/bla) but use_browser was still 1,
because ~/.perfconfig had it as 'on', so, later on newt routines
segfaulted.

Cc: Frédéric Weisbecker <fweisbec@gmail.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Stephane Eranian <eranian@google.com>
Cc: Tom Zanussi <tzanussi@gmail.com>
LKML-Reference: <new-submission>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

tools/perf/builtin-annotate.c
tools/perf/util/newt.c

index 08278ed..96db524 100644 (file)
@@ -343,7 +343,7 @@ find_next:
                        continue;
                }
 
-               if (use_browser) {
+               if (use_browser > 0) {
                        key = hist_entry__tui_annotate(he);
                        if (is_exit_key(key))
                                break;
index d54c540..cf182ca 100644 (file)
@@ -1139,6 +1139,7 @@ void setup_browser(void)
        struct newtPercentTreeColors *c = &defaultPercentTreeColors;
 
        if (!isatty(1) || !use_browser || dump_trace) {
+               use_browser = 0;
                setup_pager();
                return;
        }