| #include <newt.h> | |
| #include <signal.h> | |
| #include <stdbool.h> | |
| #include "../cache.h" | |
| #include "../debug.h" | |
| #include "browser.h" | |
| #include "helpline.h" | |
| #include "ui.h" | |
| pthread_mutex_t ui__lock = PTHREAD_MUTEX_INITIALIZER; | |
| static void newt_suspend(void *d __used) | |
| { | |
| newtSuspend(); | |
| raise(SIGTSTP); | |
| newtResume(); | |
| } | |
| void setup_browser(bool fallback_to_pager) | |
| { | |
| if (!isatty(1) || !use_browser || dump_trace) { | |
| use_browser = 0; | |
| if (fallback_to_pager) | |
| setup_pager(); | |
| return; | |
| } | |
| use_browser = 1; | |
| newtInit(); | |
| newtCls(); | |
| newtSetSuspendCallback(newt_suspend, NULL); | |
| ui_helpline__init(); | |
| ui_browser__init(); | |
| } | |
| void exit_browser(bool wait_for_ok) | |
| { | |
| if (use_browser > 0) { | |
| if (wait_for_ok) { | |
| char title[] = "Fatal Error", ok[] = "Ok"; | |
| newtWinMessage(title, ok, ui_helpline__last_msg); | |
| } | |
| newtFinished(); | |
| } | |
| } |