X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=main.c;h=cee557dd12f22ecf24312fd3eaa1b5fc2dcb4f05;hp=dd6c1ed90ab77e134f4b8a6836e30e85ce2c5bec;hb=18ea5e8b861632627335b8d94787c742dbf5f567;hpb=df70e07e24add1869bcc9b7af2277d9d0c09a281 diff --git a/main.c b/main.c index dd6c1ed..cee557d 100644 --- a/main.c +++ b/main.c @@ -1,21 +1,16 @@ /* + * Copyright notice from original mutt: * Copyright (C) 1996-2002 Michael R. Elkins * Copyright (C) 1999-2002 Thomas Roessler * Copyright (C) 2004 g10 Code GmbH - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + * + * Parts written/modified by: + * Nico Golde + * Andreas Krennmair + * + * This file is part of mutt-ng, see http://www.muttng.org/. + * It's licensed under the GNU General Public License, + * please see the file GPL in the top level source directory. */ #define MAIN_C 1 @@ -27,10 +22,15 @@ #include "mutt.h" #include "mutt_curses.h" #include "keymap.h" -#include "mailbox.h" #include "url.h" #include "mutt_crypt.h" #include "mutt_idna.h" +#include "xterm.h" + +#include "lib/mem.h" +#include "lib/intl.h" +#include "lib/str.h" +#include "lib/debug.h" #include #include @@ -49,7 +49,7 @@ #endif #ifdef USE_NNTP -#include +#include "nntp/nntp.h" #endif static const char *ReachingUs = N_("\ @@ -64,14 +64,18 @@ Mutt is free software, and you are welcome to redistribute it\n\ under certain conditions; type `muttng -vv' for details.\n"); static const char *Copyright = N_("\ -Copyright (C) 1996-2002 Michael R. Elkins \n\ +Copyright (C) 1996-2004 Michael R. Elkins \n\ Copyright (C) 1996-2002 Brandon Long \n\ -Copyright (C) 1997-2002 Thomas Roessler \n\ -Copyright (C) 1998-2002 Werner Koch \n\ -Copyright (C) 1999-2002 Brendan Cully \n\ +Copyright (C) 1997-2005 Thomas Roessler \n\ +Copyright (C) 1998-2005 Werner Koch \n\ +Copyright (C) 1999-2005 Brendan Cully \n\ Copyright (C) 1999-2002 Tommi Komulainen \n\ -Copyright (C) 2000-2002 Edmund Grimley Evans \n\ -Copyright (C) 2004-2005 Andreas Krennmair \n\ +Copyright (C) 2000-2002 Edmund Grimley Evans \n\n\ +Copyright (C) 2005:\n\ + Parts were written/modified by:\n\ + Andreas Krennmair \n\ + Nico Golde \n\ + Rocco Rutte \n\ \n\ Lots of others not mentioned here contributed lots of code,\n\ fixes, and suggestions.\n\ @@ -106,6 +110,7 @@ static void mutt_usage (void) ("usage: muttng [ -nRyzZ ] [ -e ] [ -F ] [ -m ] [ -f ]\n\ muttng [ -nR ] [ -e ] [ -F ] -Q [ -Q ] [...]\n\ muttng [ -nR ] [ -e ] [ -F ] -A [ -A ] [...]\n\ + muttng [ -nR ] [ -e ] [ -F ] -D\n\ muttng [ -nx ] [ -e ] [ -a ] [ -F ] [ -H ] [ -i ] [ -s ] [ -b ] [ -c ] [ ... ]\n\ muttng [ -n ] [ -e ] [ -F ] -p\n\ muttng -v[v]\n\ @@ -115,6 +120,7 @@ options:\n\ -a \tattach a file to the message\n\ -b
\tspecify a blind carbon-copy (BCC) address\n\ -c
\tspecify a carbon-copy (CC) address\n\ + -D\t\tprint the value of all variables to stdout\n\ -e \tspecify a command to be executed after initialization\n\ -f \tspecify which mailbox to read\n\ -F \tspecify an alternate muttrc file\n\ @@ -225,6 +231,11 @@ static void show_version (void) "+USE_INODESORT " #else "-USE_INODESORT " +#endif +#if USE_HCACHE + "+USE_HCACHE " +#else + "-USE_HCACHE " #endif ); puts ( @@ -243,11 +254,6 @@ static void show_version (void) #else "-USE_IMAP " #endif -#ifdef IMAP_EDIT_THREADS - "+IMAP_EDIT_THREADS " -#else - "-IMAP_EDIT_THREADS " -#endif #ifdef USE_GSS "+USE_GSS " #else @@ -263,11 +269,6 @@ static void show_version (void) #else "-USE_GNUTLS " #endif -#ifdef USE_GNUTLS - "+USE_GNUTLS " -#else - "-USE_GNUTLS " -#endif #ifdef USE_SASL "+USE_SASL " #else @@ -359,11 +360,6 @@ static void show_version (void) #else "-BUFFY_SIZE " #endif -#ifdef EXACT_ADDRESS - "+EXACT_ADDRESS " -#else - "-EXACT_ADDRESS " -#endif #ifdef SUN_ATTACHMENT "+SUN_ATTACHMENT " #else @@ -420,16 +416,6 @@ static void show_version (void) "+HAVE_GETADDRINFO " #else "-HAVE_GETADDRINFO " -#endif -#if USE_HCACHE - "+USE_HCACHE " -#else - "-USE_HCACHE " -#endif -#if USE_HCACHE - "+USE_HCACHE " -#else - "-USE_HCACHE " #endif ); @@ -452,6 +438,7 @@ static void show_version (void) puts (_(ReachingUs)); + puts (_("Mutt-ng is based on the following patches written for mutt:\n")); mutt_print_patchlist (); exit (0); @@ -517,11 +504,15 @@ int main (int argc, char **argv) int version = 0; int i; int explicit_folder = 0; + int dump_variables = 0; extern char *optarg; extern int optind; + /* initialize random number for tmp file creation */ + srand ((unsigned int) time (NULL)); + /* sanity check against stupid administrators */ - + if (getegid () != getgid ()) { fprintf (stderr, "%s: I don't want to run with privileges!\n", argv[0]); exit (1); @@ -547,21 +538,26 @@ int main (int argc, char **argv) #ifdef USE_NNTP while ((i = getopt (argc, argv, - "A:a:b:F:f:c:d:e:g:GH:s:i:hm:npQ:RvxyzZ")) != EOF) + "A:a:b:F:f:c:Dd:e:g:GH:s:i:hm:npQ:RvxyzZ")) != EOF) #else while ((i = - getopt (argc, argv, "A:a:b:F:f:c:d:e:H:s:i:hm:npQ:RvxyzZ")) != EOF) + getopt (argc, argv, "A:a:b:F:f:c:Dd:e:H:s:i:hm:npQ:RvxyzZ")) != EOF) #endif switch (i) { case 'A': alias_queries = mutt_add_list (alias_queries, optarg); break; case 'a': - attach = mutt_add_list (attach, optarg); + if (strlen(optarg)<=512) + attach = mutt_add_list (attach, optarg); + else{ + printf("too long arguments. exiting ...\n"); + exit(1); + } break; case 'F': - mutt_str_replace (&Muttrc, optarg); + str_replace (&Muttrc, optarg); break; case 'f': @@ -582,14 +578,18 @@ int main (int argc, char **argv) break; case 'd': + debug_setlevel(atoi(optarg)); #ifdef DEBUG - debuglevel = atoi (optarg); - printf (_("Debugging at level %d.\n"), debuglevel); + printf (_("Debugging at level %d.\n"), atoi(optarg)); #else printf _("DEBUG was not defined during compilation. Ignored.\n"); #endif break; + case 'D': + dump_variables = 1; + break; + case 'e': commands = mutt_add_list (commands, optarg); break; @@ -679,7 +679,7 @@ int main (int argc, char **argv) } /* Check for a batch send. */ - if (!isatty (0) || queries || alias_queries) { + if (!isatty (0) || queries || alias_queries || dump_variables) { set_option (OPTNOCURSES); sendflags = SENDBATCH; } @@ -690,14 +690,17 @@ int main (int argc, char **argv) start_curses (); /* set defaults and read init files */ + mx_init (); mutt_init (flags & M_NOSYSRC, commands); mutt_free_list (&commands); - /* Initialize crypto backends. */ + /* Initialize crypto */ crypt_init (); if (queries) return mutt_query_variables (queries); + if (dump_variables) + return (mutt_dump_variables ()); if (alias_queries) { int rv = 0; @@ -737,7 +740,7 @@ int main (int argc, char **argv) mutt_expand_path (fpath, sizeof (fpath)); #ifdef USE_IMAP /* we're not connected yet - skip mail folder creation */ - if (!mx_is_imap (fpath)) + if (mx_get_magic (fpath) != M_IMAP) #endif if (stat (fpath, &sb) == -1 && errno == ENOENT) { snprintf (msg, sizeof (msg), _("%s does not exist. Create it?"), @@ -876,13 +879,13 @@ int main (int argc, char **argv) } else { if (flags & M_BUFFY) { - if (!mutt_buffy_check (0)) { + if (!buffy_check (0)) { mutt_endwin _("No mailbox with new mail."); exit (1); } folder[0] = 0; - mutt_buffy (folder, sizeof (folder)); + buffy_next (folder, sizeof (folder)); } else if (flags & M_SELECT) { #ifdef USE_NNTP @@ -921,8 +924,8 @@ int main (int argc, char **argv) #endif mutt_expand_path (folder, sizeof (folder)); - mutt_str_replace (&CurrentFolder, folder); - mutt_str_replace (&LastFolder, folder); + str_replace (&CurrentFolder, folder); + str_replace (&LastFolder, folder); if (flags & M_IGNORE) { /* check to see if there are any messages in the folder */ @@ -943,6 +946,8 @@ int main (int argc, char **argv) M_READONLY : 0, NULL)) || !explicit_folder) { mutt_index_menu (); + if (option (OPTXTERMSETTITLES)) + mutt_xterm_set_title (NONULL (XtermLeave)); if (Context) FREE (&Context); }