summaryrefslogtreecommitdiffstats
path: root/tools/perf/util
diff options
context:
space:
mode:
Diffstat (limited to 'tools/perf/util')
-rw-r--r--tools/perf/util/cache.h4
-rw-r--r--tools/perf/util/newt.c19
2 files changed, 15 insertions, 8 deletions
diff --git a/tools/perf/util/cache.h b/tools/perf/util/cache.h
index 47b12a3d11b..4b9aab7f040 100644
--- a/tools/perf/util/cache.h
+++ b/tools/perf/util/cache.h
@@ -77,10 +77,10 @@ static inline void setup_browser(void)
{
setup_pager();
}
-static inline void exit_browser(void) {}
+static inline void exit_browser(bool wait_for_ok __used) {}
#else
void setup_browser(void);
-void exit_browser(void);
+void exit_browser(bool wait_for_ok);
#endif
extern const char *editor_program;
diff --git a/tools/perf/util/newt.c b/tools/perf/util/newt.c
index 2d19e7a3e6e..3c2ef95d940 100644
--- a/tools/perf/util/newt.c
+++ b/tools/perf/util/newt.c
@@ -170,18 +170,20 @@ void perf_session__browse_hists(struct rb_root *hists, u64 session_total,
newtFormDestroy(form);
}
+static char browser__last_msg[1024];
+
int browser__show_help(const char *format, va_list ap)
{
int ret;
static int backlog;
- static char msg[1024];
- ret = vsnprintf(msg + backlog, sizeof(msg) - backlog, format, ap);
+ ret = vsnprintf(browser__last_msg + backlog,
+ sizeof(browser__last_msg) - backlog, format, ap);
backlog += ret;
- if (msg[backlog - 1] == '\n') {
+ if (browser__last_msg[backlog - 1] == '\n') {
newtPopHelpLine();
- newtPushHelpLine(msg);
+ newtPushHelpLine(browser__last_msg);
newtRefresh();
backlog = 0;
}
@@ -200,8 +202,13 @@ void setup_browser(void)
newtPushHelpLine(" ");
}
-void exit_browser(void)
+void exit_browser(bool wait_for_ok)
{
- if (use_browser)
+ if (use_browser) {
+ if (wait_for_ok) {
+ char title[] = "Fatal Error", ok[] = "Ok";
+ newtWinMessage(title, ok, browser__last_msg);
+ }
newtFinished();
+ }
}