str_append(str, addr->name);
else
str_append_maybe_escape(str, addr->name, TRUE);
- str_append_c(str, ' ');
}
- str_append_c(str, '<');
- if (addr->route != NULL) {
- str_append(str, addr->route);
- str_append_c(str, ':');
- }
- str_append_maybe_escape(str, addr->mailbox, FALSE);
- if (addr->domain[0] != '\0') {
- str_append_c(str, '@');
- str_append(str, addr->domain);
+ if (addr->route != NULL ||
+ addr->mailbox[0] != '\0' ||
+ addr->domain[0] != '\0') {
+ if (addr->name != NULL && addr->name[0] != '\0')
+ str_append_c(str, ' ');
+ str_append_c(str, '<');
+ if (addr->route != NULL) {
+ str_append(str, addr->route);
+ str_append_c(str, ':');
+ }
+ str_append_maybe_escape(str, addr->mailbox, FALSE);
+ if (addr->domain[0] != '\0') {
+ str_append_c(str, '@');
+ str_append(str, addr->domain);
+ }
+ str_append_c(str, '>');
}
- str_append_c(str, '>');
}
addr = addr->next;
{ NULL, NULL, "@route,@route2", "user", "domain", FALSE } },
{ "hello <@route ,@route2:user@domain>", "hello <@route,@route2:user@domain>",
{ NULL, "hello", "@route,@route2", "user", "domain", FALSE } },
- { "hello", "hello <>",
+ { "hello", "hello",
{ NULL, "hello", NULL, "", "", TRUE } },
{ "user (hello)", "hello <user>",
{ NULL, "hello", NULL, "user", "", TRUE } },