X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=remailer.c;h=2a0ffa2f6c24a62fdbb02e845205d6dd14b3e1d1;hp=927be73f022ae60f84c0ca0dce54993d5bc341ff;hb=00d4a666e4714da960fd0305fb52eb58fadcb2b6;hpb=74a2265af51ce89bca845adc1d68f273c9933c13 diff --git a/remailer.c b/remailer.c index 927be73..2a0ffa2 100644 --- a/remailer.c +++ b/remailer.c @@ -15,17 +15,21 @@ # include "config.h" #endif +#include +#include +#include +#include +#include +#include + #include "mutt.h" +#include "recvattach.h" #include "mutt_curses.h" #include "mutt_menu.h" -#include "mutt_regex.h" -#include "mapping.h" #include "remailer.h" -#include "lib/mem.h" -#include "lib/intl.h" -#include "lib/str.h" +#include "lib/rx.h" #include #include @@ -35,6 +39,8 @@ #include #include +#define SW (option(OPTMBOXPANE)?SidebarWidth:0) + #ifdef MIXMASTER struct coord { @@ -100,7 +106,7 @@ static void mix_add_entry (REMAILER *** type2_list, REMAILER * entry, { if (*used == *slots) { *slots += 5; - safe_realloc (type2_list, sizeof (REMAILER *) * (*slots)); + p_realloc(type2_list, *slots); } (*type2_list)[(*used)++] = entry; @@ -110,16 +116,16 @@ static void mix_add_entry (REMAILER *** type2_list, REMAILER * entry, static REMAILER *mix_new_remailer (void) { - return safe_calloc (1, sizeof (REMAILER)); + return p_new(REMAILER, 1); } static void mix_free_remailer (REMAILER ** r) { - FREE (&(*r)->shortname); - FREE (&(*r)->addr); - FREE (&(*r)->ver); + p_delete(&(*r)->shortname); + p_delete(&(*r)->addr); + p_delete(&(*r)->ver); - FREE (r); + p_delete(r); } /* parse the type2.list as given by mixmaster -T */ @@ -155,7 +161,7 @@ static REMAILER **mix_type2_list (size_t * l) /* first, generate the "random" remailer */ p = mix_new_remailer (); - p->shortname = safe_strdup (""); + p->shortname = m_strdup(""); mix_add_entry (&type2_list, p, &slots, &used); while (fgets (line, sizeof (line), fp)) { @@ -164,12 +170,12 @@ static REMAILER **mix_type2_list (size_t * l) if (!(t = strtok (line, " \t\n"))) goto problem; - p->shortname = safe_strdup (t); + p->shortname = m_strdup(t); if (!(t = strtok (NULL, " \t\n"))) goto problem; - p->addr = safe_strdup (t); + p->addr = m_strdup(t); if (!(t = strtok (NULL, " \t\n"))) goto problem; @@ -177,7 +183,7 @@ static REMAILER **mix_type2_list (size_t * l) if (!(t = strtok (NULL, " \t\n"))) goto problem; - p->ver = safe_strdup (t); + p->ver = m_strdup(t); if (!(t = strtok (NULL, " \t\n"))) goto problem; @@ -209,7 +215,7 @@ static void mix_free_type2_list (REMAILER *** ttlp) for (i = 0; type2_list[i]; i++) mix_free_remailer (&type2_list[i]); - FREE (type2_list); + p_delete(type2_list); } @@ -228,13 +234,13 @@ static void mix_screen_coordinates (REMAILER ** type2_list, if (!chain->cl) return; - safe_realloc (coordsp, sizeof (struct coord) * chain->cl); + p_realloc(coordsp, chain->cl); coords = *coordsp; if (i) { c = - coords[i - 1].c + mutt_strlen (type2_list[chain->ch[i - 1]]->shortname) + 2; + coords[i - 1].c + m_strlen(type2_list[chain->ch[i - 1]]->shortname) + 2; r = coords[i - 1].r; } else { @@ -245,7 +251,7 @@ static void mix_screen_coordinates (REMAILER ** type2_list, for (; i < chain->cl; i++) { oc = c; - c += mutt_strlen (type2_list[chain->ch[i]]->shortname) + 2; + c += m_strlen(type2_list[chain->ch[i]]->shortname) + 2; if (c >= COLS) { oc = c = MIX_HOFFSET; @@ -418,8 +424,9 @@ static const char *mix_entry_fmt (char *dest, static void mix_entry (char *b, size_t blen, MUTTMENU * menu, int num) { REMAILER **type2_list = (REMAILER **) menu->data; + int w=(COLS-SW)>blen?blen:(COLS-SW); - mutt_FormatString (b, blen, NONULL (MixEntryFormat), mix_entry_fmt, + mutt_FormatString (b, w, NONULL (MixEntryFormat), mix_entry_fmt, (unsigned long) type2_list[num], M_FORMAT_ARROWCURSOR); } @@ -431,7 +438,7 @@ static int mix_chain_add (MIXCHAIN * chain, const char *s, if (chain->cl >= MAXMIXES) return -1; - if (!mutt_strcmp (s, "0") || !ascii_strcasecmp (s, "")) { + if (!m_strcmp(s, "0") || !ascii_strcasecmp (s, "")) { chain->ch[chain->cl++] = 0; return 0; } @@ -457,7 +464,7 @@ static struct mapping_t RemailerHelp[] = { {N_("Delete"), OP_MIX_DELETE}, {N_("Abort"), OP_EXIT}, {N_("OK"), OP_MIX_USE}, - {NULL} + {NULL, OP_NULL} }; @@ -480,7 +487,7 @@ void mix_make_chain (LIST ** chainp, int *redraw) int op; int i, j; - char *t; + const char *t; if (!(type2_list = mix_type2_list (&ttll))) { mutt_error _("Can't get mixmaster's type2.list!"); @@ -490,7 +497,7 @@ void mix_make_chain (LIST ** chainp, int *redraw) *redraw = REDRAW_FULL; - chain = safe_calloc (sizeof (MIXCHAIN), 1); + chain = p_new(MIXCHAIN, 1); for (p = *chainp; p; p = p->next) mix_chain_add (chain, (char *) p->data, type2_list); @@ -657,8 +664,8 @@ void mix_make_chain (LIST ** chainp, int *redraw) } mix_free_type2_list (&type2_list); - FREE (&coords); - FREE (&chain); + p_delete(&coords); + p_delete(&chain); } /* some safety checks before piping the message to mixmaster */ @@ -667,7 +674,7 @@ int mix_check_message (HEADER * msg) { const char *fqdn; short need_hostname = 0; - ADDRESS *p; + address_t *p; if (msg->env->cc || msg->env->bcc) { mutt_error _("Mixmaster doesn't accept Cc or Bcc headers."); @@ -716,7 +723,7 @@ int mix_send_message (LIST * chain, const char *tempfile) snprintf (cmd, sizeof (cmd), "cat %s | %s -m ", tempfile, Mixmaster); for (i = 0; chain; chain = chain->next, i = 1) { - strfcpy (tmp, cmd, sizeof (tmp)); + m_strcpy(tmp, sizeof(tmp), cmd); mutt_quote_filename (cd_quoted, sizeof (cd_quoted), (char *) chain->data); snprintf (cmd, sizeof (cmd), "%s%s%s", tmp, i ? "," : " -l ", cd_quoted); }