+
+ /*
+ * If this is a Reply or a ReplyAll, copy the sender's email into the To: field
+ */
+ if ((ReplyMode == eReply) || (ReplyMode == eReplyAll)) {
+ StrBuf *to_rcpt;
+
+ if ((StrLength(replyto) > 0) && (ReplyMode == eReplyAll)) {
+ to_rcpt = NewStrBuf();
+ StrBufAppendBuf(to_rcpt, replyto, 0);
+ }
+
+ else if ( (StrLength(rfca) > 0) && (message_originated_locally == 0) ) {
+ to_rcpt = NewStrBuf();
+ StrBufAppendBuf(to_rcpt, from, 0);
+ StrBufAppendBufPlain(to_rcpt, HKEY(" <"), 0);
+ StrBufAppendBuf(to_rcpt, rfca, 0);
+ StrBufAppendBufPlain(to_rcpt, HKEY(">"), 0);
+ }
+
+ else {
+ to_rcpt = from;
+ from = NULL;
+ }
+ PutBstr(HKEY("recp"), to_rcpt);
+ }
+
+ /*
+ * Only if this is a ReplyAll, copy all recipients into the Cc: field
+ */
+ if (ReplyMode == eReplyAll) {
+ StrBuf *cc_rcpt = rcpt;
+ rcpt = NULL;
+ if ((StrLength(cccc) > 0) && (StrLength(replyto) == 0)) {
+ if (cc_rcpt != NULL) {
+ StrBufAppendPrintf(cc_rcpt, ", ");
+ StrBufAppendBuf(cc_rcpt, cccc, 0);
+ }
+ else {
+ cc_rcpt = cccc;
+ cccc = NULL;
+ }
+ }
+ if (cc_rcpt != NULL) {
+ PutBstr(HKEY("cc"), cc_rcpt);
+ }
+ }
+
+ // We might not need these logs anymore.
+ syslog(LOG_DEBUG, "wefw = %s", ChrPtr(wefw));
+ syslog(LOG_DEBUG, "msgn = %s", ChrPtr(msgn));
+ syslog(LOG_DEBUG, "from = %s", ChrPtr(from));
+ syslog(LOG_DEBUG, "rfca = %s", ChrPtr(rfca));
+ syslog(LOG_DEBUG, "rcpt = %s", ChrPtr(rcpt));
+ syslog(LOG_DEBUG, "cccc = %s", ChrPtr(cccc));
+ syslog(LOG_DEBUG, "replyto = %s", ChrPtr(replyto));
+ syslog(LOG_DEBUG, "nvto = %s", ChrPtr(nvto));
+ syslog(LOG_DEBUG, "local = %d" , message_originated_locally);
+
+ FreeStrBuf(&wefw);
+ FreeStrBuf(&msgn);
+ FreeStrBuf(&from);
+ FreeStrBuf(&rfca);
+ FreeStrBuf(&rcpt);
+ FreeStrBuf(&cccc);
+ }
+ FreeStrBuf(&Line);