$Log$
+Revision 510.4 2004/05/31 15:54:13 ajc
+* "text" and "HTML" options for message entry.
+
Revision 510.3 2004/05/29 03:31:48 ajc
* tighten up the space between icons in the iconbar
1998-12-03 Nathan Bryant <bryant@cs.usm.maine.edu>
* webserver.c: warning fix
-
struct wc_attachment *att;
char *encoded;
size_t encoded_length;
+ int is_html = 0;
+
+ if (!strcasecmp(bstr("msg_format"), "html")) {
+ is_html = 1;
+ }
/* If there are attachments, we have to do multipart/mixed */
if (WC->first_attachment != NULL) {
serv_puts("Content-type: text/html");
serv_puts("");
- text_to_server(bstr("msgtext"), 1);
+ serv_puts("<HTML><BODY>\n");
+ if (is_html) {
+ text_to_server(bstr("msgtext"), 0);
+ }
+ else {
+ text_to_server(bstr("msgtext"), 1);
+ }
+ serv_puts("</BODY></HTML>\n");
+
if (is_multipart) {
"<INPUT TYPE=\"text\" NAME=\"subject\" VALUE=\"");
escputs(bstr("subject"));
wprintf("\" MAXLENGTH=70>"
- " "
- "<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Save message\">"
+ " "
+ );
+
+ wprintf("<INPUT TYPE=\"radio\" NAME=\"msg_format\"");
+ if (strcasecmp(bstr("msg_format"), "html")) wprintf("CHECKED ");
+ wprintf("VALUE=\"text\">text \n");
+
+ wprintf("<INPUT TYPE=\"radio\" NAME=\"msg_format\"");
+ if (!strcasecmp(bstr("msg_format"), "html")) wprintf("CHECKED ");
+ wprintf("VALUE=\"html\">HTML \n");
+
+ wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Save message\">"
"<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Cancel\"><BR>\n");
wprintf("<TEXTAREA NAME=\"msgtext\" wrap=soft ROWS=25 COLS=80 "
void text_to_server(char *ptr, int convert_to_html)
{
char buf[SIZ];
+ char conv[4];
int ch, a, pos;
- if (convert_to_html) {
- serv_puts("<HTML><BODY>");
- }
-
pos = 0;
strcpy(buf, "");
else {
if (ptr[pos] != 0) strcat(buf, " ");
}
+ } else if ((convert_to_html)&&(strchr("#&;`'|*?-~<>^()[]{}$\\", ch) != NULL)) {
+ sprintf(conv, "%c", ch);
+ stresc(&buf[strlen(buf)], conv, 0);
} else {
a = strlen(buf);
buf[a + 1] = 0;
}
serv_puts(buf);
- if (convert_to_html) {
- serv_puts("</BODY></HTML>\n");
- }
-
}