X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=sendlib.c;h=5fc706cf30f1bb3cf44341ad2a8a70c769ab98b2;hp=9af8f81b5618d8f0f59a8593f6b7cc92ba93cb1f;hb=9aae63e2d1cce39bb0928362416a8d17b953ca5e;hpb=c8ceef3ed6424dcb5a6ec835e7d8d9cc00595372 diff --git a/sendlib.c b/sendlib.c index 9af8f81..5fc706c 100644 --- a/sendlib.c +++ b/sendlib.c @@ -13,8 +13,12 @@ # include "config.h" #endif +#include +#include +#include +#include + #include "mutt.h" -#include "ascii.h" #include "handler.h" #include "recvattach.h" #include "mutt_curses.h" @@ -28,9 +32,6 @@ #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 @@ -294,7 +295,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 + str_len (a->subtype); /* approximate len. of content-type */ + len = 25 + m_strlen(a->subtype); /* approximate len. of content-type */ for (p = a->parameter; p; p = p->next) { char *tmp; @@ -305,7 +306,7 @@ int mutt_write_mime_header (BODY * a, FILE * f) fputc (';', f); buffer[0] = 0; - tmp = str_dup (p->value); + tmp = m_strdup(p->value); encode = rfc2231_encode_string (&tmp); rfc822_cat (buffer, sizeof (buffer), tmp, MimeSpecials); @@ -318,9 +319,9 @@ int mutt_write_mime_header (BODY * a, FILE * f) && !strcmp (buffer, tmp)) snprintf (buffer, sizeof (buffer), "\"%s\"", tmp); - mem_free (&tmp); + p_delete(&tmp); - tmplen = str_len (buffer) + str_len (p->attribute) + 1; + tmplen = m_strlen(buffer) + m_strlen(p->attribute) + 1; if (len + tmplen + 2 > 76) { fputs ("\n\t", f); @@ -357,10 +358,10 @@ int mutt_write_mime_header (BODY * a, FILE * f) t = fn; buffer[0] = 0; - tmp = str_dup (t); + tmp = m_strdup(t); encode = rfc2231_encode_string (&tmp); rfc822_cat (buffer, sizeof (buffer), tmp, MimeSpecials); - mem_free (&tmp); + p_delete(&tmp); fprintf (f, "; filename%s=%s", encode ? "*" : "", buffer); } } @@ -604,7 +605,7 @@ static size_t convert_file_to (FILE * file, const char *fromcode, #ifdef HAVE_ICONV iconv_t cd1, *cd; char bufi[256], bufu[512], bufo[4 * sizeof (bufi)]; - ICONV_CONST char *ib, *ub; + const char *ib, *ub; char *ob; size_t ibl, obl, ubl, ubl1, n, ret; int i; @@ -616,10 +617,10 @@ static size_t convert_file_to (FILE * file, const char *fromcode, if (cd1 == (iconv_t) (-1)) return -1; - cd = mem_calloc (ncodes, sizeof (iconv_t)); - score = mem_calloc (ncodes, sizeof (size_t)); - states = mem_calloc (ncodes, sizeof (CONTENT_STATE)); - infos = mem_calloc (ncodes, sizeof (CONTENT)); + cd = p_new(iconv_t, ncodes); + score = p_new(size_t, ncodes); + states = p_new(CONTENT_STATE, ncodes); + infos = p_new(CONTENT, ncodes); for (i = 0; i < ncodes; i++) if (ascii_strcasecmp (tocodes[i], "UTF-8")) @@ -639,7 +640,7 @@ static size_t convert_file_to (FILE * file, const char *fromcode, /* Convert to UTF-8 */ ib = bufi; ob = bufu, obl = sizeof (bufu); - n = iconv (cd1, ibl ? &ib : 0, &ibl, &ob, &obl); + n = my_iconv(cd1, ibl ? &ib : 0, &ibl, &ob, &obl); assert (n == (size_t) (-1) || !n || ICONV_NONTRANS); if (n == (size_t) (-1) && ((errno != EINVAL && errno != E2BIG) || ib == bufi)) { @@ -655,7 +656,7 @@ static size_t convert_file_to (FILE * file, const char *fromcode, if (cd[i] != (iconv_t) (-1) && score[i] != (size_t) (-1)) { ub = bufu, ubl = ubl1; ob = bufo, obl = sizeof (bufo); - n = iconv (cd[i], (ibl || ubl) ? &ub : 0, &ubl, &ob, &obl); + n = my_iconv(cd[i], (ibl || ubl) ? &ub : 0, &ubl, &ob, &obl); if (n == (size_t) (-1)) { assert (errno == E2BIG || (BUGGY_ICONV && (errno == EILSEQ || errno == ENOENT))); @@ -709,10 +710,10 @@ static size_t convert_file_to (FILE * file, const char *fromcode, iconv_close (cd[i]); iconv_close (cd1); - mem_free (&cd); - mem_free (&infos); - mem_free (&score); - mem_free (&states); + p_delete(&cd); + p_delete(&infos); + p_delete(&score); + p_delete(&states); return ret; #else @@ -751,7 +752,7 @@ static size_t convert_file_from_to (FILE * file, } /* Copy them */ - tcode = mem_malloc (ncodes * sizeof (char *)); + tcode = p_new(char *, ncodes); for (c = tocodes, i = 0; c; c = c1 ? c1 + 1 : 0, i++) { if ((c1 = strchr (c, ':')) == c) continue; @@ -774,7 +775,7 @@ static size_t convert_file_from_to (FILE * file, tcode[cn] = 0; break; } - mem_free (&fcode); + p_delete(&fcode); } } else { @@ -789,9 +790,9 @@ static size_t convert_file_from_to (FILE * file, /* Free memory */ for (i = 0; i < ncodes; i++) - mem_free (&tcode[i]); + p_delete(&tcode[i]); - mem_free (tcode); + p_delete(tcode); return ret; } @@ -831,8 +832,8 @@ CONTENT *mutt_get_content_info (const char *fname, BODY * b) return (NULL); } - info = mem_calloc (1, sizeof (CONTENT)); - memset (&state, 0, sizeof (state)); + info = p_new(CONTENT, 1); + p_clear(&state, 1); if (b != NULL && b->type == TYPETEXT && (!b->noconv && !b->force_charset)) { char *chs = mutt_get_parameter ("charset", b->parameter); @@ -846,7 +847,7 @@ CONTENT *mutt_get_content_info (const char *fname, BODY * b) mutt_set_parameter ("charset", chsbuf, &b->parameter); } b->file_charset = fromcode; - mem_free (&tocode); + p_delete(&tocode); safe_fclose (&fp); return info; } @@ -890,9 +891,9 @@ int mutt_lookup_mime_type (BODY * att, const char *path) type = TYPEOTHER; cur_sze = 0; - szf = str_len (path); + szf = m_strlen(path); - for (count = 0; count < 3; count++) { + for (count = 0; count < 4; count++) { /* * can't use strtok() because we use it in an inner loop below, so use * a switch statement here instead. @@ -907,6 +908,9 @@ int mutt_lookup_mime_type (BODY * att, const char *path) case 2: strfcpy (buf, PKGDATADIR "/mime.types", sizeof (buf)); break; + case 3: + strfcpy (buf, SYSCONFDIR "/mime.types", sizeof (buf)); + break; default: debug_print (1, ("Internal error, count = %d.\n", count)); goto bye; /* shouldn't happen */ @@ -930,7 +934,7 @@ int mutt_lookup_mime_type (BODY * att, const char *path) /* cycle through the file extensions */ while ((p = strtok (p, " \t\n"))) { - sze = str_len (p); + sze = m_strlen(p); if ((sze > cur_sze) && (szf >= sze) && (str_casecmp (path + szf - sze, p) == 0 || ascii_strcasecmp (path + szf - sze, p) == 0) && (szf == sze @@ -1018,7 +1022,7 @@ void mutt_message_to_7bit (BODY * a, FILE * fp) mutt_write_mime_body (a->parts, fpout); cleanup: - mem_free (&line); + p_delete(&line); if (fpin && !fp) fclose (fpin); @@ -1031,7 +1035,7 @@ cleanup: a->d_filename = a->filename; if (a->filename && a->unlink) unlink (a->filename); - a->filename = str_dup (temp); + a->filename = m_strdup(temp); a->unlink = 1; if (stat (a->filename, &sb) == -1) { mutt_perror ("stat"); @@ -1048,7 +1052,7 @@ static void transform_to_7bit (BODY * a, FILE * fpin) STATE s; struct stat sb; - memset (&s, 0, sizeof (s)); + p_clear(&s, 1); for (; a; a = a->next) { if (a->type == TYPEMULTIPART) { if (a->encoding != ENC7BIT) @@ -1072,7 +1076,7 @@ static void transform_to_7bit (BODY * a, FILE * fpin) mutt_decode_attachment (a, &s); fclose (s.fpout); a->d_filename = a->filename; - a->filename = str_dup (buff); + a->filename = m_strdup(buff); a->unlink = 1; if (stat (a->filename, &sb) == -1) { mutt_perror ("stat"); @@ -1182,7 +1186,7 @@ void mutt_update_encoding (BODY * a) mutt_set_encoding (a, info); mutt_stamp_attachment (a); - mem_free (&a->content); + p_delete(&a->content); a->content = info; } @@ -1209,8 +1213,8 @@ BODY *mutt_make_message_attach (CONTEXT * ctx, HEADER * hdr, int attach_msg) body = mutt_new_body (); body->type = TYPEMESSAGE; - body->subtype = str_dup ("rfc822"); - body->filename = str_dup (buffer); + body->subtype = m_strdup("rfc822"); + body->filename = m_strdup(buffer); body->unlink = 1; body->use_disp = 0; body->disposition = DISPINLINE; @@ -1276,7 +1280,7 @@ BODY *mutt_make_file_attach (const char *path) CONTENT *info; att = mutt_new_body (); - att->filename = str_dup (path); + att->filename = m_strdup(path); /* Attempt to determine the appropriate content-type based on the filename * suffix. @@ -1288,8 +1292,8 @@ BODY *mutt_make_file_attach (const char *path) mutt_lookup_mime_type (buf, sizeof (buf), xbuf, sizeof (xbuf), path)) != TYPEOTHER || *xbuf != '\0') { att->type = n; - att->subtype = str_dup (buf); - att->xtype = str_dup (xbuf); + att->subtype = m_strdup(buf); + att->xtype = m_strdup(xbuf); } #else @@ -1311,11 +1315,11 @@ BODY *mutt_make_file_attach (const char *path) * chars if this is really a binary file... */ att->type = TYPETEXT; - att->subtype = str_dup ("plain"); + att->subtype = m_strdup("plain"); } else { att->type = TYPEAPPLICATION; - att->subtype = str_dup ("octet-stream"); + att->subtype = m_strdup("octet-stream"); } } @@ -1343,7 +1347,7 @@ BODY *mutt_make_multipart (BODY * b) new = mutt_new_body (); new->type = TYPEMULTIPART; - new->subtype = str_dup ("mixed"); + new->subtype = m_strdup("mixed"); new->encoding = get_toplevel_encoding (b); mutt_generate_boundary (&new->parameter); new->use_disp = 0; @@ -1397,7 +1401,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 = str_len (buf); + len = m_strlen(buf); if (count && linelen + len > 74) { fputs ("\n\t", fp); linelen = len + 8; /* tab is usually about 8 spaces... */ @@ -1436,7 +1440,7 @@ void mutt_write_references (LIST * r, FILE * f) for (; (TrimRef == 0 || refcnt < TrimRef) && r; r = r->next) { if (refcnt == refmax) - mem_realloc (&ref, (refmax += REF_INC) * sizeof (LIST *)); + p_realloc(&ref, refmax += REF_INC); ref[refcnt++] = r; } @@ -1445,7 +1449,7 @@ void mutt_write_references (LIST * r, FILE * f) fputs (ref[refcnt]->data, f); } - mem_free (&ref); + p_delete(&ref); } /* Note: all RFC2047 encoding should be done outside of this routine, except @@ -1499,7 +1503,7 @@ int mutt_write_rfc822_header (FILE * fp, ENVELOPE * env, BODY * attach, if (!option (OPTNEWSSEND)) #endif if (EDIT_HEADER("To:")) - fputs ("To: \n", fp); + fputs ("To:\n", fp); if (env->cc) { fputs ("Cc: ", fp); @@ -1510,7 +1514,7 @@ int mutt_write_rfc822_header (FILE * fp, ENVELOPE * env, BODY * attach, if (!option (OPTNEWSSEND)) #endif if (EDIT_HEADER("Cc:")) - fputs ("Cc: \n", fp); + fputs ("Cc:\n", fp); if (env->bcc) { if (mode != 0 || option (OPTWRITEBCC)) { @@ -1523,30 +1527,30 @@ int mutt_write_rfc822_header (FILE * fp, ENVELOPE * env, BODY * attach, if (!option (OPTNEWSSEND)) #endif if (EDIT_HEADER("Bcc:")) - fputs ("Bcc: \n", fp); + fputs ("Bcc:\n", fp); #ifdef USE_NNTP if (env->newsgroups) fprintf (fp, "Newsgroups: %s\n", env->newsgroups); else if (mode == 1 && option (OPTNEWSSEND) && EDIT_HEADER("Newsgroups:")) - fputs ("Newsgroups: \n", fp); + fputs ("Newsgroups:\n", fp); if (env->followup_to) fprintf (fp, "Followup-To: %s\n", env->followup_to); else if (mode == 1 && option (OPTNEWSSEND) && EDIT_HEADER("Followup-To:")) - fputs ("Followup-To: \n", fp); + fputs ("Followup-To:\n", fp); if (env->x_comment_to) fprintf (fp, "X-Comment-To: %s\n", env->x_comment_to); else if (mode == 1 && option (OPTNEWSSEND) && option (OPTXCOMMENTTO) && EDIT_HEADER("X-Comment-To:")) - fputs ("X-Comment-To: \n", fp); + fputs ("X-Comment-To:\n", fp); #endif if (env->subject) fprintf (fp, "Subject: %s\n", env->subject); else if (mode == 1 && EDIT_HEADER("Subject:")) - fputs ("Subject: \n", fp); + fputs ("Subject:\n", fp); /* save message id if the user has set it */ if (env->message_id && !privacy) @@ -1557,7 +1561,7 @@ int mutt_write_rfc822_header (FILE * fp, ENVELOPE * env, BODY * attach, mutt_write_address_list (env->reply_to, fp, 10, 0); } else if (mode > 0 && EDIT_HEADER("Reply-To:")) - fputs ("Reply-To: \n", fp); + fputs ("Reply-To:\n", fp); if (env->mail_followup_to) #ifdef USE_NNTP @@ -1609,25 +1613,19 @@ int mutt_write_rfc822_header (FILE * fp, ENVELOPE * env, BODY * attach, } if (mode == 0 && !privacy && option (OPTXMAILER) && !has_agent) { - struct utsname un; - char *os; + const char *os; if (OperatingSystem != NULL) { os = OperatingSystem; - } - else { - if (uname (&un) == -1) { - os = "UNIX"; - } - else { - os = un.sysname; - } + } else { + struct utsname un; + os = (uname(&un) == -1) ? "UNIX" : un.sysname; } /* Add a vanity header */ fprintf (fp, "User-Agent: %s (%s)\n", mutt_make_version (0), os); } - list_del (&hdrs, (list_del_t*) _mem_free); + list_del (&hdrs, (list_del_t*)xmemfree); return (ferror (fp) == 0 ? 0 : -1); } @@ -1645,18 +1643,17 @@ static void encode_headers (LIST * h) i = p - h->data; ++p; SKIPWS (p); - tmp = str_dup (p); + tmp = m_strdup(p); if (!tmp) continue; rfc2047_encode_string (&tmp); - mem_realloc (&h->data, - str_len (h->data) + 2 + str_len (tmp) + 1); + p_realloc(&h->data, m_strlen(h->data) + 2 + m_strlen(tmp) + 1); sprintf (h->data + i, ": %s", NONULL (tmp)); /* __SPRINTF_CHECKED__ */ - mem_free (&tmp); + p_delete(&tmp); } } @@ -1726,11 +1723,11 @@ static void mutt_gen_localpart (char *buf, unsigned int len, char *fmt) break; case 'O': snprintf (tmp, sizeof (tmp), "%lo", (unsigned long) now); - str_ncat (buf, len, tmp, str_len (tmp)); + str_ncat (buf, len, tmp, m_strlen(tmp)); break; case 'p': snprintf (tmp, sizeof (tmp), "%u", (unsigned int) getpid ()); - str_ncat (buf, len, tmp, str_len (tmp)); + str_ncat (buf, len, tmp, m_strlen(tmp)); break; case 'P': snprintf (tmp, sizeof (tmp), "%c", MsgIdPfx); @@ -1739,11 +1736,11 @@ static void mutt_gen_localpart (char *buf, unsigned int len, char *fmt) break; case 'r': snprintf (tmp, sizeof (tmp), "%u", (unsigned int) rand ()); - str_ncat (buf, len, tmp, str_len (tmp)); + str_ncat (buf, len, tmp, m_strlen(tmp)); break; case 'R': snprintf (tmp, sizeof (tmp), "%x", (unsigned int) rand ()); - str_ncat (buf, len, tmp, str_len (tmp)); + str_ncat (buf, len, tmp, m_strlen(tmp)); break; case 's': snprintf (tmp, sizeof (tmp), "%02d", tm->tm_sec); @@ -1751,11 +1748,11 @@ static void mutt_gen_localpart (char *buf, unsigned int len, char *fmt) break; case 'T': snprintf (tmp, sizeof (tmp), "%u", (unsigned int) now); - str_ncat (buf, len, tmp, str_len (tmp)); + str_ncat (buf, len, tmp, m_strlen(tmp)); break; case 'X': snprintf (tmp, sizeof (tmp), "%x", (unsigned int) now); - str_ncat (buf, len, tmp, str_len (tmp)); + str_ncat (buf, len, tmp, m_strlen(tmp)); break; case 'Y': snprintf (tmp, sizeof (tmp), "%04d", tm->tm_year + 1900); /* this will break in the year 10000 ;-) */ @@ -1788,12 +1785,12 @@ char *mutt_gen_msgid (void) if (!(fqdn = mutt_fqdn (0))) fqdn = NONULL (Hostname); - localpart_length = sizeof (buf) - str_len (fqdn) - 4; /* the 4 characters are '<', '@', '>' and '\0' */ + localpart_length = sizeof (buf) - m_strlen(fqdn) - 4; /* the 4 characters are '<', '@', '>' and '\0' */ mutt_gen_localpart (localpart, localpart_length, MsgIdFormat); snprintf (buf, sizeof (buf), "<%s@%s>", localpart, fqdn); - return (str_dup (buf)); + return (m_strdup(buf)); } static RETSIGTYPE alarm_handler (int sig) @@ -1809,7 +1806,7 @@ static RETSIGTYPE alarm_handler (int sig) to the temporary file containing the stdout of the child process */ static int -send_msg (const char *path, char **args, const char *msg, char **tempfile) +send_msg(const char *path, const char **args, const char *msg, char **tempfile) { sigset_t set; int fd, st; @@ -1826,7 +1823,7 @@ send_msg (const char *path, char **args, const char *msg, char **tempfile) char tmp[_POSIX_PATH_MAX]; mutt_mktemp (tmp); - *tempfile = str_dup (tmp); + *tempfile = m_strdup(tmp); } if ((pid = fork ()) == 0) { @@ -1883,7 +1880,7 @@ send_msg (const char *path, char **args, const char *msg, char **tempfile) } else if (pid == -1) { unlink (msg); - mem_free (tempfile); + p_delete(tempfile); _exit (S_ERR); } @@ -1911,14 +1908,14 @@ send_msg (const char *path, char **args, const char *msg, char **tempfile) st = WIFEXITED (st) ? WEXITSTATUS (st) : S_ERR; if (SendmailWait && st == (0xff & EX_OK)) { unlink (*tempfile); /* no longer needed */ - mem_free (tempfile); + p_delete(tempfile); } } else { st = (SendmailWait > 0 && errno == EINTR && SigAlrm) ? S_BKG : S_ERR; if (SendmailWait > 0) { unlink (*tempfile); - mem_free (tempfile); + p_delete(tempfile); } } @@ -1929,7 +1926,7 @@ send_msg (const char *path, char **args, const char *msg, char **tempfile) if (kill (ppid, 0) == -1 && errno == ESRCH) { /* the parent is already dead */ unlink (*tempfile); - mem_free (tempfile); + p_delete(tempfile); } _exit (st); @@ -1947,27 +1944,28 @@ send_msg (const char *path, char **args, const char *msg, char **tempfile) return (st); } -static char **add_args (char **args, size_t * argslen, size_t * argsmax, - ADDRESS * addr) +static const char ** +add_args(const char **args, size_t *argslen, size_t *argsmax, ADDRESS * addr) { for (; addr; addr = addr->next) { /* weed out group mailboxes, since those are for display only */ if (addr->mailbox && !addr->group) { if (*argslen == *argsmax) - mem_realloc (&args, (*argsmax += 5) * sizeof (char *)); + p_realloc(&args, *argsmax += 5); args[(*argslen)++] = addr->mailbox; } } return (args); } -static char **add_option (char **args, size_t * argslen, size_t * argsmax, - char *s) +static const char ** +add_option(const char **args, size_t *argslen, size_t *argsmax, const char *s) { - if (*argslen == *argsmax) - mem_realloc (&args, (*argsmax += 5) * sizeof (char *)); - args[(*argslen)++] = s; - return (args); + if (*argslen == *argsmax) { + p_realloc(&args, *argsmax += 5); + } + args[(*argslen)++] = s; + return (args); } static int mutt_invoke_sendmail (ADDRESS * from, /* the sender */ @@ -1976,7 +1974,7 @@ static int mutt_invoke_sendmail (ADDRESS * from, /* the sender */ int eightbit) { /* message contains 8bit chars */ char *ps = NULL, *path = NULL, *s = NULL, *childout = NULL; - char **args = NULL; + const char **args = NULL; size_t argslen = 0, argsmax = 0; int i; @@ -1992,22 +1990,22 @@ static int mutt_invoke_sendmail (ADDRESS * from, /* the sender */ return i; } - s = str_dup (cmd); + s = m_strdup(cmd); } else #endif - s = str_dup (Sendmail); + s = m_strdup(Sendmail); ps = s; i = 0; while ((ps = strtok (ps, " "))) { if (argslen == argsmax) - mem_realloc (&args, sizeof (char *) * (argsmax += 5)); + p_realloc(&args, argsmax += 5); if (i) args[argslen++] = ps; else { - path = str_dup (ps); + path = m_strdup(ps); ps = strrchr (ps, '/'); if (ps) ps++; @@ -2023,7 +2021,7 @@ static int mutt_invoke_sendmail (ADDRESS * from, /* the sender */ if (!option (OPTNEWSSEND)) { #endif if (eightbit && option (OPTUSE8BITMIME)) - args = add_option (args, &argslen, &argsmax, "-B8BITMIME"); + args = add_option(args, &argslen, &argsmax, "-B8BITMIME"); if (option (OPTENVFROM)) { ADDRESS *f = NULL; @@ -2053,7 +2051,7 @@ static int mutt_invoke_sendmail (ADDRESS * from, /* the sender */ #endif if (argslen == argsmax) - mem_realloc (&args, sizeof (char *) * (++argsmax)); + p_realloc(&args, ++argsmax); args[argslen++] = NULL; @@ -2076,10 +2074,10 @@ static int mutt_invoke_sendmail (ADDRESS * from, /* the sender */ else unlink (childout); - mem_free (&childout); - mem_free (&path); - mem_free (&s); - mem_free (&args); + p_delete(&childout); + p_delete(&path); + p_delete(&s); + p_delete(&args); if (i == (EX_OK & 0xff)) i = 0; @@ -2110,9 +2108,9 @@ int mutt_invoke_mta (ADDRESS * from, /* the sender */ string. */ char *mutt_append_string (char *a, const char *b) { - size_t la = str_len (a); + size_t la = m_strlen(a); - mem_realloc (&a, la + str_len (b) + 1); + p_realloc(&a, la + m_strlen(b) + 1); strcpy (a + la, b); /* __STRCPY_CHECKED__ */ return (a); } @@ -2140,14 +2138,14 @@ char *mutt_quote_string (const char *s) char *r, *pr; size_t rlen; - rlen = str_len (s) + 3; - pr = r = (char *) mem_malloc (rlen); + rlen = m_strlen(s) + 3; + pr = r = p_new(char, rlen); *pr++ = '"'; while (*s) { if (INVALID_CHAR (*s)) { size_t o = pr - r; - mem_realloc (&r, ++rlen); + p_realloc(&r, ++rlen); pr = r + o; *pr++ = '\\'; } @@ -2177,7 +2175,7 @@ void mutt_prepare_envelope (ENVELOPE * env, int final) rfc822_cat (buffer, sizeof (buffer), "undisclosed-recipients", RFC822Specials); - env->to->mailbox = str_dup (buffer); + env->to->mailbox = m_strdup(buffer); } mutt_set_followup_to (env); @@ -2500,7 +2498,7 @@ int mutt_write_fcc (const char *path, HEADER * hdr, const char *msgid, rewind (tempfp); while (fgets (sasha, sizeof (sasha), tempfp) != NULL) lines++; - fprintf (msg->fp, "Content-Length: " OFF_T_FMT "\n", ftello (tempfp)); + fprintf (msg->fp, "Content-Length: %zd\n", ftello (tempfp)); fprintf (msg->fp, "Lines: %d\n\n", lines); /* copy the body and clean up */