Mercurial > pidgin
view plugins/history.c @ 6463:eafaf58b61b6
[gaim-migrate @ 6972]
(23:03:49) Robot101: LSchiere: GAIM_{ERROR,WARNING,INFO,...} and EDIT_{GC,GROUP,BUDDY} in ui.h are unused and can be garbage collected
(23:04:10) Robot101: HEH
(23:04:16) Robot101: I never knew core.h had trogdor in it =)
(23:04:26) LSchiere: those are semi-namespaced, does ChipX86|Gone have plans for them?
(23:04:41) Robot101: they're deprecated.
(23:04:46) Robot101: not used anywhere in code
(23:05:01) Robot101: left over garbage from a subsystem rewritten years ago... =)
(23:05:26) LSchiere: icq.c uses GAIM_ERROR
(23:06:05) Robot101: icq.c hasn't had a rat's chance in hell of compiling since about 0.64 =)
(23:06:16) LSchiere: lol, yeah that's probly true
(23:06:30) Robot101: it still uses do_error_dialog
(23:06:35) Robot101: which is, er, gone. =)
(23:06:56) LSchiere: GAIM_LOGO is that used?
(23:07:04) Robot101: no
(23:07:18) Robot101: those 4 were for selecting the icons in the error dialog
(23:07:23) Robot101: which is long gone
(23:07:34) Robot101: and I have NFI what EDIT_* were, but they're not used either
(23:08:06) Robot101: some day soon ui.h will be totally gone
(23:08:07) ***Robot101 drools
committer: Tailor Script <tailor@pidgin.im>
author | Luke Schierer <lschiere@pidgin.im> |
---|---|
date | Thu, 14 Aug 2003 03:08:25 +0000 |
parents | 8f94cce8faa5 |
children | 70d5122bc3ff |
line wrap: on
line source
/* Puts last 4k of log in new conversations a la Everybuddy (and then * stolen by Trillian "Pro") */ #include "gtkinternal.h" #include "conversation.h" #include "debug.h" #include "prefs.h" #include "util.h" #include "gtkconv.h" #include "gtkimhtml.h" #include "gtkplugin.h" #define HISTORY_PLUGIN_ID "gtk-history" #define HISTORY_SIZE (4 * 1024) void historize (char *name, void *data) { GaimConversation *c = gaim_find_conversation(name); GaimGtkConversation *gtkconv; struct stat st; FILE *fd; char *userdir = g_strdup(gaim_user_dir()); char *logfile = g_strdup_printf("%s.log", normalize(name)); char *path = g_build_filename(userdir, "logs", logfile, NULL); char buf[HISTORY_SIZE+1]; char *tmp, *tmp2; int size; GtkIMHtmlOptions options = GTK_IMHTML_NO_COLOURS; if (stat(path, &st) || S_ISDIR(st.st_mode) || st.st_size == 0 || !(fd = fopen(path, "r"))) { g_free(userdir); g_free(logfile); g_free(path); return; } fseek(fd, st.st_size > HISTORY_SIZE ? st.st_size - HISTORY_SIZE : 0, SEEK_SET); size = fread(buf, 1, HISTORY_SIZE, fd); tmp = buf; tmp[size] = 0; /* start the history at a newline */ while (*tmp && *tmp != '\n') tmp++; if (*tmp) tmp++; if(*tmp == '<') options |= GTK_IMHTML_NO_NEWLINE; if (gaim_prefs_get_bool("/gaim/gtk/conversations/show_urls_as_links")) tmp2 = linkify_text(tmp); else tmp2 = g_strdup(tmp); gtkconv = GAIM_GTK_CONVERSATION(c); gtk_imhtml_append_text(GTK_IMHTML(gtkconv->imhtml), tmp2, strlen(tmp2), options); g_free(tmp2); g_free(userdir); g_free(logfile); g_free(path); } static gboolean plugin_load(GaimPlugin *plugin) { gaim_signal_connect(plugin, event_new_conversation, historize, NULL); return TRUE; } static GaimPluginInfo info = { 2, GAIM_PLUGIN_STANDARD, GAIM_GTK_PLUGIN_TYPE, 0, NULL, GAIM_PRIORITY_DEFAULT, HISTORY_PLUGIN_ID, N_("History"), VERSION, N_("Shows recently logged conversations in new conversations."), N_("When a new conversation is opened this plugin will insert the last XXX of the last conversation into the current conversation."), "Sean Egan <bj91704@binghamton.edu>", GAIM_WEBSITE, plugin_load, NULL, NULL, NULL, NULL }; static void init_plugin(GaimPlugin *plugin) { } GAIM_INIT_PLUGIN(history, init_plugin, info)