We create a tui dump mode in previous patch. In tui dump mode, the output
is written to stdio. We need to bypass ui_init() in setup_browser().

Signed-off-by: Jin Yao <yao....@linux.intel.com>
---
 tools/perf/builtin-annotate.c | 2 +-
 tools/perf/builtin-c2c.c      | 2 +-
 tools/perf/builtin-report.c   | 2 +-
 tools/perf/builtin-top.c      | 2 +-
 tools/perf/ui/setup.c         | 9 +++++++--
 tools/perf/ui/ui.h            | 2 +-
 6 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c
index ead6ae4..2db5b50 100644
--- a/tools/perf/builtin-annotate.c
+++ b/tools/perf/builtin-annotate.c
@@ -576,7 +576,7 @@ int cmd_annotate(int argc, const char **argv)
        else if (annotate.use_gtk)
                use_browser = 2;
 
-       setup_browser(true);
+       setup_browser(true, false);
 
        if (use_browser == 1 && annotate.has_br_stack) {
                sort__mode = SORT_MODE__BRANCH;
diff --git a/tools/perf/builtin-c2c.c b/tools/perf/builtin-c2c.c
index 98d243f..6abc13b 100644
--- a/tools/perf/builtin-c2c.c
+++ b/tools/perf/builtin-c2c.c
@@ -2618,7 +2618,7 @@ static int perf_c2c__report(int argc, const char **argv)
        else
                use_browser = 1;
 
-       setup_browser(false);
+       setup_browser(false, false);
 
        err = perf_session__process_events(session);
        if (err) {
diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
index 971ccba..99277b7 100644
--- a/tools/perf/builtin-report.c
+++ b/tools/perf/builtin-report.c
@@ -1261,7 +1261,7 @@ int cmd_report(int argc, const char **argv)
        }
 
        if (strcmp(input_name, "-") != 0)
-               setup_browser(true);
+               setup_browser(true, false);
        else
                use_browser = 0;
 
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
index 0a26b56..b7db01a 100644
--- a/tools/perf/builtin-top.c
+++ b/tools/perf/builtin-top.c
@@ -1430,7 +1430,7 @@ int cmd_top(int argc, const char **argv)
        else if (top.use_tui)
                use_browser = 1;
 
-       setup_browser(false);
+       setup_browser(false, false);
 
        if (setup_sorting(top.evlist) < 0) {
                if (sort_order)
diff --git a/tools/perf/ui/setup.c b/tools/perf/ui/setup.c
index 44fe824..8219b2e 100644
--- a/tools/perf/ui/setup.c
+++ b/tools/perf/ui/setup.c
@@ -73,9 +73,9 @@ int stdio__config_color(const struct option *opt 
__maybe_unused,
        return 0;
 }
 
-void setup_browser(bool fallback_to_pager)
+void setup_browser(bool fallback_to_pager, bool tui_dump)
 {
-       if (use_browser < 2 && (!isatty(1) || dump_trace))
+       if (use_browser < 2 && (!isatty(1) || dump_trace) && !tui_dump)
                use_browser = 0;
 
        /* default to TUI */
@@ -92,6 +92,11 @@ void setup_browser(bool fallback_to_pager)
                /* fall through */
        case 1:
                use_browser = 1;
+               if (tui_dump) {
+                       setup_pager();
+                       break;
+               }
+
                if (ui__init() == 0)
                        break;
                /* fall through */
diff --git a/tools/perf/ui/ui.h b/tools/perf/ui/ui.h
index 9b6fdf0..020a85b 100644
--- a/tools/perf/ui/ui.h
+++ b/tools/perf/ui/ui.h
@@ -11,7 +11,7 @@ extern void *perf_gtk_handle;
 
 extern int use_browser;
 
-void setup_browser(bool fallback_to_pager);
+void setup_browser(bool fallback_to_pager, bool tui_dump);
 void exit_browser(bool wait_for_ok);
 
 #ifdef HAVE_SLANG_SUPPORT
-- 
2.7.4

Reply via email to