# HG changeset patch # User Luke Schierer # Date 1078118025 0 # Node ID 1556970088d45e2ebf505da9501948d8f684b67a # Parent e7463be62fb109698fa470b3d3f8dac8a33432f9 [gaim-migrate @ 9102] quoth marv: " I like "What You Get Is What You Get" better. This fixes a problem where yahoo was sending < and > to the core when it wasn't html, and so gtkimhtml wasn't displaying part of the message. It's fixed by making the prpl escape it first. While I was add it, it made it display "Buzz!!" when someone buzzes you, instead of it saying that they said . Note that the official client uses red letters, all caps, and 3 !'s, and makes the window shake, so what we do is pretty mild. I also fixed a compile warning." committer: Tailor Script diff -r e7463be62fb1 -r 1556970088d4 plugins/ssl/ssl-gnutls.c --- a/plugins/ssl/ssl-gnutls.c Mon Mar 01 02:51:13 2004 +0000 +++ b/plugins/ssl/ssl-gnutls.c Mon Mar 01 05:13:45 2004 +0000 @@ -96,10 +96,10 @@ gnutls_transport_set_ptr(gnutls_data->session, GINT_TO_POINTER(source)); - gaim_debug_info("gnutls", "Handshaking\n"); do { + gaim_debug_info("gnutls", "Handshaking\n"); ret = gnutls_handshake(gnutls_data->session); } while ((ret == GNUTLS_E_AGAIN) || (ret == GNUTLS_E_INTERRUPTED)); diff -r e7463be62fb1 -r 1556970088d4 src/protocols/yahoo/util.c --- a/src/protocols/yahoo/util.c Mon Mar 01 02:51:13 2004 +0000 +++ b/src/protocols/yahoo/util.c Mon Mar 01 05:13:45 2004 +0000 @@ -170,6 +170,19 @@ /* remove these once we have proper support for and */ g_hash_table_insert(ht, "", ""); g_hash_table_insert(ht, "", ""); + + /* these are the normal html yahoo sends (besides ). + * anything else will get turned into <tag>, so if I forgot + * about something, please add it. Why Yahoo! has to send unescaped + * <'s and >'s that aren't supposed to be html is beyond me. + */ + g_hash_table_insert(ht, "", ""); + g_hash_table_insert(ht, "", ""); + g_hash_table_insert(ht, "", ""); + + g_hash_table_insert(ht, "", ""); + g_hash_table_insert(ht, "", ""); + g_hash_table_insert(ht, "", ""); } void yahoo_dest_colorht() @@ -259,7 +272,7 @@ while (j++ < xs) { if (x[j] != '>') if (j == xs) { - g_string_append_c(s, '<'); + g_string_append(s, "<"); nomoreendtags = 1; } else @@ -282,7 +295,7 @@ } else if (!strncmp(tmp->str, "') + g_string_append(s, ">"); + else + g_string_append_c(s, x[i]); } } diff -r e7463be62fb1 -r 1556970088d4 src/protocols/yahoo/yahoo.c --- a/src/protocols/yahoo/yahoo.c Mon Mar 01 02:51:13 2004 +0000 +++ b/src/protocols/yahoo/yahoo.c Mon Mar 01 05:13:45 2004 +0000 @@ -751,6 +751,17 @@ m = yahoo_string_decode(gc, im->msg, im->utf8); gaim_str_strip_cr(m); + + if (!strcmp(m, "")) { + GaimConversation *c = gaim_conversation_new(GAIM_CONV_IM, + gaim_connection_get_account(gc), im->from); + gaim_conv_im_write(GAIM_CONV_IM(c), "", _("Buzz!!"), GAIM_MESSAGE_NICK|GAIM_MESSAGE_RECV, + im->time); + g_free(m); + g_free(im); + continue; + } + m2 = yahoo_codes_to_html(m); g_free(m); serv_got_im(gc, im->from, m2, 0, im->time); @@ -1136,7 +1147,7 @@ unsigned char digest2[20]; unsigned char comparison_src[20]; unsigned char magic_key_char[4]; - unsigned char *magic_ptr; + const unsigned char *magic_ptr; unsigned int magic[64]; unsigned int magic_work = 0; @@ -1168,7 +1179,7 @@ */ magic_ptr = seed; - + while (*magic_ptr != (int)NULL) { char *loc;