X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=sendlib.c;h=c9c5874116ec5d826c11ada26b60c5a159024fbd;hp=4c410cf56bae84c0e22defbea5c82cdf9cf1eabb;hb=afa60149c4d2bb71c8195091d3658b3bdc12d59d;hpb=c3e57678c8be193fc137854020f3a90887be97c9 diff --git a/sendlib.c b/sendlib.c index 4c410cf..c9c5874 100644 --- a/sendlib.c +++ b/sendlib.c @@ -19,13 +19,17 @@ #include "rfc2231.h" #include "mx.h" #include "mime.h" -#include "mailbox.h" #include "copy.h" #include "pager.h" #include "charset.h" #include "mutt_crypt.h" #include "mutt_idna.h" +#include "lib/mem.h" +#include "lib/str.h" +#include "lib/intl.h" +#include "lib/debug.h" + #include #include #include @@ -183,11 +187,11 @@ static void encode_quoted (FGETCONV * fc, FILE * fout, int istext) } /* Escape lines that begin with/only contain "the message separator". */ - if (linelen == 4 && !mutt_strncmp ("From", line, 4)) { + if (linelen == 4 && !safe_strncmp ("From", line, 4)) { strfcpy (line, "=46rom", sizeof (line)); linelen = 6; } - else if (linelen == 4 && !mutt_strncmp ("from", line, 4)) { + else if (linelen == 4 && !safe_strncmp ("from", line, 4)) { strfcpy (line, "=66rom", sizeof (line)); linelen = 6; } @@ -453,9 +457,7 @@ int mutt_write_mime_body (BODY * a, FILE * f) if (a->type == TYPEMULTIPART) { /* First, find the boundary to use */ if (!(p = mutt_get_parameter ("boundary", a->parameter))) { - dprint (1, - (debugfile, - "mutt_write_mime_body(): no boundary parameter found!\n")); + debug_print (1, ("no boundary parameter found!\n")); mutt_error _("No boundary parameter found! [report this error]"); return (-1); @@ -483,9 +485,7 @@ int mutt_write_mime_body (BODY * a, FILE * f) } if ((fpin = fopen (a->filename, "r")) == NULL) { - dprint (1, - (debugfile, "write_mime_body: %s no longer exists!\n", - a->filename)); + debug_print (1, ("%s no longer exists!\n", a->filename)); mutt_error (_("%s no longer exists!"), a->filename); return -1; } @@ -823,7 +823,7 @@ static size_t convert_file_from_to (FILE * file, for (c = tocodes, i = 0; c; c = c1 ? c1 + 1 : 0, i++) { if ((c1 = strchr (c, ':')) == c) continue; - tcode[i] = mutt_substrdup (c, c1); + tcode[i] = str_substrdup (c, c1); } ret = (size_t) (-1); @@ -832,7 +832,7 @@ static size_t convert_file_from_to (FILE * file, for (c = fromcodes; c; c = c1 ? c1 + 1 : 0) { if ((c1 = strchr (c, ':')) == c) continue; - fcode = mutt_substrdup (c, c1); + fcode = str_substrdup (c, c1); ret = convert_file_to (file, fcode, ncodes, (const char **) tcode, &cn, info); @@ -895,8 +895,7 @@ CONTENT *mutt_get_content_info (const char *fname, BODY * b) } if ((fp = fopen (fname, "r")) == NULL) { - dprint (1, (debugfile, "mutt_get_content_info: %s: %s (errno %d).\n", - fname, strerror (errno), errno)); + debug_print (1, ("%s: %s (errno %d).\n", fname, strerror (errno), errno)); return (NULL); } @@ -971,16 +970,13 @@ int mutt_lookup_mime_type (BODY * att, const char *path) snprintf (buf, sizeof (buf), "%s/.mime.types", NONULL (Homedir)); break; case 1: - strfcpy (buf, SYSCONFDIR "/mime.types", sizeof (buf)); + strfcpy (buf, SYSCONFDIR "/muttng-mime.types", sizeof (buf)); break; case 2: strfcpy (buf, PKGDATADIR "/mime.types", sizeof (buf)); break; default: - dprint (1, - (debugfile, - "mutt_lookup_mime_type: Internal error, count = %d.\n", - count)); + debug_print (1, ("Internal error, count = %d.\n", count)); goto bye; /* shouldn't happen */ } @@ -1004,7 +1000,7 @@ int mutt_lookup_mime_type (BODY * att, const char *path) while ((p = strtok (p, " \t\n"))) { sze = mutt_strlen (p); if ((sze > cur_sze) && (szf >= sze) && - (mutt_strcasecmp (path + szf - sze, p) == 0 + (safe_strcasecmp (path + szf - sze, p) == 0 || ascii_strcasecmp (path + szf - sze, p) == 0) && (szf == sze || path[szf - @@ -1022,7 +1018,7 @@ int mutt_lookup_mime_type (BODY * att, const char *path) for (q = p; *q && !ISSPACE (*q); q++); - mutt_substrcpy (subtype, p, q, sizeof (subtype)); + str_substrcpy (subtype, p, q, sizeof (subtype)); if ((type = mutt_check_mime_type (ct)) == TYPEOTHER) strfcpy (xtype, ct, sizeof (xtype)); @@ -1040,8 +1036,8 @@ bye: if (type != TYPEOTHER || *xtype != '\0') { att->type = type; - mutt_str_replace (&att->subtype, subtype); - mutt_str_replace (&att->xtype, xtype); + str_replace (&att->subtype, subtype); + str_replace (&att->xtype, xtype); } return (type); @@ -1687,7 +1683,7 @@ int mutt_write_rfc822_header (FILE * fp, ENVELOPE * env, BODY * attach, } } /* Add a vanity header */ - fprintf (fp, "User-Agent: mutt-ng %s (%s)\n", MUTT_VERSION, os); + fprintf (fp, "User-Agent: mutt-ng/%s (%s)\n", MUTT_VERSION, os); } return (ferror (fp) == 0 ? 0 : -1); @@ -1787,11 +1783,11 @@ static void mutt_gen_localpart (char *buf, unsigned int len, char *fmt) break; case 'O': snprintf (tmp, sizeof (tmp), "%lo", (unsigned long) now); - safe_strncat (buf, len, tmp, strlen (tmp)); + safe_strncat (buf, len, tmp, mutt_strlen (tmp)); break; case 'p': snprintf (tmp, sizeof (tmp), "%u", (unsigned int) getpid ()); - safe_strncat (buf, len, tmp, strlen (tmp)); + safe_strncat (buf, len, tmp, mutt_strlen (tmp)); break; case 'P': snprintf (tmp, sizeof (tmp), "%c", MsgIdPfx); @@ -1800,11 +1796,11 @@ static void mutt_gen_localpart (char *buf, unsigned int len, char *fmt) break; case 'r': snprintf (tmp, sizeof (tmp), "%u", (unsigned int) rand ()); - safe_strncat (buf, len, tmp, strlen (tmp)); + safe_strncat (buf, len, tmp, mutt_strlen (tmp)); break; case 'R': snprintf (tmp, sizeof (tmp), "%x", (unsigned int) rand ()); - safe_strncat (buf, len, tmp, strlen (tmp)); + safe_strncat (buf, len, tmp, mutt_strlen (tmp)); break; case 's': snprintf (tmp, sizeof (tmp), "%02d", tm->tm_sec); @@ -1812,11 +1808,11 @@ static void mutt_gen_localpart (char *buf, unsigned int len, char *fmt) break; case 'T': snprintf (tmp, sizeof (tmp), "%u", (unsigned int) now); - safe_strncat (buf, len, tmp, strlen (tmp)); + safe_strncat (buf, len, tmp, mutt_strlen (tmp)); break; case 'X': snprintf (tmp, sizeof (tmp), "%x", (unsigned int) now); - safe_strncat (buf, len, tmp, strlen (tmp)); + safe_strncat (buf, len, tmp, mutt_strlen (tmp)); break; case 'Y': snprintf (tmp, sizeof (tmp), "%04d", tm->tm_year + 1900); /* this will break in the year 10000 ;-) */ @@ -1844,16 +1840,12 @@ char *mutt_gen_msgid (void) char buf[SHORT_STRING]; char localpart[SHORT_STRING]; unsigned int localpart_length; - time_t now; - struct tm *tm; const char *fqdn; - now = time (NULL); - tm = gmtime (&now); if (!(fqdn = mutt_fqdn (0))) fqdn = NONULL (Hostname); - localpart_length = sizeof (buf) - strlen (fqdn) - 4; /* the 4 characters are '<', '@', '>' and '\0' */ + localpart_length = sizeof (buf) - mutt_strlen (fqdn) - 4; /* the 4 characters are '<', '@', '>' and '\0' */ mutt_gen_localpart (localpart, localpart_length, MsgIdFormat); @@ -2250,7 +2242,7 @@ void mutt_prepare_envelope (ENVELOPE * env, int final) mutt_set_followup_to (env); - if (!env->message_id) + if (!env->message_id && MsgIdFormat && *MsgIdFormat) env->message_id = mutt_gen_msgid (); } @@ -2325,7 +2317,8 @@ static int _mutt_bounce_message (FILE * fp, HEADER * h, ADDRESS * to, fseek (fp, h->offset, 0); fprintf (f, "Resent-From: %s", resent_from); fprintf (f, "\nResent-%s", mutt_make_date (date, sizeof (date))); - fprintf (f, "Resent-Message-ID: %s\n", mutt_gen_msgid ()); + if (MsgIdFormat && *MsgIdFormat) + fprintf (f, "Resent-Message-ID: %s\n", mutt_gen_msgid ()); fputs ("Resent-To: ", f); mutt_write_address_list (to, f, 11, 0); mutt_copy_header (fp, h, f, ch_flags, NULL); @@ -2394,8 +2387,7 @@ ADDRESS *mutt_remove_duplicates (ADDRESS * addr) } if (dup) { - dprint (2, (debugfile, "mutt_remove_duplicates: Removing %s\n", - addr->mailbox)); + debug_print (2, ("Removing %s\n", addr->mailbox)); *last = addr->next; @@ -2440,10 +2432,7 @@ int mutt_write_fcc (const char *path, HEADER * hdr, const char *msgid, set_noconv_flags (hdr->content, 1); if (mx_open_mailbox (path, M_APPEND | M_QUIET, &f) == NULL) { - dprint (1, - (debugfile, - "mutt_write_fcc(): unable to open mailbox %s in append-mode, aborting.\n", - path)); + debug_print (1, ("unable to open mailbox %s in append-mode, aborting.\n", path)); return (-1); } @@ -2558,8 +2547,7 @@ int mutt_write_fcc (const char *path, HEADER * hdr, const char *msgid, fflush (tempfp); if (ferror (tempfp)) { - dprint (1, - (debugfile, "mutt_write_fcc(): %s: write failed.\n", tempfile)); + debug_print (1, ("%s: write failed.\n", tempfile)); fclose (tempfp); unlink (tempfile); mx_commit_message (msg, &f); /* XXX - really? */