Mercurial > pidgin.yaz
changeset 16507:f2114f10a39d
merge of '3915457bd0530d71d2a7240c102329dfd261794c'
and 'dd8d4a47d58343b94148f133559605ee8e10ec90'
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Fri, 27 Apr 2007 04:37:55 +0000 |
parents | d6b81413ef79 (diff) 0b97b224a829 (current diff) |
children | 6379629a976e |
files | |
diffstat | 13 files changed, 68 insertions(+), 44 deletions(-) [+] |
line wrap: on
line diff
--- a/config.h.mingw Fri Apr 27 04:35:57 2007 +0000 +++ b/config.h.mingw Fri Apr 27 04:37:55 2007 +0000 @@ -325,7 +325,7 @@ /* #define HAVE_SIGNAL_H 1 */ /* Define if we have silcmime.h */ -/* #undef HAVE_SILCMIME_H */ +#define HAVE_SILCMIME_H 1 /* Define to 1 if you have the <smime.h> header file. */ /* #undef HAVE_SMIME_H */
--- a/doc/funniest_home_convos.txt Fri Apr 27 04:35:57 2007 +0000 +++ b/doc/funniest_home_convos.txt Fri Apr 27 04:37:55 2007 +0000 @@ -451,3 +451,12 @@ (07:54:03 PM) clueless21: what's an im client? (07:54:25 PM) Nathan Walp: it lets you chat with other people, like we are chatting now (07:54:45 PM) clueless21: oooooooooo... thanks + +23:58 -!- seanegan is now known as beta7 +23:58 <beta7> Hey, guys, remember me? +23:59 <beta7> We were all supposed to be working on getting me out. +23:59 <beta7> you guys remember that? +23:59 -!- mode/#pidgin [+o elb] by ChanServ +23:59 -!- beta7 was kicked from #pidgin by elb [getting feisty, are we?] +23:59 -!- mode/#pidgin [-o elb] by ChanServ +23:59 <marv> elb: good job getting beta7 out
--- a/libpurple/account.c Fri Apr 27 04:35:57 2007 +0000 +++ b/libpurple/account.c Fri Apr 27 04:37:55 2007 +0000 @@ -792,6 +792,8 @@ } xmlnode_free(node); + + purple_buddy_icons_account_loaded_cb(); }
--- a/libpurple/buddyicon.c Fri Apr 27 04:35:57 2007 +0000 +++ b/libpurple/buddyicon.c Fri Apr 27 04:37:55 2007 +0000 @@ -960,6 +960,30 @@ } void +purple_buddy_icons_account_loaded_cb() +{ + GList *cur; + + for (cur = purple_accounts_get_all(); cur != NULL; cur = cur->next) + { + PurpleAccount *account = cur->data; + const char *account_icon_file = purple_account_get_string(account, "buddy_icon", NULL); + + if (account_icon_file != NULL) + { + char *path = g_build_filename(dirname, filename, NULL); + if (!g_file_test(filename, G_FILE_TEST_EXISTS)) + { + purple_account_set_string(account, "buddy_icon", NULL); + } else { + ref_filename(account_icon_file); + } + g_free(path); + } + } +} + +void purple_buddy_icons_blist_loaded_cb() { PurpleBlistNode *node = purple_blist_get_root(); @@ -999,7 +1023,7 @@ else { char *path = g_build_filename(dirname, filename, NULL); - if (!g_file_test(filename, G_FILE_TEST_EXISTS)) + if (!g_file_test(path, G_FILE_TEST_EXISTS)) { purple_blist_node_remove_setting(node, "buddy_icon");
--- a/libpurple/core.c Fri Apr 27 04:35:57 2007 +0000 +++ b/libpurple/core.c Fri Apr 27 04:37:55 2007 +0000 @@ -310,7 +310,7 @@ gboolean purple_core_migrate(void) { -#error This code wants to migrate your .gaim directory to .purple. It is strongly suggested that you back .gaim up before proceeding. +#error You probably want to back up your .gaim directory right now. This revision is going to destroy it, potentially not in the way we've intended const char *user_dir = purple_user_dir(); char *old_user_dir = g_strconcat(purple_home_dir(), G_DIR_SEPARATOR_S ".gaim", NULL); @@ -597,7 +597,7 @@ return FALSE; } - if (!fwrite(buf, size, 1, new_file)) + if (!fwrite(buf, size, 1, new_file) && ferror(new_file) != 0) { purple_debug_error("core", "Error writing %s: %s\n", new_name, strerror(errno));
--- a/libpurple/internal.h Fri Apr 27 04:35:57 2007 +0000 +++ b/libpurple/internal.h Fri Apr 27 04:37:55 2007 +0000 @@ -184,6 +184,11 @@ #define PURPLE_WEBSITE "http://pidgin.im/" +/* This is for the accounts code to notify the buddy icon code that + * it's done loading. We may want to replace this with a signal. */ +void +purple_buddy_icons_account_loaded_cb(void); + /* This is for the buddy list to notify the buddy icon code that * it's done loading. We may want to replace this with a signal. */ void
--- a/libpurple/protocols/jabber/auth.c Fri Apr 27 04:35:57 2007 +0000 +++ b/libpurple/protocols/jabber/auth.c Fri Apr 27 04:37:55 2007 +0000 @@ -294,7 +294,7 @@ purple_request_yes_no(js->gc, _("Plaintext Authentication"), _("Plaintext Authentication"), _("This server requires plaintext authentication over an unencrypted connection. Allow this and continue authentication?"), - 2, js->gc->account, + 2, js->gc->account, NULL, NULL, NULL, allow_cyrus_plaintext_auth, disallow_plaintext_auth); return;
--- a/libpurple/protocols/silc/buddy.c Fri Apr 27 04:35:57 2007 +0000 +++ b/libpurple/protocols/silc/buddy.c Fri Apr 27 04:37:55 2007 +0000 @@ -987,8 +987,10 @@ const unsigned char *data; SilcUInt32 data_len; data = silc_mime_get_data(m, &data_len); - if (data) - purple_buddy_icons_set_for_user(purple_buddy_get_account(r->b), purple_buddy_get_name(r->b), g_memdup(data, data_len), data_len); + if (data) { + /* TODO: Check if SILC gives us something to use as the checksum instead */ + purple_buddy_icons_set_for_user(purple_buddy_get_account(r->b), purple_buddy_get_name(r->b), g_memdup(data, data_len), data_len, NULL); + } } silc_mime_free(m); } @@ -1681,48 +1683,31 @@ } #ifdef SILC_ATTRIBUTE_USER_ICON -void silcpurple_buddy_set_icon(PurpleConnection *gc, const char *iconfile) +void silcpurple_buddy_set_icon(PurpleConnection *gc, PurpleStoredImage *img) { SilcPurple sg = gc->proto_data; SilcClient client = sg->client; SilcClientConnection conn = sg->conn; SilcMime mime; - PurpleBuddyIcon ic; char type[32]; unsigned char *icon; const char *t; - struct stat st; - FILE *fp; SilcAttributeObjMime obj; /* Remove */ - if (!iconfile) { + if (!img) { silc_client_attribute_del(client, conn, SILC_ATTRIBUTE_USER_ICON, NULL); return; } /* Add */ - if (g_stat(iconfile, &st) < 0) - return; - fp = g_fopen(iconfile, "rb"); - if (!fp) - return; - ic.data = g_malloc(st.st_size); - if (!ic.data) + mime = silc_mime_alloc(); + if (!mime) return; - ic.len = fread(ic.data, 1, st.st_size, fp); - fclose(fp); - mime = silc_mime_alloc(); - if (!mime) { - g_free(ic.data); - return; - } - - t = purple_buddy_icon_get_type((const PurpleBuddyIcon *)&ic); + t = purple_util_get_image_extension(purple_imgstore_get_data(img), purple_imgstore_get_size(img)); if (!t || !strcmp(t, "icon")) { - g_free(ic.data); silc_mime_free(mime); return; } @@ -1730,7 +1715,7 @@ t = "jpeg"; g_snprintf(type, sizeof(type), "image/%s", t); silc_mime_add_field(mime, "Content-Type", type); - silc_mime_add_data(mime, ic.data, ic.len); + silc_mime_add_data(mime, purple_imgstore_get_data(img), purple_imgstore_get_size(img)); obj.mime = icon = silc_mime_encode(mime, &obj.mime_len); if (obj.mime) @@ -1738,7 +1723,6 @@ SILC_ATTRIBUTE_USER_ICON, &obj, sizeof(obj)); silc_free(icon); - g_free(ic.data); silc_mime_free(mime); } #endif
--- a/libpurple/protocols/silc/silc.c Fri Apr 27 04:35:57 2007 +0000 +++ b/libpurple/protocols/silc/silc.c Fri Apr 27 04:37:55 2007 +0000 @@ -194,7 +194,7 @@ SilcUInt32 mask; const char *tmp; #ifdef SILC_ATTRIBUTE_USER_ICON - char *icon; + PurpleStoredImage *img; #endif #ifdef HAVE_SYS_UTSNAME_H struct utsname u; @@ -233,9 +233,9 @@ #ifdef SILC_ATTRIBUTE_USER_ICON /* Set our buddy icon */ - icon = purple_buddy_icons_get_full_path(purple_account_get_buddy_icon(account)); - silcpurple_buddy_set_icon(gc, icon); - g_free(icon); + img = purple_buddy_icons_find_account_icon(account); + silcpurple_buddy_set_icon(gc, img); + purple_imgstore_unref(img); #endif }
--- a/libpurple/protocols/silc/silcpurple.h Fri Apr 27 04:35:57 2007 +0000 +++ b/libpurple/protocols/silc/silcpurple.h Fri Apr 27 04:37:55 2007 +0000 @@ -145,7 +145,7 @@ char **contactstr, char **langstr, char **devicestr, char **tzstr, char **geostr); #ifdef SILC_ATTRIBUTE_USER_ICON -void silcpurple_buddy_set_icon(PurpleConnection *gc, const char *iconfile); +void silcpurple_buddy_set_icon(PurpleConnection *gc, PurpleStoredImage *img); #endif #ifdef HAVE_SILCMIME_H char *silcpurple_file2mime(const char *filename);
--- a/libpurple/protocols/silc/util.c Fri Apr 27 04:35:57 2007 +0000 +++ b/libpurple/protocols/silc/util.c Fri Apr 27 04:37:55 2007 +0000 @@ -676,9 +676,9 @@ } id = g_datalist_get_data(&attribs, "id"); - if (id && (image = purple_imgstore_get(atoi(id)))) { + if (id && (image = purple_imgstore_find_by_id(atoi(id)))) { unsigned long imglen = purple_imgstore_get_size(image); - gpointer img = purple_imgstore_get_data(image); + gconstpointer img = purple_imgstore_get_data(image); p = silc_mime_alloc();
--- a/libpurple/util.c Fri Apr 27 04:35:57 2007 +0000 +++ b/libpurple/util.c Fri Apr 27 04:37:55 2007 +0000 @@ -2570,7 +2570,7 @@ } const char * -purple_util_get_image_extension(gpointer data, size_t len) +purple_util_get_image_extension(gconstpointer data, size_t len) { g_return_val_if_fail(data != NULL, NULL); g_return_val_if_fail(len > 0, NULL); @@ -2667,7 +2667,7 @@ gboolean purple_running_osx(void) { -#if defined(__APPLE__) +#if defined(__APPLE__) return TRUE; #else return FALSE; @@ -4207,7 +4207,7 @@ signal(SIGABRT, SIG_DFL); /* 6: abort program */ #ifdef SIGPOLL - signal(SIGPOLL, SIG_DFL); /* 7: pollable event (POSIX) */ + signal(SIGPOLL, SIG_DFL); /* 7: pollable event (POSIX) */ #endif /* SIGPOLL */ #ifdef SIGEMT @@ -4223,7 +4223,7 @@ signal(SIGTERM, SIG_DFL); /* 15: software termination signal */ signal(SIGCHLD, SIG_DFL); /* 20: child status has changed */ signal(SIGXCPU, SIG_DFL); /* 24: exceeded CPU time limit */ - signal(SIGXFSZ, SIG_DFL); /* 25: exceeded file size limit */ + signal(SIGXFSZ, SIG_DFL); /* 25: exceeded file size limit */ #endif /* HAVE_SIGNAL_H */ #endif /* !_WIN32 */ }
--- a/libpurple/util.h Fri Apr 27 04:35:57 2007 +0000 +++ b/libpurple/util.h Fri Apr 27 04:37:55 2007 +0000 @@ -469,7 +469,7 @@ * the first character of the entity. If given an unrecognized entity, the function * returns @c NULL. * - * Note that this function, unlike purple_unescape_html(), does not search + * Note that this function, unlike purple_unescape_html(), does not search * the string for the entity, does not replace the entity, and does not * return a newly allocated string. * @@ -606,7 +606,7 @@ * @return The appropriate extension, or "icon" if unknown. */ const char * -purple_util_get_image_extension(gpointer data, size_t len); +purple_util_get_image_extension(gconstpointer data, size_t len); /*@}*/