mscan: display if we are in To, Cc or Resent-To

pull/1/merge
Christian Neukirchen 8 years ago
parent db1c4ecd6f
commit 9ecd681c5b

@ -50,6 +50,19 @@ u8putstr(FILE *out, char *s, size_t l, int pad)
putc(' ', out);
}
int
itsme(char *v)
{
int i;
char *disp, *addr;
while ((v = blaze822_addr(v, &disp, &addr)))
for (i = 0; addr && i < alias_idx; i++)
if (strcmp(aliases[i], addr) == 0)
return 1;
return 0;
}
void
oneline(char *file)
{
@ -82,7 +95,7 @@ oneline(char *file)
return;
}
char flag1, flag2;
char flag1, flag2, flag3;
char *f = strstr(file, ":2,");
if (!f)
@ -121,24 +134,32 @@ oneline(char *file)
// mtime perhaps?
}
flag3 = ' ';
if (alias_idx) {
if ((v = blaze822_hdr(msg, "to")) && itsme(v))
flag3 = '>';
else if ((v = blaze822_hdr(msg, "cc")) && itsme(v))
flag3 = '+';
else if ((v = blaze822_hdr(msg, "resent-to")) && itsme(v))
flag3 = ':';
}
char *from = "(unknown)";
char to[256];
if ((v = blaze822_hdr(msg, "from"))) {
if (itsme(v)) {
snprintf(to, sizeof to, "TO:%s", v);
from = to;
flag3 = '<';
}
char *disp, *addr;
blaze822_addr(v, &disp, &addr);
if (disp)
from = disp;
else if (addr)
from = addr;
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];
@ -158,7 +179,7 @@ oneline(char *file)
else
printf("%c%c %-10s ", flag1, flag2, date);
u8putstr(stdout, fromdec, 17, 1);
printf(" ");
printf("%c ", flag3);
int z;
if (indent > 18) {
printf("..%2d.. ", indent/2);

Loading…
Cancel
Save