else /** HTML is fun, but we've got to strip it first */
if (!strcasecmp(mime_content_type, "text/html")) {
- output_html(mime_charset);
+ output_html(mime_charset, (WC->wc_view == VIEW_WIKI ? 1 : 0));
}
/** Unknown weirdness */
* \param msgnum the citadel message number
* \param forward_attachments atachment to forward???
*/
-void pullquote_message(long msgnum, int forward_attachments) {
+void pullquote_message(long msgnum, int forward_attachments, int include_headers) {
char buf[SIZ];
char mime_partnum[256];
char mime_filename[256];
wprintf(_("unexpected end of message"));
return;
}
- if (!strncasecmp(buf, "nhdr=yes", 8))
- nhdr = 1;
- if (nhdr == 1)
- buf[0] = '_';
- if (!strncasecmp(buf, "type=", 5))
- format_type = atoi(&buf[5]);
- if (!strncasecmp(buf, "from=", 5)) {
- strcpy(from, &buf[5]);
- wprintf(_("from "));
+ if (include_headers) {
+ if (!strncasecmp(buf, "nhdr=yes", 8))
+ nhdr = 1;
+ if (nhdr == 1)
+ buf[0] = '_';
+ if (!strncasecmp(buf, "type=", 5))
+ format_type = atoi(&buf[5]);
+ if (!strncasecmp(buf, "from=", 5)) {
+ strcpy(from, &buf[5]);
+ wprintf(_("from "));
#ifdef HAVE_ICONV
- utf8ify_rfc822_string(from);
+ utf8ify_rfc822_string(from);
#endif
- msgescputs(from);
- }
- if (!strncasecmp(buf, "subj=", 5)) {
- strcpy(m_subject, &buf[5]);
- }
- if ((!strncasecmp(buf, "hnod=", 5))
- && (strcasecmp(&buf[5], serv_info.serv_humannode))) {
- wprintf("(%s) ", &buf[5]);
- }
- if ((!strncasecmp(buf, "room=", 5))
- && (strcasecmp(&buf[5], WC->wc_roomname))
- && (strlen(&buf[5])>0) ) {
- wprintf(_("in "));
- wprintf("%s> ", &buf[5]);
- }
- if (!strncasecmp(buf, "rfca=", 5)) {
- strcpy(rfca, &buf[5]);
- wprintf("<");
- msgescputs(rfca);
- wprintf("> ");
- }
-
- if (!strncasecmp(buf, "node=", 5)) {
- strcpy(node, &buf[5]);
- if ( ((WC->room_flags & QR_NETWORK)
- || ((strcasecmp(&buf[5], serv_info.serv_nodename)
- && (strcasecmp(&buf[5], serv_info.serv_fqdn)))))
- && (strlen(rfca)==0)
- ) {
- wprintf("@%s ", &buf[5]);
+ msgescputs(from);
+ }
+ if (!strncasecmp(buf, "subj=", 5)) {
+ strcpy(m_subject, &buf[5]);
+ }
+ if ((!strncasecmp(buf, "hnod=", 5))
+ && (strcasecmp(&buf[5], serv_info.serv_humannode))) {
+ wprintf("(%s) ", &buf[5]);
+ }
+ if ((!strncasecmp(buf, "room=", 5))
+ && (strcasecmp(&buf[5], WC->wc_roomname))
+ && (strlen(&buf[5])>0) ) {
+ wprintf(_("in "));
+ wprintf("%s> ", &buf[5]);
+ }
+ if (!strncasecmp(buf, "rfca=", 5)) {
+ strcpy(rfca, &buf[5]);
+ wprintf("<");
+ msgescputs(rfca);
+ wprintf("> ");
+ }
+
+ if (!strncasecmp(buf, "node=", 5)) {
+ strcpy(node, &buf[5]);
+ if ( ((WC->room_flags & QR_NETWORK)
+ || ((strcasecmp(&buf[5], serv_info.serv_nodename)
+ && (strcasecmp(&buf[5], serv_info.serv_fqdn)))))
+ && (strlen(rfca)==0)
+ ) {
+ wprintf("@%s ", &buf[5]);
+ }
+ }
+ if (!strncasecmp(buf, "rcpt=", 5)) {
+ wprintf(_("to "));
+ wprintf("%s ", &buf[5]);
+ }
+ if (!strncasecmp(buf, "time=", 5)) {
+ fmt_date(now, atol(&buf[5]), 0);
+ wprintf("%s ", now);
}
- }
- if (!strncasecmp(buf, "rcpt=", 5)) {
- wprintf(_("to "));
- wprintf("%s ", &buf[5]);
- }
- if (!strncasecmp(buf, "time=", 5)) {
- fmt_date(now, atol(&buf[5]), 0);
- wprintf("%s ", now);
}
/**
}
- wprintf("<br>");
+ if (include_headers) {
+ wprintf("<br>");
#ifdef HAVE_ICONV
- utf8ify_rfc822_string(m_subject);
+ utf8ify_rfc822_string(m_subject);
#endif
- if (strlen(m_subject) > 0) {
- wprintf(_("Subject:"));
- wprintf(" ");
- msgescputs(m_subject);
+ if (strlen(m_subject) > 0) {
+ wprintf(_("Subject:"));
+ wprintf(" ");
+ msgescputs(m_subject);
+ wprintf("<br />");
+ }
+
+ /**
+ * Begin body
+ */
wprintf("<br />");
}
- /**
- * Begin body
- */
- wprintf("<br>");
-
/**
* Learn the content type
*/
/** HTML just gets escaped and stuffed back into the editor */
else if (!strcasecmp(mime_content_type, "text/html")) {
while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
+ strcat(buf, "\n");
msgescputs(buf);
}
}
);
}
+ if (is_notes) {
+ wprintf("<div align=center>%s</div>\n", _("Click on any note to edit it."));
+ wprintf("<div id=\"new_notes_here\"></div>\n");
+ }
+
for (a = 0; a < nummsgs; ++a) {
if ((WC->msgarr[a] >= startmsg) && (num_displayed < maxmsgs)) {
_("Automatically cancelled because you have already "
"saved this message."));
} else {
- sprintf(buf, "ENT0 1|%s|%d|4|%s|||%s|%s",
+ sprintf(buf, "ENT0 1|%s|%d|4|%s|||%s|%s|%s",
bstr("recp"),
is_anonymous,
bstr("subject"),
bstr("cc"),
- bstr("bcc")
+ bstr("bcc"),
+ bstr("wikipage")
);
serv_puts(buf);
serv_getln(buf, sizeof buf);
}
free_attachments(WC);
- readloop("readnew");
+
+ /**
+ * We may have been supplied with instructions regarding the location
+ * to which we must return after posting. If found, go there.
+ */
+ if (strlen(bstr("return_to")) > 0) {
+ http_redirect(bstr("return_to"));
+ }
+ /**
+ * If we were editing a page in a wiki room, go to that page now.
+ */
+ else if (strlen(bstr("wikipage")) > 0) {
+ snprintf(buf, sizeof buf, "wiki?page=%s", bstr("wikipage"));
+ http_redirect(buf);
+ }
+ /**
+ * Otherwise, just go to the "read messages" loop.
+ */
+ else {
+ readloop("readnew");
+ }
}
int recipient_bad = 0;
int i;
int is_anonymous = 0;
+ long existing_page = (-1L);
if (strlen(bstr("force_room")) > 0) {
gotoroom(bstr("force_room"));
/** Now check our actual recipients if there are any */
if (recipient_required) {
- sprintf(buf, "ENT0 0|%s|%d|0||||%s|%s", bstr("recp"), is_anonymous, bstr("cc"), bstr("bcc"));
+ sprintf(buf, "ENT0 0|%s|%d|0||||%s|%s|%s", bstr("recp"), is_anonymous,
+ bstr("cc"), bstr("bcc"), bstr("wikipage"));
serv_puts(buf);
serv_getln(buf, sizeof buf);
"name=\"enterform\""
">\n");
wprintf("<input type=\"hidden\" name=\"postseq\" value=\"%ld\">\n", now);
+ if (WC->wc_view == VIEW_WIKI) {
+ wprintf("<input type=\"hidden\" name=\"wikipage\" value=\"%s\">\n", bstr("wikipage"));
+ }
+ wprintf("<input type=\"hidden\" name=\"return_to\" value=\"%s\">\n", bstr("return_to"));
wprintf("<img src=\"static/newmess3_24x.gif\" align=middle alt=\" \">");
wprintf("%s\n", buf); /** header bar */
wprintf("<br><div align=center><i>");
wprintf(_("--- forwarded message ---"));
wprintf("</i></div><br>");
- pullquote_message(atol(bstr("fwdquote")), 1);
+ pullquote_message(atol(bstr("fwdquote")), 1, 1);
}
/** If we're replying quoted, insert the quote here... */
else if (atol(bstr("replyquote")) > 0L) {
wprintf("<br>"
"<blockquote>");
- pullquote_message(atol(bstr("replyquote")), 0);
+ pullquote_message(atol(bstr("replyquote")), 0, 1);
wprintf("</blockquote>\n\n");
}
+ /** If we're editing a wiki page, insert the existing page here... */
+ else if (WC->wc_view == VIEW_WIKI) {
+ safestrncpy(buf, bstr("wikipage"), sizeof buf);
+ str_wiki_index(buf);
+ existing_page = locate_message_by_uid(buf);
+ if (existing_page >= 0L) {
+ pullquote_message(existing_page, 1, 0);
+ }
+ }
+
/** Insert our signature if appropriate... */
if ( (WC->is_mailbox) && (strcmp(bstr("sig_inserted"), "yes")) ) {
get_preference("use_sig", buf, sizeof buf);