projects
/
apps
/
madmutt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
oops, we don't need that. fix a regression in <esc>e
[apps/madmutt.git]
/
remailer.c
diff --git
a/remailer.c
b/remailer.c
index
3239993
..
2a0ffa2
100644
(file)
--- a/
remailer.c
+++ b/
remailer.c
@@
-15,16
+15,20
@@
# include "config.h"
#endif
# include "config.h"
#endif
+#include <lib-lib/mem.h>
+#include <lib-lib/ascii.h>
+#include <lib-lib/str.h>
+#include <lib-lib/macros.h>
+#include <lib-lib/file.h>
+#include <lib-lib/mapping.h>
+
#include "mutt.h"
#include "mutt.h"
+#include "recvattach.h"
#include "mutt_curses.h"
#include "mutt_menu.h"
#include "mutt_curses.h"
#include "mutt_menu.h"
-#include "mapping.h"
#include "remailer.h"
#include "remailer.h"
-#include "lib/mem.h"
-#include "lib/intl.h"
-#include "lib/str.h"
#include "lib/rx.h"
#include <stdio.h>
#include "lib/rx.h"
#include <stdio.h>
@@
-35,6
+39,8
@@
#include <sys/file.h>
#include <fcntl.h>
#include <sys/file.h>
#include <fcntl.h>
+#define SW (option(OPTMBOXPANE)?SidebarWidth:0)
+
#ifdef MIXMASTER
struct coord {
#ifdef MIXMASTER
struct coord {
@@
-100,7
+106,7
@@
static void mix_add_entry (REMAILER *** type2_list, REMAILER * entry,
{
if (*used == *slots) {
*slots += 5;
{
if (*used == *slots) {
*slots += 5;
-
safe_realloc (type2_list, sizeof (REMAILER *) * (*slots)
);
+
p_realloc(type2_list, *slots
);
}
(*type2_list)[(*used)++] = entry;
}
(*type2_list)[(*used)++] = entry;
@@
-110,16
+116,16
@@
static void mix_add_entry (REMAILER *** type2_list, REMAILER * entry,
static REMAILER *mix_new_remailer (void)
{
static REMAILER *mix_new_remailer (void)
{
- return
safe_calloc (1, sizeof (REMAILER)
);
+ return
p_new(REMAILER, 1
);
}
static void mix_free_remailer (REMAILER ** r)
{
}
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 */
}
/* 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 ();
/* first, generate the "random" remailer */
p = mix_new_remailer ();
- p->shortname =
safe_strdup
("<random>");
+ p->shortname =
m_strdup
("<random>");
mix_add_entry (&type2_list, p, &slots, &used);
while (fgets (line, sizeof (line), fp)) {
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;
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;
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;
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;
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;
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]);
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;
if (!chain->cl)
return;
-
safe_realloc (coordsp, sizeof (struct coord) *
chain->cl);
+
p_realloc(coordsp,
chain->cl);
coords = *coordsp;
if (i) {
c =
coords = *coordsp;
if (i) {
c =
- coords[i - 1].c +
safe_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 {
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;
for (; i < chain->cl; i++) {
oc = c;
- c +=
safe_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;
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;
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);
}
(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 (chain->cl >= MAXMIXES)
return -1;
- if (!
safe_strcmp
(s, "0") || !ascii_strcasecmp (s, "<random>")) {
+ if (!
m_strcmp
(s, "0") || !ascii_strcasecmp (s, "<random>")) {
chain->ch[chain->cl++] = 0;
return 0;
}
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},
{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;
int op;
int i, j;
- char *t;
+ c
onst c
har *t;
if (!(type2_list = mix_type2_list (&ttll))) {
mutt_error _("Can't get mixmaster's type2.list!");
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;
*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);
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);
}
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 */
}
/* 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;
{
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.");
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) {
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);
}
mutt_quote_filename (cd_quoted, sizeof (cd_quoted), (char *) chain->data);
snprintf (cmd, sizeof (cmd), "%s%s%s", tmp, i ? "," : " -l ", cd_quoted);
}