| - { - g_free( gc->channel ); - gc->channel = g_strdup( c->channel ); - return 1; - } - - return 0; -} diff --git a/protocols/chat.h b/protocols/chat.h deleted file mode 100644 index 7196aea8..00000000 --- a/ protocols/chat.h+++ /dev/null @@ -1,51 +0,0 @@ - /********************************************************************\ - * BitlBee -- An IRC to other IM-networks gateway * - * * - * Copyright 2002-2008 Wilmer van der Gaast and others * - \********************************************************************/ - -/* Keep track of chatrooms the user is interested in */ - -/* - 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 with - the Debian GNU/Linux distribution in /usr/share/common-licenses/GPL; - if not, write to the Free Software Foundation, Inc., 59 Temple Place, - Suite 330, Boston, MA 02111-1307 USA -*/ - -#ifndef _CHAT_H -#define _CHAT_H - -struct chat -{ - account_t *acc; - - char *handle; - char *channel; - set_t *set; - - struct chat *next; -}; - -struct chat *chat_add( irc_t *irc, account_t *acc, char *handle, char *channel ); -struct chat *chat_byhandle( irc_t *irc, account_t *acc, char *handle ); -struct chat *chat_bychannel( irc_t *irc, char *channel ); -struct chat *chat_get( irc_t *irc, char *id ); -int chat_del( irc_t *irc, struct chat *chat ); - -int chat_chancmp( char *a, char *b ); -int chat_chanok( char *a ); - -int chat_join( irc_t *irc, struct chat *c, const char *password ); - -#endif @@ -35,7 +35,6 @@ #include <ctype.h> #include "nogaim.h" -#include "chat.h" GSList *connections; @@ -27,7 +27,6 @@ #include "commands.h" #include "bitlbee.h" #include "help.h" -#include "chat.h" #include <string.h> @@ -28,7 +28,6 @@ #include "base64.h" #include "arc.h" #include "md5.h" -#include "chat.h" #if GLIB_CHECK_VERSION(2,8,0) #include <glib/gstdio.h> @@ -54,7 +53,7 @@ struct xml_parsedata irc_t *irc; char *current_setting; account_t *current_account; - struct chat *current_chat; + irc_channel_t *current_channel; set_t **current_set_head; char *given_nick; char *given_pass; @@ -175,9 +174,12 @@ static void xml_start_element( GMarkupParseContext *ctx, const gchar *element_na if( ( setting = xml_attr( attr_names, attr_values, "name" ) ) ) { + /* if( xd->current_chat != NULL ) xd->current_set_head = &xd->current_chat->set; - else if( xd->current_account != NULL ) + else + */ + if( xd->current_account != NULL ) xd->current_set_head = &xd->current_account->set; else xd->current_set_head = &xd->irc->b->set; @@ -214,7 +216,24 @@ static void xml_start_element( GMarkupParseContext *ctx, const gchar *element_na if( xd->current_account && handle && channel ) { - //xd->current_chat = chat_add( xd->irc, xd->current_account, handle, channel ); + irc_channel_t *ic; + char *acc; + + acc = g_strdup_printf( "%s(%s)", + xd->current_account->prpl->name, + xd->current_account->user ); + + if( ( ic = irc_channel_new( irc, channel ) ) && + set_setstr( &ic->set, "chat_type", "room" ) && + set_setstr( &ic->set, "account", acc ) && + set_setstr( &ic->set, "room", handle ) ) + { + /* Nothing else to do for now, really. */ + } + else if( ic ) + irc_channel_free( ic ); + + g_free( acc ); } else { @@ -244,7 +263,7 @@ static void xml_end_element( GMarkupParseContext *ctx, const gchar *element_name } else if( g_strcasecmp( element_name, "chat" ) == 0 ) { - xd->current_chat = NULL; + /* xd->current_chat = NULL; */ } } @@ -436,7 +455,6 @@ static storage_status_t xml_save( irc_t *irc, int overwrite ) unsigned char *pass_cr; char *pass_b64; int pass_len; - struct chat *c; pass_len = arc_encode( acc->pass, strlen( acc->pass ), (unsigned char**) &pass_cr, irc->password, 12 ); pass_b64 = base64_encode( pass_cr, pass_len ); @@ -469,27 +487,6 @@ static storage_status_t xml_save( irc_t *irc, int overwrite ) if( g_hash_table_find( acc->nicks, xml_save_nick, & fd ) ) goto write_error; -#if 0 - for( c = irc->chatrooms; c; c = c->next ) - { - if( c->acc != acc ) - continue; - - if( !xml_printf( fd, 2, "<chat handle=\"%s\" channel=\"%s\" type=\"%s\">\n", - c->handle, c->channel, "room" ) ) - goto write_error; - - for( set = c->set; set; set = set->next ) - if( set->value && !( set->flags & ACC_SET_NOSAVE ) ) - if( !xml_printf( fd, 3, "<setting name=\"%s\">%s</setting>\n", - set->key, set->value ) ) - goto write_error; - - if( !xml_printf( fd, 2, "</chat>\n" ) ) - goto write_error; - } -#endif - if( !xml_printf( fd, 1, "</account>\n" ) ) goto write_error; } |