--- a/src/protocols/zephyr/zephyr.c Sat Apr 26 20:05:01 2003 +0000 +++ b/src/protocols/zephyr/zephyr.c Sat Apr 26 20:30:43 2003 +0000 @@ -882,20 +882,23 @@ pce = g_new0(struct proto_chat_entry, 1); pce->label = _("Class:"); + pce->identifier = "class"; m = g_list_append(m, pce); pce = g_new0(struct proto_chat_entry, 1); pce->label = _("Instance:"); + pce->identifier = "instance"; m = g_list_append(m, pce); pce = g_new0(struct proto_chat_entry, 1); pce->label = _("Recipient:"); + pce->identifier = "recipient"; m = g_list_append(m, pce); return m; } -static void zephyr_join_chat(struct gaim_connection *gc, GList *data) +static void zephyr_join_chat(struct gaim_connection *gc, GHashTable *data) { ZSubscription_t sub; zephyr_triple *zt1, *zt2; @@ -903,12 +906,13 @@ const char *instname; const char *recip; - if (!data || !data->next || !data->next->next) + classname = g_hash_table_lookup(data, "class"); + instname = g_hash_table_lookup(data, "instance"); + recip = g_hash_table_lookup(data, "recipient"); + + if (!classname || !instname || !recip) return; - classname = data->data; - instname = data->next->data; - recip = data->next->next->data; if (!g_ascii_strcasecmp(recip, "%me%")) recip = ZGetSender();