X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=sendlib.c;h=1290fd9616e874e1cc8afe71be19876272040f53;hp=cedcd9ea17bcc2ea893074024c0bfea05fde8dd8;hb=0f44dc85fc1280372ffab911d701e703d803fb4b;hpb=df70e07e24add1869bcc9b7af2277d9d0c09a281 diff --git a/sendlib.c b/sendlib.c index cedcd9e..1290fd9 100644 --- a/sendlib.c +++ b/sendlib.c @@ -1,19 +1,10 @@ /* + * Copyright notice from original mutt: * Copyright (C) 1996-2002 Michael R. Elkins - * - * 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. + * + * 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 _SENDLIB_C 1 @@ -35,6 +26,10 @@ #include "mutt_crypt.h" #include "mutt_idna.h" +#include "lib/mem.h" +#include "lib/str.h" +#include "lib/intl.h" + #include #include #include @@ -192,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; } @@ -367,7 +362,7 @@ int mutt_write_mime_header (BODY * a, FILE * f) fprintf (f, "Content-Type: %s/%s", TYPE (a), a->subtype); if (a->parameter) { - len = 25 + mutt_strlen (a->subtype); /* approximate len. of content-type */ + len = 25 + safe_strlen (a->subtype); /* approximate len. of content-type */ for (p = a->parameter; p; p = p->next) { char *tmp; @@ -393,7 +388,7 @@ int mutt_write_mime_header (BODY * a, FILE * f) FREE (&tmp); - tmplen = mutt_strlen (buffer) + mutt_strlen (p->attribute) + 1; + tmplen = safe_strlen (buffer) + safe_strlen (p->attribute) + 1; if (len + tmplen + 2 > 76) { fputs ("\n\t", f); @@ -486,7 +481,7 @@ int mutt_write_mime_body (BODY * a, FILE * f) /* This is pretty gross, but it's the best solution for now... */ if ((WithCrypto & APPLICATION_PGP) && a->type == TYPEAPPLICATION - && mutt_strcmp (a->subtype, "pgp-encrypted") == 0) { + && safe_strcmp (a->subtype, "pgp-encrypted") == 0) { fputs ("Version: 1\n", f); return 0; } @@ -832,7 +827,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); @@ -841,7 +836,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); @@ -968,7 +963,7 @@ int mutt_lookup_mime_type (BODY * att, const char *path) type = TYPEOTHER; cur_sze = 0; - szf = mutt_strlen (path); + szf = safe_strlen (path); for (count = 0; count < 3; count++) { /* @@ -1011,9 +1006,9 @@ int mutt_lookup_mime_type (BODY * att, const char *path) /* cycle through the file extensions */ while ((p = strtok (p, " \t\n"))) { - sze = mutt_strlen (p); + sze = safe_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 - @@ -1031,7 +1026,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)); @@ -1049,8 +1044,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); @@ -1478,7 +1473,7 @@ void mutt_write_address_list (ADDRESS * adr, FILE * fp, int linelen, adr->next = NULL; buf[0] = 0; rfc822_write_address (buf, sizeof (buf), adr, display); - len = mutt_strlen (buf); + len = safe_strlen (buf); if (count && linelen + len > 74) { fputs ("\n\t", fp); linelen = len + 8; /* tab is usually about 8 spaces... */ @@ -1722,7 +1717,7 @@ static void encode_headers (LIST * h) rfc2047_encode_string (&tmp); safe_realloc (&h->data, - mutt_strlen (h->data) + 2 + mutt_strlen (tmp) + 1); + safe_strlen (h->data) + 2 + safe_strlen (tmp) + 1); sprintf (h->data + i, ": %s", NONULL (tmp)); /* __SPRINTF_CHECKED__ */ @@ -1796,11 +1791,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, safe_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, safe_strlen (tmp)); break; case 'P': snprintf (tmp, sizeof (tmp), "%c", MsgIdPfx); @@ -1809,11 +1804,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, safe_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, safe_strlen (tmp)); break; case 's': snprintf (tmp, sizeof (tmp), "%02d", tm->tm_sec); @@ -1821,11 +1816,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, safe_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, safe_strlen (tmp)); break; case 'Y': snprintf (tmp, sizeof (tmp), "%04d", tm->tm_year + 1900); /* this will break in the year 10000 ;-) */ @@ -1862,7 +1857,7 @@ char *mutt_gen_msgid (void) 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) - safe_strlen (fqdn) - 4; /* the 4 characters are '<', '@', '>' and '\0' */ mutt_gen_localpart (localpart, localpart_length, MsgIdFormat); @@ -2187,9 +2182,9 @@ int mutt_invoke_mta (ADDRESS * from, /* the sender */ string. */ char *mutt_append_string (char *a, const char *b) { - size_t la = mutt_strlen (a); + size_t la = safe_strlen (a); - safe_realloc (&a, la + mutt_strlen (b) + 1); + safe_realloc (&a, la + safe_strlen (b) + 1); strcpy (a + la, b); /* __STRCPY_CHECKED__ */ return (a); } @@ -2217,7 +2212,7 @@ char *mutt_quote_string (const char *s) char *r, *pr; size_t rlen; - rlen = mutt_strlen (s) + 3; + rlen = safe_strlen (s) + 3; pr = r = (char *) safe_malloc (rlen); *pr++ = '"'; while (*s) {