# HG changeset patch # User Marcus Lundblad # Date 1227047740 0 # Node ID 8060be20fa6ed81d5209de037649420c28581791 # Parent cac2f6203505d9268000d4a9eb51aae553554eb6# Parent 3d6fe79753c35999c98a7d5f93d05c4aeb6fc048 propagate from branch 'im.pidgin.pidgin' (head e1fd1e27a14e8cc717dc7fb6cb69ff1f10672704) to branch 'im.pidgin.cpw.malu.xmpp.idle' (head 2b7644a0be37509450d6d1faf831af6fdcb8c0c2) diff -r cac2f6203505 -r 8060be20fa6e .mtn-ignore --- a/.mtn-ignore Tue Nov 18 20:24:59 2008 +0000 +++ b/.mtn-ignore Tue Nov 18 22:35:40 2008 +0000 @@ -39,6 +39,7 @@ pidgin/pidgin$ pidgin/pixmaps/emotes/default/24/theme pidgin/pixmaps/emotes/none/theme +pidgin/pixmaps/emotes/small/16/theme pidgin/plugins/musicmessaging/music-messaging-bindings.c pidgin/plugins/perl/common/Makefile.PL$ pidgin/plugins/perl/common/Makefile.old diff -r cac2f6203505 -r 8060be20fa6e COPYRIGHT --- a/COPYRIGHT Tue Nov 18 20:24:59 2008 +0000 +++ b/COPYRIGHT Tue Nov 18 22:35:40 2008 +0000 @@ -220,6 +220,7 @@ Tuomas Kuosmanen Tero Kuusela Richard Laager +Jacky Lam Scott Lamb Dennis Lambe Jr. Joe LaPenna @@ -307,7 +308,7 @@ Ted Percival Eduardo PĆ©rez Matt Perry -Diego Pettenņ +Diego Petten Nathan Peterson SebastiĆ”n E. Peyrott Celso Pinto @@ -323,7 +324,7 @@ Jory A. Pratt Brent Priddy Justin Pryzby -Florian Qučze +Florian QuĆØze Ignacio Casal Quinteiro Federicco Mena Quintero Yosef Radchenko @@ -477,6 +478,7 @@ Jared Yanovich Timmy Yee Nickolai Zeldovich +Tom Zickel Marco Ziech Piotr Zielinski Jeroen Zwartepoorte diff -r cac2f6203505 -r 8060be20fa6e Makefile.am --- a/Makefile.am Tue Nov 18 20:24:59 2008 +0000 +++ b/Makefile.am Tue Nov 18 22:35:40 2008 +0000 @@ -34,6 +34,7 @@ (cd po ; intltool-update -m 2>&1 | grep -v '^mismatched quotes.*\.py$$' | sed "s|current directory|po directory|" | grep . ; if [ $$? = 0 ] ; then exit 1 ; else exit 0 ; fi) LC_ALL=C sort -c -t/ -u po/POTFILES.in LC_ALL=C sort -c -t/ -u po/POTFILES.skip + iconv -f utf8 -t utf8 COPYRIGHT | cmp COPYRIGHT - version-check: commit-check # We don't want to release development versions. diff -r cac2f6203505 -r 8060be20fa6e configure.ac --- a/configure.ac Tue Nov 18 20:24:59 2008 +0000 +++ b/configure.ac Tue Nov 18 22:35:40 2008 +0000 @@ -2384,6 +2384,7 @@ pidgin/pixmaps/Makefile pidgin/pixmaps/emotes/default/24/Makefile pidgin/pixmaps/emotes/none/Makefile + pidgin/pixmaps/emotes/small/16/Makefile pidgin/plugins/Makefile pidgin/plugins/cap/Makefile pidgin/plugins/gestures/Makefile diff -r cac2f6203505 -r 8060be20fa6e doc/funniest_home_convos.txt --- a/doc/funniest_home_convos.txt Tue Nov 18 20:24:59 2008 +0000 +++ b/doc/funniest_home_convos.txt Tue Nov 18 22:35:40 2008 +0000 @@ -556,3 +556,12 @@ (16:58:10) elb: I just spent literally a couple of HOURS trying to debug a problem where I was using g_list_delete_link with a list item which wasn't in the list + +-- + +22:35 hi I know this might sound like a stupid question and I am NOT + trolling.. +22:36 but when I go to some channels like anime ones people lol at me + for using pidgen +22:36 why do they think this is a bad client? does it have history? + diff -r cac2f6203505 -r 8060be20fa6e finch/gntdebug.c --- a/finch/gntdebug.c Tue Nov 18 20:24:59 2008 +0000 +++ b/finch/gntdebug.c Tue Nov 18 22:35:40 2008 +0000 @@ -233,7 +233,7 @@ } fprintf(fp, "Finch Debug Log : %s\n", purple_date_format_full(NULL)); - fprintf(fp, tv->string->str); + fprintf(fp, "%s", tv->string->str); fclose(fp); gnt_widget_destroy(GNT_WIDGET(fs)); } diff -r cac2f6203505 -r 8060be20fa6e libpurple/dnsquery.c --- a/libpurple/dnsquery.c Tue Nov 18 20:24:59 2008 +0000 +++ b/libpurple/dnsquery.c Tue Nov 18 22:35:40 2008 +0000 @@ -345,6 +345,12 @@ { g_return_if_fail(resolver != NULL); + /* Keep this before the kill() call below. */ + if (resolver->inpa != 0) { + purple_input_remove(resolver->inpa); + resolver->inpa = 0; + } + /* * We might as well attempt to kill our child process. It really * doesn't matter if this fails, because children will expire on @@ -353,9 +359,6 @@ if (resolver->dns_pid > 0) kill(resolver->dns_pid, SIGKILL); - if (resolver->inpa != 0) - purple_input_remove(resolver->inpa); - close(resolver->fd_in); close(resolver->fd_out); diff -r cac2f6203505 -r 8060be20fa6e libpurple/notify.h --- a/libpurple/notify.h Tue Nov 18 20:24:59 2008 +0000 +++ b/libpurple/notify.h Tue Nov 18 22:35:40 2008 +0000 @@ -236,7 +236,8 @@ * Adds a stock button that will be displayed in the search results dialog. * * @param results The search results object. - * @param type Type of the button. (TODO: Only one button of a given type can be displayed.) + * @param type Type of the button. (TODO: Only one button of a given type + * can be displayed.) * @param cb Function that will be called on the click event. */ void purple_notify_searchresults_button_add(PurpleNotifySearchResults *results, @@ -245,8 +246,9 @@ /** - * Adds a plain labelled button that will be displayed in the search results dialog. - * + * Adds a plain labelled button that will be displayed in the search results + * dialog. + * * @param results The search results object * @param label The label to display * @param cb Function that will be called on the click event @@ -267,7 +269,7 @@ * Returns a newly created search result column object. * * @param title Title of the column. NOTE: Title will get g_strdup()ed. - * + * * @return The new search column object. */ PurpleNotifySearchColumn *purple_notify_searchresults_column_new(const char *title); @@ -470,53 +472,58 @@ * The text is essentially a stripped-down format of HTML, the same that * IMs may send. * - * @param gc The PurpleConnection handle associated with the information. - * @param who The username associated with the information. - * @param user_info The PurpleNotifyUserInfo which contains the information - * @param cb The callback to call when the user closes - * the notification. - * @param user_data The data to pass to the callback. + * @param gc The PurpleConnection handle associated with the information. + * @param who The username associated with the information. + * @param user_info The PurpleNotifyUserInfo which contains the information + * @param cb The callback to call when the user closes the notification. + * @param user_data The data to pass to the callback. * - * @return A UI-specific handle. + * @return A UI-specific handle. */ void *purple_notify_userinfo(PurpleConnection *gc, const char *who, PurpleNotifyUserInfo *user_info, PurpleNotifyCloseCallback cb, gpointer user_data); /** - * Create a new PurpleNotifyUserInfo which is suitable for passing to purple_notify_userinfo() + * Create a new PurpleNotifyUserInfo which is suitable for passing to + * purple_notify_userinfo() * - * @return A new PurpleNotifyUserInfo, which the caller must destroy when done + * @return A new PurpleNotifyUserInfo, which the caller must destroy when done */ PurpleNotifyUserInfo *purple_notify_user_info_new(void); /** * Destroy a PurpleNotifyUserInfo * - * @param user_info The PurpleNotifyUserInfo + * @param user_info The PurpleNotifyUserInfo */ void purple_notify_user_info_destroy(PurpleNotifyUserInfo *user_info); /** - * Retrieve the array of PurpleNotifyUserInfoEntry objects from a PurpleNotifyUserInfo - * - * This GList may be manipulated directly with normal GList functions such as g_list_insert(). Only - * PurpleNotifyUserInfoEntry are allowed in the list. If a PurpleNotifyUserInfoEntry item is added to the list, - * it should not be g_free()'d by the caller; PurpleNotifyUserInfo will g_free it when destroyed. + * Retrieve the array of PurpleNotifyUserInfoEntry objects from a + * PurpleNotifyUserInfo * - * To remove a PurpleNotifyUserInfoEntry, use purple_notify_user_info_remove_entry(). Do not use the GList directly. + * This GList may be manipulated directly with normal GList functions such + * as g_list_insert(). Only PurpleNotifyUserInfoEntry are allowed in the + * list. If a PurpleNotifyUserInfoEntry item is added to the list, it + * should not be g_free()'d by the caller; PurpleNotifyUserInfo will g_free + * it when destroyed. * - * @param user_info The PurpleNotifyUserInfo + * To remove a PurpleNotifyUserInfoEntry, use + * purple_notify_user_info_remove_entry(). Do not use the GList directly. * - * @constreturn A GList of PurpleNotifyUserInfoEntry objects + * @param user_info The PurpleNotifyUserInfo + * + * @constreturn A GList of PurpleNotifyUserInfoEntry objects */ GList *purple_notify_user_info_get_entries(PurpleNotifyUserInfo *user_info); /** - * Create a textual representation of a PurpleNotifyUserInfo, separating entries with newline + * Create a textual representation of a PurpleNotifyUserInfo, separating + * entries with newline * - * @param user_info The PurpleNotifyUserInfo - * @param newline The separation character + * @param user_info The PurpleNotifyUserInfo + * @param newline The separation character */ char *purple_notify_user_info_get_text_with_newline(PurpleNotifyUserInfo *user_info, const char *newline); @@ -524,46 +531,58 @@ * Add a label/value pair to a PurpleNotifyUserInfo object. * PurpleNotifyUserInfo keeps track of the order in which pairs are added. * - * @param user_info The PurpleNotifyUserInfo - * @param label A label, which for example might be displayed by a UI with a colon after it ("Status:"). Do not include a colon. - * If NULL, value will be displayed without a label. - * @param value The value, which might be displayed by a UI after the label. - * If NULL, label will still be displayed; the UI should then treat label as independent - * and not include a colon if it would otherwise. + * @param user_info The PurpleNotifyUserInfo + * @param label A label, which for example might be displayed by a + * UI with a colon after it ("Status:"). Do not include + * a colon. If NULL, value will be displayed without a + * label. + * @param value The value, which might be displayed by a UI after + * the label. If NULL, label will still be displayed; + * the UI should then treat label as independent and not + * include a colon if it would otherwise. */ void purple_notify_user_info_add_pair(PurpleNotifyUserInfo *user_info, const char *label, const char *value); /** * Prepend a label/value pair to a PurpleNotifyUserInfo object * - * @param user_info The PurpleNotifyUserInfo - * @param label A label, which for example might be displayed by a UI with a colon after it ("Status:"). Do not include a colon. - * If NULL, value will be displayed without a label. - * @param value The value, which might be displayed by a UI after the label. - * If NULL, label will still be displayed; the UI should then treat label as independent - * and not include a colon if it would otherwise. + * @param user_info The PurpleNotifyUserInfo + * @param label A label, which for example might be displayed by a + * UI with a colon after it ("Status:"). Do not include + * a colon. If NULL, value will be displayed without a + * label. + * @param value The value, which might be displayed by a UI after + * the label. If NULL, label will still be displayed; + * the UI should then treat label as independent and not + * include a colon if it would otherwise. */ void purple_notify_user_info_prepend_pair(PurpleNotifyUserInfo *user_info, const char *label, const char *value); /** - * Remove a PurpleNotifyUserInfoEntry from a PurpleNotifyUserInfo object without freeing the entry. + * Remove a PurpleNotifyUserInfoEntry from a PurpleNotifyUserInfo object + * without freeing the entry. * - * @param user_info The PurpleNotifyUserInfo - * @param user_info_entry The PurpleNotifyUserInfoEntry + * @param user_info The PurpleNotifyUserInfo + * @param user_info_entry The PurpleNotifyUserInfoEntry */ void purple_notify_user_info_remove_entry(PurpleNotifyUserInfo *user_info, PurpleNotifyUserInfoEntry *user_info_entry); + /** * Create a new PurpleNotifyUserInfoEntry * - * If added to a PurpleNotifyUserInfo object, this should not be free()'d, as PurpleNotifyUserInfo will do so - * when destroyed. purple_notify_user_info_add_pair() and purple_notify_user_info_prepend_pair() are convenience - * methods for creating entries and adding them to a PurpleNotifyUserInfo. + * If added to a PurpleNotifyUserInfo object, this should not be free()'d, + * as PurpleNotifyUserInfo will do so when destroyed. + * purple_notify_user_info_add_pair() and + * purple_notify_user_info_prepend_pair() are convenience methods for + * creating entries and adding them to a PurpleNotifyUserInfo. * - * @param label A label, which for example might be displayed by a UI with a colon after it ("Status:"). Do not include a colon. - * If NULL, value will be displayed without a label. - * @param value The value, which might be displayed by a UI after the label. - * If NULL, label will still be displayed; the UI should then treat label as independent - * and not include a colon if it would otherwise. + * @param label A label, which for example might be displayed by a UI + * with a colon after it ("Status:"). Do not include a + * colon. If NULL, value will be displayed without a label. + * @param value The value, which might be displayed by a UI after the + * label. If NULL, label will still be displayed; the UI + * should then treat label as independent and not include a + * colon if it would otherwise. * * @result A new PurpleNotifyUserInfoEntry */ @@ -572,71 +591,74 @@ /** * Add a section break. A UI might display this as a horizontal line. * - * @param user_info The PurpleNotifyUserInfo + * @param user_info The PurpleNotifyUserInfo */ void purple_notify_user_info_add_section_break(PurpleNotifyUserInfo *user_info); /** * Prepend a section break. A UI might display this as a horizontal line. * - * @param user_info The PurpleNotifyUserInfo + * @param user_info The PurpleNotifyUserInfo * @since 2.5.0 */ void purple_notify_user_info_prepend_section_break(PurpleNotifyUserInfo *user_info); - + /** - * Add a section header. A UI might display this in a different font from other text. + * Add a section header. A UI might display this in a different font + * from other text. * - * @param user_info The PurpleNotifyUserInfo - * @param label The name of the section + * @param user_info The PurpleNotifyUserInfo + * @param label The name of the section */ void purple_notify_user_info_add_section_header(PurpleNotifyUserInfo *user_info, const char *label); - + /** - * Prepend a section header. A UI might display this in a different font from other text. + * Prepend a section header. A UI might display this in a different font + * from other text. * - * @param user_info The PurpleNotifyUserInfo - * @param label The name of the section + * @param user_info The PurpleNotifyUserInfo + * @param label The name of the section * @since 2.5.0 */ void purple_notify_user_info_prepend_section_header(PurpleNotifyUserInfo *user_info, const char *label); - + /** - * Remove the last item which was added to a PurpleNotifyUserInfo. This could be used to remove a section header which is not needed. + * Remove the last item which was added to a PurpleNotifyUserInfo. This + * could be used to remove a section header which is not needed. */ void purple_notify_user_info_remove_last_item(PurpleNotifyUserInfo *user_info); /** * Get the label for a PurpleNotifyUserInfoEntry * - * @param user_info_entry The PurpleNotifyUserInfoEntry + * @param user_info_entry The PurpleNotifyUserInfoEntry * - * @result The label + * @return The label */ const gchar *purple_notify_user_info_entry_get_label(PurpleNotifyUserInfoEntry *user_info_entry); /** * Set the label for a PurpleNotifyUserInfoEntry * - * @param user_info_entry The PurpleNotifyUserInfoEntry - * @param label The label + * @param user_info_entry The PurpleNotifyUserInfoEntry + * @param label The label */ void purple_notify_user_info_entry_set_label(PurpleNotifyUserInfoEntry *user_info_entry, const char *label); /** * Get the value for a PurpleNotifyUserInfoEntry * - * @param user_info_entry The PurpleNotifyUserInfoEntry + * @param user_info_entry The PurpleNotifyUserInfoEntry * - * @result The value + * @result The value */ const gchar *purple_notify_user_info_entry_get_value(PurpleNotifyUserInfoEntry *user_info_entry); /** * Set the value for a PurpleNotifyUserInfoEntry * - * @param user_info_entry The PurpleNotifyUserInfoEntry - * @param value The value + * @param user_info_entry The PurpleNotifyUserInfoEntry + * @param value The value */ void purple_notify_user_info_entry_set_value(PurpleNotifyUserInfoEntry *user_info_entry, const char *value); @@ -644,17 +666,17 @@ /** * Get the type of a PurpleNotifyUserInfoEntry * - * @param user_info_entry The PurpleNotifyUserInfoEntry + * @param user_info_entry The PurpleNotifyUserInfoEntry * - * @result The PurpleNotifyUserInfoEntryType + * @return The PurpleNotifyUserInfoEntryType */ PurpleNotifyUserInfoEntryType purple_notify_user_info_entry_get_type(PurpleNotifyUserInfoEntry *user_info_entry); /** * Set the type of a PurpleNotifyUserInfoEntry * - * @param user_info_entry The PurpleNotifyUserInfoEntry - * @param type The PurpleNotifyUserInfoEntryType + * @param user_info_entry The PurpleNotifyUserInfoEntry + * @param type The PurpleNotifyUserInfoEntryType */ void purple_notify_user_info_entry_set_type(PurpleNotifyUserInfoEntry *user_info_entry, PurpleNotifyUserInfoEntryType type); diff -r cac2f6203505 -r 8060be20fa6e libpurple/plugins/tcl/tcl_cmd.c --- a/libpurple/plugins/tcl/tcl_cmd.c Tue Nov 18 20:24:59 2008 +0000 +++ b/libpurple/plugins/tcl/tcl_cmd.c Tue Nov 18 22:35:40 2008 +0000 @@ -159,7 +159,7 @@ errorstr = g_strdup_printf("error evaluating callback: %s\n", Tcl_GetString(Tcl_GetObjResult(handler->interp))); - purple_debug(PURPLE_DEBUG_ERROR, "tcl", errorstr); + purple_debug(PURPLE_DEBUG_ERROR, "tcl", "%s", errorstr); *errors = errorstr; retval = PURPLE_CMD_RET_FAILED; } else { @@ -170,7 +170,7 @@ errorstr = g_strdup_printf("Error retreiving procedure result: %s\n", Tcl_GetString(Tcl_GetObjResult(handler->interp))); - purple_debug(PURPLE_DEBUG_ERROR, "tcl", errorstr); + purple_debug(PURPLE_DEBUG_ERROR, "tcl", "%s", errorstr); *errors = errorstr; retval = PURPLE_CMD_RET_FAILED; } diff -r cac2f6203505 -r 8060be20fa6e libpurple/protocols/gg/gg.c --- a/libpurple/protocols/gg/gg.c Tue Nov 18 20:24:59 2008 +0000 +++ b/libpurple/protocols/gg/gg.c Tue Nov 18 22:35:40 2008 +0000 @@ -2232,7 +2232,7 @@ break; } - purple_debug(purple_level, "gg", msg); + purple_debug(purple_level, "gg", "%s", msg); g_free(msg); } /* }}} */ diff -r cac2f6203505 -r 8060be20fa6e libpurple/protocols/jabber/jabber.c --- a/libpurple/protocols/jabber/jabber.c Tue Nov 18 20:24:59 2008 +0000 +++ b/libpurple/protocols/jabber/jabber.c Tue Nov 18 22:35:40 2008 +0000 @@ -1735,7 +1735,7 @@ types = g_list_append(types, type); type = purple_status_type_new_with_attrs(PURPLE_STATUS_TUNE, - "tune", NULL, TRUE, TRUE, TRUE, + "tune", NULL, FALSE, TRUE, TRUE, PURPLE_TUNE_ARTIST, _("Tune Artist"), purple_value_new(PURPLE_TYPE_STRING), PURPLE_TUNE_TITLE, _("Tune Title"), purple_value_new(PURPLE_TYPE_STRING), PURPLE_TUNE_ALBUM, _("Tune Album"), purple_value_new(PURPLE_TYPE_STRING), diff -r cac2f6203505 -r 8060be20fa6e libpurple/protocols/jabber/parser.c --- a/libpurple/protocols/jabber/parser.c Tue Nov 18 20:24:59 2008 +0000 +++ b/libpurple/protocols/jabber/parser.c Tue Nov 18 22:35:40 2008 +0000 @@ -137,11 +137,19 @@ { JabberStream *js = user_data; + if (error->level == XML_ERR_WARNING && error->message != NULL + && strcmp(error->message, "xmlns: URI vcard-temp is not absolute\n") == 0) + /* + * This message happens when parsing vcards, and is normal, so don't + * bother logging it because people scare easily. + */ + return; + purple_debug_error("jabber", "XML parser error for JabberStream %p: " - "Domain %i, code %i, level %i: %s\n", + "Domain %i, code %i, level %i: %s", js, error->domain, error->code, error->level, - (error->message ? error->message : "(null)")); + (error->message ? error->message : "(null)\n")); } static xmlSAXHandler jabber_parser_libxml = { diff -r cac2f6203505 -r 8060be20fa6e libpurple/protocols/msn/msn.c --- a/libpurple/protocols/msn/msn.c Tue Nov 18 20:24:59 2008 +0000 +++ b/libpurple/protocols/msn/msn.c Tue Nov 18 22:35:40 2008 +0000 @@ -836,7 +836,7 @@ types = g_list_append(types, status); status = purple_status_type_new_with_attrs(PURPLE_STATUS_TUNE, - "tune", NULL, TRUE, TRUE, TRUE, + "tune", NULL, FALSE, TRUE, TRUE, PURPLE_TUNE_ARTIST, _("Artist"), purple_value_new(PURPLE_TYPE_STRING), PURPLE_TUNE_ALBUM, _("Album"), purple_value_new(PURPLE_TYPE_STRING), PURPLE_TUNE_TITLE, _("Title"), purple_value_new(PURPLE_TYPE_STRING), diff -r cac2f6203505 -r 8060be20fa6e libpurple/protocols/msn/notification.c --- a/libpurple/protocols/msn/notification.c Tue Nov 18 20:24:59 2008 +0000 +++ b/libpurple/protocols/msn/notification.c Tue Nov 18 22:35:40 2008 +0000 @@ -491,7 +491,7 @@ * command and we are processing it */ if (cmd->payload == NULL) { cmdproc->last_cmd->payload_cb = msg_cmd_post; - cmd->payload_len = atoi(cmd->params[4]); + cmd->payload_len = cmd->param_count >= 4 ? atoi(cmd->params[4]) : 0; } else { g_return_if_fail(cmd->payload_cb != NULL); diff -r cac2f6203505 -r 8060be20fa6e libpurple/protocols/msn/servconn.c --- a/libpurple/protocols/msn/servconn.c Tue Nov 18 20:24:59 2008 +0000 +++ b/libpurple/protocols/msn/servconn.c Tue Nov 18 22:35:40 2008 +0000 @@ -69,8 +69,7 @@ return; } - if (servconn->connected) - msn_servconn_disconnect(servconn); + msn_servconn_disconnect(servconn); if (servconn->destroy_cb) servconn->destroy_cb(servconn); diff -r cac2f6203505 -r 8060be20fa6e libpurple/protocols/myspace/myspace.c --- a/libpurple/protocols/myspace/myspace.c Tue Nov 18 20:24:59 2008 +0000 +++ b/libpurple/protocols/myspace/myspace.c Tue Nov 18 22:35:40 2008 +0000 @@ -139,7 +139,7 @@ prim, /* PurpleStatusPrimitive */ \ NULL, /* id - use default */ \ NULL, /* name - use default */ \ - TRUE, /* savable */ \ + TRUE, /* saveable */ \ TRUE, /* user_settable */ \ FALSE, /* not independent */ \ \ @@ -163,7 +163,7 @@ PURPLE_STATUS_TUNE, /* primitive */ "tune", /* ID */ NULL, /* name - use default */ - TRUE, /* savable */ + FALSE, /* saveable */ TRUE, /* should be user_settable some day */ TRUE, /* independent */ diff -r cac2f6203505 -r 8060be20fa6e libpurple/protocols/oscar/oscar.c --- a/libpurple/protocols/oscar/oscar.c Tue Nov 18 20:24:59 2008 +0000 +++ b/libpurple/protocols/oscar/oscar.c Tue Nov 18 22:35:40 2008 +0000 @@ -1676,7 +1676,7 @@ for (x = 0; x < 16; x++) g_string_append_printf(msg, "%02hhx ", (unsigned char)m[x]); g_string_append(msg, "\n"); - purple_debug_misc("oscar", msg->str); + purple_debug_misc("oscar", "%s", msg->str); g_string_free(msg, TRUE); purple_input_remove(pos->inpa); @@ -4947,7 +4947,7 @@ for (i=0; istr); + purple_debug_misc("oscar", "%s", msg->str); g_string_free(msg, TRUE); if (numtypes >= 0) diff -r cac2f6203505 -r 8060be20fa6e libpurple/protocols/qq/utils.c --- a/libpurple/protocols/qq/utils.c Tue Nov 18 20:24:59 2008 +0000 +++ b/libpurple/protocols/qq/utils.c Tue Nov 18 22:35:40 2008 +0000 @@ -325,7 +325,7 @@ va_end(args); if (bytes <= 0) { - purple_debug(level, category, arg_s); + purple_debug(level, category, "%s", arg_s); return; } diff -r cac2f6203505 -r 8060be20fa6e libpurple/proxy.c --- a/libpurple/proxy.c Tue Nov 18 20:24:59 2008 +0000 +++ b/libpurple/proxy.c Tue Nov 18 22:35:40 2008 +0000 @@ -1342,7 +1342,7 @@ if ((buf[0] != 0x05) || (buf[1] != 0x00)) { if ((buf[0] == 0x05) && (buf[1] < 0x09)) { - purple_debug_error("socks5 proxy", socks5errors[buf[1]]); + purple_debug_error("socks5 proxy", "%s", socks5errors[buf[1]]); purple_proxy_connect_data_disconnect(connect_data, socks5errors[buf[1]]); } else { diff -r cac2f6203505 -r 8060be20fa6e pidgin/gtkblist.c --- a/pidgin/gtkblist.c Tue Nov 18 20:24:59 2008 +0000 +++ b/pidgin/gtkblist.c Tue Nov 18 22:35:40 2008 +0000 @@ -2979,6 +2979,22 @@ pidgin_tooltip_destroy(); } +static void +pidgin_blist_align_tooltip(struct tooltip_data *td, GtkWidget *widget) +{ + GtkTextDirection dir = gtk_widget_get_direction(widget); + + if (dir == GTK_TEXT_DIR_RTL) + { + char* layout_name = purple_markup_strip_html(pango_layout_get_text(td->name_layout)); + PangoDirection dir = pango_find_base_dir(layout_name, -1); + if (dir == PANGO_DIRECTION_RTL || dir == PANGO_DIRECTION_NEUTRAL) + pango_layout_set_alignment(td->name_layout, PANGO_ALIGN_RIGHT); + g_free(layout_name); + pango_layout_set_alignment(td->layout, PANGO_ALIGN_RIGHT); + } +} + static gboolean pidgin_blist_create_tooltip_for_node(GtkWidget *widget, gpointer data, int *w, int *h) { @@ -2998,11 +3014,13 @@ if (PURPLE_BLIST_NODE_IS_CHAT(node) || PURPLE_BLIST_NODE_IS_BUDDY(node)) { struct tooltip_data *td = create_tip_for_node(node, TRUE); + pidgin_blist_align_tooltip(td, gtkblist->tipwindow); gtkblist->tooltipdata = g_list_append(gtkblist->tooltipdata, td); } else if (PURPLE_BLIST_NODE_IS_GROUP(node)) { PurpleGroup *group = (PurpleGroup*)node; GSList *accounts; struct tooltip_data *td = create_tip_for_node(node, TRUE); + pidgin_blist_align_tooltip(td, gtkblist->tipwindow); gtkblist->tooltipdata = g_list_append(gtkblist->tooltipdata, td); /* Accounts with buddies in group */ @@ -3022,6 +3040,7 @@ { if(PURPLE_BLIST_NODE_IS_BUDDY(child) && buddy_is_displayable((PurpleBuddy*)child)) { struct tooltip_data *td = create_tip_for_node(child, (b == (PurpleBuddy*)child)); + pidgin_blist_align_tooltip(td, gtkblist->tipwindow); if (b == (PurpleBuddy *)child) { gtkblist->tooltipdata = g_list_prepend(gtkblist->tooltipdata, td); } else { diff -r cac2f6203505 -r 8060be20fa6e pidgin/pidginstock.c --- a/pidgin/pidginstock.c Tue Nov 18 20:24:59 2008 +0000 +++ b/pidgin/pidginstock.c Tue Nov 18 22:35:40 2008 +0000 @@ -206,69 +206,64 @@ { PIDGIN_STOCK_TRAY_EMAIL, "tray", "tray-message.png", FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL } }; +static void +add_sized_icon_common(GtkIconSet *iconset, GtkIconSize sizeid, const char *dir, + gboolean rtl, const char *size, const char *file, + gboolean translucent); + +static gchar * +find_file_common(const char *name) +{ + gchar *filename; +#if GLIB_CHECK_VERSION(2,6,0) + const gchar *userdir; + const gchar * const *sysdirs; + + userdir = g_get_user_data_dir(); + filename = g_build_filename(userdir, name, NULL); + if (g_file_test(filename, G_FILE_TEST_EXISTS)) + return filename; + g_free(filename); + + sysdirs = g_get_system_data_dirs(); + for (; *sysdirs; sysdirs++) { + filename = g_build_filename(*sysdirs, name, NULL); + if (g_file_test(filename, G_FILE_TEST_EXISTS)) + return filename; + g_free(filename); + } +#endif + filename = g_build_filename(DATADIR, name, NULL); + if (g_file_test(filename, G_FILE_TEST_EXISTS)) + return filename; + g_free(filename); + return NULL; +} + static gchar * find_file(const char *dir, const char *base) { char *filename; + char *ret; if (base == NULL) return NULL; if (!strcmp(dir, "pidgin")) - filename = g_build_filename(DATADIR, "pixmaps", "pidgin", base, NULL); + filename = g_build_filename("pixmaps", "pidgin", base, NULL); else - { - filename = g_build_filename(DATADIR, "pixmaps", "pidgin", dir, - base, NULL); - } + filename = g_build_filename("pixmaps", "pidgin", dir, base, NULL); - return filename; + ret = find_file_common(filename); + g_free(filename); + return ret; } static void -add_sized_icon(GtkIconSet *iconset, GtkIconSize sizeid, const char *dir, +add_sized_icon(GtkIconSet *iconset, GtkIconSize sizeid, const char *dir, gboolean rtl, const char *size, const char *file) { - char *filename; - GtkIconSource *source; - - filename = g_build_filename(DATADIR, "pixmaps", "pidgin", dir, size, file, NULL); - source = gtk_icon_source_new(); - gtk_icon_source_set_filename(source, filename); - gtk_icon_source_set_direction(source, GTK_TEXT_DIR_LTR); - gtk_icon_source_set_direction_wildcarded(source, !rtl); - gtk_icon_source_set_size(source, sizeid); - gtk_icon_source_set_size_wildcarded(source, FALSE); - gtk_icon_source_set_state_wildcarded(source, TRUE); - gtk_icon_set_add_source(iconset, source); - gtk_icon_source_free(source); - - if (sizeid == gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL)) { - source = gtk_icon_source_new(); - gtk_icon_source_set_filename(source, filename); - gtk_icon_source_set_direction_wildcarded(source, TRUE); - gtk_icon_source_set_size(source, GTK_ICON_SIZE_MENU); - gtk_icon_source_set_size_wildcarded(source, FALSE); - gtk_icon_source_set_state_wildcarded(source, TRUE); - gtk_icon_set_add_source(iconset, source); - gtk_icon_source_free(source); - } - g_free(filename); - - if (rtl) { - filename = g_build_filename(DATADIR, "pixmaps", "pidgin", dir, size, "rtl", file, NULL); - source = gtk_icon_source_new(); - gtk_icon_source_set_filename(source, filename); - gtk_icon_source_set_direction(source, GTK_TEXT_DIR_RTL); - gtk_icon_source_set_size(source, sizeid); - gtk_icon_source_set_size_wildcarded(source, FALSE); - gtk_icon_source_set_state_wildcarded(source, TRUE); - gtk_icon_set_add_source(iconset, source); - g_free(filename); - gtk_icon_source_free(source); - } - - + add_sized_icon_common(iconset, sizeid, dir, rtl, size, file, FALSE); } /* Altered from do_colorshift in gnome-panel */ @@ -307,64 +302,77 @@ } } -/* TODO: This is almost certainly not the best way to do this, but it's late, I'm tired, - * we're a few hours from getting this thing out, and copy/paste is EASY. - */ static void add_translucent_sized_icon(GtkIconSet *iconset, GtkIconSize sizeid, const char *dir, gboolean rtl, const char *size, const char *file) { - char *filename; - GtkIconSource *source; + add_sized_icon_common(iconset, sizeid, dir, rtl, size, file, TRUE); +} + +static void +add_sized_icon_common(GtkIconSet *iconset, GtkIconSize sizeid, const char *dir, + gboolean rtl, const char *size, const char *file, + gboolean translucent) +{ + char *filename, *subpath; + GtkIconSource *source; GdkPixbuf *pixbuf; - filename = g_build_filename(DATADIR, "pixmaps", "pidgin", dir, size, file, NULL); + subpath = g_build_filename("pixmaps", "pidgin", dir, size, file, NULL); + filename = find_file_common(subpath); + g_free(subpath); + if (!filename) + return; + pixbuf = gdk_pixbuf_new_from_file(filename, NULL); - do_alphashift(pixbuf, pixbuf); + if (translucent) + do_alphashift(pixbuf, pixbuf); source = gtk_icon_source_new(); - gtk_icon_source_set_pixbuf(source, pixbuf); + gtk_icon_source_set_pixbuf(source, pixbuf); gtk_icon_source_set_direction(source, GTK_TEXT_DIR_LTR); - gtk_icon_source_set_direction_wildcarded(source, !rtl); + gtk_icon_source_set_direction_wildcarded(source, !rtl); gtk_icon_source_set_size(source, sizeid); - gtk_icon_source_set_size_wildcarded(source, FALSE); - gtk_icon_source_set_state_wildcarded(source, TRUE); - gtk_icon_set_add_source(iconset, source); + gtk_icon_source_set_size_wildcarded(source, FALSE); + gtk_icon_source_set_state_wildcarded(source, TRUE); + gtk_icon_set_add_source(iconset, source); gtk_icon_source_free(source); if (sizeid == gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL)) { source = gtk_icon_source_new(); - gtk_icon_source_set_pixbuf(source, pixbuf); - gtk_icon_source_set_direction_wildcarded(source, TRUE); - gtk_icon_source_set_size(source, GTK_ICON_SIZE_MENU); - gtk_icon_source_set_size_wildcarded(source, FALSE); - gtk_icon_source_set_state_wildcarded(source, TRUE); - gtk_icon_set_add_source(iconset, source); - gtk_icon_source_free(source); + gtk_icon_source_set_pixbuf(source, pixbuf); + gtk_icon_source_set_direction_wildcarded(source, TRUE); + gtk_icon_source_set_size(source, GTK_ICON_SIZE_MENU); + gtk_icon_source_set_size_wildcarded(source, FALSE); + gtk_icon_source_set_state_wildcarded(source, TRUE); + gtk_icon_set_add_source(iconset, source); + gtk_icon_source_free(source); } - g_free(filename); + g_free(filename); g_object_unref(pixbuf); - if (rtl) { - filename = g_build_filename(DATADIR, "pixmaps", "pidgin", dir, size, "rtl", file, NULL); - pixbuf = gdk_pixbuf_new_from_file(filename, NULL); - do_alphashift(pixbuf, pixbuf); + if (rtl) { + subpath = g_build_filename("pixmaps", "pidgin", dir, size, "rtl", file, NULL); + filename = find_file_common(subpath); + g_free(subpath); + if (!filename) + return; + pixbuf = gdk_pixbuf_new_from_file(filename, NULL); + if (translucent) + do_alphashift(pixbuf, pixbuf); source = gtk_icon_source_new(); - gtk_icon_source_set_pixbuf(source, pixbuf); - gtk_icon_source_set_direction(source, GTK_TEXT_DIR_RTL); - gtk_icon_source_set_size(source, sizeid); - gtk_icon_source_set_size_wildcarded(source, FALSE); - gtk_icon_source_set_state_wildcarded(source, TRUE); - gtk_icon_set_add_source(iconset, source); + gtk_icon_source_set_pixbuf(source, pixbuf); + gtk_icon_source_set_direction(source, GTK_TEXT_DIR_RTL); + gtk_icon_source_set_size(source, sizeid); + gtk_icon_source_set_size_wildcarded(source, FALSE); + gtk_icon_source_set_state_wildcarded(source, TRUE); + gtk_icon_set_add_source(iconset, source); g_free(filename); g_object_unref(pixbuf); gtk_icon_source_free(source); - } - - + } } - void pidgin_stock_init(void) { @@ -413,7 +421,6 @@ gtk_icon_source_set_size_wildcarded(source, TRUE); gtk_icon_source_set_state_wildcarded(source, TRUE); - iconset = gtk_icon_set_new(); gtk_icon_set_add_source(iconset, source); diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/Makefile.am --- a/pidgin/pixmaps/Makefile.am Tue Nov 18 20:24:59 2008 +0000 +++ b/pidgin/pixmaps/Makefile.am Tue Nov 18 22:35:40 2008 +0000 @@ -1,12 +1,13 @@ pidginpixmapdir = $(datadir)/pixmaps/pidgin pidginiconsdir = $(datadir) -SUBDIRS = emotes/default/24 emotes/none +SUBDIRS = emotes/default/24 emotes/none emotes/small/16 if INSTALL_PIXMAPS MAKEFILE_MINGW = \ emotes/default/24/Makefile.mingw \ - emotes/none/Makefile.mingw + emotes/none/Makefile.mingw \ + emotes/small/16/Makefile.mingw ANIMATIONS_16 = \ animations/16/connect0.png \ @@ -177,6 +178,7 @@ emotes/default/24/scalable/musical-note.svg \ emotes/default/24/scalable/peace.svg \ emotes/default/24/scalable/phone.svg \ + emotes/default/24/scalable/pidgin-emotes.svg \ emotes/default/24/scalable/pig.svg \ emotes/default/24/scalable/pill.svg \ emotes/default/24/scalable/pizza.svg \ @@ -204,6 +206,9 @@ emotes/default/24/scalable/watermelon.svg \ emotes/default/24/scalable/yin-yang.svg +EMOTES_SMALL_16_SCALABLE = \ + emotes/small/16/scalable/pidgin-emotes.svg + PROTOCOLS_16_SCALABLE = \ protocols/16/scalable/aim.svg \ protocols/16/scalable/bonjour.svg \ diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/default/24/Makefile.am --- a/pidgin/pixmaps/emotes/default/24/Makefile.am Tue Nov 18 20:24:59 2008 +0000 +++ b/pidgin/pixmaps/emotes/default/24/Makefile.am Tue Nov 18 22:35:40 2008 +0000 @@ -1,4 +1,5 @@ -SMILEYS = act-up.png \ +SMILEYS = \ + act-up.png \ airplane.png \ alien.png \ angel.png \ diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/Makefile.am --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pidgin/pixmaps/emotes/small/16/Makefile.am Tue Nov 18 22:35:40 2008 +0000 @@ -0,0 +1,59 @@ +SMILEYS = \ + angel.png \ + angry.png \ + beer.png \ + camera.png \ + cigarette.png \ + coffee.png \ + confused.png \ + console.png \ + cool.png \ + cross.png \ + crying.png \ + devil.png \ + dont-know.png \ + grin.png \ + hug-left.png \ + hug-right.png \ + kiss.png \ + love.png \ + meeting.png \ + musical-note.png \ + nerdy.png \ + neutral.png \ + party.png \ + phone.png \ + plate.png \ + question.png \ + sad.png \ + shame.png \ + shock.png \ + sick.png \ + silent.png \ + sleepy.png \ + smile-big.png \ + smile.png \ + thinking.png \ + tongue.png \ + tv.png \ + uhm-yeah.png \ + wink.png \ + yawn.png + + +pidginsmileypix_in_files = small.theme.in + +if INSTALL_PIXMAPS +pidginsmileypixdir = $(datadir)/pixmaps/pidgin/emotes/small +pidginsmileypix_DATA = \ + $(SMILEYS) \ + theme + +theme: small.theme.in + sed -e 's/^_Name=/Name=/' \ + -e 's/^_Description=/Description=/' \ + -e 's/^_Author=/Author=/' \ + $< > $@ +endif + +EXTRA_DIST = $(SMILEYS) $(pidginsmileypix_in_files) theme diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/Makefile.mingw --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pidgin/pixmaps/emotes/small/16/Makefile.mingw Tue Nov 18 22:35:40 2008 +0000 @@ -0,0 +1,27 @@ +# +# Makefile.mingw +# +# Description: Makefile for win32 (mingw) version of Pidgin pixmaps +# + +PIDGIN_TREE_TOP := ../../../../.. +include $(PIDGIN_TREE_TOP)/libpurple/win32/global.mak + +datadir = $(PIDGIN_INSTALL_DIR) +-include ./Makefile.am.mingw + +.PHONY: install clean + +install: ./Makefile.am.mingw theme + if test '$(pidginsmileypix_DATA)'; then \ + mkdir -p $(pidginsmileypixdir); \ + cp $(pidginsmileypix_DATA) $(pidginsmileypixdir); \ + fi; + +clean: + rm -f theme ./Makefile.am.mingw + +./Makefile.am.mingw: ./Makefile.am + sed -e 's/^if\ INSTALL_PIXMAPS/ifeq (\$$(INSTALL_PIXMAPS), 1)/' ./Makefile.am > $@ + include $@ + diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/TODO --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pidgin/pixmaps/emotes/small/16/TODO Tue Nov 18 22:35:40 2008 +0000 @@ -0,0 +1,20 @@ +The following icons where just scaled down from the 24x24 and may need work: + meeting.png + question.png + search.png + sleepy.png + smile-big.png + tv.png + +The following icons came from N3fr0n and probably need to be redone to match +our default icons: + beer.png + camera.png + cigarette.png + coffee.png + console.png + love.png + musical-note.png + party.png + phone.png + plate.png diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/angel.png Binary file pidgin/pixmaps/emotes/small/16/angel.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/angry.png Binary file pidgin/pixmaps/emotes/small/16/angry.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/beer.png Binary file pidgin/pixmaps/emotes/small/16/beer.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/camera.png Binary file pidgin/pixmaps/emotes/small/16/camera.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/cigarette.png Binary file pidgin/pixmaps/emotes/small/16/cigarette.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/coffee.png Binary file pidgin/pixmaps/emotes/small/16/coffee.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/confused.png Binary file pidgin/pixmaps/emotes/small/16/confused.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/console.png Binary file pidgin/pixmaps/emotes/small/16/console.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/cool.png Binary file pidgin/pixmaps/emotes/small/16/cool.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/cross.png Binary file pidgin/pixmaps/emotes/small/16/cross.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/crying.png Binary file pidgin/pixmaps/emotes/small/16/crying.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/devil.png Binary file pidgin/pixmaps/emotes/small/16/devil.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/dont-know.png Binary file pidgin/pixmaps/emotes/small/16/dont-know.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/grin.png Binary file pidgin/pixmaps/emotes/small/16/grin.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/hug-left.png Binary file pidgin/pixmaps/emotes/small/16/hug-left.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/hug-right.png Binary file pidgin/pixmaps/emotes/small/16/hug-right.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/kiss.png Binary file pidgin/pixmaps/emotes/small/16/kiss.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/love.png Binary file pidgin/pixmaps/emotes/small/16/love.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/meeting.png Binary file pidgin/pixmaps/emotes/small/16/meeting.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/musical-note.png Binary file pidgin/pixmaps/emotes/small/16/musical-note.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/nerdy.png Binary file pidgin/pixmaps/emotes/small/16/nerdy.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/neutral.png Binary file pidgin/pixmaps/emotes/small/16/neutral.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/party.png Binary file pidgin/pixmaps/emotes/small/16/party.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/phone.png Binary file pidgin/pixmaps/emotes/small/16/phone.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/plate.png Binary file pidgin/pixmaps/emotes/small/16/plate.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/question.png Binary file pidgin/pixmaps/emotes/small/16/question.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/sad.png Binary file pidgin/pixmaps/emotes/small/16/sad.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/scalable/pidgin-emotes.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pidgin/pixmaps/emotes/small/16/scalable/pidgin-emotes.svg Tue Nov 18 22:35:40 2008 +0000 @@ -0,0 +1,6689 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/search.png Binary file pidgin/pixmaps/emotes/small/16/search.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/shame.png Binary file pidgin/pixmaps/emotes/small/16/shame.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/shock.png Binary file pidgin/pixmaps/emotes/small/16/shock.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/sick.png Binary file pidgin/pixmaps/emotes/small/16/sick.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/silent.png Binary file pidgin/pixmaps/emotes/small/16/silent.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/sleepy.png Binary file pidgin/pixmaps/emotes/small/16/sleepy.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/small.theme.in --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pidgin/pixmaps/emotes/small/16/small.theme.in Tue Nov 18 22:35:40 2008 +0000 @@ -0,0 +1,156 @@ +_Name=Small +_Description=Smaller versions of the default smilies +Icon=wink.png +Author=Hylke Bons + + +# Default smileys +[default] +smile.png :) :-) +smile-big.png :-D :-d :D :d +sad.png :-( :( +wink.png ;-) ;) +tongue.png :P :-P :-p :p +shock.png =-O =-o +kiss.png :-* +crying.png :'( +thinking.png :-/ :-\\ +angel.png O:-) o:-) + + +# Following AIM 6.1 +[AIM] +smile.png :-) :) +wink.png ;-) ;) +sad.png :-( :( +tongue.png :-P :P :-p :p +shock.png =-O +kiss.png :-* +smile-big.png :-D :D +angel.png O:-) +thinking.png :-\\ :-/ +crying.png :'( + + +# Following Windows Live Messenger 8.1 +[MSN] +smile.png :) :-) +smile-big.png :D :d :-D :-d +wink.png ;) ;-) +shock.png :-O :-o :O :o +tongue.png :P :p :-P :-p +angry.png :@ :-@ +confused.png :S :s :-S :-s +sad.png :( :-( +crying.png :'( +neutral.png :| :-| +devil.png (6) +angel.png (A) (a) +love.png (L) (l) +musical-note.png (8) +kiss.png (K) (k) +camera.png (P) (p) +coffee.png (C) (c) +phone.png (T) (t) +hug-left.png ({) +hug-right.png (}) +beer.png (B) (b) +sick.png +o( +plate.png (pl) +dont-know.png :^) +thinking.png *-) +party.png <:o) +yawn.png |-) + +# Hidden MSN emotes +cigarette.png (ci) (CI) +console.png (xx) (XX) + + +# Following QQ 2006 +[QQ] +shock.png /:O /jy /surprised +party.png /8-) /dy /revel +crying.png /:< /ll /cry +sleepy.png /:Z /shui /sleep +smile-big.png /:D /cy /toothy_smile +smile.png /:) /wx /small_smile +sad.png /:( /ng /sad +sick.png /:T /tu /vomit +yawn.png /|-) /kun /sleepy +question.png /? /yiw /question +search.png /find /zhao /search +hug-left.png /hug /yb /hug +musical-note.png /music /yy /music +coffee.png /coffee /kf /coffee +kiss.png /kiss /wen /kiss +love.png /heart /xin /heart +meeting.png /meeting /hy /meeting +phone.png /phone /dh /phone +tv.png /TV /ds /TV +angry.png / /oh /angry + + +# Following ICQ 6.0 +[ICQ] +smile.png :-) :) +neutral.png :-$ +sad.png :-( :( +shock.png =-O +wink.png ;-) ;) +tongue.png :-P :P :-p :p +sleepy.png *TIRED* +crying.png :'( :'-( +sick.png :-! +kiss.png :-{} :-* +devil.png ]:-> +angel.png O:-) +thinking.png :-\\ :-/ +beer.png *DRINK* +smile-big.png :-D :D + + +# Following Yahoo! Messenger 8.1 +[Yahoo] +smile.png :) :-) +question.png :-/ :-\\ +shock.png :-O :O :-o :o +devil.png >:) +angel.png O:-) o:-) 0:-) +sick.png :-& +yawn.png (:| +sad.png :( :-( +angry.png X-( x-( X( x( +crying.png :(( +wink.png ;) ;-) +thinking.png :-? +smile-big.png :D :-D :d :-d +tongue.png :-P :P :-p :p +neutral.png :| :-| +sleepy.png I-) i-) |-) +kiss.png :-* :* +confused.png :-S :-s +hug-left.png >:D< >:d< +party.png <:-P <:-p + +# Hidden Yahoo emotes +coffee.png ~o) ~O) +dont-know.png :-L :-l +shame.png [-X [-x +musical-note.png :-" + +# Only available after activating the Yahoo! Fighter IMVironment + + +# Following MySpaceIM Beta 1.0.697.0 +[MySpaceIM] +smile-big.png :D :-D +devil.png }:) +confused.png :Z +smile.png :) :-) +shock.png :O +neutral.png :| +tongue.png :P :p +wink.png ;-) ;) +sad.png :[ +kiss.png :x diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/smile-big.png Binary file pidgin/pixmaps/emotes/small/16/smile-big.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/smile.png Binary file pidgin/pixmaps/emotes/small/16/smile.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/thinking.png Binary file pidgin/pixmaps/emotes/small/16/thinking.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/tongue.png Binary file pidgin/pixmaps/emotes/small/16/tongue.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/tv.png Binary file pidgin/pixmaps/emotes/small/16/tv.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/uhm-yeah.png Binary file pidgin/pixmaps/emotes/small/16/uhm-yeah.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/wink.png Binary file pidgin/pixmaps/emotes/small/16/wink.png has changed diff -r cac2f6203505 -r 8060be20fa6e pidgin/pixmaps/emotes/small/16/yawn.png Binary file pidgin/pixmaps/emotes/small/16/yawn.png has changed diff -r cac2f6203505 -r 8060be20fa6e po/POTFILES.in --- a/po/POTFILES.in Tue Nov 18 20:24:59 2008 +0000 +++ b/po/POTFILES.in Tue Nov 18 22:35:40 2008 +0000 @@ -219,6 +219,7 @@ pidgin/pidgintooltip.c pidgin/pixmaps/emotes/default/24/default.theme.in pidgin/pixmaps/emotes/none/none.theme.in +pidgin/pixmaps/emotes/small/16/small.theme.in pidgin/plugins/cap/cap.c pidgin/plugins/contact_priority.c pidgin/plugins/convcolors.c