[PATCH 5/5] perf ui: Change fallback policy of setup_browser()

From: Namhyung Kim
Date: Mon Mar 26 2012 - 04:51:43 EST


If gtk2 support is not enabled (or failed for some reason) try TUI
again instead of falling directly back to the stdio interface.

While at it, rename setup functions properly and remove unused
unused arguments.

Signed-off-by: Namhyung Kim <namhyung.kim@xxxxxxx>
---
tools/perf/ui/setup.c | 18 ++++++++++--------
tools/perf/util/cache.h | 23 ++++++++++-------------
tools/perf/util/gtk/browser.c | 6 +++---
tools/perf/util/ui/setup.c | 6 +++---
4 files changed, 26 insertions(+), 27 deletions(-)

diff --git a/tools/perf/ui/setup.c b/tools/perf/ui/setup.c
index ee4916fc8157..5cd36675e6fb 100644
--- a/tools/perf/ui/setup.c
+++ b/tools/perf/ui/setup.c
@@ -11,14 +11,16 @@ void setup_browser(bool fallback_to_pager)

switch (use_browser) {
case 2:
- perf_gtk__setup_browser(fallback_to_pager);
- break;
-
+ if (perf_gtk__init() == 0)
+ break;
+ /* fall through */
case 1:
- ui__init(fallback_to_pager);
- break;
-
+ use_browser = 1;
+ if (perf_tui__init() == 0)
+ break;
+ /* fall through */
default:
+ use_browser = 0;
if (fallback_to_pager)
setup_pager();
break;
@@ -29,11 +31,11 @@ void exit_browser(bool wait_for_ok)
{
switch (use_browser) {
case 2:
- perf_gtk__exit_browser(wait_for_ok);
+ perf_gtk__exit(wait_for_ok);
break;

case 1:
- ui__exit(wait_for_ok);
+ perf_tui__exit(wait_for_ok);
break;

default:
diff --git a/tools/perf/util/cache.h b/tools/perf/util/cache.h
index 845571f53121..d50b9f627d9d 100644
--- a/tools/perf/util/cache.h
+++ b/tools/perf/util/cache.h
@@ -45,28 +45,25 @@ void setup_browser(bool fallback_to_pager);
void exit_browser(bool wait_for_ok);

#ifdef NO_NEWT_SUPPORT
-static inline int ui__init(bool fallback_to_pager)
+static inline int perf_tui__init(void)
{
- if (fallback_to_pager)
- setup_pager();
- return 0;
+ return -1;
}
-static inline void ui__exit(bool wait_for_ok __used) {}
+static inline void perf_tui__exit(bool wait_for_ok __used) {}
#else
-int ui__init(bool fallback_to_pager);
-void ui__exit(bool wait_for_ok);
+int perf_tui__init(void);
+void perf_tui__exit(bool wait_for_ok);
#endif

#ifdef NO_GTK2_SUPPORT
-static inline void perf_gtk__setup_browser(bool fallback_to_pager)
+static inline int perf_gtk__init(void)
{
- if (fallback_to_pager)
- setup_pager();
+ return -1;
}
-static inline void perf_gtk__exit_browser(bool wait_for_ok __used) {}
+static inline void perf_gtk__exit(bool wait_for_ok __used) {}
#else
-void perf_gtk__setup_browser(bool fallback_to_pager);
-void perf_gtk__exit_browser(bool wait_for_ok);
+int perf_gtk__init(void);
+void perf_gtk__exit(bool wait_for_ok);
#endif
#endif /* NO_NEWT_SUPPORT && NO_GTK2_SUPPORT */

diff --git a/tools/perf/util/gtk/browser.c b/tools/perf/util/gtk/browser.c
index 5eafd9b3b783..17520310ea3c 100644
--- a/tools/perf/util/gtk/browser.c
+++ b/tools/perf/util/gtk/browser.c
@@ -9,12 +9,12 @@

#define MAX_COLUMNS 32

-void perf_gtk__setup_browser(bool fallback_to_pager __used)
+int perf_gtk__init(void)
{
- gtk_init(NULL, NULL);
+ return gtk_init_check(NULL, NULL) ? 0 : -1;
}

-void perf_gtk__exit_browser(bool wait_for_ok __used)
+void perf_gtk__exit(bool wait_for_ok __used)
{
gtk_main_quit();
}
diff --git a/tools/perf/util/ui/setup.c b/tools/perf/util/ui/setup.c
index 907adfb4e99c..dd33b7b65d3b 100644
--- a/tools/perf/util/ui/setup.c
+++ b/tools/perf/util/ui/setup.c
@@ -95,12 +95,12 @@ static void newt_suspend(void *d __used)

static void ui__signal(int sig)
{
- ui__exit(false);
+ perf_tui__exit(false);
psignal(sig, "perf");
exit(0);
}

-int ui__init(bool fallback_to_pager __used)
+int perf_tui__init(void)
{
int err;

@@ -126,7 +126,7 @@ out:
return err;
}

-void ui__exit(bool wait_for_ok)
+void perf_tui__exit(bool wait_for_ok)
{
if (wait_for_ok)
ui__question_window("Fatal Error",
--
1.7.7.6

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/