#include <curses.h>
#include <dirent.h>
-#include <stdio.h>
+#include <signal.h>
+#include <stdlib.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
int yoffset = 2;
int width = 0;
+window_t *windir[MAXPANELS] = {0};
+window_t *winelem[MAXPANELS] = {0};
+window_t *winmenu = NULL;
+window_t *winscreen = NULL;
+
char *help =
"alt Menu functions\n"
"ret Go dir/View file\n"
return ret;
}
+void dostop (int sig)
+{
+ if (askwindow (" Restart (Y/N) ", winscreen, "Yy", "Nn") == 1) {
+ exit (1);
+ }
+}
+
/* main function */
int main (int argc, char *argv[])
{
}
/* init menu window */
- window_t *winmenu = allocwindow ();
+ winmenu = allocwindow ();
winmenu->xoffset = 0;
winmenu->xsize = width;
winmenu->yoffset = 0;
winmenu->ysize = 1;
/* init panel windows */
- window_t *windir[MAXPANELS] = {0};
for (i = 0; i < MAXPANELS; i++) {
windir[i] = allocwindow ();
windir[i]->active = (panel == i);
}
/* init screen window */
- window_t *winscreen = allocwindow ();
+ winscreen = allocwindow ();
winscreen->xoffset = xoffset;
winscreen->xsize = width - 2 * xoffset;
winscreen->yoffset = yoffset;
winscreen->ysize = height - 2 * yoffset;
/* init status windows */
- window_t *winelem[MAXPANELS] = {0};
for (i = 0; i < MAXPANELS; i++) {
winelem[i] = allocwindow ();
winelem[i]->xoffset = xoffset + width / 2 * i;
list_t *list[MAXPANELS] = {0};
int page[MAXPANELS] = {0};
+ /* catch signals */
+#ifndef _WIN32 /* Posix */
+ signal (SIGINT, &dostop);
+#endif
+ signal (SIGABRT, &dostop);
+ signal (SIGSEGV, &dostop);
+ signal (SIGTERM, &dostop);
+
/* event loop */
int stop = 0;
while (!stop) {