blob: fbf1a145492f865fee15945e10717b1121d5566c [file] [log] [blame]
Arnaldo Carvalho de Melo1e6dd072010-08-10 15:58:50 -03001#include <newt.h>
2#include <signal.h>
3#include <stdbool.h>
4
5#include "../cache.h"
6#include "../debug.h"
7#include "browser.h"
8#include "helpline.h"
9
10static void newt_suspend(void *d __used)
11{
12 newtSuspend();
13 raise(SIGTSTP);
14 newtResume();
15}
16
Arnaldo Carvalho de Melo229ade92011-01-31 18:08:39 -020017void setup_browser(bool fallback_to_pager)
Arnaldo Carvalho de Melo1e6dd072010-08-10 15:58:50 -030018{
19 if (!isatty(1) || !use_browser || dump_trace) {
20 use_browser = 0;
Arnaldo Carvalho de Melo229ade92011-01-31 18:08:39 -020021 if (fallback_to_pager)
22 setup_pager();
Arnaldo Carvalho de Melo1e6dd072010-08-10 15:58:50 -030023 return;
24 }
25
26 use_browser = 1;
27 newtInit();
28 newtCls();
29 newtSetSuspendCallback(newt_suspend, NULL);
30 ui_helpline__init();
31 ui_browser__init();
32}
33
34void exit_browser(bool wait_for_ok)
35{
36 if (use_browser > 0) {
37 if (wait_for_ok) {
38 char title[] = "Fatal Error", ok[] = "Ok";
39 newtWinMessage(title, ok, ui_helpline__last_msg);
40 }
41 newtFinished();
42 }
43}