X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=main.c;h=7be391f2a8d61324c3651e5d5ffa9e414448fd88;hp=b3d7e66a37de76f50764b6b6003301108b9aab0a;hb=5dcac54e5db074dc4572f843666c7f7acaf2d109;hpb=5444b60629a8e4d01a78f5999615a084dd6cbd8a diff --git a/main.c b/main.c index b3d7e66..7be391f 100644 --- a/main.c +++ b/main.c @@ -19,18 +19,20 @@ #include +#include #include #include -#include -#include +#include #include #include "mutt.h" +#include "crypt.h" #include "alias.h" #include "buffy.h" #include "sort.h" #include "keymap.h" #include "mutt_idna.h" +#include "mutt_sasl.h" #ifdef HAVE_GETOPT_H #include @@ -44,11 +46,7 @@ extern int optind; #endif #ifdef USE_NNTP -#include -#endif - -#ifdef USE_LIBESMTP -#include +#include "nntp.h" #endif #ifdef USE_HCACHE @@ -56,22 +54,11 @@ extern int optind; #include #elif defined(HAVE_GDBM) #include -#elif defined(HAVE_DB4) -#include #endif #endif -#ifdef USE_GNUTLS #include -#endif - -#ifdef CRYPT_BACKEND_GPGME #include -#endif - -#ifdef USE_SSL -#include -#endif static const char *Notice = N_("\ Copyright (C) 1996-2002 Michael R. Elkins and others.\n\ @@ -89,7 +76,7 @@ void mutt_exit (int code) static void mutt_usage (void) { - puts (mutt_make_version (1)); + puts (mutt_make_version()); puts _("usage: madmutt [ -nRyzZ ] [ -e ] [ -F ] [ -m ] [ -f ]\n\ @@ -139,11 +126,8 @@ options:\n\ static void show_version (void) { struct utsname uts; -#ifdef USE_LIBESMTP - char buf[STRING]; -#endif - puts (mutt_make_version (1)); + puts (mutt_make_version()); puts (_(Notice)); uname (&uts); @@ -160,8 +144,6 @@ static void show_version (void) #ifdef NCURSES_VERSION printf (" ncurses %s\n", NCURSES_VERSION); -#elif defined(USE_SLANG_CURSES) - printf (" slang %d\n", SLANG_VERSION); #endif #ifdef _LIBICONV_VERSION @@ -174,42 +156,19 @@ static void show_version (void) stringprep_check_version (NULL), STRINGPREP_VERSION); #endif -#ifdef USE_LIBESMTP - smtp_version (buf, sizeof (buf), 0); - printf (" libESMTP %s\n", buf); -#endif - #ifdef USE_HCACHE #if defined(HAVE_QDBM) printf (" qdbm %s\n", dpversion); #elif defined(HAVE_GDBM) printf (" gdbm %s\n", gdbm_version); -#elif defined(HAVE_DB4) - printf (" DB4 %d.%d.%d\n", DB_VERSION_MAJOR, DB_VERSION_MINOR, - DB_VERSION_PATCH); #endif #endif -#ifdef USE_GNUTLS printf (" gnutls %s\n", LIBGNUTLS_VERSION); -#endif - -#ifdef USE_SSL - printf (" %s\n",OPENSSL_VERSION_TEXT); -#endif - -#ifdef CRYPT_BACKEND_GPGME printf (" gpgme %s\n", GPGME_VERSION); -#endif - puts (_("Compile Options:")); puts ( -#ifdef HOMESPOOL - " +HOMESPOOL " -#else - " -HOMESPOOL " -#endif #ifdef USE_SETGID "+USE_SETGID " #else @@ -237,144 +196,19 @@ static void show_version (void) #else "-USE_NNTP " #endif -#ifdef USE_GSS - "+USE_GSS " -#else - "-USE_GSS " -#endif -#ifdef USE_SSL - "+USE_SSL " -#else - "-USE_SSL " -#endif -#ifdef USE_GNUTLS - "+USE_GNUTLS " -#else - "-USE_GNUTLS " -#endif -#ifdef USE_SASL - "+USE_SASL " -#else - "-USE_SASL " -#endif -#ifdef USE_LIBESMTP - "+USE_LIBESMTP " -#else - "-USE_LIBESMTP " -#endif - "\n " -#ifdef HAVE_REGCOMP - "+HAVE_REGCOMP " -#else - "-HAVE_REGCOMP " -#endif - "\n " -#ifdef HAVE_COLOR - "+HAVE_COLOR " -#else - "-HAVE_COLOR " -#endif -#ifdef HAVE_START_COLOR - "+HAVE_START_COLOR " -#else - "-HAVE_START_COLOR " -#endif -#ifdef HAVE_TYPEAHEAD - "+HAVE_TYPEAHEAD " -#else - "-HAVE_TYPEAHEAD " -#endif -#ifdef HAVE_BKGDSET - "+HAVE_BKGDSET " -#else - "-HAVE_BKGDSET " -#endif - "\n " -#ifdef HAVE_CURS_SET - "+HAVE_CURS_SET " -#else - "-HAVE_CURS_SET " -#endif -#ifdef HAVE_META - "+HAVE_META " -#else - "-HAVE_META " -#endif -#ifdef HAVE_RESIZETERM - "+HAVE_RESIZETERM " -#else - "-HAVE_RESIZETERM " -#endif - ); - - puts ( -#ifdef CRYPT_BACKEND_GPGME - "+CRYPT_BACKEND_GPGME " -#else - "-CRYPT_BACKEND_GPGME " -#endif - "\n " -#ifdef ENABLE_NLS - "+ENABLE_NLS " -#else - "-ENABLE_NLS " -#endif -#ifdef HAVE_WC_FUNCS - "+HAVE_WC_FUNCS " -#else - "-HAVE_WC_FUNCS " -#endif -#ifdef HAVE_LANGINFO_CODESET - "+HAVE_LANGINFO_CODESET " -#else - "-HAVE_LANGINFO_CODESET " -#endif -#ifdef HAVE_LANGINFO_YESEXPR - "+HAVE_LANGINFO_YESEXPR " -#else - "-HAVE_LANGINFO_YESEXPR " -#endif - "\n " -#ifdef HAVE_ICONV - "+HAVE_ICONV " -#else - "-HAVE_ICONV " -#endif #ifdef HAVE_LIBIDN "+HAVE_LIBIDN " #else "-HAVE_LIBIDN " -#endif -#ifdef HAVE_GETSID - "+HAVE_GETSID " -#else - "-HAVE_GETSID " -#endif -#ifdef HAVE_GETADDRINFO - "+HAVE_GETADDRINFO " -#else - "-HAVE_GETADDRINFO " #endif ); puts (_("Built-In Defaults:")); - -#ifdef ISPELL - printf (" +ISPELL=\"%s\"\n", ISPELL); -#else - puts (" -ISPELL"); -#endif - printf (" +SENDMAIL=\"%s\"\n", SENDMAIL); printf (" +MAILPATH=\"%s\"\n", MAILPATH); printf (" +PKGDATADIR=\"%s\"\n", PKGDATADIR); printf (" +PKGDOCDIR=\"%s\"\n", PKGDOCDIR); printf (" +SYSCONFDIR=\"%s\"\n", SYSCONFDIR); -#ifdef MIXMASTER - printf (" +MIXMASTER=\"%s\"\n\n", MIXMASTER); -#else - puts (" -MIXMASTER\n"); -#endif puts (_("MadMutt is based on Madmutt wich was based on Mutt before\n")); @@ -384,32 +218,14 @@ static void show_version (void) static void start_curses (void) { km_init (); /* must come before mutt_init */ - -#ifdef USE_SLANG_CURSES - SLtt_Ignore_Beep = 1; /* don't do that #*$@^! annoying visual beep! */ - SLsmg_Display_Eight_Bit = 128; /* characters above this are printable */ - SLtt_set_color (0, NULL, "default", "default"); -#else - /* should come before initscr() so that ncurses 4.2 doesn't try to install - its own SIGWINCH handler */ mutt_signal_initialize (); -#endif if (initscr () == NULL) { puts _("Error initializing terminal."); exit (1); } mutt_signal_initialize (); - ci_start_color (); - keypad (stdscr, TRUE); - cbreak (); - noecho (); -#ifdef HAVE_TYPEAHEAD - typeahead (-1); /* simulate smooth scrolling */ -#endif -#ifdef HAVE_META - meta (stdscr, TRUE); -#endif + curses_initialize(); } #define M_IGNORE (1<<0) /* -z */ @@ -421,6 +237,17 @@ static void start_curses (void) #define M_NEWS (1<<5) /* -g and -G */ #endif +__attribute__((format(printf, 1, 0))) +static void mutt_nocurses_error (const char *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); + vfprintf(stderr, fmt, ap); + va_end(ap); + fputc('\n', stderr); +} + int main (int argc, char **argv) { char folder[_POSIX_PATH_MAX] = ""; @@ -450,17 +277,12 @@ int main (int argc, char **argv) exit (1); } -#ifdef ENABLE_NLS - /* FIXME what about init.c:1439 ? */ setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, MUTTLOCALEDIR); textdomain (PACKAGE); -#endif - setlocale (LC_CTYPE, ""); - mutt_error = mutt_nocurses_error; - mutt_message = mutt_nocurses_error; + mutt_error = mutt_message = mutt_nocurses_error; srand48 (time (NULL)); umask (077); @@ -598,15 +420,12 @@ int main (int argc, char **argv) /* This must come before mutt_init() because curses needs to be started before calling the init_pair() function to set the color scheme. */ if (!option (OPTNOCURSES)) - start_curses (); + start_curses(); /* set defaults and read init files */ mutt_init (flags & M_NOSYSRC, commands); string_list_wipe(&commands); - /* Initialize crypto */ - crypt_init (); - if (queries) return mutt_query_variables (queries); if (dump_variables > 0) @@ -633,15 +452,12 @@ int main (int argc, char **argv) if (newMagic) mx_set_magic (newMagic); - if (!option (OPTNOCURSES)) { - SETCOLOR (MT_COLOR_NORMAL); - clear (); - mutt_error = mutt_curses_error; - mutt_message = mutt_curses_message; + if (!option(OPTNOCURSES)) { + ui_layout_init(); } /* Create the Maildir directory if it doesn't exist. */ - if (!option (OPTNOCURSES) && Maildir) { + if (!option(OPTNOCURSES) && Maildir) { struct stat sb; char fpath[_POSIX_PATH_MAX]; char mesg[STRING]; @@ -672,6 +488,7 @@ int main (int argc, char **argv) char buf[LONG_STRING]; char *tempfile = NULL, *infile = NULL; char *bodytext = NULL; + FILE *fout; if (!option (OPTNOCURSES)) mutt_flushinp (); @@ -726,18 +543,16 @@ int main (int argc, char **argv) else fin = NULL; - mutt_mktemp (buf); - tempfile = m_strdup(buf); - if (draftFile) msg->env = mutt_read_rfc822_header (fin, NULL, 1, 0); /* is the following if still needed? */ - if (tempfile) { - FILE *fout; + fout = m_tempfile(buf, sizeof(buf), NONULL(mod_core.tmpdir), NULL); + tempfile = m_strdup(buf); - if ((fout = safe_fopen (tempfile, "w")) == NULL) { + if (tempfile) { + if (!fout) { if (!option (OPTNOCURSES)) mutt_endwin (NULL); perror (tempfile); @@ -811,7 +626,8 @@ int main (int argc, char **argv) exit (1); } folder[0] = 0; - mutt_select_file (folder, sizeof (folder), M_SEL_FOLDER | M_SEL_BUFFY); + mutt_select_file(folder, sizeof(folder), M_SEL_FOLDER | M_SEL_BUFFY, + NULL, NULL); if (!folder[0]) { mutt_endwin (NULL); exit (0); @@ -860,5 +676,7 @@ int main (int argc, char **argv) mutt_endwin (Errorbuf); } + luaM_shutdown(); + mutt_sasl_shutdown(); exit (0); }