pidgin/purple-plugin-pack

merge of '837fccc6c8f8dfaaf52bcc1b3da93499744725ff'
org.guifications.plugins
2007-06-30, rlaager
8ec0a3dfd343
merge of '837fccc6c8f8dfaaf52bcc1b3da93499744725ff'
and 'dd8379d99b5fbe3e4efdc3ac70d21b12a2498659'
--- a/AUTHORS Thu Jun 14 16:51:36 2007 -0400
+++ b/AUTHORS Sat Jun 30 18:39:20 2007 -0400
@@ -30,5 +30,7 @@
Jérôme Poulin (TiCPU)
Lee Roach
Ryan Seeber
+Ankit Singla
Anthony Sofocleous
+William Thompson
Chris Weyl
--- a/ChangeLog Thu Jun 14 16:51:36 2007 -0400
+++ b/ChangeLog Sat Jun 30 18:39:20 2007 -0400
@@ -1,6 +1,28 @@
-Version 1.0mtn:
+Version 1.1mtn:
+ * Blistops now offers the ability to stretch the display of screen names
+ or aliases into the buddy icon column when no icon exists
+ * Blistops now shows the menu bar when hovering near the top of the buddy
+ list window. Resolves a number of Pidgin bug reports
+ * Listhandler now supports alias-only list exports and imports (rseeber)
+ * Listhandler now exports buddy notes created with the buddynote plugin
+ but importing does not yet work for AIM and ICQ accounts.
+ * Added ignore plugin
+ * Added irc-more plugin
+ * Added highlight plugin
+ * Added incomplete convbadger plugin
+ * Added more humorous stuff to eight_ball (resiak)
+ * Added a stop subcommand in gRIM (rageboy04)
+ * Fixed build-by-default status for switchspell
+ * Fixed crash in album when using Pidgin 2.0.2 or newer
+ * Fixed potential random crashes in irssi plugin
-Version 1.0beta7: 6/30/07
+Version 1.0: 5/4/07
+ * Updated for Pidgin 2.0.0
+ * Fixed build-by-default and win32 building for several plugins
+ * Added hideconv plugin
+ * Took autoreply back from Pidgin
+
+Version 1.0beta7: 4/30/07
* Added the Ignorance plugin to the main development line
* Added broadcast plugin
* Imported the IRC Helper plugin
--- a/Makefile.am Thu Jun 14 16:51:36 2007 -0400
+++ b/Makefile.am Sat Jun 30 18:39:20 2007 -0400
@@ -26,6 +26,12 @@
SUBDIRS = common doc m4 po $(PP_PURPLE_BUILD) $(PP_PIDGIN_BUILD) $(PP_FINCH_BUILD)
+DISTCLEANFILES=\
+ pp_config.h \
+ intltool-extract \
+ intltool-update \
+ intltool-merge
+
BUILT_SOURCES = pp_config.h
$(OBJECTS): $(BUILT_SOURCES)
@@ -61,5 +67,3 @@
@echo " Building...: $(PP_FINCH_BUILD)"
@echo "---------------------------------------"
-dist-hook:
- $(MAKE) -C po update-po
--- a/VERSION Thu Jun 14 16:51:36 2007 -0400
+++ b/VERSION Sat Jun 30 18:39:20 2007 -0400
@@ -1,1 +1,1 @@
-1.0
+1.1
--- a/album/album.c Thu Jun 14 16:51:36 2007 -0400
+++ b/album/album.c Sat Jun 30 18:39:20 2007 -0400
@@ -155,6 +155,9 @@
char *filename;
char *path;
char *dir;
+ gconstpointer icon_data;
+ size_t len;
+ FILE *file;
#ifndef _WIN32
int status;
@@ -178,10 +181,6 @@
if (status != EEXIST)
{
#endif
- gconstpointer icon_data;
- size_t len;
- FILE *file;
-
icon_data = purple_buddy_icon_get_data(icon, &len);
/* WRITE THE DATA */
--- a/autogen.sh Thu Jun 14 16:51:36 2007 -0400
+++ b/autogen.sh Sat Jun 30 18:39:20 2007 -0400
@@ -1,5 +1,5 @@
#! /bin/sh
-PACKAGE="pidgin-plugin_pack"
+PACKAGE="purple-plugin_pack"
(intltoolize --version) < /dev/null > /dev/null 2>&1 || {
echo;
--- a/autorejoin/Makefile.am Thu Jun 14 16:51:36 2007 -0400
+++ b/autorejoin/Makefile.am Sat Jun 30 18:39:20 2007 -0400
@@ -1,4 +1,4 @@
-EXTRA_DIST = .purple-plugin Makefile.mingw
+EXTRA_DIST = .build .purple-plugin Makefile.mingw
autorejoindir = $(PURPLE_LIBDIR)
--- a/autoreply/autoreply.c Thu Jun 14 16:51:36 2007 -0400
+++ b/autoreply/autoreply.c Sat Jun 30 18:39:20 2007 -0400
@@ -60,6 +60,7 @@
#define PREFS_MINTIME PREFS_PREFIX "/mintime"
#define PREFS_MAXSEND PREFS_PREFIX "/maxsend"
#define PREFS_USESTATUS PREFS_PREFIX "/usestatus"
+#define PREFS_PREFIX_MSG PREFS_PREFIX "/prefix"
typedef struct _PurpleAutoReply PurpleAutoReply;
@@ -171,6 +172,8 @@
PurpleMessageFlags flag = PURPLE_MESSAGE_SEND;
time_t last_sent, now;
int count_sent, maxsend;
+ char *send = NULL;
+ const char *prefix;
last_sent = GPOINTER_TO_INT(purple_conversation_get_data(conv, "autoreply_lastsent"));
now = time(NULL);
@@ -187,10 +190,15 @@
purple_conversation_set_data(conv, "autoreply_count", GINT_TO_POINTER(++count_sent));
purple_conversation_set_data(conv, "autoreply_lastsent", GINT_TO_POINTER(now));
gc = purple_account_get_connection(account);
- if (gc->flags & PURPLE_CONNECTION_AUTO_RESP)
+ prefix = purple_prefs_get_string(PREFS_PREFIX_MSG);
+ if (gc->flags & PURPLE_CONNECTION_AUTO_RESP) {
flag |= PURPLE_MESSAGE_AUTO_RESP;
- serv_send_im(gc, who, reply, flag);
- purple_conv_im_write(PURPLE_CONV_IM(conv), NULL, reply, flag, time(NULL));
+ prefix = NULL; /* The prpl knows about auto-response. So ignore the prefix string. */
+ }
+ send = g_strdup_printf("%s%s", prefix ? prefix : "", reply);
+ serv_send_im(gc, who, send, flag);
+ purple_conv_im_write(PURPLE_CONV_IM(conv), NULL, send, flag, time(NULL));
+ g_free(send);
}
}
}
@@ -240,6 +248,9 @@
{
PurpleMenuAction *action;
+ if (purple_blist_node_get_flags(node) & PURPLE_BLIST_NODE_FLAG_NO_SAVE)
+ return;
+
if (!PURPLE_BLIST_NODE_IS_BUDDY(node) && !PURPLE_BLIST_NODE_IS_CONTACT(node))
return;
@@ -357,6 +368,10 @@
PURPLE_STRING_FORMAT_TYPE_MULTILINE | PURPLE_STRING_FORMAT_TYPE_HTML);
purple_plugin_pref_frame_add(frame, pref);
+ pref = purple_plugin_pref_new_with_name_and_label(PREFS_PREFIX_MSG,
+ _("Autoreply Prefix\n(only when necessary)"));
+ purple_plugin_pref_frame_add(frame, pref);
+
pref = purple_plugin_pref_new_with_label(_("Status message"));
purple_plugin_pref_frame_add(frame, pref);
@@ -444,6 +459,7 @@
purple_prefs_add_int(PREFS_MINTIME, 10);
purple_prefs_add_int(PREFS_MAXSEND, 10);
purple_prefs_add_int(PREFS_USESTATUS, STATUS_NEVER);
+ purple_prefs_add_string(PREFS_PREFIX_MSG, _("This is an autoreply: "));
}
PURPLE_INIT_PLUGIN(PLUGIN_STATIC_NAME, init_plugin, info)
--- a/awaynotify/Makefile.am Thu Jun 14 16:51:36 2007 -0400
+++ b/awaynotify/Makefile.am Sat Jun 30 18:39:20 2007 -0400
@@ -1,4 +1,4 @@
-EXTRA_DIST = .purple-plugin
+EXTRA_DIST = .purple-plugin .incomplete
plugindir=$(PURPLE_LIBDIR)
--- a/blistops/blistops.c Thu Jun 14 16:51:36 2007 -0400
+++ b/blistops/blistops.c Sat Jun 30 18:39:20 2007 -0400
@@ -32,65 +32,185 @@
#include <prefs.h>
#include <version.h>
+#include <string.h>
+
#include "../common/i18n.h"
#define PREF_MY "/plugins/gtk/amc_grim"
#define PREF_ROOT "/plugins/gtk/amc_grim/blistops"
#define PREF_LIST "/plugins/gtk/amc_grim/blistops/hidelist"
#define PREF_MENU "/plugins/gtk/amc_grim/blistops/hidemenu"
+#define PREF_STRETCH "/plugins/gtk/amc_grim/blistops/stretch"
+#define PREF_EMAIL "/plugins/gtk/amc_grim/blistops/email"
static GtkWidget *w_blist = NULL;
static GtkWidget *w_menubar = NULL;
static void
-abracadabra(GtkWidget *w, gboolean v) {
+abracadabra(GtkWidget *w, gboolean v)
+{
if(v)
gtk_widget_hide(w);
else
gtk_widget_show(w);
}
+static gboolean
+motion_notify_cb(GtkTreeView *view, GdkEventMotion *event, GtkRequisition *req)
+{
+ if (event->y < req->height) {
+ gtk_widget_show(w_menubar);
+ } else {
+ gtk_widget_hide(w_menubar);
+ }
+
+ return FALSE;
+}
+
static void
pref_cb(const char *name, PurplePrefType type,
- gconstpointer val, gpointer data) {
+ gconstpointer val, gpointer data)
+{
+ static GtkRequisition req;
gboolean value = GPOINTER_TO_INT(val);
if(!g_ascii_strcasecmp(name, PREF_LIST))
abracadabra(w_blist, value);
- else if(!g_ascii_strcasecmp(name, PREF_MENU))
+ else if(!g_ascii_strcasecmp(name, PREF_MENU)) {
+ PidginBuddyList *gtkblist = pidgin_blist_get_default_gtk_blist();
abracadabra(w_menubar, value);
+ if (!value)
+ g_signal_handlers_disconnect_matched(G_OBJECT(gtkblist->treeview), G_SIGNAL_MATCH_FUNC,
+ 0, 0, NULL, G_CALLBACK(motion_notify_cb), NULL);
+ else {
+ gtk_widget_size_request(w_menubar, &req);
+ g_signal_connect(gtkblist->treeview, "motion-notify-event", G_CALLBACK(motion_notify_cb), &req);
+ }
+ }
+}
+
+static void
+reset_row_heights(const char *name, PurplePrefType type,
+ gconstpointer val, gpointer data)
+{
+ PidginBuddyList *gtkblist = pidgin_blist_get_default_gtk_blist();
+ GtkTreeViewColumn *col = gtk_tree_view_get_column(GTK_TREE_VIEW(gtkblist->treeview), 1);
+ GList *iter = gtk_tree_view_column_get_cell_renderers(col);
+
+ for (; iter; iter = g_list_delete_link(iter, iter)) {
+ GtkCellRenderer *rend = iter->data;
+ if (GTK_IS_CELL_RENDERER_PIXBUF(rend)) {
+ g_object_set(rend, "height", val ? 32 : 16, NULL);
+ break;
+ }
+ }
+ if (iter)
+ g_list_free(iter);
+}
+
+static void
+redraw_blist(const char *name, PurplePrefType type,
+ gconstpointer val, gpointer data)
+{
+ pidgin_blist_refresh(data);
}
static void
-gtkblist_created_cb(PurpleBuddyList *blist) {
+row_changed_cb(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, PidginBuddyList *gtkblist)
+{
+ PurpleBlistNode *node;
+ gboolean stretch, email;
+ static gboolean inuse = FALSE, vis;
+ const char *name;
+ GdkPixbuf *pix = NULL;
+ char *html;
+
+ if (inuse)
+ return;
+
+ stretch = purple_prefs_get_bool(PREF_STRETCH);
+ email = purple_prefs_get_bool(PREF_EMAIL);
+ if (!stretch && !email)
+ return;
+
+ inuse = TRUE;
+
+ gtk_tree_model_get(model, iter, NODE_COLUMN, &node,
+ BUDDY_ICON_COLUMN, &pix, NAME_COLUMN, &html,
+ BUDDY_ICON_VISIBLE_COLUMN, &vis, -1);
+ if (PURPLE_BLIST_NODE_IS_CONTACT(node))
+ node = (PurpleBlistNode*)purple_contact_get_priority_buddy((PurpleContact*)node);
+ if (!PURPLE_BLIST_NODE_IS_BUDDY(node))
+ goto end;
+
+ if (email) {
+ char *alias = g_markup_escape_text(purple_buddy_get_alias((PurpleBuddy*)node), -1);
+ name = purple_buddy_get_name((PurpleBuddy*)node);
+ if (g_utf8_collate(alias, name)) {
+ char *new;
+ char *find = g_strstr_len(html, -1, alias);
+ if (find) {
+ *find = '\0';
+ new = g_strdup_printf("%s%s%s", html, name, find + strlen(alias));
+ gtk_tree_store_set(GTK_TREE_STORE(model), iter, NAME_COLUMN, new, -1);
+ g_free(new);
+ }
+ }
+ g_free(alias);
+ }
+ if (stretch && vis && (!pix || pix == gtkblist->empty_avatar)) {
+ /* Hiding the empty avatar makes the rows shorter than rows with buddy icons.
+ * We need to find a way to make sure that doesn't happen.
+ */
+ gtk_tree_store_set(GTK_TREE_STORE(model), iter, BUDDY_ICON_VISIBLE_COLUMN, FALSE, -1);
+ }
+
+end:
+ if (pix)
+ g_object_unref(pix);
+ g_free(html);
+ inuse = FALSE;
+}
+
+static void
+gtkblist_created_cb(PurpleBuddyList *blist)
+{
PidginBuddyList *gtkblist = PIDGIN_BLIST(blist);
w_blist = gtkblist->window;
w_menubar = gtk_item_factory_get_widget(gtkblist->ift, "<PurpleMain>");
+ g_signal_connect(gtkblist->treemodel, "row_changed", G_CALLBACK(row_changed_cb), gtkblist);
+
purple_prefs_trigger_callback(PREF_LIST);
purple_prefs_trigger_callback(PREF_MENU);
+
+ purple_prefs_trigger_callback(PIDGIN_PREFS_ROOT "/blist/show_buddy_icons");
}
-/* globals to remove our pref cb's */
-guint blist_id = 0, menu_id = 0;
-
static gboolean
-plugin_load(PurplePlugin *plugin) {
+plugin_load(PurplePlugin *plugin)
+{
purple_signal_connect(pidgin_blist_get_handle(), "gtkblist-created", plugin,
PURPLE_CALLBACK(gtkblist_created_cb), NULL);
- blist_id = purple_prefs_connect_callback(plugin, PREF_LIST, pref_cb, NULL);
- menu_id = purple_prefs_connect_callback(plugin, PREF_MENU, pref_cb, NULL);
+ if (pidgin_blist_get_default_gtk_blist())
+ gtkblist_created_cb(purple_get_blist());
+ purple_prefs_connect_callback(plugin, PREF_LIST, pref_cb, NULL);
+ purple_prefs_connect_callback(plugin, PREF_MENU, pref_cb, NULL);
+
+ purple_prefs_connect_callback(plugin, PREF_STRETCH, redraw_blist, purple_get_blist());
+ purple_prefs_connect_callback(plugin, PREF_EMAIL, redraw_blist, purple_get_blist());
+
+ purple_prefs_connect_callback(plugin, PIDGIN_PREFS_ROOT "/blist/show_buddy_icons",
+ reset_row_heights, NULL);
return TRUE;
}
static gboolean
-plugin_unload(PurplePlugin *plugin) {
- purple_prefs_disconnect_callback(blist_id);
- purple_prefs_disconnect_callback(menu_id);
-
+plugin_unload(PurplePlugin *plugin)
+{
if(w_blist) {
gtk_widget_show(w_blist);
@@ -102,7 +222,8 @@
}
static PurplePluginPrefFrame *
-get_plugin_pref_frame(PurplePlugin *plugin) {
+get_plugin_pref_frame(PurplePlugin *plugin)
+{
PurplePluginPrefFrame *frame;
PurplePluginPref *ppref;
@@ -116,6 +237,14 @@
_("Hide the menu in the buddy list window"));
purple_plugin_pref_frame_add(frame, ppref);
+ ppref = purple_plugin_pref_new_with_name_and_label(PREF_STRETCH,
+ _("Stretch the buddyname if the buddy has no buddyicon."));
+ purple_plugin_pref_frame_add(frame, ppref);
+
+ ppref = purple_plugin_pref_new_with_name_and_label(PREF_EMAIL,
+ _("Show email addresses for all the buddies."));
+ purple_plugin_pref_frame_add(frame, ppref);
+
return frame;
}
@@ -163,7 +292,8 @@
};
static void
-init_plugin(PurplePlugin *plugin) {
+init_plugin(PurplePlugin *plugin)
+{
#ifdef ENABLE_NLS
bindtextdomain(GETTEXT_PACKAGE, PP_LOCALEDIR);
bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
@@ -177,6 +307,8 @@
purple_prefs_add_none(PREF_ROOT);
purple_prefs_add_bool(PREF_LIST, FALSE);
purple_prefs_add_bool(PREF_MENU, FALSE);
+ purple_prefs_add_bool(PREF_STRETCH, TRUE);
+ purple_prefs_add_bool(PREF_EMAIL, FALSE);
}
PURPLE_INIT_PLUGIN(blistops, init_plugin, info)
--- a/buddytime/buddytime.c Thu Jun 14 16:51:36 2007 -0400
+++ b/buddytime/buddytime.c Sat Jun 30 18:39:20 2007 -0400
@@ -185,6 +185,9 @@
bt_blist_drawing_menu_cb(PurpleBlistNode *node, GList **menu) {
PurpleMenuAction *action;
+ if (purple_blist_node_get_flags(node) & PURPLE_BLIST_NODE_FLAG_NO_SAVE)
+ return;
+
/* ignore chats and groups */
if(PURPLE_BLIST_NODE_IS_CHAT(node) || PURPLE_BLIST_NODE_IS_GROUP(node))
return;
--- a/chronic/Makefile.am Thu Jun 14 16:51:36 2007 -0400
+++ b/chronic/Makefile.am Sat Jun 30 18:39:20 2007 -0400
@@ -1,4 +1,4 @@
-EXTRA_DIST = .purple-plugin
+EXTRA_DIST = .purple-plugin .incomplete
chronicdir=$(PURPLE_LIBDIR)
--- a/configure.ac Thu Jun 14 16:51:36 2007 -0400
+++ b/configure.ac Sat Jun 30 18:39:20 2007 -0400
@@ -1,4 +1,4 @@
-AC_INIT([purple-plugin_pack], [1.0], [guifications-devel@lists.sourceforge.net])
+AC_INIT([purple-plugin_pack], [1.1], [guifications-devel@lists.sourceforge.net])
AC_CANONICAL_SYSTEM
AM_CONFIG_HEADER(pre_config.h)
@@ -78,8 +78,14 @@
HAVE_PURPLE="yes"
AM_CONDITIONAL(HAVE_PURPLE, true)
-PURPLE_LIBDIR=`pkg-config --variable=libdir purple`
-PURPLE_DATADIR=`pkg-config --variable=datadir purple`
+if test x"$prefix" = x"NONE" ; then
+ PURPLE_LIBDIR=`pkg-config --variable=libdir purple`
+ PURPLE_DATADIR=`pkg-config --variable=datadir purple`
+else
+ PURPLE_LIBDIR="$libdir"
+ PURPLE_DATADIR="$datadir"
+fi
+
PURPLE_PIXMAPSDIR=""
# this is a hack but should work fine.
@@ -113,12 +119,19 @@
HAVE_PIDGIN="yes"
AM_CONDITIONAL(HAVE_PIDGIN, true)
], [
+ AC_MSG_RESULT([no])
HAVE_PIDGIN="no"
AM_CONDITIONAL(HAVE_PIDGIN, false)
])
-PIDGIN_LIBDIR=`pkg-config --variable=libdir pidgin`
-PIDGIN_DATADIR=`pkg-config --variable=datadir pidgin`
+if test x"$prefix" = x"NONE" ; then
+ PIDGIN_LIBDIR=`pkg-config --variable=libdir pidgin`
+ PIDGIN_DATADIR=`pkg-config --variable=datadir pidgin`
+else
+ PIDGIN_LIBDIR="$libdir"
+ PIDGIN_DATADIR="$datadir"
+fi
+
PIDGIN_PIXMAPSDIR=""
if test x"$PIDGIN_LIBDIR" != x"" ; then
@@ -145,12 +158,19 @@
HAVE_FINCH="yes"
AM_CONDITIONAL(HAVE_FINCH, true)
], [
+ AC_MSG_RESULT([no])
HAVE_FINCH="no"
AM_CONDITIONAL(HAVE_FINCH, false)
])
-FINCH_LIBDIR=`pkg-config --variable=libdir finch`
-FINCH_DATADIR=`pkg-config --variable=datadir finch`
+if test x"$prefix" = x"NONE" ; then
+ FINCH_LIBDIR=`pkg-config --variable=libdir finch`
+ FINCH_DATADIR=`pkg-config --variable=datadir finch`
+else
+ FINCH_LIBDIR="$libdir"
+ FINCH_DATADIR="$datadir"
+fi
+
FINCH_PIXMAPSDIR=""
if test x"$FINCH_LIBDIR" != x"" ; then
@@ -289,6 +309,7 @@
broadcast/Makefile
buddytime/Makefile
chronic/Makefile
+ convbadger/Makefile
dice/Makefile
difftopic/Makefile
eight_ball/Makefile
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/convbadger/Makefile.am Sat Jun 30 18:39:20 2007 -0400
@@ -0,0 +1,27 @@
+EXTRA_DIST = .pidgin-plugin .incomplete
+
+convbadgerdir = $(PIDGIN_LIBDIR)
+
+convbadger_la_LDFLAGS = -module -avoid-version
+
+if HAVE_PIDGIN
+
+convbadger_LTLIBRARIES = convbadger.la
+
+convbadger_la_LIBADD = \
+ $(PIDGIN_LIBS) \
+ $(GLIB_LIBS)
+
+convbadger_la_SOURCES = convbadger.c
+
+endif
+
+AM_CPPFLAGS = \
+ -DLIBDIR=\"$(PIDGIN_LIBDIR)\" \
+ -DDATADIR=\"$(PIDGIN_DATADIR)\" \
+ -DPIXMAPSDIR=\"$(PIDGIN_PIXMAPSDIR)\" \
+ $(DEBUG_CFLAGS) \
+ $(PIDGIN_CFLAGS) \
+ $(GTK_CFLAGS) \
+ $(GLIB_CFLAGS)
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/convbadger/convbadger.c Sat Jun 30 18:39:20 2007 -0400
@@ -0,0 +1,88 @@
+/*
+ * GroupMsg - Send an IM to a group of buddies
+ * Copyright (C) 2004 Stu Tomlinson <stu@nosnilmot.com>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+#ifdef HAVE_CONFIG_H
+# include "../pp_config.h"
+#endif /* HAVE_CONFIG_H */
+
+#define PURPLE_PLUGINS
+
+#include <debug.h>
+#include <notify.h>
+#include <prpl.h>
+#include <request.h>
+#include <signals.h>
+#include <util.h>
+#include <version.h>
+
+#include "../common/i18n.h"
+
+static gboolean
+plugin_load(PurplePlugin *plugin) {
+ void *conv_handle = purple_conversations_get_handle();
+
+ purple_signal_connect(conv_handle, "conversation-created", plugin,
+ PURPLE_CALLBACK(convbadger_conv_created_cb), NULL);
+ purple_signal_connect(conv_handle, "deleting-conversation", plugin,
+ PURPLE_CALLBACK(convbadger_conv_destroyed_cb), NULL);
+
+ return TRUE;
+}
+
+static PurplePluginInfo info = {
+ PURPLE_PLUGIN_MAGIC,
+ PURPLE_MAJOR_VERSION,
+ PURPLE_MINOR_VERSION,
+ PURPLE_PLUGIN_STANDARD,
+ NULL,
+ 0,
+ NULL,
+ PURPLE_PRIORITY_DEFAULT,
+
+ "gtk-plugin_pack-convbadger",
+ NULL,
+ PP_VERSION,
+ NULL,
+ NULL,
+ "Gary Kramlich <grim@reaperworld.com>",
+ PP_WEBSITE,
+
+ plugin_load,
+ NULL,
+ NULL,
+
+ NULL,
+ NULL,
+ NULL,
+ NULL
+};
+
+
+static void
+init_plugin(PurplePlugin *plugin) {
+#ifdef ENABLE_NLS
+ bindtextdomain(GETTEXT_PACKAGE, PP_LOCALEDIR);
+ bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
+#endif /* ENABLE_NLS */
+
+ info.name = _("Conversation Badger");
+ info.summary = _("Badges conversations with the protocol icon.");
+ info.description = _("Badges conversations with the protocol icon.");
+}
+
+PURPLE_INIT_PLUGIN(convbadger, init_plugin, info)
--- a/difftopic/difftopic.c Thu Jun 14 16:51:36 2007 -0400
+++ b/difftopic/difftopic.c Sat Jun 30 18:39:20 2007 -0400
@@ -92,6 +92,7 @@
GList *lold, *lnew;
int i, j, m, n;
GString *from, *to;
+ char *text;
lold = split_string(old);
lnew = split_string(new);
@@ -148,10 +149,9 @@
i--;
}
- gtk_imhtml_append_text(GTK_IMHTML(imhtml), "<BR>Topic changed from: <BR>", 0);
- gtk_imhtml_append_text(GTK_IMHTML(imhtml), from->str, 0);
- gtk_imhtml_append_text(GTK_IMHTML(imhtml), "<BR>To:<BR>", 0);
- gtk_imhtml_append_text(GTK_IMHTML(imhtml), to->str, 0);
+ text = g_strdup_printf(_("<BR>Topic changed from: <BR>%s<BR>To:<BR>%s"), from->str, to->str);
+ gtk_imhtml_append_text(GTK_IMHTML(imhtml), text, 0);
+ g_free(text);
g_string_free(from, TRUE);
g_string_free(to, TRUE);
--- a/eight_ball/eight_ball.c Thu Jun 14 16:51:36 2007 -0400
+++ b/eight_ball/eight_ball.c Sat Jun 30 18:39:20 2007 -0400
@@ -65,7 +65,17 @@
"I believe a medical attack could be successful."
};
-static PurpleCmdId eight_ball_cmd_id = 0, sg_ball_cmd_id = 0;
+static const gchar *fullcrap_strings[] = {
+ "you are only fullcrap",
+ "this is only fooling blabber",
+ "thats nots really nice",
+ "Oh I at all do not understand a pancake about what you here talk.",
+ "it shall be visible will be?"
+};
+
+static PurpleCmdId eight_ball_cmd_id = 0,
+ sg_ball_cmd_id = 0,
+ fullcrap_cmd_id = 0;
static PurpleCmdRet
eight_ball_cmd_func(PurpleConversation *conv, const gchar *cmd, gchar **args,
@@ -84,6 +94,10 @@
numstrings = sizeof(sg_ball_strings) / sizeof(sg_ball_strings[0]);
msgprefix = "The Purple Stargate Ball says";
msgs = sg_ball_strings;
+ } else if(!strcmp(cmd, "fullcrap")) {
+ numstrings = sizeof(fullcrap_strings) / sizeof(fullcrap_strings[0]);
+ msgprefix = "The Purple Fullcrap Ball says";
+ msgs = fullcrap_strings;
} else {
numstrings = sizeof(eight_ball_strings) / sizeof(eight_ball_strings[0]);
msgprefix = "The Purple 8 Ball says";
@@ -123,10 +137,11 @@
static gboolean
plugin_load(PurplePlugin *plugin)
{
- const gchar *eight_ball_help, *sg_ball_help;
+ const gchar *eight_ball_help, *sg_ball_help, *fullcrap_help;
eight_ball_help = _("8ball: sends a random 8ball message");
sg_ball_help = _("sgball: sends a random Stargate Ball message");
+ fullcrap_help = _("fullcrap: sends random fooling blabber");
eight_ball_cmd_id = purple_cmd_register("8ball", "w", PURPLE_CMD_P_PLUGIN,
PURPLE_CMD_FLAG_IM | PURPLE_CMD_FLAG_CHAT |
@@ -140,6 +155,12 @@
PURPLE_CMD_FUNC(eight_ball_cmd_func),
sg_ball_help, NULL);
+ fullcrap_cmd_id = purple_cmd_register("fullcrap", "w", PURPLE_CMD_P_PLUGIN,
+ PURPLE_CMD_FLAG_IM | PURPLE_CMD_FLAG_CHAT |
+ PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS, NULL,
+ PURPLE_CMD_FUNC(eight_ball_cmd_func),
+ fullcrap_help, NULL);
+
return TRUE;
}
--- a/gRIM/gRIM.c Thu Jun 14 16:51:36 2007 -0400
+++ b/gRIM/gRIM.c Sat Jun 30 18:39:20 2007 -0400
@@ -65,33 +65,33 @@
#define LYRICISTS "Kim Fuller and Doug Naylor"
const char *LYRICS[] = {
-"If you're in trouble he will save the day",
-"He's brave and he's fearless come what may",
-"Without him the mission would go astray",
-"",
-"He's Arnold, Arnold, Arnold Rimmer",
-"Without him life would be much grimmer",
-"He's handsome, trim and no-one slimmer",
-"He will never need a Zimmer",
-"",
-"Ask Arnold, Arnold, Arnold Rimmer",
-"More reliable than a garden trimmer",
-"He's never been mistaken for Yul Brynner",
-"He's not bald and his head doesn't glimmer",
-"",
-"Master of the wit and the repartee",
-"His command of space directives is uncanny",
-"How come he's such a genius? Don't ask me",
-"",
-"Ask Arnold, Arnold, Arnold Rimmer",
-"He's also a fantastic swimmer",
-"And if you play your cards right",
-"Then he just might come around for dinner",
-"",
-"He's Arnold, Arnold, Arnold Rimmer",
-"No rhymes left now apart from quimmer",
-"I hope they fade us out before we get to shlimmer",
-"Fade out you stupid brimmer",
+"If you're in trouble he will save the day",
+"He's brave and he's fearless come what may",
+"Without him the mission would go astray",
+"",
+"He's Arnold, Arnold, Arnold Rimmer",
+"Without him life would be much grimmer",
+"He's handsome, trim and no-one slimmer",
+"He will never need a Zimmer",
+"",
+"Ask Arnold, Arnold, Arnold Rimmer",
+"More reliable than a garden trimmer",
+"He's never been mistaken for Yul Brynner",
+"He's not bald and his head doesn't glimmer",
+"",
+"Master of the wit and the repartee",
+"His command of space directives is uncanny",
+"How come he's such a genius? Don't ask me",
+"",
+"Ask Arnold, Arnold, Arnold Rimmer",
+"He's also a fantastic swimmer",
+"And if you play your cards right",
+"Then he just might come around for dinner",
+"",
+"He's Arnold, Arnold, Arnold Rimmer",
+"No rhymes left now apart from quimmer",
+"I hope they fade us out before we get to shlimmer",
+"Fade out you stupid brimmer",
NULL
};
@@ -119,8 +119,7 @@
GtkIMHtml *imhtml = GTK_IMHTML(gtkconv->entry);
GList *list;
- if (data->info->lyric == NULL)
- {
+ if (data->info->lyric == NULL) {
/* XXX: free the lyric if it was dyn-allocated */
g_free(data->info);
g_free(data);
@@ -131,8 +130,7 @@
list = data->info->lyric;
- if (list->next == NULL)
- {
+ if (list->next == NULL) {
/* Is this Ugly or is this UGLY? */
int len = strlen(list->data);
GdkColor gdkcolor;
@@ -140,17 +138,14 @@
char *s = list->data;
if (!gdk_color_parse(color, &gdkcolor))
- {
gdkcolor.red = gdkcolor.green = gdkcolor.blue = 0;
- }
inc_r = (255 - (gdkcolor.red >> 8))/len;
inc_g = (255 - (gdkcolor.green >> 8))/len;
inc_b = (255 - (gdkcolor.blue >> 8))/len;
msg = g_strdup("");
- while(*s)
- {
+ while(*s) {
char *temp = msg;
char t[2] = {*s++, 0};
char tag[16];
@@ -165,8 +160,7 @@
gdkcolor.green += inc_g << 8;
gdkcolor.blue += inc_b << 8;
}
- }
- else if (color)
+ } else if (color)
msg = g_strdup_printf("<font color=\"%s\">%s</font>", color, (char *)list->data);
else
msg = g_strdup(*(char*)list->data ? (char*)list->data : "&nbsp;");
@@ -199,8 +193,7 @@
if (!file) /* XXX: Show an error message that the file doesn't exist */
return NULL;
- while (fgets(str, MAX_LENGTH, file))
- {
+ while (fgets(str, MAX_LENGTH, file)) {
char *s = str + strlen(str) - 1;
if (*s == '\r' || *s == '\n')
*s = 0;
@@ -222,35 +215,41 @@
gint source;
/* XXX: Need to manually parse the arguments :-/ */
- if (*args && *(args+1))
- {
+ if (*args && *(args+1)) {
/* two parameters: filename duration (in seconds) */
info->lyric = rim_get_file_lines(*args);
sscanf(*(args+1), "%d", &info->time);
info->time *= 1000;
- }
- else if (*args)
- {
+ } else if (*args) {
/* one parameter: filename */
info->lyric = rim_get_file_lines(*args);
info->time = g_list_length(info->lyric) * 5000; /* at least 5 seconds between two lines */
- }
- else
- {
+ } else {
int i = 0;
GList *list = NULL;
- while (LYRICS[i])
- {
+
+ while (LYRICS[i]) {
list = g_list_append(list, g_strdup(LYRICS[i]));
i++;
}
+
info->lyric = list;
info->verse = TRUE;
info->time = 60000;
}
- if (info->lyric == NULL)
- {
+ if(*args && !g_ascii_strcasecmp(*args,"quit")) {
+ GList *list = NULL, *tmp = NULL;
+ tmp = info->lyric;
+ list = g_list_append(list, "Fine, I'll stop");
+ info->lyric = list;
+ info->verse = FALSE;
+ info->time = 5000;
+ g_list_free(tmp);
+ } else
+ purple_debug_info("grim","HINT: quit with quit\n");
+
+ if (info->lyric == NULL) {
g_free(info);
g_free(data);
return PURPLE_CMD_STATUS_FAILED;
--- a/highlight/Makefile.am Thu Jun 14 16:51:36 2007 -0400
+++ b/highlight/Makefile.am Sat Jun 30 18:39:20 2007 -0400
@@ -1,10 +1,10 @@
-EXTRA_DIST = .pidgin-plugin Makefile.mingw .incomplete
+EXTRA_DIST = .purple-plugin Makefile.mingw .build
-highlightdir = $(PIDGIN_LIBDIR)
+highlightdir = $(PURPLE_LIBDIR)
highlight_la_LDFLAGS = -module -avoid-version
-if HAVE_PIDGIN
+if HAVE_PURPLE
highlight_LTLIBRARIES = highlight.la
@@ -12,15 +12,15 @@
highlight.c
highlight_la_LIBADD = \
- $(PIDGIN_LIBS) \
- $(GTK_LIBS)
+ $(PURPLE_LIBS) \
+ $(GLIB_LIBS)
endif
AM_CPPFLAGS = \
- -DLIBDIR=\"$(PIDGIN_LIBDIR)\" \
- -DDATADIR=\"$(PIDGIN_DATADIR)\" \
- -DPIXMAPSDIR=\"$(PIDGIN_PIXMAPSDIR)\" \
- $(GTK_CFLAGS) \
+ -DLIBDIR=\"$(PURPLE_LIBDIR)\" \
+ -DDATADIR=\"$(PURPLE_DATADIR)\" \
+ -DPIXMAPSDIR=\"$(PURPLE_PIXMAPSDIR)\" \
+ $(GLIB_CFLAGS) \
$(DEBUG_CFLAGS) \
- $(PIDGIN_CFLAGS)
+ $(PURPLE_CFLAGS)
--- a/ignorance/Makefile.am Thu Jun 14 16:51:36 2007 -0400
+++ b/ignorance/Makefile.am Sat Jun 30 18:39:20 2007 -0400
@@ -1,5 +1,6 @@
EXTRA_DIST = \
.pidgin-plugin \
+ .incomplete \
callbacks.h \
ignorance.conf \
ignorance.h \
--- a/ignore/Makefile.am Thu Jun 14 16:51:36 2007 -0400
+++ b/ignore/Makefile.am Sat Jun 30 18:39:20 2007 -0400
@@ -1,10 +1,10 @@
-EXTRA_DIST = .pidgin-plugin Makefile.mingw .incomplete
+EXTRA_DIST = .build .purple-plugin Makefile.mingw
-ignoredir = $(PIDGIN_LIBDIR)
+ignoredir = $(PURPLE_LIBDIR)
ignore_la_LDFLAGS = -module -avoid-version
-if HAVE_PIDGIN
+if HAVE_PURPLE
ignore_LTLIBRARIES = ignore.la
@@ -12,15 +12,15 @@
ignore.c
ignore_la_LIBADD = \
- $(PIDGIN_LIBS) \
- $(GTK_LIBS)
+ $(PURPLE_LIBS) \
+ $(GLIB_LIBS)
endif
AM_CPPFLAGS = \
- -DLIBDIR=\"$(PIDGIN_LIBDIR)\" \
- -DDATADIR=\"$(PIDGIN_DATADIR)\" \
- -DPIXMAPSDIR=\"$(PIDGIN_PIXMAPSDIR)\" \
- $(GTK_CFLAGS) \
+ -DLIBDIR=\"$(PURPLE_LIBDIR)\" \
+ -DDATADIR=\"$(PURPLE_DATADIR)\" \
+ -DPIXMAPSDIR=\"$(PURPLE_PIXMAPSDIR)\" \
+ $(GLIB_CFLAGS) \
$(DEBUG_CFLAGS) \
- $(PIDGIN_CFLAGS)
+ $(PURPLE_CFLAGS)
--- a/irc-more/Makefile.am Thu Jun 14 16:51:36 2007 -0400
+++ b/irc-more/Makefile.am Sat Jun 30 18:39:20 2007 -0400
@@ -1,10 +1,10 @@
-EXTRA_DIST = .pidgin-plugin Makefile.mingw .incomplete
+EXTRA_DIST = .build .purple-plugin Makefile.mingw
-irc_moredir = $(PIDGIN_LIBDIR)
+irc_moredir = $(PURPLE_LIBDIR)
irc_more_la_LDFLAGS = -module -avoid-version
-if HAVE_PIDGIN
+if HAVE_PURPLE
irc_more_LTLIBRARIES = irc-more.la
@@ -12,15 +12,15 @@
irc-more.c
irc_more_la_LIBADD = \
- $(PIDGIN_LIBS) \
- $(GTK_LIBS)
+ $(PURPLE_LIBS) \
+ $(GLIB_LIBS)
endif
AM_CPPFLAGS = \
- -DLIBDIR=\"$(PIDGIN_LIBDIR)\" \
- -DDATADIR=\"$(PIDGIN_DATADIR)\" \
- -DPIXMAPSDIR=\"$(PIDGIN_PIXMAPSDIR)\" \
- $(GTK_CFLAGS) \
+ -DLIBDIR=\"$(PURPLE_LIBDIR)\" \
+ -DDATADIR=\"$(PURPLE_DATADIR)\" \
+ -DPIXMAPSDIR=\"$(PURPLE_PIXMAPSDIR)\" \
+ $(GLIB_CFLAGS) \
$(DEBUG_CFLAGS) \
- $(PIDGIN_CFLAGS)
+ $(PURPLE_CFLAGS)
--- a/lastseen/lastseen.c Thu Jun 14 16:51:36 2007 -0400
+++ b/lastseen/lastseen.c Sat Jun 30 18:39:20 2007 -0400
@@ -108,29 +108,19 @@
purple_blist_node_set_int((PurpleBlistNode*)buddy, "signedoff", time(NULL) );
}
-#if PURPLE_VERSION_CHECK(2,0,0)
static void
drawing_tooltip_cb(PurpleBlistNode *node, GString *str, gboolean full, void *data)
-#else
-static void
-drawing_tooltip_cb(PurpleBlistNode *node, char **text, void *data)
-#endif
{
PurpleBuddy *buddy = NULL;
PurpleBlistNode *n;
time_t last = 0, max = 0, off = 0, on = 0;
const gchar *tmp = NULL;
gchar *seen = NULL, *said = NULL, *offs = NULL, *ons = NULL;
-#if !PURPLE_VERSION_CHECK(2,0,0)
- gchar *tmp2 = NULL;
-#endif
if(PURPLE_BLIST_NODE_IS_BUDDY(node))
{
-#if PURPLE_VERSION_CHECK(2,0,0)
if (!full)
return;
-#endif
node = (PurpleBlistNode *)purple_buddy_get_contact((PurpleBuddy *)node);
}
@@ -167,31 +157,15 @@
if(tmp)
said = g_strchomp(g_markup_escape_text(tmp, -1));
-#if PURPLE_VERSION_CHECK(2,0,0)
g_string_append_printf(str,
- "%s %s" /* Last seen */
- "%s %s" /* Last said */
- "%s %s" /* Signed on */
- "%s %s", /* Signed off */
- seen ? _("\n<b>Last Seen:</b>") : "", seen ? seen : "",
- said ? _("\n<b>Last Said:</b>") : "", said ? said : "",
- ons ? _("\n<b>Signed On:</b>") : "", ons ? ons : "",
- offs ? _("\n<b>Signed Off:</b>") : "", offs ? offs : "");
-#else
- tmp2 = g_strdup(*text);
- *text = g_strdup_printf("%s" /* existing */
- "%s %s" /* Last seen */
- "%s %s" /* Last said */
- "%s %s" /* Signed on */
- "%s %s", /* Signed off */
- tmp2,
- seen ? _("\n<b>Last Seen:</b>") : "", seen ? seen : "",
- said ? _("\n<b>Last Said:</b>") : "", said ? said : "",
- ons ? _("\n<b>Signed On:</b>") : "", ons ? ons : "",
- offs ? _("\n<b>Signed Off:</b>") : "", offs ? offs : "");
-
- g_free(tmp2);
-#endif
+ "%s%s" /* Last seen */
+ "%s%s" /* Last said */
+ "%s%s" /* Signed on */
+ "%s%s", /* Signed off */
+ seen ? _("\n<b>Last Seen</b>: ") : "", seen ? seen : "",
+ said ? _("\n<b>Last Said</b>: ") : "", said ? said : "",
+ ons ? _("\n<b>Signed On</b>: ") : "", ons ? ons : "",
+ offs ? _("\n<b>Signed Off</b>: ") : "", offs ? offs : "");
g_free(seen);
g_free(said);
g_free(ons);
--- a/listhandler/Makefile.am Thu Jun 14 16:51:36 2007 -0400
+++ b/listhandler/Makefile.am Sat Jun 30 18:39:20 2007 -0400
@@ -1,4 +1,12 @@
-EXTRA_DIST = .build .purple-plugin *.h Makefile.mingw
+EXTRA_DIST=\
+ .build \
+ .purple-plugin \
+ Makefile.mingw \
+ aim_blt_files.h \
+ gen_xml_files.h \
+ lh_util.h \
+ listhandler.h \
+ migrate.h
listhandlerdir = $(PURPLE_LIBDIR)
--- a/listhandler/gen_xml_files.c Thu Jun 14 16:51:36 2007 -0400
+++ b/listhandler/gen_xml_files.c Sat Jun 30 18:39:20 2007 -0400
@@ -80,7 +80,8 @@
/* add the buddy to Purple's blist */
lh_util_add_buddy(group_name, purple_group,
xmlnode_get_attrib(buddy, "screenname"),
- xmlnode_get_attrib(buddy, "alias"), target_account);
+ xmlnode_get_attrib(buddy, "alias"), target_account,
+ xmlnode_get_attrib(buddy, "notes"));
/* get the next buddy in the current group */
buddy = xmlnode_get_next_twin(buddy);
@@ -237,7 +238,7 @@
PurpleBlistNode *root = buddies->root, *g = NULL, *c = NULL, *b = NULL;
xmlnode *group = NULL, *buddy = NULL;
PurpleBuddy *tmpbuddy = NULL;
- const char *tmpalias = NULL, *tmpname = NULL;
+ const char *tmpalias = NULL, *tmpname = NULL, *tmpsetting = NULL;
/* iterate through the groups */
for(g = root; g; g = g->next) {
@@ -263,9 +264,11 @@
if(purple_buddy_get_account(tmpbuddy) == source_account) {
tmpalias = purple_buddy_get_contact_alias(tmpbuddy);
tmpname = purple_buddy_get_name(tmpbuddy);
+ tmpsetting = purple_blist_node_get_string(b, "notes");
buddy = xmlnode_new_child(group, "buddy");
xmlnode_set_attrib(buddy, "screenname", tmpname);
+ xmlnode_set_attrib(buddy, "notes", tmpsetting);
if(strcmp(tmpalias, tmpname))
xmlnode_set_attrib(buddy, "alias", tmpalias);
@@ -311,7 +314,7 @@
tmpbuddy = (PurpleBuddy *)b;
if(purple_buddy_get_account(tmpbuddy) == source_account) {
tmpalias = purple_buddy_get_alias_only(tmpbuddy);
- if ( tmpalias != NULL ){
+ if (tmpalias != NULL) {
tmpname = purple_buddy_get_name(tmpbuddy);
buddy = xmlnode_new_child(parent, "buddy");
xmlnode_set_attrib(buddy, "screenname", tmpname);
@@ -447,13 +450,12 @@
static xmlnode *
lh_generic_alist_build_tree(void)
{
- xmlnode *root_node = xmlnode_new("exported_buddy_list");
+ xmlnode *root_node = xmlnode_new("exported_alias_list");
/* since building this tree is really building three smaller trees that
* share a common parent, we'll build each tree separately to make this
* easier to read and understand what goes in each tree (hopefully). */
lh_generic_build_config_tree(xmlnode_new_child(root_node, "config"));
- lh_generic_build_privacy_tree(xmlnode_new_child(root_node, "privacy"));
lh_generic_build_alist_tree(xmlnode_new_child(root_node, "alist"));
return root_node;
--- a/listhandler/lh_util.c Thu Jun 14 16:51:36 2007 -0400
+++ b/listhandler/lh_util.c Sat Jun 30 18:39:20 2007 -0400
@@ -25,7 +25,8 @@
void
lh_util_add_buddy(const gchar *group, PurpleGroup *purple_group,
- const gchar *buddy, const gchar *alias, PurpleAccount *account)
+ const gchar *buddy, const gchar *alias, PurpleAccount *account,
+ const gchar *buddynotes)
{
/* create a PurpleBuddy and add it to the list in the specified group.
* The first NULL is because we have no contact. Let the user do that.
@@ -34,7 +35,10 @@
* easy to do. */
PurpleBuddy *purple_buddy = purple_buddy_new(account, buddy, alias);
purple_blist_add_buddy(purple_buddy, NULL, purple_group, NULL);
- purple_account_add_buddy(account, purple_buddy); /* this is evil */
+ purple_account_add_buddy(account, purple_buddy);
+
+ if(buddynotes)
+ purple_blist_node_set_string((PurpleBlistNode *)purple_buddy, "notes", buddynotes);
purple_debug_info("listhandler: import",
"group: %s\tbuddy: %s\talias: %s\thas been added to the list\n",
--- a/listhandler/lh_util.h Thu Jun 14 16:51:36 2007 -0400
+++ b/listhandler/lh_util.h Sat Jun 30 18:39:20 2007 -0400
@@ -23,7 +23,7 @@
void lh_util_add_buddy(const gchar *group, PurpleGroup *purple_group,
const gchar *buddy, const gchar *alias,
- PurpleAccount *account);
+ PurpleAccount *account, const gchar *buddynotes);
void lh_util_add_to_blist(GList *buddies, GList *groups);
--- a/m4/pluginpack.m4 Thu Jun 14 16:51:36 2007 -0400
+++ b/m4/pluginpack.m4 Sat Jun 30 18:39:20 2007 -0400
@@ -33,44 +33,48 @@
dnl # Build a list of all the available plugins
dnl #######################################################################
for d in $srcdir/*; do
- if ! test -d $d; then
+ if ! test -d "$d"; then
continue
fi
+ if test -f "$d/Makefile.am" -a ! "$d" = "$srcdir/common" -a ! "$d" = "$srcdir/doc" -a ! "$d" = "$srcdir/m4" -a ! -f "$d/.abusive" -a ! -f "$d/.build" -a ! -f "$d/.incomplete" -a ! -f "$d/.sanity" ; then
+ AC_ERROR([Directory $d missing sanity])
+ fi
+
base=`basename $d`
- if test -f $d/.purple-plugin ; then
+ if test -f "$d/.purple-plugin" ; then
if test -f $d/.abusive ; then
PP_PURPLE_ABUSIVE="$PP_PURPLE_ABUSIVE $base"
- elif test -f $d/.build ; then
+ elif test -f "$d/.build" ; then
PP_PURPLE_BUILD="$PP_PURPLE_BUILD $base"
fi
- if test -f $d/.incomplete ; then
+ if test -f "$d/.incomplete" ; then
PP_PURPLE_INCOMPLETE="$PP_PURPLE_INCOMPLETE $base"
fi
PP_PURPLE="$PP_PURPLE $base"
- elif test -f $d/.pidgin-plugin ; then
- if test -f $d/.abusive ; then
+ elif test -f "$d/.pidgin-plugin" ; then
+ if test -f "$d/.abusive" ; then
PP_PIDGIN_ABUSIVE="$PP_PIDGIN_ABUSIVE $base"
- elif test -f $d/.build ; then
+ elif test -f "$d/.build" ; then
PP_PIDGIN_BUILD="$PP_PIDGIN_BUILD $base"
fi
- if test -f $d/.incomplete ; then
+ if test -f "$d/.incomplete" ; then
PP_PIDGIN_INCOMPLETE="$PP_PIDGIN_INCOMPLETE $base"
fi
PP_PIDGIN="$PP_PIDGIN $base"
- elif test -f $d/.finch-plugin ; then
- if test -f $d/.abusive ; then
+ elif test -f "$d/.finch-plugin" ; then
+ if test -f "$d/.abusive" ; then
PP_FINCH_ABUSIVE="$PP_FINCH_ABUSIVE $base"
- elif test -f $d/.build ; then
+ elif test -f "$d/.build" ; then
PP_FINCH_BUILD="$PP_FINCH_BUILD $base"
fi
- if test -f $d/.incomplete ; then
+ if test -f "$d/.incomplete" ; then
PP_FINCH_INCOMPLETE="$PP_FINCH_INCOMPLETE $base"
fi
@@ -88,7 +92,7 @@
dnl #######################################################################
dnl # Now determine which ones have been selected
dnl #######################################################################
- if test x$with_plugins = xdefault ; then
+ if test "x$with_plugins" = "xdefault" ; then
tmp_SUB="$PP_AVAILABLE"
else
exp_plugins=`echo "$with_plugins" | sed 's/,/ /g'`
--- a/napster/Makefile.am Thu Jun 14 16:51:36 2007 -0400
+++ b/napster/Makefile.am Sat Jun 30 18:39:20 2007 -0400
@@ -1,4 +1,4 @@
-EXTRA_DIST = .purple-plugin
+EXTRA_DIST = .purple-plugin .incomplete
napsterdir = $(PURPLE_LIBDIR)
--- a/po/POTFILES.in Thu Jun 14 16:51:36 2007 -0400
+++ b/po/POTFILES.in Sat Jun 30 18:39:20 2007 -0400
@@ -10,14 +10,18 @@
buddytime/buddytime.c
chronic/chronic.c
dice/dice.c
+difftopic/difftopic.c
eight_ball/eight_ball.c
flip/flip.c
gRIM/gRIM.c
groupmsg/groupmsg.c
hideconv/hideconv.c
+highlight/highlight.c
ignorance/ignorance.c
ignorance/interface.c
ignorance/support.c
+ignore/ignore.c
+irc-more/irc-more.c
irchelper/irchelper.c
irssi/datechange.c
irssi/irssi.c
@@ -29,7 +33,6 @@
listhandler/gen_xml_files.c
listhandler/listhandler.c
listhandler/migrate.c
-listhandler/nb_dat_files.c
mystatusbox/mystatusbox.c
napster/napster.c
nicksaid/nicksaid.c
--- a/po/en_AU.po Thu Jun 14 16:51:36 2007 -0400
+++ b/po/en_AU.po Sat Jun 30 18:39:20 2007 -0400
@@ -8,7 +8,7 @@
msgstr ""
"Project-Id-Version: plugin_pack 0.1cvs\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-05-05 17:06-0500\n"
+"POT-Creation-Date: 2007-06-21 19:55-0400\n"
"PO-Revision-Date: 2005-11-21 10:36+1100\n"
"Last-Translator: Peter Lawler <trans@six-by-nine.com.au>\n"
"Language-Team: English/AU <trans@six-by-nine.com.au>\n"
@@ -117,98 +117,109 @@
msgstr ""
#. XXX: There should be a way to reset to the default/account-default autoreply
-#: ../autoreply/autoreply.c:225
+#: ../autoreply/autoreply.c:233
#, c-format
msgid "Set autoreply message for %s"
msgstr ""
-#: ../autoreply/autoreply.c:227
+#: ../autoreply/autoreply.c:235
msgid "Set Autoreply Message"
msgstr ""
-#: ../autoreply/autoreply.c:228
+#: ../autoreply/autoreply.c:236
msgid ""
"The following message will be sent to the buddy when the buddy sends you a "
"message and autoreply is enabled."
msgstr ""
-#: ../autoreply/autoreply.c:232
+#: ../autoreply/autoreply.c:240
msgid "_Save"
msgstr ""
-#: ../autoreply/autoreply.c:233 ../listhandler/aim_blt_files.c:301
-#: ../listhandler/aim_blt_files.c:465 ../listhandler/gen_xml_files.c:162
-#: ../listhandler/gen_xml_files.c:352 ../listhandler/migrate.c:145
+#: ../autoreply/autoreply.c:241 ../listhandler/aim_blt_files.c:301
+#: ../listhandler/aim_blt_files.c:465 ../listhandler/gen_xml_files.c:190
+#: ../listhandler/gen_xml_files.c:430 ../listhandler/gen_xml_files.c:546
+#: ../listhandler/gen_xml_files.c:623 ../listhandler/migrate.c:145
#: ../listhandler/migrate.c:184
msgid "_Cancel"
msgstr ""
-#: ../autoreply/autoreply.c:246
+#: ../autoreply/autoreply.c:254
msgid "Set _Autoreply Message"
msgstr ""
-#: ../autoreply/autoreply.c:255
+#: ../autoreply/autoreply.c:263
msgid "Autoreply message"
msgstr ""
-#: ../autoreply/autoreply.c:342
+#: ../autoreply/autoreply.c:350
msgid "Send autoreply messages when"
msgstr ""
-#: ../autoreply/autoreply.c:346
+#: ../autoreply/autoreply.c:354
msgid "When my account is _away"
msgstr ""
-#: ../autoreply/autoreply.c:350
+#: ../autoreply/autoreply.c:358
msgid "When my account is _idle"
msgstr ""
-#: ../autoreply/autoreply.c:354
+#: ../autoreply/autoreply.c:362
msgid "_Default reply"
msgstr ""
-#: ../autoreply/autoreply.c:360
+#: ../autoreply/autoreply.c:369
+msgid ""
+"Autoreply Prefix\n"
+"(only when necessary)"
+msgstr ""
+
+#: ../autoreply/autoreply.c:372
msgid "Status message"
msgstr ""
-#: ../autoreply/autoreply.c:364
+#: ../autoreply/autoreply.c:376
msgid "Autoreply with status message"
msgstr ""
-#: ../autoreply/autoreply.c:366
+#: ../autoreply/autoreply.c:378
msgid "Never"
msgstr ""
-#: ../autoreply/autoreply.c:368
+#: ../autoreply/autoreply.c:380
msgid "Always when there is a status message"
msgstr ""
-#: ../autoreply/autoreply.c:370
+#: ../autoreply/autoreply.c:382
msgid "Only when there's no autoreply message"
msgstr ""
-#: ../autoreply/autoreply.c:375
+#: ../autoreply/autoreply.c:387
msgid "Delay between autoreplies"
msgstr ""
-#: ../autoreply/autoreply.c:379
+#: ../autoreply/autoreply.c:391
msgid "_Minimum delay (mins)"
msgstr ""
-#: ../autoreply/autoreply.c:383
+#: ../autoreply/autoreply.c:395
msgid "Times to send autoreplies"
msgstr ""
-#: ../autoreply/autoreply.c:387
+#: ../autoreply/autoreply.c:399
msgid "Ma_ximum count"
msgstr ""
-#: ../autoreply/autoreply.c:442
+#: ../autoreply/autoreply.c:454
msgid ""
"I am currently not available. Please leave your message, and I will get back "
"to you as soon as possible."
msgstr ""
+#: ../autoreply/autoreply.c:459
+msgid "This is an autoreply: "
+msgstr ""
+
#: ../awaynotify/awaynotify.c:190
#, c-format
msgid "%s is away: %s"
@@ -304,19 +315,27 @@
"are. Completely, thoroughly untested."
msgstr ""
-#: ../blistops/blistops.c:112
+#: ../blistops/blistops.c:233
msgid "Hide the buddy list when it is created"
msgstr ""
-#: ../blistops/blistops.c:116
+#: ../blistops/blistops.c:237
msgid "Hide the menu in the buddy list window"
msgstr ""
-#: ../blistops/blistops.c:172
+#: ../blistops/blistops.c:241
+msgid "Stretch the buddyname if the buddy has no buddyicon."
+msgstr ""
+
+#: ../blistops/blistops.c:245
+msgid "Show email addresses for all the buddies."
+msgstr ""
+
+#: ../blistops/blistops.c:302
msgid "Buddy List Options"
msgstr ""
-#: ../blistops/blistops.c:173 ../blistops/blistops.c:174
+#: ../blistops/blistops.c:303 ../blistops/blistops.c:304
msgid "Gives extended options to the buddy list"
msgstr ""
@@ -505,23 +524,28 @@
"number of sides"
msgstr ""
-#: ../eight_ball/eight_ball.c:127
+#: ../difftopic/difftopic.c:152
+#, c-format
+msgid "<BR>Topic changed from: <BR>%s<BR>To:<BR>%s"
+msgstr ""
+
+#: ../eight_ball/eight_ball.c:128
msgid "8ball: sends a random 8ball message"
msgstr ""
-#: ../eight_ball/eight_ball.c:128
+#: ../eight_ball/eight_ball.c:129
msgid "sgball: sends a random Stargate Ball message"
msgstr ""
-#: ../eight_ball/eight_ball.c:195
+#: ../eight_ball/eight_ball.c:196
msgid "Magic 8 Ball"
msgstr ""
-#: ../eight_ball/eight_ball.c:196
+#: ../eight_ball/eight_ball.c:197
msgid "Provides Magic 8-ball like functionality"
msgstr ""
-#: ../eight_ball/eight_ball.c:197
+#: ../eight_ball/eight_ball.c:198
msgid ""
"Provides Magic 8-ball like functionality with the /8ball command, as well as "
"similar functionality for common Stargate words or phrases with the /sg-ball "
@@ -623,6 +647,35 @@
msgid "Hide All Conversations"
msgstr ""
+#: ../highlight/highlight.c:81
+msgid "Highlight History"
+msgstr ""
+
+#: ../highlight/highlight.c:253
+msgid ""
+"/highlight history: shows the list of highlighted sentences from the "
+"history.\n"
+"/highlight clear: clears the history.\n"
+"/highlight +&lt;word&gt;: adds &lt;word&gt; to the highlight word list for "
+"this conversation only.\n"
+"/highlight -&lt;word&gt;: removes &lt;word&gt; from the highlight word list "
+"for this conversation only.\n"
+msgstr ""
+
+#: ../highlight/highlight.c:281
+msgid ""
+"Words to highlight on\n"
+"(separate words by space)"
+msgstr ""
+
+#: ../highlight/highlight.c:309 ../nicksaid/nicksaid.c:577
+msgid "Highlight"
+msgstr ""
+
+#: ../highlight/highlight.c:311 ../highlight/highlight.c:312
+msgid "Support for highlighting words."
+msgstr ""
+
#: ../ignorance/ignorance.c:391
#, c-format
msgid "Successfully removed %s from %s"
@@ -697,7 +750,7 @@
msgid "Filter"
msgstr ""
-#: ../ignorance/interface.c:172
+#: ../ignorance/interface.c:172 ../ignore/ignore.c:275
msgid "Ignore"
msgstr ""
@@ -746,62 +799,119 @@
msgid "Couldn't find pixmap file: %s"
msgstr ""
-#: ../irchelper/irchelper.c:920
+#: ../ignore/ignore.c:133
+msgid "Ignore Rules"
+msgstr ""
+
+#: ../ignore/ignore.c:133
+msgid "The following are the current ignore rules"
+msgstr ""
+
+#: ../ignore/ignore.c:134
+msgid "(Dear God! You are not ignoring any one!)"
+msgstr ""
+
+#: ../ignore/ignore.c:236
+msgid ""
+"ignore [-c] [+&lt;ignore&gt; -&lt;unignore&gt;]<br>Examples:<br> 'ignore "
+"+StupidBot -NotABot' \t - (in a chat) Starts ignoring StupidBot, and removes "
+"NotABot from ignore list.<br> 'ignore -c +AnotherBot' \t - (in a chat) "
+"Starts ignoring AnotherBot, but only in chats.<br> 'ignore +' \t - (in an "
+"IM) Starts ignoring this person.<br> 'ignore -' \t - (in an IM) Starts "
+"unignoring this person.<br> 'ignore' \t - Lists the current ignore rules."
+msgstr ""
+
+#: ../ignore/ignore.c:277
+msgid ""
+"Flexible plugin to selectively ignore people. Please do not use if you have "
+"amnesia."
+msgstr ""
+
+#: ../ignore/ignore.c:278
+msgid ""
+"Flexible plugin to selectively ignore people. See '/help ignore' for more "
+"help.\n"
+"Please do not use if you have amnesia."
+msgstr ""
+
+#: ../irc-more/irc-more.c:86
+msgid "Default Quit Message"
+msgstr ""
+
+#: ../irc-more/irc-more.c:89
+msgid "Default Part Message"
+msgstr ""
+
+#: ../irc-more/irc-more.c:92
+msgid "CTCP Version reply"
+msgstr ""
+
+#: ../irc-more/irc-more.c:116
+msgid "IRC More"
+msgstr ""
+
+#: ../irc-more/irc-more.c:118 ../irc-more/irc-more.c:119
+msgid ""
+"Adds a couple of options for IRC: Customized default quit message, and CTCP "
+"version reply."
+msgstr ""
+
+#: ../irchelper/irchelper.c:948
msgid "You have been added to the access list."
msgstr ""
-#: ../irchelper/irchelper.c:922
+#: ../irchelper/irchelper.c:950
#, c-format
msgid "You have been added to the access list with an access level of %s."
msgstr ""
-#: ../irchelper/irchelper.c:956
+#: ../irchelper/irchelper.c:984
msgid "You have been removed from the access list."
msgstr ""
-#: ../irchelper/irchelper.c:1065
+#: ../irchelper/irchelper.c:1093
msgid "NickServ Authentication Error"
msgstr ""
-#: ../irchelper/irchelper.c:1066
+#: ../irchelper/irchelper.c:1094
msgid "Error authenticating with NickServ"
msgstr ""
-#: ../irchelper/irchelper.c:1067 ../irchelper/irchelper.c:1093
-#: ../irchelper/irchelper.c:1119
+#: ../irchelper/irchelper.c:1095 ../irchelper/irchelper.c:1121
+#: ../irchelper/irchelper.c:1147
msgid "Check your password."
msgstr ""
-#: ../irchelper/irchelper.c:1091
+#: ../irchelper/irchelper.c:1119
msgid "GameSurge Authentication Error"
msgstr ""
-#: ../irchelper/irchelper.c:1092
+#: ../irchelper/irchelper.c:1120
msgid "Error authenticating with AuthServ"
msgstr ""
-#: ../irchelper/irchelper.c:1117
+#: ../irchelper/irchelper.c:1145
msgid "QuakeNet Authentication Error"
msgstr ""
-#: ../irchelper/irchelper.c:1118
+#: ../irchelper/irchelper.c:1146
msgid "Error authenticating with Q"
msgstr ""
#. Register protocol preferences.
-#: ../irchelper/irchelper.c:1157
+#: ../irchelper/irchelper.c:1185
msgid "Auth name"
msgstr ""
-#: ../irchelper/irchelper.c:1160
+#: ../irchelper/irchelper.c:1188
msgid "Nick password"
msgstr ""
-#: ../irchelper/irchelper.c:1164
+#: ../irchelper/irchelper.c:1192
msgid "Disconnect ghosts (Duplicate nicknames)"
msgstr ""
-#: ../irchelper/irchelper.c:1168
+#: ../irchelper/irchelper.c:1196
msgid "Operator password"
msgstr ""
@@ -929,7 +1039,8 @@
#. create a field
#: ../listhandler/aim_blt_files.c:287 ../listhandler/aim_blt_files.c:453
-#: ../listhandler/gen_xml_files.c:147 ../listhandler/gen_xml_files.c:338
+#: ../listhandler/gen_xml_files.c:175 ../listhandler/gen_xml_files.c:416
+#: ../listhandler/gen_xml_files.c:532 ../listhandler/gen_xml_files.c:608
#: ../listhandler/migrate.c:129 ../listhandler/migrate.c:169
#: ../schedule/pidgin-schedule.c:292
msgid "Account"
@@ -937,14 +1048,16 @@
#. and finally we can create the request
#: ../listhandler/aim_blt_files.c:297
-msgid "Buddy List Importer"
+msgid "List Handler: Importing"
msgstr ""
-#: ../listhandler/aim_blt_files.c:298 ../listhandler/gen_xml_files.c:159
+#: ../listhandler/aim_blt_files.c:298 ../listhandler/gen_xml_files.c:187
+#: ../listhandler/gen_xml_files.c:620
msgid "Choose the account to import to:"
msgstr ""
-#: ../listhandler/aim_blt_files.c:299 ../listhandler/gen_xml_files.c:160
+#: ../listhandler/aim_blt_files.c:299 ../listhandler/gen_xml_files.c:188
+#: ../listhandler/gen_xml_files.c:621
msgid "_Import"
msgstr ""
@@ -954,14 +1067,16 @@
#. and finally we can create the request
#: ../listhandler/aim_blt_files.c:463
-msgid "Buddy List Exporter"
+msgid "List Handler: Exporting"
msgstr ""
-#: ../listhandler/aim_blt_files.c:464 ../listhandler/gen_xml_files.c:351
+#: ../listhandler/aim_blt_files.c:464 ../listhandler/gen_xml_files.c:429
+#: ../listhandler/gen_xml_files.c:545
msgid "Choose the account to export from:"
msgstr ""
-#: ../listhandler/aim_blt_files.c:465 ../listhandler/gen_xml_files.c:352
+#: ../listhandler/aim_blt_files.c:465 ../listhandler/gen_xml_files.c:430
+#: ../listhandler/gen_xml_files.c:546
msgid "_Export"
msgstr ""
@@ -970,52 +1085,64 @@
msgstr ""
#. and finally we can create the request
-#: ../listhandler/gen_xml_files.c:158
+#: ../listhandler/gen_xml_files.c:186 ../listhandler/gen_xml_files.c:619
msgid "Listhandler - Importing"
msgstr ""
-#: ../listhandler/gen_xml_files.c:312
+#: ../listhandler/gen_xml_files.c:390
msgid "Save Generic .blist File"
msgstr ""
#. and finally we can create the request
-#: ../listhandler/gen_xml_files.c:350
+#: ../listhandler/gen_xml_files.c:428 ../listhandler/gen_xml_files.c:544
msgid "Listhandler - Exporting"
msgstr ""
-#: ../listhandler/gen_xml_files.c:363
+#: ../listhandler/gen_xml_files.c:441 ../listhandler/gen_xml_files.c:650
msgid "Choose A Generic Buddy List File To Import"
msgstr ""
+#: ../listhandler/gen_xml_files.c:505
+msgid "Save Generic .alist File"
+msgstr ""
+
#: ../listhandler/listhandler.c:37
-msgid "Import AIM Buddy List File"
+msgid "Import AIM Buddy List File (.blt)"
msgstr ""
#: ../listhandler/listhandler.c:41
-msgid "Import Generic Buddy List File"
+msgid "Import Generic Buddy List File (.xml)"
msgstr ""
#: ../listhandler/listhandler.c:45
-msgid "Export AIM Buddy List File"
+msgid "Import Generic Alias List File"
msgstr ""
#: ../listhandler/listhandler.c:49
-msgid "Export Generic Buddy List File"
+msgid "Export AIM Buddy List File"
msgstr ""
#: ../listhandler/listhandler.c:53
+msgid "Export Generic Buddy List File"
+msgstr ""
+
+#: ../listhandler/listhandler.c:57
+msgid "Export Generic Alias List File"
+msgstr ""
+
+#: ../listhandler/listhandler.c:61
msgid "Copy Buddies From One Account to Another"
msgstr ""
-#: ../listhandler/listhandler.c:100
+#: ../listhandler/listhandler.c:108
msgid "List Handler"
msgstr ""
-#: ../listhandler/listhandler.c:102
+#: ../listhandler/listhandler.c:110
msgid "Provides numerous user-requested list-handling capabilities."
msgstr ""
-#: ../listhandler/listhandler.c:105
+#: ../listhandler/listhandler.c:113
msgid ""
"Provides numerous user-requested list-handling capabilities, such as "
"importing and exporting of AIM .blt files and generic protocol-agnostic XML ."