--- a/mcabber/src/commands.c Fri Nov 25 23:10:26 2005 +0100
+++ b/mcabber/src/commands.c Fri Nov 25 23:44:47 2005 +0100
@@ -1261,7 +1261,7 @@
return;
}
// Quick check: if there are resources, we haven't left
- if (buddy_getresources(bud)) {
+ if (buddy_isresource(bud)) {
scr_LogPrint(LPRINT_NORMAL, "You haven't left this room!");
return;
}
--- a/mcabber/src/jabglue.c Fri Nov 25 23:10:26 2005 +0100
+++ b/mcabber/src/jabglue.c Fri Nov 25 23:44:47 2005 +0100
@@ -275,7 +275,7 @@
char *to;
struct T_presence *pres = presencedata;
- if (!buddy_getresources(room)) // FIXME: that's a memory leak
+ if (!buddy_isresource(room))
return;
jid = buddy_getjid(room);
--- a/mcabber/src/roster.c Fri Nov 25 23:10:26 2005 +0100
+++ b/mcabber/src/roster.c Fri Nov 25 23:44:47 2005 +0100
@@ -874,6 +874,19 @@
return reslist;
}
+// buddy_isresource(roster_data)
+// Return true if there is at least one resource
+// (which means, for a room, that it isn't empty)
+int buddy_isresource(gpointer rosterdata)
+{
+ roster *roster_usr = rosterdata;
+ if (!roster_usr)
+ return FALSE;
+ if (roster_usr->resource)
+ return TRUE;
+ return FALSE;
+}
+
// buddy_resource_setname(roster_data, oldname, newname)
// Useful for nickname change in a MUC room
void buddy_resource_setname(gpointer rosterdata, const char *resname,
--- a/mcabber/src/roster.h Fri Nov 25 23:10:26 2005 +0100
+++ b/mcabber/src/roster.h Fri Nov 25 23:44:47 2005 +0100
@@ -80,6 +80,7 @@
enum imstatus buddy_getstatus(gpointer rosterdata, const char *resname);
const char *buddy_getstatusmsg(gpointer rosterdata, const char *resname);
gchar buddy_getresourceprio(gpointer rosterdata, const char *resname);
+int buddy_isresource(gpointer rosterdata);
GSList *buddy_getresources(gpointer rosterdata);
void buddy_resource_setname(gpointer rosterdata, const char *resname,
const char *newname);
--- a/mcabber/src/screen.c Fri Nov 25 23:10:26 2005 +0100
+++ b/mcabber/src/screen.c Fri Nov 25 23:44:47 2005 +0100
@@ -785,7 +785,7 @@
}
if (ismuc) {
- if (buddy_getresources(BUDDATA(buddy)))
+ if (buddy_isresource(BUDDATA(buddy)))
status = 'C';
else
status = 'x';