# HG changeset patch # User Sadrul Habib Chowdhury # Date 1211738622 0 # Node ID ee4a2c56481d5e5a06126065bd7aa6cf7a7a0372 # Parent fc8cc6b588098787c7bd1337ccd82e7863ad355d# Parent 40d3767fb1b9fb30dfece3712221b51a729b3285 merge of '64869f284f4934e2f05446fc3d50960b6296ad5b' and 'ff389b62b9d93369d7d6f96ca3e913c108d21523' diff -r 40d3767fb1b9 -r ee4a2c56481d libpurple/smiley.c --- a/libpurple/smiley.c Sun May 25 17:39:29 2008 +0000 +++ b/libpurple/smiley.c Sun May 25 18:03:42 2008 +0000 @@ -119,7 +119,7 @@ static void purple_smiley_set_data_impl(PurpleSmiley *smiley, guchar *smiley_data, - size_t smiley_data_len, const char *filename); + size_t smiley_data_len); static void purple_smiley_data_store(PurpleStoredImage *stored_img); @@ -499,7 +499,7 @@ if (read_smiley_file(fullpath, &smiley_data, &smiley_data_len)) purple_smiley_set_data_impl(smiley, smiley_data, - smiley_data_len, filename); + smiley_data_len); else purple_smiley_delete(smiley); @@ -617,7 +617,7 @@ static void purple_smiley_set_data_impl(PurpleSmiley *smiley, guchar *smiley_data, - size_t smiley_data_len, const char *filename) + size_t smiley_data_len) { PurpleStoredImage *old_img, *new_img; const char *old_filename = NULL; @@ -629,10 +629,7 @@ old_img = smiley->img; - if (filename) - new_img = purple_imgstore_add(smiley_data, smiley_data_len, filename); - else - new_img = purple_smiley_data_new(smiley_data, smiley_data_len); + new_img = purple_smiley_data_new(smiley_data, smiley_data_len); g_object_set(G_OBJECT(smiley), PROP_IMGSTORE_S, new_img, NULL); @@ -688,7 +685,7 @@ static PurpleSmiley * purple_smiley_new_from_stream(const char *shortcut, guchar *smiley_data, - size_t smiley_data_len, const char *filename) + size_t smiley_data_len) { PurpleSmiley *smiley; @@ -705,7 +702,7 @@ if (!smiley) return NULL; - purple_smiley_set_data_impl(smiley, smiley_data, smiley_data_len, filename); + purple_smiley_set_data_impl(smiley, smiley_data, smiley_data_len); purple_smiley_data_store(smiley->img); @@ -718,17 +715,15 @@ PurpleSmiley *smiley = NULL; guchar *smiley_data; size_t smiley_data_len; - char *filename; g_return_val_if_fail(shortcut != NULL, NULL); g_return_val_if_fail(filepath != NULL, NULL); - filename = g_path_get_basename(filepath); - if (read_smiley_file(filepath, &smiley_data, &smiley_data_len)) + if (read_smiley_file(filepath, &smiley_data, &smiley_data_len)) { smiley = purple_smiley_new_from_stream(shortcut, smiley_data, - smiley_data_len, filename); - g_free(filename); - + smiley_data_len); + } + return smiley; } @@ -769,7 +764,7 @@ void purple_smiley_set_data(PurpleSmiley *smiley, guchar *smiley_data, - size_t smiley_data_len, gboolean keepfilename) + size_t smiley_data_len) { g_return_if_fail(smiley != NULL); g_return_if_fail(smiley_data != NULL); @@ -779,14 +774,7 @@ g_hash_table_remove(smiley_checksum_index, smiley->checksum); /* Update the file data. This also updates the checksum. */ - if ((keepfilename) && (smiley->img) && - (purple_imgstore_get_filename(smiley->img))) - purple_smiley_set_data_impl(smiley, smiley_data, - smiley_data_len, - purple_imgstore_get_filename(smiley->img)); - else - purple_smiley_set_data_impl(smiley, smiley_data, - smiley_data_len, NULL); + purple_smiley_set_data_impl(smiley, smiley_data, smiley_data_len); /* Reinsert the index item. */ g_hash_table_insert(smiley_checksum_index, g_strdup(smiley->checksum), smiley); diff -r 40d3767fb1b9 -r ee4a2c56481d libpurple/smiley.h --- a/libpurple/smiley.h Sun May 25 17:39:29 2008 +0000 +++ b/libpurple/smiley.h Sun May 25 18:03:42 2008 +0000 @@ -128,12 +128,10 @@ * @param smiley The custom smiley. * @param smiley_data The custom smiley data. * @param smiley_data_len The custom smiley data length. - * @param keepfilename The current custom smiley's filename must be - * kept. */ void purple_smiley_set_data(PurpleSmiley *smiley, guchar *smiley_data, - size_t smiley_data_len, gboolean keepfilename); + size_t smiley_data_len); /** * Returns the custom smiley's associated shortcut. diff -r 40d3767fb1b9 -r ee4a2c56481d pidgin/gtkconv.c --- a/pidgin/gtkconv.c Sun May 25 17:39:29 2008 +0000 +++ b/pidgin/gtkconv.c Sun May 25 18:03:42 2008 +0000 @@ -3153,10 +3153,18 @@ if ((chat == NULL) && (gtkconv->imhtml != NULL)) { GHashTable *components; - components = g_hash_table_new_full(g_str_hash, g_str_equal, - g_free, g_free); - g_hash_table_replace(components, g_strdup("channel"), - g_strdup(conv->name)); + PurpleAccount *account = purple_conversation_get_account(conv); + PurplePlugin *prpl = purple_find_prpl(purple_account_get_protocol_id(account)); + PurplePluginProtocolInfo *prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); + if (PURPLE_PROTOCOL_PLUGIN_HAS_FUNC(prpl_info, chat_info_defaults)) { + components = prpl_info->chat_info_defaults(purple_account_get_connection(account), + purple_conversation_get_name(conv)); + } else { + components = g_hash_table_new_full(g_str_hash, g_str_equal, + g_free, g_free); + g_hash_table_replace(components, g_strdup("channel"), + g_strdup(purple_conversation_get_name(conv))); + } chat = purple_chat_new(conv->account, NULL, components); purple_blist_node_set_flags((PurpleBlistNode *)chat, PURPLE_BLIST_NODE_FLAG_NO_SAVE); diff -r 40d3767fb1b9 -r ee4a2c56481d pidgin/gtksmiley.c --- a/pidgin/gtksmiley.c Sun May 25 17:39:29 2008 +0000 +++ b/pidgin/gtksmiley.c Sun May 25 18:03:42 2008 +0000 @@ -229,7 +229,7 @@ return; } - purple_smiley_set_data(s->smiley, (guchar*)data, len, FALSE); + purple_smiley_set_data(s->smiley, (guchar*)data, len); } purple_smiley_set_shortcut(s->smiley, entry); } else { @@ -329,8 +329,8 @@ window = gtk_dialog_new_with_buttons(smiley ? _("Edit Smiley") : _("Add Smiley"), widget ? GTK_WINDOW(widget) : NULL, GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_NO_SEPARATOR, + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, smiley ? GTK_STOCK_SAVE : GTK_STOCK_ADD, GTK_RESPONSE_ACCEPT, - GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, NULL); s->parent = window;