show full name in from

This commit is contained in:
rsc 2006-05-06 22:53:44 +00:00
parent 95d412d4bc
commit 53af1186ca
2 changed files with 21 additions and 11 deletions

View file

@ -65,6 +65,7 @@ struct Message
/* header info */ /* header info */
char *from; char *from;
char *fromcolon;
char *to; char *to;
char *cc; char *cc;
char *replyto; char *replyto;

View file

@ -80,7 +80,7 @@ line(char *data, char **pp)
} }
static char* static char*
mkaddrs(char *t) mkaddrs(char *t, char **colon)
{ {
int i, nf, inquote; int i, nf, inquote;
char **f, *s; char **f, *s;
@ -96,14 +96,23 @@ mkaddrs(char *t)
} }
f = emalloc(nf*sizeof f[0]); f = emalloc(nf*sizeof f[0]);
nf = tokenize(t, f, nf); nf = tokenize(t, f, nf);
if(colon){
fmtstrinit(&fmt);
for(i=0; i+1<nf; i+=2){
if(i > 0)
fmtprint(&fmt, ", ");
if(f[i][0] == 0 || strcmp(f[i], f[i+1]) == 0)
fmtprint(&fmt, "%s", f[i+1]);
else
fmtprint(&fmt, "%s <%s>", f[i], f[i+1]);
}
*colon = fmtstrflush(&fmt);
}
fmtstrinit(&fmt); fmtstrinit(&fmt);
for(i=0; i+1<nf; i+=2){ for(i=0; i+1<nf; i+=2){
if(i > 0) if(i > 0)
fmtprint(&fmt, ", "); fmtprint(&fmt, ", ");
/* if(f[i][0] == 0 || strcmp(f[i], f[i+1]) == 0) */
fmtprint(&fmt, "%s", f[i+1]); fmtprint(&fmt, "%s", f[i+1]);
/* else */
/* fmtprint(&fmt, "%s <%s>", f[i], f[i+1]); */
} }
free(f); free(f);
return fmtstrflush(&fmt); return fmtstrflush(&fmt);
@ -127,19 +136,19 @@ loadinfo(Message *m, char *dir)
*t++ = 0; *t++ = 0;
if(strcmp(s, "from") == 0){ if(strcmp(s, "from") == 0){
free(m->from); free(m->from);
m->from = mkaddrs(t); m->from = mkaddrs(t, &m->fromcolon);
}else if(strcmp(s, "sender") == 0){ }else if(strcmp(s, "sender") == 0){
free(m->sender); free(m->sender);
m->sender = mkaddrs(t); m->sender = mkaddrs(t, nil);
}else if(strcmp(s, "to") == 0){ }else if(strcmp(s, "to") == 0){
free(m->to); free(m->to);
m->to = mkaddrs(t); m->to = mkaddrs(t, nil);
}else if(strcmp(s, "cc") == 0){ }else if(strcmp(s, "cc") == 0){
free(m->cc); free(m->cc);
m->cc = mkaddrs(t); m->cc = mkaddrs(t, nil);
}else if(strcmp(s, "replyto") == 0){ }else if(strcmp(s, "replyto") == 0){
free(m->replyto); free(m->replyto);
m->replyto = mkaddrs(t); m->replyto = mkaddrs(t, nil);
}else if(strcmp(s, "subject") == 0){ }else if(strcmp(s, "subject") == 0){
free(m->subject); free(m->subject);
m->subject = estrdup(t); m->subject = estrdup(t);
@ -369,7 +378,7 @@ info(Message *m, int ind, int ogf)
if (ogf) if (ogf)
p=m->to; p=m->to;
else else
p=m->from; p=m->fromcolon;
if(ind==0 && shortmenu){ if(ind==0 && shortmenu){
len = 30; len = 30;