* "text" and "HTML" options for message entry.
authorArt Cancro <ajc@citadel.org>
Mon, 31 May 2004 15:54:13 +0000 (15:54 +0000)
committerArt Cancro <ajc@citadel.org>
Mon, 31 May 2004 15:54:13 +0000 (15:54 +0000)
webcit/ChangeLog
webcit/messages.c
webcit/serv_func.c

index 07c87a9c366234a3b44d37382929ad71853c0289..fbd4e47fe4278cc832c9ed8eb282adde0055d4b2 100644 (file)
@@ -1,4 +1,7 @@
 $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
 
@@ -1818,4 +1821,3 @@ Sun Dec  6 19:50:55 EST 1998 Art Cancro <ajc@uncnsrd.mt-kisco.ny.us>
 
 1998-12-03 Nathan Bryant <bryant@cs.usm.maine.edu>
        * webserver.c: warning fix
-
index 0cd6bc47f000bb43899b9f72371b477cc6dade72..7f373d2f81c865a761b52121ad8c9b39b9fa8066 100644 (file)
@@ -1293,6 +1293,11 @@ void post_mime_to_server(void) {
        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) {
@@ -1315,7 +1320,15 @@ void post_mime_to_server(void) {
 
        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) {
 
@@ -1494,8 +1507,18 @@ void display_enter(void)
                "<INPUT TYPE=\"text\" NAME=\"subject\" VALUE=\"");
        escputs(bstr("subject"));
        wprintf("\" MAXLENGTH=70>"
-               "&nbsp;&nbsp;&nbsp;"
-               "<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Save message\">"
+               "&nbsp;"
+       );
+
+       wprintf("<INPUT TYPE=\"radio\" NAME=\"msg_format\"");
+       if (strcasecmp(bstr("msg_format"), "html")) wprintf("CHECKED ");
+       wprintf("VALUE=\"text\">text&nbsp;\n");
+
+       wprintf("<INPUT TYPE=\"radio\" NAME=\"msg_format\"");
+       if (!strcasecmp(bstr("msg_format"), "html")) wprintf("CHECKED ");
+       wprintf("VALUE=\"html\">HTML&nbsp;\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 "
index 5d9bf1107093e079927fbc52fa7d0ad519fda920..98fb3c0714d8a27b28793f672b7a1676b98bcf0b 100644 (file)
@@ -171,12 +171,9 @@ void fmout(FILE *fp, char *align)
 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, "");
 
@@ -194,6 +191,9 @@ void text_to_server(char *ptr, int convert_to_html)
                        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;
@@ -211,10 +211,6 @@ void text_to_server(char *ptr, int convert_to_html)
        }
        serv_puts(buf);
 
-       if (convert_to_html) {
-               serv_puts("</BODY></HTML>\n");
-       }
-
 }