* Mixmaster support for Mutt
*/
-#if HAVE_CONFIG_H
-# include "config.h"
-#endif
+#include <lib-lib/lib-lib.h>
-#include <lib-lib/mem.h>
-#include <lib-lib/str.h>
-#include <lib-lib/macros.h>
+#include <lib-sys/unix.h>
+#include <lib-ui/curses.h>
+#include <lib-ui/menu.h>
#include "mutt.h"
#include "recvattach.h"
-#include "mutt_curses.h"
-#include "mutt_menu.h"
-#include "mapping.h"
#include "remailer.h"
-#include "lib/rx.h"
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include <sys/types.h>
-#include <sys/file.h>
-#include <fcntl.h>
-
#define SW (option(OPTMBOXPANE)?SidebarWidth:0)
#ifdef MIXMASTER
short r, c;
};
-static REMAILER **mix_type2_list (size_t * l);
+static REMAILER **mix_type2_list (ssize_t * l);
static REMAILER *mix_new_remailer (void);
static const char *mix_format_caps (REMAILER * r);
static int mix_chain_add (MIXCHAIN * chain, const char *s,
REMAILER ** type2_list);
static int mix_get_caps (const char *capstr);
-static void mix_add_entry (REMAILER ***, REMAILER *, size_t *, size_t *);
-static void mix_entry (char *b, size_t blen, MUTTMENU * menu, int num);
+static void mix_add_entry (REMAILER ***, REMAILER *, ssize_t *, ssize_t *);
+static void mix_entry (char *b, ssize_t blen, MUTTMENU * menu, int num);
static void mix_free_remailer (REMAILER ** r);
static void mix_free_type2_list (REMAILER *** ttlp);
static void mix_redraw_ce (REMAILER ** type2_list, struct coord *coords,
}
static void mix_add_entry (REMAILER *** type2_list, REMAILER * entry,
- size_t * slots, size_t * used)
+ ssize_t * slots, ssize_t * used)
{
if (*used == *slots) {
*slots += 5;
/* parse the type2.list as given by mixmaster -T */
-static REMAILER **mix_type2_list (size_t * l)
+static REMAILER **mix_type2_list (ssize_t * l)
{
FILE *fp;
pid_t mm_pid;
char *t;
REMAILER **type2_list = NULL, *p;
- size_t slots = 0, used = 0;
+ ssize_t slots = 0, used = 0;
if (!l)
return NULL;
*/
static const char *mix_entry_fmt (char *dest,
- size_t destlen,
+ ssize_t destlen,
char op,
const char *src,
const char *prefix,
-static void mix_entry (char *b, size_t blen, MUTTMENU * menu, int num)
+static void mix_entry (char *b, ssize_t blen, MUTTMENU * menu, int num)
{
REMAILER **type2_list = (REMAILER **) menu->data;
- int w=(COLS-SW)>blen?blen:(COLS-SW);
+ int w = (COLS-SW) > blen ? blen : (COLS-SW);
mutt_FormatString (b, w, NONULL (MixEntryFormat), mix_entry_fmt,
(unsigned long) type2_list[num], M_FORMAT_ARROWCURSOR);
{N_("Delete"), OP_MIX_DELETE},
{N_("Abort"), OP_EXIT},
{N_("OK"), OP_MIX_USE},
- {NULL}
+ {NULL, OP_NULL}
};
-void mix_make_chain (LIST ** chainp, int *redraw)
+void mix_make_chain (string_list_t ** chainp, int *redraw)
{
- LIST *p;
+ string_list_t *p;
MIXCHAIN *chain;
int c_cur = 0, c_old = 0;
int m_len;
short c_redraw = 1;
REMAILER **type2_list = NULL;
- size_t ttll = 0;
+ ssize_t ttll = 0;
struct coord *coords = NULL;
for (p = *chainp; p; p = p->next)
mix_chain_add (chain, (char *) p->data, type2_list);
- mutt_free_list (chainp);
+ string_list_wipe(chainp);
/* safety check */
for (i = 0; i < chain->cl; i++) {
{
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.");
return 0;
}
-int mix_send_message (LIST * chain, const char *tempfile)
+int mix_send_message (string_list_t * chain, const char *tempfile)
{
char cmd[HUGE_STRING];
char tmp[HUGE_STRING];
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);
}