diff --git a/backends/libpurple/main.cpp b/backends/libpurple/main.cpp index 739382928c3de5e3d8af3379e45977e141514d9a..5ee59372c26ae6de30c84a47bf5dd2436a80ba3b 100644 --- a/backends/libpurple/main.cpp +++ b/backends/libpurple/main.cpp @@ -181,15 +181,21 @@ class SpectrumNetworkPlugin : public NetworkPlugin { m_sessions[user] = account; // Default avatar - if (!CONFIG_STRING(config, "backend.default_avatar").empty()) { - char* contents; - gsize length; - - gboolean ret = g_file_get_contents (CONFIG_STRING(config, "backend.default_avatar").c_str(), - &contents, &length, NULL); - if (ret) { - purple_buddy_icons_set_account_icon(account, (guchar *) contents, length); - } + char* contents; + gsize length; + gboolean ret; + if (!CONFIG_STRING(config, "backend.avatars_directory").empty()) { + std::string f = CONFIG_STRING(config, "backend.avatars_directory") + "/" + legacyName; + ret = g_file_get_contents (f.c_str(), &contents, &length, NULL); + } + + if (!CONFIG_STRING(config, "backend.default_avatar").empty() && !ret) { + ret = g_file_get_contents (CONFIG_STRING(config, "backend.default_avatar").c_str(), + &contents, &length, NULL); + } + + if (ret) { + purple_buddy_icons_set_account_icon(account, (guchar *) contents, length); } purple_account_set_password(account, password.c_str());