X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=main.c;h=74f95beab2abf13132f40c701a87412cc66071d0;hp=2d52aa9f55d40e4fecad573d8ae02738f29ac1cb;hb=f8d1899d44b259a0920a52bd7290f15e39fd0d47;hpb=f3076bd918cea51487a5b28dff9c69578f50b25e diff --git a/main.c b/main.c index 2d52aa9..74f95be 100644 --- a/main.c +++ b/main.c @@ -18,9 +18,11 @@ #include #include +#include #include #include +#include #include #include #include @@ -174,6 +176,14 @@ static void mutt_nocurses_error (const char *fmt, ...) fputc('\n', stderr); } +static void *evtloop(void *data) +{ + for (;;) { + el_dispatch(100); + pthread_testcancel(); + } +} + int main (int argc, char **argv) { char folder[_POSIX_PATH_MAX] = ""; @@ -188,6 +198,7 @@ int main (int argc, char **argv) int version = 0; int i; int explicit_folder = 0; + pthread_t pt; /* initialize random number for tmp file creation */ srand48((unsigned int) time (NULL)); @@ -303,8 +314,10 @@ int main (int argc, char **argv) } /* set defaults and read init files */ + el_initialize(); mutt_init (flags & M_NOSYSRC, commands); string_list_wipe(&commands); + pthread_create(&pt, NULL, &evtloop, NULL); if (!option(OPTNOCURSES)) { ui_layout_init(); @@ -490,6 +503,7 @@ int main (int argc, char **argv) NULL)) || !explicit_folder) { mutt_index_menu (); + if (option (OPTXTERMSETTITLES)) printf("\033]2;%s\007", NONULL(XtermLeave)); if (Context) @@ -498,7 +512,10 @@ int main (int argc, char **argv) mutt_endwin (Errorbuf); } + pthread_cancel(pt); + pthread_join(pt, NULL); luaM_shutdown(); mutt_sasl_shutdown(); + el_shutdown(); exit (0); }