diff -r d10dda2777a9 -r b63ebf84c42b plugins/history.c
--- a/plugins/history.c Sat Aug 19 00:24:14 2006 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,209 +0,0 @@
-/* Puts last 4k of log in new conversations a la Everybuddy (and then
- * stolen by Trillian "Pro") */
-
-#include "internal.h"
-#include "gtkgaim.h"
-
-#include "conversation.h"
-#include "debug.h"
-#include "log.h"
-#include "notify.h"
-#include "prefs.h"
-#include "signals.h"
-#include "util.h"
-#include "version.h"
-
-#include "gtkconv.h"
-#include "gtkimhtml.h"
-#include "gtkplugin.h"
-
-#define HISTORY_PLUGIN_ID "gtk-history"
-
-#define HISTORY_SIZE (4 * 1024)
-
-static gboolean _scroll_imhtml_to_end(gpointer data)
-{
- GtkIMHtml *imhtml = data;
- gtk_imhtml_scroll_to_end(GTK_IMHTML(imhtml), FALSE);
- g_object_unref(G_OBJECT(imhtml));
- return FALSE;
-}
-
-static void historize(GaimConversation *c)
-{
- GaimAccount *account = gaim_conversation_get_account(c);
- const char *name = gaim_conversation_get_name(c);
- GaimConversationType convtype;
- GList *logs = NULL;
- const char *alias = name;
- guint flags;
- char *history;
- GaimGtkConversation *gtkconv;
- GtkIMHtmlOptions options = GTK_IMHTML_NO_COLOURS;
- char *header;
- char *protocol;
-
- convtype = gaim_conversation_get_type(c);
- gtkconv = GAIM_GTK_CONVERSATION(c);
- if (convtype == GAIM_CONV_TYPE_IM && g_list_length(gtkconv->convs) < 2)
- {
- GSList *buddies;
- GSList *cur;
-
- /* If we're not logging, don't show anything.
- * Otherwise, we might show a very old log. */
- if (!gaim_prefs_get_bool("/core/logging/log_ims"))
- return;
-
- /* Find buddies for this conversation. */
- buddies = gaim_find_buddies(account, name);
-
- /* If we found at least one buddy, save the first buddy's alias. */
- if (buddies != NULL)
- alias = gaim_buddy_get_contact_alias((GaimBuddy *)buddies->data);
-
- for (cur = buddies; cur != NULL; cur = cur->next)
- {
- GaimBlistNode *node = cur->data;
- if ((node != NULL) && ((node->prev != NULL) || (node->next != NULL)))
- {
- GaimBlistNode *node2;
-
- alias = gaim_buddy_get_contact_alias((GaimBuddy *)node);
-
- /* We've found a buddy that matches this conversation. It's part of a
- * GaimContact with more than one GaimBuddy. Loop through the GaimBuddies
- * in the contact and get all the logs. */
- for (node2 = node->parent->child ; node2 != NULL ; node2 = node2->next)
- {
- logs = g_list_concat(
- gaim_log_get_logs(GAIM_LOG_IM,
- gaim_buddy_get_name((GaimBuddy *)node2),
- gaim_buddy_get_account((GaimBuddy *)node2)),
- logs);
- }
- break;
- }
- }
- g_slist_free(buddies);
-
- if (logs == NULL)
- logs = gaim_log_get_logs(GAIM_LOG_IM, name, account);
- else
- logs = g_list_sort(logs, gaim_log_compare);
- }
- else if (convtype == GAIM_CONV_TYPE_CHAT)
- {
- /* If we're not logging, don't show anything.
- * Otherwise, we might show a very old log. */
- if (!gaim_prefs_get_bool("/core/logging/log_chats"))
- return;
-
- logs = gaim_log_get_logs(GAIM_LOG_CHAT, name, account);
- }
-
- if (logs == NULL)
- return;
-
- history = gaim_log_read((GaimLog*)logs->data, &flags);
- gtkconv = GAIM_GTK_CONVERSATION(c);
- if (flags & GAIM_LOG_READ_NO_NEWLINE)
- options |= GTK_IMHTML_NO_NEWLINE;
-
- protocol = g_strdup(gtk_imhtml_get_protocol_name(GTK_IMHTML(gtkconv->imhtml)));
- gtk_imhtml_set_protocol_name(GTK_IMHTML(gtkconv->imhtml),
- gaim_account_get_protocol_name(((GaimLog*)logs->data)->account));
-
- if (gtk_text_buffer_get_char_count(gtk_text_view_get_buffer(GTK_TEXT_VIEW(gtkconv->imhtml))))
- gtk_imhtml_append_text(GTK_IMHTML(gtkconv->imhtml), "
", options);
-
- header = g_strdup_printf(_("Conversation with %s on %s:
"), alias,
- gaim_date_format_full(localtime(&((GaimLog *)logs->data)->time)));
- gtk_imhtml_append_text(GTK_IMHTML(gtkconv->imhtml), header, options);
- g_free(header);
-
- g_strchomp(history);
- gtk_imhtml_append_text(GTK_IMHTML(gtkconv->imhtml), history, options);
- g_free(history);
-
- gtk_imhtml_append_text(GTK_IMHTML(gtkconv->imhtml), "