mscan: display TO: for own messages

pull/1/merge
Christian Neukirchen 8 years ago
parent dab49a087d
commit 06debb7703

@ -20,6 +20,9 @@ static int cols;
static wchar_t replacement = L'?';
static char *cur;
static char *aliases[32];
static int alias_idx;
void
u8putstr(FILE *out, char *s, size_t l, int pad)
{
@ -118,8 +121,9 @@ oneline(char *file)
// mtime perhaps?
}
char *from = "(unknown)";
char to[256];
if ((v = blaze822_hdr(msg, "from"))) {
char *disp, *addr;
blaze822_addr(v, &disp, &addr);
@ -127,8 +131,14 @@ oneline(char *file)
from = disp;
else if (addr)
from = addr;
else
from = "(unknown)";
int i;
for (i = 0; addr && i < alias_idx; i++)
if (strcmp(aliases[i], addr) == 0 &&
(v = blaze822_hdr(msg, "to"))) {
snprintf(to, sizeof to, "TO:%s", v);
from = to;
}
}
char fromdec[17];
@ -137,7 +147,7 @@ oneline(char *file)
char *subj = "(no subject)";
char subjdec[100];
if ((v = blaze822_hdr(msg, "subject"))) {
if ((v = blaze822_hdr(msg, "subject"))) {
subj = v;
}
blaze822_decode_rfc2047(subjdec, subj, sizeof subjdec - 1, "UTF-8");
@ -178,6 +188,23 @@ main(int argc, char *argv[])
if (cols <= 40)
cols = 80;
char *f = blaze822_home_file(".santoku/profile");
struct message *config = blaze822(f);
if (config) {
char *v, *d, *a;
if ((v = blaze822_hdr(config, "local-mailbox")))
while (alias_idx < (int)(sizeof aliases / sizeof aliases[0]) &&
(v = blaze822_addr(v, &d, &a)))
if (a)
aliases[alias_idx++] = strdup(a);
if ((v = blaze822_hdr(config, "alternate-mailboxes")))
while (alias_idx < (int)(sizeof aliases / sizeof aliases[0]) &&
(v = blaze822_addr(v, &d, &a)))
if (a)
aliases[alias_idx++] = strdup(a);
}
long i;
if (argc == 1 && isatty(0))
i = blaze822_loop1(":", oneline);

Loading…
Cancel
Save