- Subj = xbstr("subject", &SLen);
- len = SLen * 3 + 32;
- encoded_subject = malloc (len);
- len = webcit_rfc2047encode(encoded_subject, len, Subj, SLen);
- if (len < 0) {
- free (encoded_subject);
- return;
- }
- }
- len += sizeof (CMD) + dpLen;
- Recp = xbstr("recp", &nLen);
- len += nLen;
- Cc = xbstr("cc", &nLen);
- len += nLen;
- Bcc = xbstr("bcc", &nLen);
- len += nLen;
- Wikipage = xbstr("wikipage", &nLen);
- len += nLen;
- my_email_addr = xbstr("my_email_addr", &nLen);
- len += nLen;
- len += references_len;
-
- CmdBuf = (char*) malloc (len + 11);
-
- snprintf(CmdBuf, len + 1, CMD,
- Recp,
- is_anonymous,
- (encoded_subject ? encoded_subject : ""),
- display_name,
- Cc,
- Bcc,
- Wikipage,
- my_email_addr,
- references);
+ Subj = sbstr("subject");
+
+ StrBufRFC2047encode(&encoded_subject, Subj);
+ }
+ Recp = sbstr("recp");
+ Cc = sbstr("cc");
+ Bcc = sbstr("bcc");
+ Wikipage = sbstr("wikipage");
+ my_email_addr = sbstr("my_email_addr");
+
+ CmdBuf = NewStrBufPlain(NULL,
+ sizeof (CMD) +
+ StrLength(Recp) +
+ StrLength(encoded_subject) +
+ StrLength(Cc) +
+ StrLength(Bcc) +
+ StrLength(Wikipage) +
+ StrLength(my_email_addr) +
+ StrLength(references));
+
+ StrBufPrintf(CmdBuf,
+ CMD,
+ ChrPtr(Recp),
+ is_anonymous,
+ ChrPtr(encoded_subject),
+ ChrPtr(display_name),
+ ChrPtr(Cc),
+ ChrPtr(Bcc),
+ ChrPtr(Wikipage),
+ ChrPtr(my_email_addr),
+ ChrPtr(references));
+