void rfc822_qualify(address_t *addr, const char *host)
{
- char *p;
+ if (!host)
+ return;
for (; addr; addr = addr->next) {
if (!addr->group && addr->mailbox && !strchr(addr->mailbox, '@')) {
- p = p_new(char, m_strlen(addr->mailbox) + m_strlen(host) + 2);
+ char *p = p_new(char, m_strlen(addr->mailbox) + m_strlen(host) + 2);
sprintf(p, "%s@%s", addr->mailbox, host);
p_delete(&addr->mailbox);
addr->mailbox = p;
}
}
-ssize_t rfc822_write_address_single(char *buf, ssize_t buflen,
- address_t *addr, int display)
+ssize_t
+rfc822_addrcpy(char *buf, ssize_t buflen, address_t *addr, int display)
{
ssize_t pos = 0;
}
if (addr->mailbox) {
- if (!display) {
- pos += m_strcpy(buf + pos, buflen - pos, addr->mailbox);
- } else {
- pos += m_strcpy(buf + pos, buflen - pos, mutt_addr_for_display(addr));
- }
+ pos += m_strcpy(buf + pos, buflen - pos,
+ display ? mutt_addr_for_display(addr) : addr->mailbox);
if (addr->personal) {
- pos += m_strcpy(buf + pos, buflen - pos, ">");
+ pos += m_strputc(buf + pos, buflen - pos, '>');
}
if (addr->group) {
- pos += m_strcpy(buf + pos, buflen - pos, ":");
+ pos += m_strputc(buf + pos, buflen - pos, ':');
}
} else {
- pos += m_strcpy(buf + pos, buflen - pos, ";");
+ pos += m_strputc(buf + pos, buflen - pos, ';');
}
return pos;
/* note: it is assumed that `buf' is nul terminated! */
ssize_t
-rfc822_write_address(char *buf, ssize_t buflen, address_t *addr, int display)
+rfc822_addrcat(char *buf, ssize_t buflen, address_t *addr, int display)
{
- ssize_t pos;
+ ssize_t pos = m_strnlen(buf, buflen);
- pos = m_strnlen(buf, buflen);
-
- if (pos) {
+ if (pos)
pos += m_strcpy(buf + pos, buflen - pos, ", ");
- }
for (; addr; addr = addr->next) {
- pos += rfc822_write_address_single(buf + pos, buflen - pos,
- addr, display);
+ pos += rfc822_addrcpy(buf + pos, buflen - pos, addr, display);
if (!addr->group && addr->next && addr->next->mailbox) {
/* if there is another address, and its not a group mailbox name or