Index: gaim-otr-pidgin.patch =================================================================== RCS file: gaim-otr-pidgin.patch diff -N gaim-otr-pidgin.patch --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ gaim-otr-pidgin.patch 11 May 2007 17:49:42 -0000 @@ -0,0 +1,1681 @@ +diff -ur gaim-otr.gaim/configure.ac gaim-otr.pidgin/configure.ac +--- gaim-otr.gaim/configure.ac 2005-11-02 22:04:47.000000000 +0000 ++++ gaim-otr.pidgin/configure.ac 2007-05-11 18:32:08.000000000 +0100 +@@ -19,6 +19,6 @@ + + AM_PATH_LIBOTR(3.0.0,,AC_MSG_ERROR(libotr 3.0.0 or newer is required.)) + +-PKG_CHECK_MODULES(EXTRA, glib-2.0 >= 2.4 gtk+-2.0 >= 2.4 gaim >= 1.0, , AC_MSG_ERROR(glib, gtk and gaim required)) ++PKG_CHECK_MODULES(EXTRA, glib-2.0 >= 2.4 gtk+-2.0 >= 2.4 pidgin >= 2.0, , AC_MSG_ERROR(glib, gtk and pidgin required)) + + AC_OUTPUT([Makefile]) +diff -ur gaim-otr.gaim/dialogs.c gaim-otr.pidgin/dialogs.c +--- gaim-otr.gaim/dialogs.c 2005-10-19 18:26:53.000000000 +0100 ++++ gaim-otr.pidgin/dialogs.c 2007-05-11 18:32:08.000000000 +0100 +@@ -49,10 +49,10 @@ + return ui_ops; + } + +-/* This is just like gaim_notify_message, except: (a) it doesn't grab ++/* This is just like purple_notify_message, except: (a) it doesn't grab + * keyboard focus, (b) the button is "OK" instead of "Close", and (c) + * the labels aren't limited to 2K. */ +-void otrg_dialog_notify_message(GaimNotifyMsgType type, ++void otrg_dialog_notify_message(PurpleNotifyMsgType type, + const char *accountname, const char *protocol, const char *username, + const char *title, const char *primary, const char *secondary) + { +@@ -65,7 +65,7 @@ + const char *username, const char *title, const char *primary, + const char *secondary) + { +- otrg_dialog_notify_message(GAIM_NOTIFY_MSG_ERROR, accountname, ++ otrg_dialog_notify_message(PURPLE_NOTIFY_MSG_ERROR, accountname, + protocol, username, title, primary, secondary); + } + +@@ -74,7 +74,7 @@ + const char *username, const char *title, const char *primary, + const char *secondary) + { +- otrg_dialog_notify_message(GAIM_NOTIFY_MSG_WARNING, accountname, ++ otrg_dialog_notify_message(PURPLE_NOTIFY_MSG_WARNING, accountname, + protocol, username, title, primary, secondary); + } + +@@ -83,7 +83,7 @@ + const char *username, const char *title, const char *primary, + const char *secondary) + { +- otrg_dialog_notify_message(GAIM_NOTIFY_MSG_INFO, accountname, ++ otrg_dialog_notify_message(PURPLE_NOTIFY_MSG_INFO, accountname, + protocol, username, title, primary, secondary); + } + +@@ -160,13 +160,13 @@ + } + + /* Set up the per-conversation information display */ +-void otrg_dialog_new_conv(GaimConversation *conv) ++void otrg_dialog_new_conv(PurpleConversation *conv) + { + ui_ops->new_conv(conv); + } + + /* Remove the per-conversation information display */ +-void otrg_dialog_remove_conv(GaimConversation *conv) ++void otrg_dialog_remove_conv(PurpleConversation *conv) + { + ui_ops->remove_conv(conv); + } +diff -ur gaim-otr.gaim/dialogs.h gaim-otr.pidgin/dialogs.h +--- gaim-otr.gaim/dialogs.h 2005-10-19 18:26:53.000000000 +0100 ++++ gaim-otr.pidgin/dialogs.h 2007-05-11 18:32:08.000000000 +0100 +@@ -37,7 +37,7 @@ + typedef struct s_OtrgDialogWait *OtrgDialogWaitHandle; + + typedef struct { +- void (*notify_message)(GaimNotifyMsgType type, ++ void (*notify_message)(PurpleNotifyMsgType type, + const char *accountname, const char *protocol, const char *username, + const char *title, const char *primary, const char *secondary); + +@@ -65,9 +65,9 @@ + + void (*resensitize_all)(void); + +- void (*new_conv)(GaimConversation *conv); ++ void (*new_conv)(PurpleConversation *conv); + +- void (*remove_conv)(GaimConversation *conv); ++ void (*remove_conv)(PurpleConversation *conv); + } OtrgDialogUiOps; + + /* Set the UI ops */ +@@ -76,10 +76,10 @@ + /* Get the UI ops */ + const OtrgDialogUiOps *otrg_dialog_get_ui_ops(void); + +-/* This is just like gaim_notify_message, except: (a) it doesn't grab ++/* This is just like purple_notify_message, except: (a) it doesn't grab + * keyboard focus, (b) the button is "OK" instead of "Close", and (c) + * the labels aren't limited to 2K. */ +-void otrg_dialog_notify_message(GaimNotifyMsgType type, ++void otrg_dialog_notify_message(PurpleNotifyMsgType type, + const char *accountname, const char *protocol, const char *username, + const char *title, const char *primary, const char *secondary); + +@@ -141,9 +141,9 @@ + void otrg_dialog_resensitize_all(void); + + /* Set up the per-conversation information display */ +-void otrg_dialog_new_conv(GaimConversation *conv); ++void otrg_dialog_new_conv(PurpleConversation *conv); + + /* Remove the per-conversation information display */ +-void otrg_dialog_remove_conv(GaimConversation *conv); ++void otrg_dialog_remove_conv(PurpleConversation *conv); + + #endif +diff -ur gaim-otr.gaim/gtk-dialog.c gaim-otr.pidgin/gtk-dialog.c +--- gaim-otr.gaim/gtk-dialog.c 2005-12-18 18:33:48.000000000 +0000 ++++ gaim-otr.pidgin/gtk-dialog.c 2007-05-11 18:40:03.000000000 +0100 +@@ -27,10 +27,10 @@ + + /* gaim headers */ + #include "version.h" +-#if GAIM_MAJOR_VERSION < 2 ++#if PURPLE_MAJOR_VERSION < 2 + #include "stock.h" + #else +-#include "gtkstock.h" ++#include "pidginstock.h" + #endif + #include "plugin.h" + #include "notify.h" +@@ -633,7 +633,7 @@ + gtk_widget_destroy(GTK_WIDGET(widget)); + } + +-static GtkWidget *create_dialog(GaimNotifyMsgType type, const char *title, ++static GtkWidget *create_dialog(PurpleNotifyMsgType type, const char *title, + const char *primary, const char *secondary, int sensitive, + GtkWidget **labelp, void (*add_custom)(GtkWidget *vbox, void *data), + void *add_custom_data) +@@ -647,16 +647,16 @@ + const char *icon_name = NULL; + + switch (type) { +- case GAIM_NOTIFY_MSG_ERROR: +- icon_name = GAIM_STOCK_DIALOG_ERROR; ++ case PURPLE_NOTIFY_MSG_ERROR: ++ icon_name = PIDGIN_STOCK_DIALOG_ERROR; + break; + +- case GAIM_NOTIFY_MSG_WARNING: +- icon_name = GAIM_STOCK_DIALOG_WARNING; ++ case PURPLE_NOTIFY_MSG_WARNING: ++ icon_name = PIDGIN_STOCK_DIALOG_WARNING; + break; + +- case GAIM_NOTIFY_MSG_INFO: +- icon_name = GAIM_STOCK_DIALOG_INFO; ++ case PURPLE_NOTIFY_MSG_INFO: ++ icon_name = PIDGIN_STOCK_DIALOG_INFO; + break; + + default: +@@ -669,7 +669,7 @@ + gtk_misc_set_alignment(GTK_MISC(img), 0, 0); + } + +- dialog = gtk_dialog_new_with_buttons(title ? title : GAIM_ALERT_TITLE, ++ dialog = gtk_dialog_new_with_buttons(title ? title : "Pidgin", + NULL, 0, GTK_STOCK_OK, + GTK_RESPONSE_ACCEPT, NULL); + gtk_dialog_set_response_sensitive(GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT, +@@ -720,10 +720,10 @@ + return dialog; + } + +-/* This is just like gaim_notify_message, except: (a) it doesn't grab ++/* This is just like purple_notify_message, except: (a) it doesn't grab + * keyboard focus, (b) the button is "OK" instead of "Close", and (c) + * the labels aren't limited to 2K. */ +-static void otrg_gtk_dialog_notify_message(GaimNotifyMsgType type, ++static void otrg_gtk_dialog_notify_message(PurpleNotifyMsgType type, + const char *accountname, const char *protocol, const char *username, + const char *title, const char *primary, const char *secondary) + { +@@ -741,7 +741,7 @@ + static OtrgDialogWaitHandle otrg_gtk_dialog_private_key_wait_start( + const char *account, const char *protocol) + { +- GaimPlugin *p; ++ PurplePlugin *p; + const char *title = "Generating private key"; + const char *primary = "Please wait"; + char *secondary; +@@ -750,14 +750,14 @@ + GtkWidget *dialog; + OtrgDialogWaitHandle handle; + +- p = gaim_find_prpl(protocol); ++ p = purple_find_prpl(protocol); + protocol_print = (p ? p->info->name : "Unknown"); + + /* Create the Please Wait... dialog */ + secondary = g_strdup_printf("Generating private key for %s (%s)...", + account, protocol_print); + +- dialog = create_dialog(GAIM_NOTIFY_MSG_INFO, title, primary, secondary, ++ dialog = create_dialog(PURPLE_NOTIFY_MSG_INFO, title, primary, secondary, + 0, &label, NULL, NULL); + handle = malloc(sizeof(struct s_OtrgDialogWait)); + handle->dialog = dialog; +@@ -778,20 +778,20 @@ + const char *protocol, const char *username, const char *msg) + { + /* See if there's a conversation window we can put this in. */ +- GaimAccount *account; +- GaimConversation *conv; ++ PurpleAccount *account; ++ PurpleConversation *conv; + +- account = gaim_accounts_find(accountname, protocol); ++ account = purple_accounts_find(accountname, protocol); + if (!account) return -1; + +-#if GAIM_MAJOR_VERSION < 2 +- conv = gaim_find_conversation_with_account(username, account); ++#if PURPLE_MAJOR_VERSION < 2 ++ conv = purple_find_conversation_with_account(username, account); + #else +- conv = gaim_find_conversation_with_account(GAIM_CONV_TYPE_IM, username, account); ++ conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, username, account); + #endif + if (!conv) return -1; + +- gaim_conversation_write(conv, NULL, msg, GAIM_MESSAGE_SYSTEM, time(NULL)); ++ purple_conversation_write(conv, NULL, msg, PURPLE_MESSAGE_SYSTEM, time(NULL)); + + return 0; + } +@@ -846,7 +846,7 @@ + gtk_container_add(GTK_CONTAINER(more), scrl); + + imh = gtk_imhtml_new(NULL, NULL); +- gaim_setup_imhtml(imh); ++ pidgin_setup_imhtml(imh); + gtk_imhtml_append_text(GTK_IMHTML(imh), moremarkup, GTK_IMHTML_NO_SCROLL); + + gtk_container_add(GTK_CONTAINER(scrl), imh); +@@ -889,7 +889,7 @@ + { + char hash[45]; + char *primary, *secondary; +- GaimPlugin *p = gaim_find_prpl(protocol); ++ PurplePlugin *p = purple_find_prpl(protocol); + + otrl_privkey_hash_to_human(hash, fingerprint); + primary = g_strdup_printf("%s (%s) has received an unknown fingerprint " +@@ -897,7 +897,7 @@ + (p && p->info->name) ? p->info->name : "Unknown", who); + secondary = g_strdup_printf("%s\n", hash); + +- create_dialog(GAIM_NOTIFY_MSG_WARNING, "Unknown fingerprint", ++ create_dialog(PURPLE_NOTIFY_MSG_WARNING, "Unknown fingerprint", + primary, secondary, 1, NULL, add_unk_fingerprint_expander, NULL); + + g_free(primary); +@@ -906,7 +906,7 @@ + + static void otrg_gtk_dialog_clicked_connect(GtkWidget *widget, gpointer data); + +-static void dialog_update_label_conv(GaimConversation *conv, TrustLevel level) ++static void dialog_update_label_conv(PurpleConversation *conv, TrustLevel level) + { + GtkWidget *label; + GtkWidget *icon; +@@ -917,23 +917,23 @@ + GtkWidget *menuquerylabel; + GtkWidget *menuview; + GtkWidget *menuverf; +-#if GAIM_MAJOR_VERSION < 2 ++#if PURPLE_MAJOR_VERSION < 2 + /* gaim-2.0.0 no longer has the row of buttons, so it doesn't have + * the button_type pref */ +- GaimButtonStyle buttonstyle; ++ PurpleButtonStyle buttonstyle; + #endif +- GaimGtkConversation *gtkconv = GAIM_GTK_CONVERSATION(conv); +- label = gaim_conversation_get_data(conv, "otr-label"); +- icon = gaim_conversation_get_data(conv, "otr-icon"); +- icontext = gaim_conversation_get_data(conv, "otr-icontext"); +- button = gaim_conversation_get_data(conv, "otr-button"); +- menuquery = gaim_conversation_get_data(conv, "otr-menuquery"); ++ PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv); ++ label = purple_conversation_get_data(conv, "otr-label"); ++ icon = purple_conversation_get_data(conv, "otr-icon"); ++ icontext = purple_conversation_get_data(conv, "otr-icontext"); ++ button = purple_conversation_get_data(conv, "otr-button"); ++ menuquery = purple_conversation_get_data(conv, "otr-menuquery"); + menuquerylabel = gtk_bin_get_child(GTK_BIN(menuquery)); +- menuend = gaim_conversation_get_data(conv, "otr-menuend"); +- menuview = gaim_conversation_get_data(conv, "otr-menuview"); +- menuverf = gaim_conversation_get_data(conv, "otr-menuverf"); +-#if GAIM_MAJOR_VERSION < 2 +- buttonstyle = gaim_prefs_get_int("/gaim/gtk/conversations/button_type"); ++ menuend = purple_conversation_get_data(conv, "otr-menuend"); ++ menuview = purple_conversation_get_data(conv, "otr-menuview"); ++ menuverf = purple_conversation_get_data(conv, "otr-menuverf"); ++#if PURPLE_MAJOR_VERSION < 2 ++ buttonstyle = purple_prefs_get_int(PIDGIN_PREFS_ROOT "/conversations/button_type"); + #endif + + /* Set the button's icon, label and tooltip. */ +@@ -958,18 +958,18 @@ + gtk_widget_set_sensitive(GTK_WIDGET(menuverf), level != TRUST_NOT_PRIVATE); + + /* Use any non-NULL value for "private", NULL for "not private" */ +- gaim_conversation_set_data(conv, "otr-private", ++ purple_conversation_set_data(conv, "otr-private", + level == TRUST_NOT_PRIVATE ? NULL : conv); + + /* Set the appropriate visibility */ + gtk_widget_show_all(button); +-#if GAIM_MAJOR_VERSION < 2 +- if (buttonstyle == GAIM_BUTTON_IMAGE) { ++#if PURPLE_MAJOR_VERSION < 2 ++ if (buttonstyle == PIDGIN_BUTTON_IMAGE) { + /* Hide the text */ + gtk_widget_hide(icontext); + gtk_widget_hide(label); + } +- if (buttonstyle == GAIM_BUTTON_TEXT) { ++ if (buttonstyle == PIDGIN_BUTTON_TEXT) { + /* Hide the icon */ + gtk_widget_hide(icontext); + gtk_widget_hide(icon); +@@ -979,16 +979,16 @@ + + static void dialog_update_label(ConnContext *context) + { +- GaimAccount *account; +- GaimConversation *conv; ++ PurpleAccount *account; ++ PurpleConversation *conv; + TrustLevel level = otrg_plugin_context_to_trust(context); + +- account = gaim_accounts_find(context->accountname, context->protocol); ++ account = purple_accounts_find(context->accountname, context->protocol); + if (!account) return; +-#if GAIM_MAJOR_VERSION < 2 +- conv = gaim_find_conversation_with_account(context->username, account); ++#if PURPLE_MAJOR_VERSION < 2 ++ conv = purple_find_conversation_with_account(context->username, account); + #else +- conv = gaim_find_conversation_with_account(GAIM_CONV_TYPE_IM, context->username, account); ++ conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, context->username, account); + #endif + if (!conv) return; + dialog_update_label_conv(conv, level); +@@ -1042,7 +1042,7 @@ + whichhalf == OTRL_SESSIONID_SECOND_HALF_BOLD ? + "weight=\"bold\"" : "", sess2); + +- dialog = create_dialog(GAIM_NOTIFY_MSG_INFO, "Private connection " ++ dialog = create_dialog(PURPLE_NOTIFY_MSG_INFO, "Private connection " + "established", primary, secondary, 1, NULL, + add_sessid_expander, NULL); + +@@ -1185,7 +1185,7 @@ + char *secondary; + struct vrfy_fingerprint_data *vfd; + ConnContext *context; +- GaimPlugin *p; ++ PurplePlugin *p; + char *proto_name; + + if (fprint == NULL) return; +@@ -1202,13 +1202,13 @@ + + otrl_privkey_hash_to_human(their_hash, fprint->fingerprint); + +- p = gaim_find_prpl(context->protocol); ++ p = purple_find_prpl(context->protocol); + proto_name = (p && p->info->name) ? p->info->name : "Unknown"; + secondary = g_strdup_printf("Fingerprint for you, %s (%s):\n%s\n\n" + "Purported fingerprint for %s:\n%s\n", context->accountname, + proto_name, our_hash, context->username, their_hash); + +- dialog = create_dialog(GAIM_NOTIFY_MSG_INFO, "Verify fingerprint", ++ dialog = create_dialog(PURPLE_NOTIFY_MSG_INFO, "Verify fingerprint", + primary, secondary, 1, NULL, add_vrfy_fingerprint, vfd); + g_signal_connect(G_OBJECT(dialog), "destroy", + G_CALLBACK(vrfy_fingerprint_destroyed), vfd); +@@ -1220,7 +1220,7 @@ + /* Call this when a context transitions to ENCRYPTED. */ + static void otrg_gtk_dialog_connected(ConnContext *context) + { +- GaimConversation *conv; ++ PurpleConversation *conv; + char *buf; + TrustLevel level; + +@@ -1234,11 +1234,11 @@ + /* This last case should never happen, since we know + * we're in ENCRYPTED. */ + "Not private", +- gaim_conversation_get_name(conv), ++ purple_conversation_get_name(conv), + context->protocol_version == 1 ? " Warning: using old " + "protocol version 1." : ""); + +- gaim_conversation_write(conv, NULL, buf, GAIM_MESSAGE_SYSTEM, time(NULL)); ++ purple_conversation_write(conv, NULL, buf, PURPLE_MESSAGE_SYSTEM, time(NULL)); + g_free(buf); + + dialog_update_label(context); +@@ -1247,14 +1247,14 @@ + /* Call this when a context transitions to PLAINTEXT. */ + static void otrg_gtk_dialog_disconnected(ConnContext *context) + { +- GaimConversation *conv; ++ PurpleConversation *conv; + char *buf; + + conv = otrg_plugin_context_to_conv(context, 1); + + buf = g_strdup_printf("Private conversation with %s lost.", +- gaim_conversation_get_name(conv)); +- gaim_conversation_write(conv, NULL, buf, GAIM_MESSAGE_SYSTEM, time(NULL)); ++ purple_conversation_get_name(conv)); ++ purple_conversation_write(conv, NULL, buf, PURPLE_MESSAGE_SYSTEM, time(NULL)); + g_free(buf); + + dialog_update_label(context); +@@ -1266,23 +1266,23 @@ + const char *protocol, const char *username) + { + /* See if there's a conversation window we can put this in. */ +- GaimAccount *account; +- GaimConversation *conv; ++ PurpleAccount *account; ++ PurpleConversation *conv; + char *buf; + +- account = gaim_accounts_find(accountname, protocol); ++ account = purple_accounts_find(accountname, protocol); + if (!account) return; + +-#if GAIM_MAJOR_VERSION < 2 +- conv = gaim_find_conversation_with_account(username, account); ++#if PURPLE_MAJOR_VERSION < 2 ++ conv = purple_find_conversation_with_account(username, account); + #else +- conv = gaim_find_conversation_with_account(GAIM_CONV_TYPE_IM, username, account); ++ conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, username, account); + #endif + if (!conv) return; + + buf = g_strdup_printf("%s has ended his private conversation with you; " +- "you should do the same.", gaim_conversation_get_name(conv)); +- gaim_conversation_write(conv, NULL, buf, GAIM_MESSAGE_SYSTEM, time(NULL)); ++ "you should do the same.", purple_conversation_get_name(conv)); ++ purple_conversation_write(conv, NULL, buf, PURPLE_MESSAGE_SYSTEM, time(NULL)); + g_free(buf); + + dialog_update_label_conv(conv, TRUST_FINISHED); +@@ -1292,7 +1292,7 @@ + * our state to change (because it was just the keys we knew already). */ + static void otrg_gtk_dialog_stillconnected(ConnContext *context) + { +- GaimConversation *conv; ++ PurpleConversation *conv; + char *buf; + TrustLevel level; + +@@ -1307,11 +1307,11 @@ + /* This last case should never happen, since we know + * we're in ENCRYPTED. */ + "not private", +- gaim_conversation_get_name(conv), ++ purple_conversation_get_name(conv), + context->protocol_version == 1 ? " Warning: using old " + "protocol version 1." : ""); + +- gaim_conversation_write(conv, NULL, buf, GAIM_MESSAGE_SYSTEM, time(NULL)); ++ purple_conversation_write(conv, NULL, buf, PURPLE_MESSAGE_SYSTEM, time(NULL)); + g_free(buf); + + dialog_update_label(context); +@@ -1323,15 +1323,15 @@ + { + const char *format; + char *buf; +- GaimConversation *conv = data; ++ PurpleConversation *conv = data; + +- if (gaim_conversation_get_data(conv, "otr-private")) { ++ if (purple_conversation_get_data(conv, "otr-private")) { + format = "Attempting to refresh the private conversation with %s..."; + } else { + format = "Attempting to start a private conversation with %s..."; + } +- buf = g_strdup_printf(format, gaim_conversation_get_name(conv)); +- gaim_conversation_write(conv, NULL, buf, GAIM_MESSAGE_SYSTEM, time(NULL)); ++ buf = g_strdup_printf(format, purple_conversation_get_name(conv)); ++ purple_conversation_write(conv, NULL, buf, PURPLE_MESSAGE_SYSTEM, time(NULL)); + g_free(buf); + + otrg_plugin_send_default_query_conv(conv); +@@ -1339,7 +1339,7 @@ + + static void view_sessionid(GtkWidget *widget, gpointer data) + { +- GaimConversation *conv = data; ++ PurpleConversation *conv = data; + ConnContext *context = otrg_plugin_conv_to_context(conv); + + if (context == NULL || context->msgstate != OTRL_MSGSTATE_ENCRYPTED) +@@ -1350,7 +1350,7 @@ + + static void verify_fingerprint(GtkWidget *widget, gpointer data) + { +- GaimConversation *conv = data; ++ PurpleConversation *conv = data; + ConnContext *context = otrg_plugin_conv_to_context(conv); + + if (context == NULL || context->msgstate != OTRL_MSGSTATE_ENCRYPTED) +@@ -1361,27 +1361,27 @@ + + static void menu_whatsthis(GtkWidget *widget, gpointer data) + { +- gaim_notify_uri(otrg_plugin_handle, BUTTON_HELPURL); ++ purple_notify_uri(otrg_plugin_handle, BUTTON_HELPURL); + } + + static void menu_end_private_conversation(GtkWidget *widget, gpointer data) + { +- GaimConversation *conv = data; ++ PurpleConversation *conv = data; + ConnContext *context = otrg_plugin_conv_to_context(conv); + + otrg_ui_disconnect_connection(context); + } + +-static void dialog_resensitize(GaimConversation *conv); ++static void dialog_resensitize(PurpleConversation *conv); + + /* If the OTR button is right-clicked, show the context menu. */ + static gboolean button_pressed(GtkWidget *w, GdkEventButton *event, + gpointer data) + { +- GaimConversation *conv = data; ++ PurpleConversation *conv = data; + + if ((event->button == 3) && (event->type == GDK_BUTTON_PRESS)) { +- GtkWidget *menu = gaim_conversation_get_data(conv, "otr-menu"); ++ GtkWidget *menu = purple_conversation_get_data(conv, "otr-menu"); + if (menu) { + gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, + 3, event->time); +@@ -1393,9 +1393,9 @@ + + /* If the OTR button gets destroyed on us, clean up the data we stored + * pointing to it. */ +-static void button_destroyed(GtkWidget *w, GaimConversation *conv) ++static void button_destroyed(GtkWidget *w, PurpleConversation *conv) + { +- GtkWidget *menu = gaim_conversation_get_data(conv, "otr-menu"); ++ GtkWidget *menu = purple_conversation_get_data(conv, "otr-menu"); + if (menu) gtk_object_destroy(GTK_OBJECT(menu)); + g_hash_table_remove(conv->data, "otr-label"); + g_hash_table_remove(conv->data, "otr-button"); +@@ -1410,9 +1410,9 @@ + } + + /* Set up the per-conversation information display */ +-static void otrg_gtk_dialog_new_conv(GaimConversation *conv) ++static void otrg_gtk_dialog_new_conv(PurpleConversation *conv) + { +- GaimGtkConversation *gtkconv = GAIM_GTK_CONVERSATION(conv); ++ PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv); + ConnContext *context; + GtkWidget *bbox; + GtkWidget *button; +@@ -1431,18 +1431,18 @@ + GtkWidget *whatsthis; + + /* Do nothing if this isn't an IM conversation */ +-#if GAIM_MAJOR_VERSION < 2 +- if (gaim_conversation_get_type(conv) != GAIM_CONV_IM) return; ++#if PURPLE_MAJOR_VERSION < 2 ++ if (purple_conversation_get_type(conv) != PURPLE_CONV_IM) return; + bbox = gtkconv->bbox; + #else +- if (gaim_conversation_get_type(conv) != GAIM_CONV_TYPE_IM) return; ++ if (purple_conversation_get_type(conv) != PURPLE_CONV_TYPE_IM) return; + bbox = gtkconv->lower_hbox; + #endif + + context = otrg_plugin_conv_to_context(conv); + + /* See if we're already set up */ +- button = gaim_conversation_get_data(conv, "otr-button"); ++ button = purple_conversation_get_data(conv, "otr-button"); + if (button) { + /* Check if we've been removed from the bbox; gaim does this + * when the user changes her prefs for the style of buttons to +@@ -1508,15 +1508,15 @@ + gtk_menu_shell_append(GTK_MENU_SHELL(menu), whatsthis); + gtk_widget_show(whatsthis); + +- gaim_conversation_set_data(conv, "otr-label", label); +- gaim_conversation_set_data(conv, "otr-button", button); +- gaim_conversation_set_data(conv, "otr-icon", icon); +- gaim_conversation_set_data(conv, "otr-icontext", icontext); +- gaim_conversation_set_data(conv, "otr-menu", menu); +- gaim_conversation_set_data(conv, "otr-menuquery", menuquery); +- gaim_conversation_set_data(conv, "otr-menuend", menuend); +- gaim_conversation_set_data(conv, "otr-menuview", menuview); +- gaim_conversation_set_data(conv, "otr-menuverf", menuverf); ++ purple_conversation_set_data(conv, "otr-label", label); ++ purple_conversation_set_data(conv, "otr-button", button); ++ purple_conversation_set_data(conv, "otr-icon", icon); ++ purple_conversation_set_data(conv, "otr-icontext", icontext); ++ purple_conversation_set_data(conv, "otr-menu", menu); ++ purple_conversation_set_data(conv, "otr-menuquery", menuquery); ++ purple_conversation_set_data(conv, "otr-menuend", menuend); ++ purple_conversation_set_data(conv, "otr-menuview", menuview); ++ purple_conversation_set_data(conv, "otr-menuverf", menuverf); + gtk_signal_connect(GTK_OBJECT(menuquery), "activate", + GTK_SIGNAL_FUNC(otrg_gtk_dialog_clicked_connect), conv); + gtk_signal_connect(GTK_OBJECT(menuend), "activate", +@@ -1539,39 +1539,39 @@ + } + + /* Remove the per-conversation information display */ +-static void otrg_gtk_dialog_remove_conv(GaimConversation *conv) ++static void otrg_gtk_dialog_remove_conv(PurpleConversation *conv) + { + GtkWidget *button; + + /* Do nothing if this isn't an IM conversation */ +-#if GAIM_MAJOR_VERSION < 2 +- if (gaim_conversation_get_type(conv) != GAIM_CONV_IM) return; ++#if PURPLE_MAJOR_VERSION < 2 ++ if (purple_conversation_get_type(conv) != PURPLE_CONV_IM) return; + #else +- if (gaim_conversation_get_type(conv) != GAIM_CONV_TYPE_IM) return; ++ if (purple_conversation_get_type(conv) != PURPLE_CONV_TYPE_IM) return; + #endif + +- button = gaim_conversation_get_data(conv, "otr-button"); ++ button = purple_conversation_get_data(conv, "otr-button"); + if (button) gtk_object_destroy(GTK_OBJECT(button)); + } + + /* Set the OTR button to "sensitive" or "insensitive" as appropriate. */ +-static void dialog_resensitize(GaimConversation *conv) ++static void dialog_resensitize(PurpleConversation *conv) + { +- GaimAccount *account; +- GaimConnection *connection; ++ PurpleAccount *account; ++ PurpleConnection *connection; + GtkWidget *button; + const char *name; + OtrlPolicy policy; + + /* Do nothing if this isn't an IM conversation */ +-#if GAIM_MAJOR_VERSION < 2 +- if (gaim_conversation_get_type(conv) != GAIM_CONV_IM) return; ++#if PURPLE_MAJOR_VERSION < 2 ++ if (purple_conversation_get_type(conv) != PURPLE_CONV_IM) return; + #else +- if (gaim_conversation_get_type(conv) != GAIM_CONV_TYPE_IM) return; ++ if (purple_conversation_get_type(conv) != PURPLE_CONV_TYPE_IM) return; + #endif + +- account = gaim_conversation_get_account(conv); +- name = gaim_conversation_get_name(conv); ++ account = purple_conversation_get_account(conv); ++ name = purple_conversation_get_name(conv); + policy = otrg_ui_find_policy(account, name); + + if (policy == OTRL_POLICY_NEVER) { +@@ -1579,10 +1579,10 @@ + } else { + otrg_gtk_dialog_new_conv(conv); + } +- button = gaim_conversation_get_data(conv, "otr-button"); ++ button = purple_conversation_get_data(conv, "otr-button"); + if (!button) return; + if (account) { +- connection = gaim_account_get_connection(account); ++ connection = purple_account_get_connection(account); + if (connection) { + /* Set the button to "sensitive" */ + gtk_widget_set_sensitive(button, 1); +@@ -1597,7 +1597,7 @@ + * Call this when accounts are logged in or out. */ + static void otrg_gtk_dialog_resensitize_all(void) + { +- gaim_conversation_foreach(dialog_resensitize); ++ purple_conversation_foreach(dialog_resensitize); + } + + static const OtrgDialogUiOps gtk_dialog_ui_ops = { +diff -ur gaim-otr.gaim/gtk-ui.c gaim-otr.pidgin/gtk-ui.c +--- gaim-otr.gaim/gtk-ui.c 2005-10-16 16:59:34.000000000 +0100 ++++ gaim-otr.pidgin/gtk-ui.c 2007-05-11 18:32:08.000000000 +0100 +@@ -65,7 +65,7 @@ + "Finished" + }; + +-static void account_menu_changed_cb(GtkWidget *item, GaimAccount *account, ++static void account_menu_changed_cb(GtkWidget *item, PurpleAccount *account, + void *data) + { + const char *accountname; +@@ -76,8 +76,8 @@ + + if (account) { + char fingerprint_buf[45]; +- accountname = gaim_account_get_username(account); +- protocol = gaim_account_get_protocol_id(account); ++ accountname = purple_account_get_username(account); ++ protocol = purple_account_get_protocol_id(account); + fingerprint = otrl_privkey_fingerprint(otrg_plugin_userstate, + fingerprint_buf, accountname, protocol); + +@@ -111,7 +111,7 @@ + return gtk_menu_get_active(GTK_MENU(menu)); + } + +-static GaimAccount *item_get_account(GtkWidget *item) ++static PurpleAccount *item_get_account(GtkWidget *item) + { + if (!item) return NULL; + return g_object_get_data(G_OBJECT(item), "account"); +@@ -122,7 +122,7 @@ + static void otrg_gtk_ui_update_fingerprint(void) + { + GtkWidget *item; +- GaimAccount *account; ++ PurpleAccount *account; + gpointer user_data; + + item = accountmenu_get_selected_item(); +@@ -136,7 +136,7 @@ + account_menu_changed_cb(item, account, user_data); + } + +-static void account_menu_added_removed_cb(GaimAccount *account, void *data) ++static void account_menu_added_removed_cb(PurpleAccount *account, void *data) + { + otrg_gtk_ui_update_fingerprint(); + } +@@ -170,7 +170,7 @@ + for (context = otrg_plugin_userstate->context_root; context != NULL; + context = context->next) { + int i; +- GaimPlugin *p; ++ PurplePlugin *p; + char *proto_name; + fingerprint = context->fingerprint_root.next; + /* If there's no fingerprint, don't add it to the known +@@ -188,7 +188,7 @@ + "Yes" : "No"; + otrl_privkey_hash_to_human(hash, fingerprint->fingerprint); + titles[3] = hash; +- p = gaim_find_prpl(context->protocol); ++ p = purple_find_prpl(context->protocol); + proto_name = (p && p->info->name) ? p->info->name : "Unknown"; + titles[4] = g_strdup_printf("%s (%s)", context->accountname, + proto_name); +@@ -216,13 +216,13 @@ + + static void generate(GtkWidget *widget, gpointer data) + { +- GaimAccount *account; ++ PurpleAccount *account; + account = item_get_account(accountmenu_get_selected_item()); + + if (account == NULL) return; + +- otrg_plugin_create_privkey(gaim_account_get_username(account), +- gaim_account_get_protocol_id(account)); ++ otrg_plugin_create_privkey(purple_account_get_username(account), ++ purple_account_get_protocol_id(account)); + } + + static void ui_destroyed(GtkObject *object) +@@ -445,10 +445,10 @@ + static void otrg_gtk_ui_global_prefs_load(gboolean *enabledp, + gboolean *automaticp, gboolean *onlyprivatep) + { +- if (gaim_prefs_exists("/OTR/enabled")) { +- *enabledp = gaim_prefs_get_bool("/OTR/enabled"); +- *automaticp = gaim_prefs_get_bool("/OTR/automatic"); +- *onlyprivatep = gaim_prefs_get_bool("/OTR/onlyprivate"); ++ if (purple_prefs_exists("/OTR/enabled")) { ++ *enabledp = purple_prefs_get_bool("/OTR/enabled"); ++ *automaticp = purple_prefs_get_bool("/OTR/automatic"); ++ *onlyprivatep = purple_prefs_get_bool("/OTR/onlyprivate"); + } else { + *enabledp = TRUE; + *automaticp = TRUE; +@@ -460,43 +460,43 @@ + static void otrg_gtk_ui_global_prefs_save(gboolean enabled, + gboolean automatic, gboolean onlyprivate) + { +- if (! gaim_prefs_exists("/OTR")) { +- gaim_prefs_add_none("/OTR"); ++ if (! purple_prefs_exists("/OTR")) { ++ purple_prefs_add_none("/OTR"); + } +- gaim_prefs_set_bool("/OTR/enabled", enabled); +- gaim_prefs_set_bool("/OTR/automatic", automatic); +- gaim_prefs_set_bool("/OTR/onlyprivate", onlyprivate); ++ purple_prefs_set_bool("/OTR/enabled", enabled); ++ purple_prefs_set_bool("/OTR/automatic", automatic); ++ purple_prefs_set_bool("/OTR/onlyprivate", onlyprivate); + } + + /* Load the OTR prefs for a particular buddy */ +-static void otrg_gtk_ui_buddy_prefs_load(GaimBuddy *buddy, ++static void otrg_gtk_ui_buddy_prefs_load(PurpleBuddy *buddy, + gboolean *usedefaultp, gboolean *enabledp, gboolean *automaticp, + gboolean *onlyprivatep) + { +- GaimBlistNode *node = &(buddy->node); ++ PurpleBlistNode *node = &(buddy->node); + +- *usedefaultp = ! gaim_blist_node_get_bool(node, "OTR/overridedefault"); ++ *usedefaultp = ! purple_blist_node_get_bool(node, "OTR/overridedefault"); + + if (*usedefaultp) { + otrg_gtk_ui_global_prefs_load(enabledp, automaticp, onlyprivatep); + } else { +- *enabledp = gaim_blist_node_get_bool(node, "OTR/enabled"); +- *automaticp = gaim_blist_node_get_bool(node, "OTR/automatic"); +- *onlyprivatep = gaim_blist_node_get_bool(node, "OTR/onlyprivate"); ++ *enabledp = purple_blist_node_get_bool(node, "OTR/enabled"); ++ *automaticp = purple_blist_node_get_bool(node, "OTR/automatic"); ++ *onlyprivatep = purple_blist_node_get_bool(node, "OTR/onlyprivate"); + } + } + + /* Save the OTR prefs for a particular buddy */ +-static void otrg_gtk_ui_buddy_prefs_save(GaimBuddy *buddy, ++static void otrg_gtk_ui_buddy_prefs_save(PurpleBuddy *buddy, + gboolean usedefault, gboolean enabled, gboolean automatic, + gboolean onlyprivate) + { +- GaimBlistNode *node = &(buddy->node); ++ PurpleBlistNode *node = &(buddy->node); + +- gaim_blist_node_set_bool(node, "OTR/overridedefault", !usedefault); +- gaim_blist_node_set_bool(node, "OTR/enabled", enabled); +- gaim_blist_node_set_bool(node, "OTR/automatic", automatic); +- gaim_blist_node_set_bool(node, "OTR/onlyprivate", onlyprivate); ++ purple_blist_node_set_bool(node, "OTR/overridedefault", !usedefault); ++ purple_blist_node_set_bool(node, "OTR/enabled", enabled); ++ purple_blist_node_set_bool(node, "OTR/automatic", automatic); ++ purple_blist_node_set_bool(node, "OTR/onlyprivate", onlyprivate); + } + + static void load_otroptions(struct otroptionsdata *oo) +@@ -537,18 +537,18 @@ + label = gtk_label_new("Key for account:"); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); + +- ui_layout.accountmenu = gaim_gtk_account_option_menu_new(NULL, 1, ++ ui_layout.accountmenu = pidgin_account_option_menu_new(NULL, 1, + G_CALLBACK(account_menu_changed_cb), NULL, NULL); + gtk_box_pack_start(GTK_BOX(hbox), ui_layout.accountmenu, TRUE, TRUE, 0); + + /* Make sure we notice if the menu changes because an account has + * been added or removed */ +- gaim_signal_connect(gaim_accounts_get_handle(), "account-added", ++ purple_signal_connect(purple_accounts_get_handle(), "account-added", + ui_layout.accountmenu, +- GAIM_CALLBACK(account_menu_added_removed_cb), NULL); +- gaim_signal_connect(gaim_accounts_get_handle(), "account-removed", ++ PURPLE_CALLBACK(account_menu_added_removed_cb), NULL); ++ purple_signal_connect(purple_accounts_get_handle(), "account-removed", + ui_layout.accountmenu, +- GAIM_CALLBACK(account_menu_added_removed_cb), NULL); ++ PURPLE_CALLBACK(account_menu_added_removed_cb), NULL); + + ui_layout.fprint_label = gtk_label_new(""); + gtk_label_set_selectable(GTK_LABEL(ui_layout.fprint_label), 1); +@@ -698,7 +698,7 @@ + } + + /* Construct the OTR UI widget */ +-GtkWidget* otrg_gtk_ui_make_widget(GaimPlugin *plugin) ++GtkWidget* otrg_gtk_ui_make_widget(PurplePlugin *plugin) + { + GtkWidget *vbox = gtk_vbox_new(FALSE, 5); + GtkWidget *fingerprintbox = gtk_vbox_new(FALSE, 5); +@@ -734,7 +734,7 @@ + + struct cbdata { + GtkWidget *dialog; +- GaimBuddy *buddy; ++ PurpleBuddy *buddy; + GtkWidget *defaultbox; + struct otroptionsdata oo; + }; +@@ -807,7 +807,7 @@ + gtk_widget_destroy(data->dialog); + } + +-static void otrg_gtk_ui_config_buddy(GaimBuddy *buddy) ++static void otrg_gtk_ui_config_buddy(PurpleBuddy *buddy) + { + GtkWidget *dialog; + GtkWidget *label; +@@ -835,7 +835,7 @@ + /* Set the title */ + + label_text = g_strdup_printf("" +- "OTR Settings for %s", gaim_buddy_get_contact_alias(buddy)); ++ "OTR Settings for %s", purple_buddy_get_contact_alias(buddy)); + + label = gtk_label_new(NULL); + +@@ -882,10 +882,10 @@ + } + + /* Calculate the policy for a particular account / username */ +-static OtrlPolicy otrg_gtk_ui_find_policy(GaimAccount *account, ++static OtrlPolicy otrg_gtk_ui_find_policy(PurpleAccount *account, + const char *name) + { +- GaimBuddy *buddy; ++ PurpleBuddy *buddy; + gboolean otrenabled, otrautomatic, otronlyprivate; + gboolean buddyusedefault, buddyenabled, buddyautomatic, buddyonlyprivate; + OtrlPolicy policy = OTRL_POLICY_DEFAULT; +@@ -907,7 +907,7 @@ + policy = OTRL_POLICY_NEVER; + } + +- buddy = gaim_find_buddy(account, name); ++ buddy = purple_find_buddy(account, name); + if (!buddy) return policy; + + /* Get the buddy-specific policy, if present */ +diff -ur gaim-otr.gaim/gtk-ui.h gaim-otr.pidgin/gtk-ui.h +--- gaim-otr.gaim/gtk-ui.h 2005-05-04 18:49:46.000000000 +0100 ++++ gaim-otr.pidgin/gtk-ui.h 2007-05-11 18:32:08.000000000 +0100 +@@ -21,7 +21,7 @@ + #define __OTRG_GTK_UI_H__ + + /* Construct the GTK OTR UI widget */ +-GtkWidget* otrg_gtk_ui_make_widget(GaimPlugin *plugin); ++GtkWidget* otrg_gtk_ui_make_widget(PurplePlugin *plugin); + + /* Get the GTK UI ops */ + const OtrgUiUiOps *otrg_gtk_ui_get_ui_ops(void); +diff -ur gaim-otr.gaim/Makefile.am gaim-otr.pidgin/Makefile.am +--- gaim-otr.gaim/Makefile.am 2005-05-04 18:49:46.000000000 +0100 ++++ gaim-otr.pidgin/Makefile.am 2007-05-11 18:35:25.000000000 +0100 +@@ -1,8 +1,8 @@ + AM_CFLAGS= @LIBGCRYPT_CFLAGS@ @LIBOTR_CFLAGS@ @EXTRA_CFLAGS@ +-AM_CFLAGS+= -DUSING_GTK -DGAIM_PLUGINS \ ++AM_CFLAGS+= -DUSING_GTK -DPURPLE_PLUGINS \ + -DGAIM_OTR_VERSION=\"@VERSION@\" + +-plugindir= ${libdir}/gaim ++plugindir= ${libdir}/pidgin + + plugin_LTLIBRARIES= gaim-otr.la + +diff -ur gaim-otr.gaim/otr-plugin.c gaim-otr.pidgin/otr-plugin.c +--- gaim-otr.gaim/otr-plugin.c 2006-01-20 15:22:06.000000000 +0000 ++++ gaim-otr.pidgin/otr-plugin.c 2007-05-11 18:32:08.000000000 +0100 +@@ -31,7 +31,7 @@ + #include + + /* gaim headers */ +-#include "gaim.h" ++ + #include "notify.h" + #include "version.h" + #include "util.h" +@@ -60,23 +60,23 @@ + #include "gtk-dialog.h" + #endif + +-GaimPlugin *otrg_plugin_handle; ++PurplePlugin *otrg_plugin_handle; + + /* We'll only use the one OtrlUserState. */ + OtrlUserState otrg_plugin_userstate = NULL; + + /* Send an IM from the given account to the given recipient. Display an + * error dialog if that account isn't currently logged in. */ +-void otrg_plugin_inject_message(GaimAccount *account, const char *recipient, ++void otrg_plugin_inject_message(PurpleAccount *account, const char *recipient, + const char *message) + { +- GaimConnection *connection; ++ PurpleConnection *connection; + +- connection = gaim_account_get_connection(account); ++ connection = purple_account_get_connection(account); + if (!connection) { +- const char *protocol = gaim_account_get_protocol_id(account); +- const char *accountname = gaim_account_get_username(account); +- GaimPlugin *p = gaim_find_prpl(protocol); ++ const char *protocol = purple_account_get_protocol_id(account); ++ const char *accountname = purple_account_get_username(account); ++ PurplePlugin *p = purple_find_prpl(protocol); + char *msg = g_strdup_printf("You are not currently connected to " + "account %s (%s).", accountname, + (p && p->info->name) ? p->info->name : "Unknown"); +@@ -90,12 +90,12 @@ + + static OtrlPolicy policy_cb(void *opdata, ConnContext *context) + { +- GaimAccount *account; ++ PurpleAccount *account; + OtrlPolicy policy = OTRL_POLICY_DEFAULT; + + if (!context) return policy; + +- account = gaim_accounts_find(context->accountname, context->protocol); ++ account = purple_accounts_find(context->accountname, context->protocol); + if (!account) return policy; + + return otrg_ui_find_policy(account, context->username); +@@ -103,7 +103,7 @@ + + static const char *protocol_name_cb(void *opdata, const char *protocol) + { +- GaimPlugin *p = gaim_find_prpl(protocol); ++ PurplePlugin *p = purple_find_prpl(protocol); + if (!p) return NULL; + return p->info->name; + } +@@ -120,7 +120,7 @@ + { + OtrgDialogWaitHandle waithandle; + +- gchar *privkeyfile = g_build_filename(gaim_user_dir(), PRIVKEYFNAME, NULL); ++ gchar *privkeyfile = g_build_filename(purple_user_dir(), PRIVKEYFNAME, NULL); + if (!privkeyfile) { + fprintf(stderr, "Out of memory building filenames!\n"); + return; +@@ -147,28 +147,28 @@ + static int is_logged_in_cb(void *opdata, const char *accountname, + const char *protocol, const char *recipient) + { +- GaimAccount *account; +- GaimBuddy *buddy; ++ PurpleAccount *account; ++ PurpleBuddy *buddy; + +- account = gaim_accounts_find(accountname, protocol); ++ account = purple_accounts_find(accountname, protocol); + if (!account) return -1; + +- buddy = gaim_find_buddy(account, recipient); ++ buddy = purple_find_buddy(account, recipient); + if (!buddy) return -1; + +-#if GAIM_MAJOR_VERSION < 2 +- return (buddy->present == GAIM_BUDDY_ONLINE); ++#if PURPLE_MAJOR_VERSION < 2 ++ return (buddy->present == PURPLE_BUDDY_ONLINE); + #else +- return (GAIM_BUDDY_IS_ONLINE(buddy)); ++ return (PURPLE_BUDDY_IS_ONLINE(buddy)); + #endif + } + + static void inject_message_cb(void *opdata, const char *accountname, + const char *protocol, const char *recipient, const char *message) + { +- GaimAccount *account = gaim_accounts_find(accountname, protocol); ++ PurpleAccount *account = purple_accounts_find(accountname, protocol); + if (!account) { +- GaimPlugin *p = gaim_find_prpl(protocol); ++ PurplePlugin *p = purple_find_prpl(protocol); + char *msg = g_strdup_printf("Unknown account %s (%s).", accountname, + (p && p->info->name) ? p->info->name : "Unknown"); + otrg_dialog_notify_error(accountname, protocol, recipient, +@@ -183,17 +183,17 @@ + const char *accountname, const char *protocol, const char *username, + const char *title, const char *primary, const char *secondary) + { +- GaimNotifyMsgType gaimlevel = GAIM_NOTIFY_MSG_ERROR; ++ PurpleNotifyMsgType gaimlevel = PURPLE_NOTIFY_MSG_ERROR; + + switch (level) { + case OTRL_NOTIFY_ERROR: +- gaimlevel = GAIM_NOTIFY_MSG_ERROR; ++ gaimlevel = PURPLE_NOTIFY_MSG_ERROR; + break; + case OTRL_NOTIFY_WARNING: +- gaimlevel = GAIM_NOTIFY_MSG_WARNING; ++ gaimlevel = PURPLE_NOTIFY_MSG_WARNING; + break; + case OTRL_NOTIFY_INFO: +- gaimlevel = GAIM_NOTIFY_MSG_INFO; ++ gaimlevel = PURPLE_NOTIFY_MSG_INFO; + break; + } + +@@ -245,7 +245,7 @@ + + static void log_message_cb(void *opdata, const char *message) + { +- gaim_debug_info("otr", message); ++ purple_debug_info("otr", message); + } + + static OtrlMessageAppOps ui_ops = { +@@ -266,19 +266,19 @@ + log_message_cb + }; + +-static void process_sending_im(GaimAccount *account, char *who, char **message, ++static void process_sending_im(PurpleAccount *account, char *who, char **message, + void *m) + { + char *newmessage = NULL; +- const char *accountname = gaim_account_get_username(account); +- const char *protocol = gaim_account_get_protocol_id(account); ++ const char *accountname = purple_account_get_username(account); ++ const char *protocol = purple_account_get_protocol_id(account); + char *username; + gcry_error_t err; + + if (!who || !message || !*message) + return; + +- username = strdup(gaim_normalize(account, who)); ++ username = strdup(purple_normalize(account, who)); + + err = otrl_message_sending(otrg_plugin_userstate, &ui_ops, NULL, + accountname, protocol, username, *message, NULL, &newmessage, +@@ -303,11 +303,11 @@ + + /* Send the default OTR Query message to the correspondent of the given + * context, from the given account. [account is actually a +- * GaimAccount*, but it's declared here as void* so this can be passed ++ * PurpleAccount*, but it's declared here as void* so this can be passed + * as a callback.] */ + void otrg_plugin_send_default_query(ConnContext *context, void *vaccount) + { +- GaimAccount *account = vaccount; ++ PurpleAccount *account = vaccount; + char *msg = otrl_proto_default_query_msg(context->accountname, + otrg_ui_find_policy(account, context->username)); + otrg_plugin_inject_message(account, context->username, +@@ -317,15 +317,15 @@ + + /* Send the default OTR Query message to the correspondent of the given + * conversation. */ +-void otrg_plugin_send_default_query_conv(GaimConversation *conv) ++void otrg_plugin_send_default_query_conv(PurpleConversation *conv) + { +- GaimAccount *account; ++ PurpleAccount *account; + const char *username, *accountname; + char *msg; + +- account = gaim_conversation_get_account(conv); +- accountname = gaim_account_get_username(account); +- username = gaim_conversation_get_name(conv); ++ account = purple_conversation_get_account(conv); ++ accountname = purple_account_get_username(account); ++ username = purple_conversation_get_name(conv); + + msg = otrl_proto_default_query_msg(accountname, + otrg_ui_find_policy(account, username)); +@@ -333,7 +333,7 @@ + free(msg); + } + +-static gboolean process_receiving_im(GaimAccount *account, char **who, ++static gboolean process_receiving_im(PurpleAccount *account, char **who, + char **message, int *flags, void *m) + { + char *newmessage = NULL; +@@ -347,9 +347,9 @@ + if (!who || !*who || !message || !*message) + return 0; + +- username = strdup(gaim_normalize(account, *who)); +- accountname = gaim_account_get_username(account); +- protocol = gaim_account_get_protocol_id(account); ++ username = strdup(purple_normalize(account, *who)); ++ accountname = purple_account_get_username(account); ++ protocol = purple_account_get_protocol_id(account); + + res = otrl_message_receiving(otrg_plugin_userstate, &ui_ops, NULL, + accountname, protocol, username, *message, +@@ -387,21 +387,21 @@ + return res; + } + +-static void process_conv_create(GaimConversation *conv, void *data) ++static void process_conv_create(PurpleConversation *conv, void *data) + { + if (conv) otrg_dialog_new_conv(conv); + } + +-static void process_connection_change(GaimConnection *conn, void *data) ++static void process_connection_change(PurpleConnection *conn, void *data) + { + /* If we log in or out of a connection, make sure all of the OTR + * buttons are in the appropriate sensitive/insensitive state. */ + otrg_dialog_resensitize_all(); + } + +-#if GAIM_MAJOR_VERSION < 2 ++#if PURPLE_MAJOR_VERSION < 2 + /* gaim-2.0.0 no longer has the row of buttons in question */ +-static void process_button_type_change(const char *name, GaimPrefType type, ++static void process_button_type_change(const char *name, PurplePrefType type, + gpointer value, gpointer data) + { + /* If the user changes the style of the buttons at the bottom of the +@@ -412,39 +412,39 @@ + } + #endif + +-static void otr_options_cb(GaimBlistNode *node, gpointer user_data) ++static void otr_options_cb(PurpleBlistNode *node, gpointer user_data) + { +- /* We've already checked GAIM_BLIST_NODE_IS_BUDDY(node) */ +- GaimBuddy *buddy = (GaimBuddy *)node; ++ /* We've already checked PURPLE_BLIST_NODE_IS_BUDDY(node) */ ++ PurpleBuddy *buddy = (PurpleBuddy *)node; + + /* Modify the settings for this buddy */ + otrg_ui_config_buddy(buddy); + } + +-static void supply_extended_menu(GaimBlistNode *node, GList **menu) ++static void supply_extended_menu(PurpleBlistNode *node, GList **menu) + { +-#if GAIM_MAJOR_VERSION < 2 +- GaimBlistNodeAction *act; ++#if PURPLE_MAJOR_VERSION < 2 ++ PurpleBlistNodeAction *act; + #else +- GaimMenuAction *act; ++ PurpleMenuAction *act; + #endif +- GaimBuddy *buddy; +- GaimAccount *acct; ++ PurpleBuddy *buddy; ++ PurpleAccount *acct; + const char *proto; + +- if (!GAIM_BLIST_NODE_IS_BUDDY(node)) return; ++ if (!PURPLE_BLIST_NODE_IS_BUDDY(node)) return; + + /* Extract the account, and then the protocol, for this buddy */ +- buddy = (GaimBuddy *)node; ++ buddy = (PurpleBuddy *)node; + acct = buddy->account; + if (acct == NULL) return; +- proto = gaim_account_get_protocol_id(acct); ++ proto = purple_account_get_protocol_id(acct); + if (!otrg_plugin_proto_supports_otr(proto)) return; + +-#if GAIM_MAJOR_VERSION < 2 +- act = gaim_blist_node_action_new("OTR Settings", otr_options_cb, NULL); ++#if PURPLE_MAJOR_VERSION < 2 ++ act = purple_blist_node_action_new("OTR Settings", otr_options_cb, NULL); + #else +- act = gaim_menu_action_new("OTR Settings", (GaimCallback)otr_options_cb, ++ act = purple_menu_action_new("OTR Settings", (PurpleCallback)otr_options_cb, + NULL, NULL); + #endif + *menu = g_list_append(*menu, act); +@@ -461,24 +461,24 @@ + /* Write the fingerprints to disk. */ + void otrg_plugin_write_fingerprints(void) + { +- gchar *storefile = g_build_filename(gaim_user_dir(), STOREFNAME, NULL); ++ gchar *storefile = g_build_filename(purple_user_dir(), STOREFNAME, NULL); + otrl_privkey_write_fingerprints(otrg_plugin_userstate, storefile); + g_free(storefile); + } + +-/* Find the ConnContext appropriate to a given GaimConversation. */ +-ConnContext *otrg_plugin_conv_to_context(GaimConversation *conv) ++/* Find the ConnContext appropriate to a given PurpleConversation. */ ++ConnContext *otrg_plugin_conv_to_context(PurpleConversation *conv) + { +- GaimAccount *account; ++ PurpleAccount *account; + char *username; + const char *accountname, *proto; + ConnContext *context; + +- account = gaim_conversation_get_account(conv); +- accountname = gaim_account_get_username(account); +- proto = gaim_account_get_protocol_id(account); ++ account = purple_conversation_get_account(conv); ++ accountname = purple_account_get_username(account); ++ proto = purple_account_get_protocol_id(account); + username = g_strdup( +- gaim_normalize(account, gaim_conversation_get_name(conv))); ++ purple_normalize(account, purple_conversation_get_name(conv))); + + context = otrl_context_find(otrg_plugin_userstate, username, accountname, + proto, 0, NULL, NULL, NULL); +@@ -487,27 +487,27 @@ + return context; + } + +-/* Find the GaimConversation appropriate to the given ConnContext. If ++/* Find the PurpleConversation appropriate to the given ConnContext. If + * one doesn't yet exist, create it if force_create is true. */ +-GaimConversation *otrg_plugin_context_to_conv(ConnContext *context, ++PurpleConversation *otrg_plugin_context_to_conv(ConnContext *context, + int force_create) + { +- GaimAccount *account; +- GaimConversation *conv; ++ PurpleAccount *account; ++ PurpleConversation *conv; + +- account = gaim_accounts_find(context->accountname, context->protocol); ++ account = purple_accounts_find(context->accountname, context->protocol); + if (account == NULL) return NULL; + +-#if GAIM_MAJOR_VERSION < 2 +- conv = gaim_find_conversation_with_account(context->username, account); ++#if PURPLE_MAJOR_VERSION < 2 ++ conv = purple_find_conversation_with_account(context->username, account); + #else +- conv = gaim_find_conversation_with_account(GAIM_CONV_TYPE_IM, context->username, account); ++ conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, context->username, account); + #endif + if (conv == NULL && force_create) { +-#if GAIM_MAJOR_VERSION < 2 +- conv = gaim_conversation_new(GAIM_CONV_IM, account, context->username); ++#if PURPLE_MAJOR_VERSION < 2 ++ conv = purple_conversation_new(PURPLE_CONV_IM, account, context->username); + #else +- conv = gaim_conversation_new(GAIM_CONV_TYPE_IM, account, context->username); ++ conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, context->username); + #endif + } + +@@ -547,19 +547,19 @@ + } + } + +-#if GAIM_MAJOR_VERSION < 2 ++#if PURPLE_MAJOR_VERSION < 2 + /* gaim-2.0.0 no longer has the row of buttons in question */ + static guint button_type_cbid; + #endif + +-static gboolean otr_plugin_load(GaimPlugin *handle) ++static gboolean otr_plugin_load(PurplePlugin *handle) + { +- gchar *privkeyfile = g_build_filename(gaim_user_dir(), PRIVKEYFNAME, NULL); +- gchar *storefile = g_build_filename(gaim_user_dir(), STOREFNAME, NULL); +- void *conv_handle = gaim_conversations_get_handle(); +- void *conn_handle = gaim_connections_get_handle(); +- void *blist_handle = gaim_blist_get_handle(); +- void *core_handle = gaim_get_core(); ++ gchar *privkeyfile = g_build_filename(purple_user_dir(), PRIVKEYFNAME, NULL); ++ gchar *storefile = g_build_filename(purple_user_dir(), STOREFNAME, NULL); ++ void *conv_handle = purple_conversations_get_handle(); ++ void *conn_handle = purple_connections_get_handle(); ++ void *blist_handle = purple_blist_get_handle(); ++ void *core_handle = purple_get_core(); + + if (!privkeyfile || !storefile) { + g_free(privkeyfile); +@@ -580,61 +580,61 @@ + + otrg_ui_update_fingerprint(); + +- gaim_signal_connect(core_handle, "quitting", otrg_plugin_handle, +- GAIM_CALLBACK(process_quitting), NULL); +- gaim_signal_connect(conv_handle, "sending-im-msg", otrg_plugin_handle, +- GAIM_CALLBACK(process_sending_im), NULL); +- gaim_signal_connect(conv_handle, "receiving-im-msg", otrg_plugin_handle, +- GAIM_CALLBACK(process_receiving_im), NULL); +- gaim_signal_connect(conv_handle, "conversation-created", +- otrg_plugin_handle, GAIM_CALLBACK(process_conv_create), NULL); +- gaim_signal_connect(conn_handle, "signed-on", otrg_plugin_handle, +- GAIM_CALLBACK(process_connection_change), NULL); +- gaim_signal_connect(conn_handle, "signed-off", otrg_plugin_handle, +- GAIM_CALLBACK(process_connection_change), NULL); +- gaim_signal_connect(blist_handle, "blist-node-extended-menu", +- otrg_plugin_handle, GAIM_CALLBACK(supply_extended_menu), NULL); +-#if GAIM_MAJOR_VERSION < 2 +- button_type_cbid = gaim_prefs_connect_callback( +- "/gaim/gtk/conversations/button_type", ++ purple_signal_connect(core_handle, "quitting", otrg_plugin_handle, ++ PURPLE_CALLBACK(process_quitting), NULL); ++ purple_signal_connect(conv_handle, "sending-im-msg", otrg_plugin_handle, ++ PURPLE_CALLBACK(process_sending_im), NULL); ++ purple_signal_connect(conv_handle, "receiving-im-msg", otrg_plugin_handle, ++ PURPLE_CALLBACK(process_receiving_im), NULL); ++ purple_signal_connect(conv_handle, "conversation-created", ++ otrg_plugin_handle, PURPLE_CALLBACK(process_conv_create), NULL); ++ purple_signal_connect(conn_handle, "signed-on", otrg_plugin_handle, ++ PURPLE_CALLBACK(process_connection_change), NULL); ++ purple_signal_connect(conn_handle, "signed-off", otrg_plugin_handle, ++ PURPLE_CALLBACK(process_connection_change), NULL); ++ purple_signal_connect(blist_handle, "blist-node-extended-menu", ++ otrg_plugin_handle, PURPLE_CALLBACK(supply_extended_menu), NULL); ++#if PURPLE_MAJOR_VERSION < 2 ++ button_type_cbid = purple_prefs_connect_callback( ++ PIDGIN_PREFS_ROOT "/conversations/button_type", + process_button_type_change, NULL); + #endif + +- gaim_conversation_foreach(otrg_dialog_new_conv); ++ purple_conversation_foreach(otrg_dialog_new_conv); + + return 1; + } + +-static gboolean otr_plugin_unload(GaimPlugin *handle) ++static gboolean otr_plugin_unload(PurplePlugin *handle) + { +- void *conv_handle = gaim_conversations_get_handle(); +- void *conn_handle = gaim_connections_get_handle(); +- void *blist_handle = gaim_blist_get_handle(); +- void *core_handle = gaim_get_core(); ++ void *conv_handle = purple_conversations_get_handle(); ++ void *conn_handle = purple_connections_get_handle(); ++ void *blist_handle = purple_blist_get_handle(); ++ void *core_handle = purple_get_core(); + + /* Clean up all of our state. */ + otrl_userstate_free(otrg_plugin_userstate); + otrg_plugin_userstate = NULL; + +- gaim_signal_disconnect(core_handle, "quitting", otrg_plugin_handle, +- GAIM_CALLBACK(process_quitting)); +- gaim_signal_disconnect(conv_handle, "sending-im-msg", otrg_plugin_handle, +- GAIM_CALLBACK(process_sending_im)); +- gaim_signal_disconnect(conv_handle, "receiving-im-msg", otrg_plugin_handle, +- GAIM_CALLBACK(process_receiving_im)); +- gaim_signal_disconnect(conv_handle, "conversation-created", +- otrg_plugin_handle, GAIM_CALLBACK(process_conv_create)); +- gaim_signal_disconnect(conn_handle, "signed-on", otrg_plugin_handle, +- GAIM_CALLBACK(process_connection_change)); +- gaim_signal_disconnect(conn_handle, "signed-off", otrg_plugin_handle, +- GAIM_CALLBACK(process_connection_change)); +- gaim_signal_disconnect(blist_handle, "blist-node-extended-menu", +- otrg_plugin_handle, GAIM_CALLBACK(supply_extended_menu)); +-#if GAIM_MAJOR_VERSION < 2 +- gaim_prefs_disconnect_callback(button_type_cbid); ++ purple_signal_disconnect(core_handle, "quitting", otrg_plugin_handle, ++ PURPLE_CALLBACK(process_quitting)); ++ purple_signal_disconnect(conv_handle, "sending-im-msg", otrg_plugin_handle, ++ PURPLE_CALLBACK(process_sending_im)); ++ purple_signal_disconnect(conv_handle, "receiving-im-msg", otrg_plugin_handle, ++ PURPLE_CALLBACK(process_receiving_im)); ++ purple_signal_disconnect(conv_handle, "conversation-created", ++ otrg_plugin_handle, PURPLE_CALLBACK(process_conv_create)); ++ purple_signal_disconnect(conn_handle, "signed-on", otrg_plugin_handle, ++ PURPLE_CALLBACK(process_connection_change)); ++ purple_signal_disconnect(conn_handle, "signed-off", otrg_plugin_handle, ++ PURPLE_CALLBACK(process_connection_change)); ++ purple_signal_disconnect(blist_handle, "blist-node-extended-menu", ++ otrg_plugin_handle, PURPLE_CALLBACK(supply_extended_menu)); ++#if PURPLE_MAJOR_VERSION < 2 ++ purple_prefs_disconnect_callback(button_type_cbid); + #endif + +- gaim_conversation_foreach(otrg_dialog_remove_conv); ++ purple_conversation_foreach(otrg_dialog_remove_conv); + + return 1; + } +@@ -652,13 +652,13 @@ + + #ifdef USING_GTK + +-static GaimGtkPluginUiInfo ui_info = ++static PidginPluginUiInfo ui_info = + { + otrg_gtk_ui_make_widget + }; + + #define UI_INFO &ui_info +-#define PLUGIN_TYPE GAIM_GTK_PLUGIN_TYPE ++#define PLUGIN_TYPE PIDGIN_PLUGIN_TYPE + + #else + +@@ -667,11 +667,11 @@ + + #endif + +-static GaimPluginInfo info = ++static PurplePluginInfo info = + { +- GAIM_PLUGIN_MAGIC, ++ PURPLE_PLUGIN_MAGIC, + +-#if GAIM_MAJOR_VERSION < 2 ++#if PURPLE_MAJOR_VERSION < 2 + /* We stick with the functions in the gaim 1.0.x API for + * compatibility. */ + 1, /* major version */ +@@ -682,11 +682,11 @@ + 0, /* minor version */ + #endif + +- GAIM_PLUGIN_STANDARD, /* type */ ++ PURPLE_PLUGIN_STANDARD, /* type */ + PLUGIN_TYPE, /* ui_requirement */ + 0, /* flags */ + NULL, /* dependencies */ +- GAIM_PRIORITY_DEFAULT, /* priority */ ++ PURPLE_PRIORITY_DEFAULT, /* priority */ + "otr", /* id */ + "Off-the-Record Messaging", /* name */ + GAIM_OTR_VERSION, /* version */ +@@ -711,7 +711,7 @@ + }; + + static void +-__init_plugin(GaimPlugin *plugin) ++__init_plugin(PurplePlugin *plugin) + { + /* Set up the UI ops */ + #ifdef USING_GTK +@@ -723,4 +723,4 @@ + OTRL_INIT; + } + +-GAIM_INIT_PLUGIN(otr, __init_plugin, info) ++PURPLE_INIT_PLUGIN(otr, __init_plugin, info) +diff -ur gaim-otr.gaim/otr-plugin.h gaim-otr.pidgin/otr-plugin.h +--- gaim-otr.gaim/otr-plugin.h 2005-10-16 16:59:34.000000000 +0100 ++++ gaim-otr.pidgin/otr-plugin.h 2007-05-11 18:32:08.000000000 +0100 +@@ -20,7 +20,7 @@ + #ifndef __OTRG_OTR_PLUGIN_H__ + #define __OTRG_OTR_PLUGIN_H__ + +-/* Gaim headers */ ++/* Purple headers */ + #include "account.h" + #include "plugin.h" + +@@ -31,13 +31,13 @@ + #define PRIVKEYFNAME "otr.private_key" + #define STOREFNAME "otr.fingerprints" + +-extern GaimPlugin *otrg_plugin_handle; ++extern PurplePlugin *otrg_plugin_handle; + + extern OtrlUserState otrg_plugin_userstate; + + /* Send an IM from the given account to the given recipient. Display an + * error dialog if that account isn't currently logged in. */ +-void otrg_plugin_inject_message(GaimAccount *account, const char *recipient, ++void otrg_plugin_inject_message(PurpleAccount *account, const char *recipient, + const char *message); + + /* Generate a private key for the given accountname/protocol */ +@@ -46,13 +46,13 @@ + + /* Send the default OTR Query message to the correspondent of the given + * context, from the given account. [account is actually a +- * GaimAccount*, but it's declared here as void* so this can be passed ++ * PurpleAccount*, but it's declared here as void* so this can be passed + * as a callback.] */ + void otrg_plugin_send_default_query(ConnContext *context, void *account); + + /* Send the default OTR Query message to the correspondent of the given + * conversation. */ +-void otrg_plugin_send_default_query_conv(GaimConversation *conv); ++void otrg_plugin_send_default_query_conv(PurpleConversation *conv); + + /* Disconnect a context, sending a notice to the other side, if + * appropriate. */ +@@ -61,12 +61,12 @@ + /* Write the fingerprints to disk. */ + void otrg_plugin_write_fingerprints(void); + +-/* Find the ConnContext appropriate to a given GaimConversation. */ +-ConnContext *otrg_plugin_conv_to_context(GaimConversation *conv); ++/* Find the ConnContext appropriate to a given PurpleConversation. */ ++ConnContext *otrg_plugin_conv_to_context(PurpleConversation *conv); + +-/* Find the GaimConversation appropriate to the given ConnContext. If ++/* Find the PurpleConversation appropriate to the given ConnContext. If + * one doesn't yet exist, create it if force_create is true. */ +-GaimConversation *otrg_plugin_context_to_conv(ConnContext *context, ++PurpleConversation *otrg_plugin_context_to_conv(ConnContext *context, + int force_create); + + typedef enum { +diff -ur gaim-otr.gaim/ui.c gaim-otr.pidgin/ui.c +--- gaim-otr.gaim/ui.c 2005-10-16 16:59:34.000000000 +0100 ++++ gaim-otr.pidgin/ui.c 2007-05-11 18:32:08.000000000 +0100 +@@ -69,16 +69,16 @@ + void otrg_ui_connect_connection(ConnContext *context) + { + /* Send an OTR Query to the other side. */ +- GaimAccount *account; ++ PurpleAccount *account; + char *msg; + + /* Don't do this if we're already ENCRYPTED */ + if (context == NULL || context->msgstate == OTRL_MSGSTATE_ENCRYPTED) + return; + +- account = gaim_accounts_find(context->accountname, context->protocol); ++ account = purple_accounts_find(context->accountname, context->protocol); + if (!account) { +- GaimPlugin *p = gaim_find_prpl(context->protocol); ++ PurplePlugin *p = purple_find_prpl(context->protocol); + msg = g_strdup_printf("Account %s (%s) could not be found", + context->accountname, + (p && p->info->name) ? p->info->name : "Unknown"); +@@ -121,7 +121,7 @@ + } + + /* Configure OTR for a particular buddy */ +-void otrg_ui_config_buddy(GaimBuddy *buddy) ++void otrg_ui_config_buddy(PurpleBuddy *buddy) + { + if (ui_ops != NULL) { + ui_ops->config_buddy(buddy); +@@ -129,10 +129,10 @@ + } + + /* Calculate the policy for a particular account / username */ +-OtrlPolicy otrg_ui_find_policy(GaimAccount *account, const char *name) ++OtrlPolicy otrg_ui_find_policy(PurpleAccount *account, const char *name) + { + /* Check to see if the protocol for this account supports OTR at all. */ +- const char *proto = gaim_account_get_protocol_id(account); ++ const char *proto = purple_account_get_protocol_id(account); + if (!otrg_plugin_proto_supports_otr(proto)) { + return OTRL_POLICY_NEVER; + } +diff -ur gaim-otr.gaim/ui.h gaim-otr.pidgin/ui.h +--- gaim-otr.gaim/ui.h 2005-10-16 16:59:34.000000000 +0100 ++++ gaim-otr.pidgin/ui.h 2007-05-11 18:32:08.000000000 +0100 +@@ -27,9 +27,9 @@ + + void (*update_keylist)(void); + +- void (*config_buddy)(GaimBuddy *buddy); ++ void (*config_buddy)(PurpleBuddy *buddy); + +- OtrlPolicy (*find_policy)(GaimAccount *account, const char *name); ++ OtrlPolicy (*find_policy)(PurpleAccount *account, const char *name); + } OtrgUiUiOps; + + /* Set the UI ops */ +@@ -55,9 +55,9 @@ + void otrg_ui_forget_fingerprint(Fingerprint *fingerprint); + + /* Configure OTR for a particular buddy */ +-void otrg_ui_config_buddy(GaimBuddy *buddy); ++void otrg_ui_config_buddy(PurpleBuddy *buddy); + + /* Calculate the policy for a particular account / username */ +-OtrlPolicy otrg_ui_find_policy(GaimAccount *account, const char *name); ++OtrlPolicy otrg_ui_find_policy(PurpleAccount *account, const char *name); + + #endif Index: gaim-otr.spec =================================================================== RCS file: /cvs/extras/rpms/gaim-otr/devel/gaim-otr.spec,v retrieving revision 1.25 diff -u -p -u -d -p -r1.25 gaim-otr.spec --- gaim-otr.spec 18 Apr 2007 21:39:46 -0000 1.25 +++ gaim-otr.spec 11 May 2007 17:49:42 -0000 @@ -1,29 +1,29 @@ Summary: Off-The-Record Messaging plugin for GAIM Name: gaim-otr Version: 3.0.1 -Release: 0.4.20060921cvs%{?dist} +Release: 0.5.20060712cvs%{?dist} #Source: http://www.cypherpunks.ca/otr/%{name}-%{version}.tar.gz Source: %{name}-20060712.tar.gz -Patch0: gaim-beta4.patch +Patch0: gaim-otr-pidgin.patch Url: http://www.cypherpunks.ca/otr/ License: GPL Group: Applications/Internet Provides: otr-plugin = %{version} Obsoletes: otr-plugin BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -Requires: pidgin >= 2.0.0-0.17.beta4, libotr >= 3.0.0 -BuildRequires: glib2-devel, gtk2-devel, libgcrypt-devel >= 1.2.0, libgpg-error-devel, pidgin >= 1.0.0, libotr-devel >= 3.0.0, autoconf, automake, libtool, pidgin-devel >= 2.0.0-0.17.beta4 +Requires: pidgin >= 2.0.0, libotr >= 3.0.0 +BuildRequires: glib2-devel, gtk2-devel, libgcrypt-devel >= 1.2.0, libgpg-error-devel, pidgin >= 2.0.0, libotr-devel >= 3.0.0, autoconf, automake, libtool, pidgin-devel >= 2.0.0 %description -This is a gaim/pidgin plugin which implements Off-the-Record (OTR) Messaging. +This is a Pidgin plugin which implements Off-the-Record (OTR) Messaging. It is known to work (at least) under the Linux and Windows versions of -gaim. Implementations for Adium, Trillian and Miranda exist, as well as +Pidgin. Implementations for Adium, Trillian and Miranda exist, as well as a proxy application called otrproxy for clients that do not support OTR natively. %prep %setup -q -n %{name} -%patch0 -p1 -b .beta4 +%patch0 -p1 -b .pidgin # temporary because we are using a cvs snapshot for now: #autoreconf autoreconf -s -i -v -f @@ -37,7 +37,7 @@ make %{?_smp_mflags} all rm -rf $RPM_BUILD_ROOT make DESTDIR=$RPM_BUILD_ROOT install # libtool insists on creating this -rm $RPM_BUILD_ROOT/%{_libdir}/gaim/gaim-otr.la +rm $RPM_BUILD_ROOT/%{_libdir}/pidgin/gaim-otr.la %clean rm -rf $RPM_BUILD_ROOT @@ -48,6 +48,9 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/pidgin/gaim-otr.so %changelog +* Fri May 11 2007 Stu Tomlinson 3.0.1-0.5.20060712cvs +- Actually fix it to work with Pidgin + * Wed Apr 18 2007 Paul Wouters 3.0.1-0.4.20060921cvs - Support for the rename of gaim to pidgin