#include <sys/utsname.h>
+#include <lib-lua/lib-lua.h>
#include <lib-sys/mutt_signal.h>
-
#include <lib-mime/mime.h>
-
#include <lib-ui/curses.h>
+#include <lib-mx/mx.h>
#include "mutt.h"
+#include "crypt.h"
#include "alias.h"
-#include "mx.h"
#include "buffy.h"
#include "sort.h"
-#include <lib-crypt/crypt.h>
#include "keymap.h"
#include "mutt_idna.h"
-#include "xterm.h"
+#include "mutt_sasl.h"
#ifdef HAVE_GETOPT_H
#include <getopt.h>
#endif
#ifdef USE_NNTP
-#include "nntp/nntp.h"
+#include <nntp/nntp.h>
#endif
#ifdef USE_LIBESMTP
#include <depot.h>
#elif defined(HAVE_GDBM)
#include <gdbm.h>
-#elif defined(HAVE_DB4)
-#include <db.h>
#endif
#endif
-#ifdef USE_GNUTLS
#include <gnutls/gnutls.h>
-#endif
-
-#ifdef CRYPT_BACKEND_GPGME
#include <gpgme.h>
-#endif
-
-#ifdef USE_SSL
-#include <openssl/opensslv.h>
-#endif
static const char *Notice = N_("\
Copyright (C) 1996-2002 Michael R. Elkins and others.\n\
-Madmutt comes with ABSOLUTELY NO WARRANTY; for details type `madmutt -vv'.\n\
-Mutt is free software, and you are welcome to redistribute it\n\
-under certain conditions; type `madmutt -vv' for details.\n");
-
-static const char *Copyright_Mutt = N_("\
-Copyright (C) 1996-2004 Michael R. Elkins <me@mutt.org>\n\
-Copyright (C) 1996-2002 Brandon Long <blong@fiction.net>\n\
-Copyright (C) 1997-2005 Thomas Roessler <roessler@does-not-exist.org>\n\
-Copyright (C) 1998-2005 Werner Koch <wk@isil.d.shuttle.de>\n\
-Copyright (C) 1999-2005 Brendan Cully <brendan@kublai.com>\n\
-Copyright (C) 1999-2002 Tommi Komulainen <Tommi.Komulainen@iki.fi>\n\
-Copyright (C) 2000-2002 Edmund Grimley Evans <edmundo@rano.org>\n");
-
-static const char *Copyright_Mutt_NG = N_("\
-Copyright (C) 2005:\n\
- Parts were written/modified by:\n\
- Andreas Krennmair <ak@synflood.at>\n\
- Nico Golde <nico@ngolde.de>\n\
- Rocco Rutte <pdmef@cs.tu-berlin.de>\n\
-\n\
-Lots of others not mentioned here contributed lots of code,\n\
-fixes, and suggestions.");
-
-static const char* Copyright_GPL_1 = N_("\
-\n\
- This program is free software; you can redistribute it and/or modify\n\
- it under the terms of the GNU General Public License as published by\n\
- the Free Software Foundation; either version 2 of the License, or\n\
- (at your option) any later version.\n");
-
-static const char* Copyright_GPL_2 = N_("\
- This program is distributed in the hope that it will be useful,\n\
- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\
- GNU General Public License for more details.\n");
-
-static const char* Copyright_GPL_3 = N_("\
- You should have received a copy of the GNU General Public License\n\
- along with this program; if not, write to the Free Software\n\
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n\
-");
+Copyright (C) 2005 The Mutt-ng Team\n\
+Copyright (C) 2006 Pierre Habouzit undation, Inc.\n\
+This is free software. You may redistribute copies of it under the terms of\n\
+the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.\n\
+There is NO WARRANTY, to the extent permitted by law.\n");
void mutt_exit (int code)
{
static void mutt_usage (void)
{
- puts (mutt_make_version (1));
+ puts (mutt_make_version());
puts
_("usage: madmutt [ -nRyzZ ] [ -e <cmd> ] [ -F <file> ] [ -m <type> ] [ -f <file> ]\n\
madmutt [ -nR ] [ -e <cmd> ] [ -F <file> ] -T\n\
madmutt [ -nx ] [ -e <cmd> ] [ -a <file> ] [ -F <file> ] [ -H <file> ] [ -i <file> ] [ -s <subj> ] [ -b <addr> ] [ -c <addr> ] <addr> [ ... ]\n\
madmutt [ -n ] [ -e <cmd> ] [ -F <file> ] -p\n\
- madmutt -v[v]\n\
+ madmutt -v\n\
\n\
options:\n\
-A <alias>\texpand the given alias\n\
char buf[STRING];
#endif
- puts (mutt_make_version (1));
+ puts (mutt_make_version());
puts (_(Notice));
uname (&uts);
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
"-USE_SETGID "
#endif
-#ifdef USE_DOTLOCK
- "+USE_DOTLOCK "
-#else
- "-USE_DOTLOCK "
-#endif
#ifdef USE_FCNTL
"+USE_FCNTL "
#else
#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"));
#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] = "";
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);
p_clear(Options, countof(Options));
p_clear(QuadOptions, countof(QuadOptions));
+ while ((i = getopt(argc, argv, "A:a:b:F:f:c:e:H:s:i:hm:npQ:RTtvyzZ"
#ifdef USE_NNTP
- while ((i =
- getopt (argc, argv,
- "A:a:b:F:f:c:e:g:GH:s:i:hm:npQ:RTtvyzZ")) != EOF)
-#else
- while ((i =
- getopt (argc, argv, "A:a:b:F:f:c:e:H:s:i:hm:npQ:RTtvyzZ")) != EOF)
+ "g:G"
#endif
+ )) >= 0)
switch (i) {
case 'A':
alias_queries = mutt_add_list (alias_queries, optarg);
mutt_usage ();
}
- switch (version) {
- case 0:
- break;
- case 1:
+ if (version) {
show_version ();
- break;
- default:
- puts (mutt_make_version (1));
- puts (_(Copyright_Mutt));
- puts (_(Copyright_Mutt_NG));
- puts (_(Copyright_GPL_1));
- puts (_(Copyright_GPL_2));
- puts (_(Copyright_GPL_3));
- exit (0);
}
/* Check for a batch send. */
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)
char buf[LONG_STRING];
char *tempfile = NULL, *infile = NULL;
char *bodytext = NULL;
+ FILE *fout;
if (!option (OPTNOCURSES))
mutt_flushinp ();
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);
- fclose (fin);
+ m_fclose(&fin);
p_delete(&tempfile);
exit (1);
}
mutt_copy_stream (fin, fout);
else if (bodytext)
fputs (bodytext, fout);
- fclose (fout);
+ m_fclose(&fout);
if (fin && fin != stdin)
- fclose (fin);
+ m_fclose(&fin);
}
}
mutt_endwin (Errorbuf);
exit (1);
}
- }
- else
+ } else
#endif
- if (!Incoming) {
+ if (!Incoming.len) {
mutt_endwin _("No incoming mailboxes defined.");
exit (1);
unset_option (OPTNEWS);
nntp_expand_path (folder, sizeof (folder),
&CurrentNewsSrv->conn->account);
- }
- else
+ } else
#endif
mutt_expand_path (folder, sizeof (folder));
|| !explicit_folder) {
mutt_index_menu ();
if (option (OPTXTERMSETTITLES))
- mutt_xterm_set_title (NONULL (XtermLeave));
+ printf("\033]2;%s\007", NONULL(XtermLeave));
if (Context)
p_delete(&Context);
}
mutt_endwin (Errorbuf);
}
+ luaM_shutdown();
+ mutt_sasl_shutdown();
exit (0);
}