+ if (*str != '\n' && *str != '\0') {
+ if (hdr->flags & HBCC) {
+ struct mailname *mp = NULL;
+
+ /* Create list of Bcc adds. */
+ while ((cp = getname(str))) {
+ mp = getm(cp, NULL, 0, AD_HOST, NULL);
+ mp->m_next = bccs; /* push */
+ bccs = mp;
+ }
+ } else if (aliasflg && hdr->flags & HTRY) {
+ /*
+ ** this header contains address(es) that we have to do
+ ** alias expansion on. Because of the saved state in
+ ** getname we have to put all the addresses into a
+ ** list. We then let putadr munch on that list,
+ ** possibly expanding aliases.
+ **/
+ register struct mailname *f = 0;
+ register struct mailname *mp = 0;
+
+ while ((cp = getname(str))) {
+ mp = getm(cp, NULL, 0, AD_HOST, NULL);
+ if (f == 0) {
+ f = mp;
+ mp->m_next = mp;
+ } else {
+ mp->m_next = f->m_next;
+ f->m_next = mp;
+ f = mp;
+ }
+ }
+ f = mp->m_next; mp->m_next = 0;
+ putadr(name, f);
+ } else {
+ /*
+ ** The author(s) of spost decided that alias
+ ** substitution wasn't necessary for the non-HTRY
+ ** headers. Unfortunately, one of those headers
+ ** is "From:", and having alias substitution
+ ** work on that is extremely useful for someone
+ ** with a lot of POP3 email accounts or aliases.
+ ** post supports aliasing of "From:"...
+ **
+ ** Since "From:"-processing is incompletely
+ ** implemented in this unsupported and
+ ** undocumented spost backend, I'm not
+ ** going to take the time to implement my new
+ ** draft-From:-based email address masquerading.
+ ** If I do ever implement it here, I'd almost
+ ** certainly want to implement "From:" line
+ ** alias processing as well.
+ ** -- Dan Harkless <dan-nmh@dilvish.speed.net>
+ */
+ fprintf(out, "%s: %s", name, str);
+ }
+ }