+ const char CMD[] = "ENT0 1|%s|%d|4|%s|%s||%s|%s|%s|%s|%s";
+ const char *Recp = "";
+ const char *Cc = "";
+ const char *Bcc = "";
+ const char *Wikipage = "";
+ const char *my_email_addr = "";
+ char *CmdBuf = NULL;;
+ long len = 0;
+ size_t nLen;
+ char references[SIZ] = "";
+ size_t references_len = 0;
+
+ safestrncpy(references, bstr("references"), sizeof references);
+ lprintf(9, "Converting: %s\n", references);
+ for (ptr=references; *ptr != 0; ++ptr) {
+ if (*ptr == '|') *ptr = '!';
+ ++references_len;
+ }
+ lprintf(9, "Converted: %s\n", references);
+
+ if (havebstr("subject")) {
+ char *Subj;
+ size_t SLen;
+ /*
+ * make enough room for the encoded string;
+ * plus the QP header
+ */
+ 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,