X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=main.c;h=7f5581a673e40b8de996d8e465dfca4206a4a323;hp=3596712b181cf99217250014839b096dfa3e4dfa;hb=bd0ed9bc7c534be30b0140b341b4d8a390483dbd;hpb=b8c71f93b0296f815a6538182343ba67e88c0012 diff --git a/main.c b/main.c index 3596712..7f5581a 100644 --- a/main.c +++ b/main.c @@ -15,36 +15,26 @@ #define MAIN_C 1 -#if HAVE_CONFIG_H -# include "config.h" -#endif +#include + +#include + +#include + +#include -#include -#include -#include -#include +#include #include "mutt.h" +#include "alias.h" #include "mx.h" #include "buffy.h" #include "sort.h" -#include "mutt_crypt.h" -#include "mutt_curses.h" +#include #include "keymap.h" -#include "url.h" #include "mutt_idna.h" #include "xterm.h" -#include "lib/debug.h" - -#include -#include -#include -#include -#include -#include -#include - #ifdef HAVE_GETOPT_H #include #else @@ -65,11 +55,11 @@ extern int optind; #endif #ifdef USE_HCACHE -#if HAVE_QDBM +#if defined(HAVE_QDBM) #include -#elif HAVE_GDBM +#elif defined(HAVE_GDBM) #include -#elif HAVE_DB4 +#elif defined(HAVE_DB4) #include #endif #endif @@ -86,16 +76,11 @@ extern int optind; #include #endif -static const char *ReachingUs = N_("\ -To contact the developers, please mail to .\n\ -To visit the Mutt-ng homepage go to http://www.muttng.org.\n\ -To report a bug, please use the fleang(1) utility.\n"); - static const char *Notice = N_("\ Copyright (C) 1996-2002 Michael R. Elkins and others.\n\ -Mutt-ng comes with ABSOLUTELY NO WARRANTY; for details type `muttng -vv'.\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 `muttng -vv' for details.\n"); +under certain conditions; type `madmutt -vv' for details.\n"); static const char *Copyright_Mutt = N_("\ Copyright (C) 1996-2004 Michael R. Elkins \n\ @@ -146,25 +131,22 @@ static void mutt_usage (void) puts (mutt_make_version (1)); puts - _("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 ] -t"); + _("usage: madmutt [ -nRyzZ ] [ -e ] [ -F ] [ -m ] [ -f ]\n\ + madmutt [ -nR ] [ -e ] [ -F ] -Q [ -Q ] [...]\n\ + madmutt [ -nR ] [ -e ] [ -F ] -A [ -A ] [...]\n\ + madmutt [ -nR ] [ -e ] [ -F ] -t"); puts _("\ - muttng [ -nR ] [ -e ] [ -F ] -T\n\ - muttng [ -nx ] [ -e ] [ -a ] [ -F ] [ -H ] [ -i ] [ -s ] [ -b ] [ -c ] [ ... ]\n\ - muttng [ -n ] [ -e ] [ -F ] -p\n\ - muttng -v[v]\n\ + madmutt [ -nR ] [ -e ] [ -F ] -T\n\ + madmutt [ -nx ] [ -e ] [ -a ] [ -F ] [ -H ] [ -i ] [ -s ] [ -b ] [ -c ] [ ... ]\n\ + madmutt [ -n ] [ -e ] [ -F ] -p\n\ + madmutt -v[v]\n\ \n\ options:\n\ -A \texpand the given alias\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"); -#if DEBUG - puts _(" -d \tlog debugging output to ~/.muttngdebug0"); -#endif puts _("\ -e \tspecify a command to be executed after initialization\n\ -f \tspecify which mailbox to read\n\ @@ -172,11 +154,11 @@ options:\n\ -g \tspecify a newsserver (if compiled with NNTP)\n\ -G\t\tselect a newsgroup (if compiled with NNTP)\n\ -H \tspecify a draft file to read header and body from\n\ - -i \tspecify a file which Mutt-ng should include in the body"); + -i \tspecify a file which Madmutt should include in the body"); puts _("\ - -d \t specify debugging level of Mutt-ng\n\ + -d \t specify debugging level of Madmutt\n\ -m \tspecify a default mailbox type\n\ - -n\t\tcauses Mutt-ng not to read the system Muttngrc\n\ + -n\t\tcauses Madmutt not to read the system Madmuttrc\n\ -p\t\trecall a postponed message\n\ -Q \tquery a configuration variable\n\ -R\t\topen mailbox in read-only mode\n\ @@ -185,7 +167,6 @@ options:\n\ -t\t\tprint the value of all variables to stdout\n\ -T\t\tprint the value of all changed variables to stdout\n\ -v\t\tshow version and compile-time definitions\n\ - -x\t\tsimulate the mailx send mode\n\ -y\t\tselect a mailbox specified in your `mailboxes' list\n\ -z\t\texit immediately if there are no messages in the mailbox\n\ -Z\t\topen the first folder with new message, exit immediately if none\n\ @@ -238,11 +219,11 @@ static void show_version (void) #endif #ifdef USE_HCACHE -#if HAVE_QDBM +#if defined(HAVE_QDBM) printf (" qdbm %s\n", dpversion); -#elif HAVE_GDBM +#elif defined(HAVE_GDBM) printf (" gdbm %s\n", gdbm_version); -#elif HAVE_DB4 +#elif defined(HAVE_DB4) printf (" DB4 %d.%d.%d\n", DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH); #endif @@ -262,12 +243,6 @@ static void show_version (void) puts (_("Compile Options:")); -#ifdef DEBUG - puts (" +DEBUG"); -#else - puts (" -DEBUG"); -#endif - puts ( #ifdef HOMESPOOL " +HOMESPOOL " @@ -336,11 +311,6 @@ static void show_version (void) "+HAVE_REGCOMP " #else "-HAVE_REGCOMP " -#endif -#ifdef USE_GNU_REGEX - "+USE_GNU_REGEX " -#else - "-USE_GNU_REGEX " #endif "\n " #ifdef HAVE_COLOR @@ -386,11 +356,6 @@ static void show_version (void) "+CRYPT_BACKEND_GPGME " #else "-CRYPT_BACKEND_GPGME " -#endif -#ifdef BUFFY_SIZE - "+BUFFY_SIZE " -#else - "-BUFFY_SIZE " #endif "\n " #ifdef ENABLE_NLS @@ -414,27 +379,22 @@ static void show_version (void) "-HAVE_LANGINFO_YESEXPR " #endif "\n " -#if HAVE_ICONV +#ifdef HAVE_ICONV "+HAVE_ICONV " #else "-HAVE_ICONV " #endif -#if ICONV_NONTRANS - "+ICONV_NONTRANS " -#else - "-ICONV_NONTRANS " -#endif -#if HAVE_LIBIDN +#ifdef HAVE_LIBIDN "+HAVE_LIBIDN " #else "-HAVE_LIBIDN " #endif -#if HAVE_GETSID +#ifdef HAVE_GETSID "+HAVE_GETSID " #else "-HAVE_GETSID " #endif -#if HAVE_GETADDRINFO +#ifdef HAVE_GETADDRINFO "+HAVE_GETADDRINFO " #else "-HAVE_GETADDRINFO " @@ -460,9 +420,7 @@ static void show_version (void) puts (" -MIXMASTER\n"); #endif - puts (_(ReachingUs)); - - puts (_("MadMutt is based on Mutt-ng wich was based on Mutt before\n")); + puts (_("MadMutt is based on Madmutt wich was based on Mutt before\n")); exit (0); } @@ -478,25 +436,22 @@ static void start_curses (void) #else /* should come before initscr() so that ncurses 4.2 doesn't try to install its own SIGWINCH handler */ - mutt_signal_init (); + mutt_signal_initialize (); #endif if (initscr () == NULL) { puts _("Error initializing terminal."); exit (1); } -#if 1 /* USE_SLANG_CURSES - commenting out suggested in #455. */ - /* slang requires the signal handlers to be set after initializing */ - mutt_signal_init (); -#endif + mutt_signal_initialize (); ci_start_color (); keypad (stdscr, TRUE); cbreak (); noecho (); -#if HAVE_TYPEAHEAD +#ifdef HAVE_TYPEAHEAD typeahead (-1); /* simulate smooth scrolling */ #endif -#if HAVE_META +#ifdef HAVE_META meta (stdscr, TRUE); #endif } @@ -518,10 +473,10 @@ int main (int argc, char **argv) char *draftFile = NULL; char *newMagic = NULL; HEADER *msg = NULL; - LIST *attach = NULL; - LIST *commands = NULL; - LIST *queries = NULL; - LIST *alias_queries = NULL; + string_list_t *attach = NULL; + string_list_t *commands = NULL; + string_list_t *queries = NULL; + string_list_t *alias_queries = NULL; int sendflags = 0; int flags = 0; int version = 0; @@ -530,7 +485,7 @@ int main (int argc, char **argv) int dump_variables = -1; /* initialize random number for tmp file creation */ - srand ((unsigned int) time (NULL)); + srand48((unsigned int) time (NULL)); /* sanity check against stupid administrators */ @@ -550,19 +505,19 @@ int main (int argc, char **argv) mutt_error = mutt_nocurses_error; mutt_message = mutt_nocurses_error; - SRAND (time (NULL)); + srand48 (time (NULL)); umask (077); - p_clear(Options, sizeof(Options)); - p_clear(QuadOptions, sizeof(QuadOptions)); + p_clear(Options, countof(Options)); + p_clear(QuadOptions, countof(QuadOptions)); #ifdef USE_NNTP while ((i = getopt (argc, argv, - "A:a:b:F:f:c:d:e:g:GH:s:i:hm:npQ:RTtvxyzZ")) != EOF) + "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:d:e:H:s:i:hm:npQ:RTtvxyzZ")) != EOF) + getopt (argc, argv, "A:a:b:F:f:c:e:H:s:i:hm:npQ:RTtvyzZ")) != EOF) #endif switch (i) { case 'A': @@ -589,26 +544,15 @@ int main (int argc, char **argv) case 'b': case 'c': if (!msg) - msg = mutt_new_header (); + msg = header_new(); if (!msg->env) - msg->env = mutt_new_envelope (); + msg->env = envelope_new(); if (i == 'b') msg->env->bcc = rfc822_parse_adrlist (msg->env->bcc, optarg); else msg->env->cc = rfc822_parse_adrlist (msg->env->cc, optarg); break; - case 'd': - { - char buf[LONG_STRING]; - int level = atoi (optarg); - - snprintf (buf, sizeof (buf), "set debug_level=%d", level); - commands = mutt_add_list (commands, buf); - debug_setlevel (level); - } - break; - case 't': dump_variables = 2; break; @@ -658,10 +602,6 @@ int main (int argc, char **argv) version++; break; - case 'x': /* mailx compatible send mode */ - sendflags |= SENDMAILX; - break; - case 'y': /* My special hack mode */ flags |= M_SELECT; break; @@ -705,7 +645,6 @@ int main (int argc, char **argv) puts (_(Copyright_GPL_1)); puts (_(Copyright_GPL_2)); puts (_(Copyright_GPL_3)); - puts (_(ReachingUs)); exit (0); } @@ -721,9 +660,8 @@ 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); + string_list_wipe(&commands); /* Initialize crypto */ crypt_init (); @@ -738,12 +676,12 @@ int main (int argc, char **argv) address_t *a; for (; alias_queries; alias_queries = alias_queries->next) { - if ((a = mutt_lookup_alias (alias_queries->data))) { + if ((a = address_list_dup(alias_lookup(alias_queries->data)))) { /* output in machine-readable form */ mutt_addrlist_to_idna (a, NULL); mutt_write_address_list (a, stdout, 0, 0); - } - else { + address_list_wipe(&a); + } else { rv = 1; printf ("%s\n", alias_queries->data); } @@ -765,16 +703,16 @@ int main (int argc, char **argv) if (!option (OPTNOCURSES) && Maildir) { struct stat sb; char fpath[_POSIX_PATH_MAX]; - char msg[STRING]; + char mesg[STRING]; m_strcpy(fpath, sizeof(fpath), Maildir); mutt_expand_path (fpath, sizeof (fpath)); /* we're not connected yet - skip mail folder creation */ if (mx_get_magic (fpath) != M_IMAP) if (stat (fpath, &sb) == -1 && errno == ENOENT) { - snprintf (msg, sizeof (msg), _("%s does not exist. Create it?"), + snprintf (mesg, sizeof (mesg), _("%s does not exist. Create it?"), Maildir); - if (mutt_yesorno (msg, M_YES) == M_YES) { + if (mutt_yesorno (mesg, M_YES) == M_YES) { if (mkdir (fpath, 0700) == -1 && errno != EEXIST) mutt_error (_("Can't create %s: %s."), Maildir, strerror (errno)); } @@ -798,13 +736,13 @@ int main (int argc, char **argv) mutt_flushinp (); if (!msg) - msg = mutt_new_header (); + msg = header_new(); if (draftFile) infile = draftFile; else { if (!msg->env) - msg->env = mutt_new_envelope (); + msg->env = envelope_new(); for (i = optind; i < argc; i++) { if (url_check_scheme (argv[i]) == U_MAILTO) @@ -879,7 +817,7 @@ int main (int argc, char **argv) p_delete(&bodytext); if (attach) { - LIST *t = attach; + string_list_t *t = attach; BODY *a = NULL; while (t) { @@ -893,12 +831,12 @@ int main (int argc, char **argv) if (!option (OPTNOCURSES)) mutt_endwin (NULL); fprintf (stderr, _("%s: unable to attach file.\n"), t->data); - mutt_free_list (&attach); + string_list_wipe(&attach); exit (1); } t = t->next; } - mutt_free_list (&attach); + string_list_wipe(&attach); } ci_send_message (sendflags, msg, tempfile, NULL, NULL);