From: Eric W. <war...@us...> - 2001-12-21 23:46:45
|
Update of /cvsroot/gaim/gaim/src In directory usw-pr-cvs1:/tmp/cvs-serv3589 Modified Files: conversation.c Log Message: eh Index: conversation.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/conversation.c,v retrieving revision 1.320 retrieving revision 1.321 diff -u -d -r1.320 -r1.321 --- conversation.c 2001/12/20 09:26:12 1.320 +++ conversation.c 2001/12/21 23:46:41 1.321 @@ -1151,6 +1151,43 @@ g_free(s); } +static char *escape_html(char *w, int *l) +{ + int c = 0; + char *r; + int i, x = 0; + if (*l == -1) { + *l = strlen(w); + x = 1; + } + r = g_malloc(*l * 5 + 1); + + for (i = 0; i < *l; i++) { + if (w[i] == '<') { + r[c++] = '&'; + r[c++] = 'l'; + r[c++] = 't'; + r[c++] = ';'; + } else if (w[i] == '&') { + r[c++] = '&'; + r[c++] = 'a'; + r[c++] = 'm'; + r[c++] = 'p'; + r[c++] = ';'; + } else { + r[c++] = w[i]; + } + } + r[c] = 0; + + r = g_realloc(r, c + 1); + if (x) + *l = -1; + else + *l = c; + return r; +} + static char *html_logize(char *p) { @@ -1555,6 +1592,10 @@ g_snprintf(buf, BUF_LONG, "<B><FONT COLOR=\"#777777\">%s</FONT></B><BR>", what); gtk_imhtml_append_text(GTK_IMHTML(c->text), buf, -1, 0); } else { + if (c->gc->flags & OPT_CONN_HTML) + what = g_memdup(what, length); + else + what = escape_html(what, &length); if (flags & WFLAG_WHISPER) { /* if we're whispering, it's not an autoresponse */ if (meify(what, length)) { @@ -1661,6 +1702,8 @@ g_free(t2); g_free(nm); } + + g_free(what); } if ((c->is_chat && (chat_options & OPT_CHAT_POPUP)) || |