typedef struct server_t server_t;
typedef struct channel_t channel_t;
+typedef struct user_t user_t;
typedef enum {
IRC,
channel_t *next;
} channel_t;
+typedef struct user_t {
+ server_t *server;
+ char *name;
+ user_t *alias;
+ user_t *next;
+} user_t;
+
typedef struct {
- channel_t *channel;
stamp_t when;
- char *from;
+ channel_t *channel;
+ user_t *from;
char *text;
} message_t;
/* Global Data */
extern server_t *servers;
extern channel_t *channels;
+extern user_t *users;
extern message_t *messages;
extern int history;
void chat_init(void);
void chat_config(const char *group, const char *name,
const char *key, const char *value);
-void chat_recv(channel_t *channel, const char *from, const char *text);
+void chat_recv(channel_t *channel, user_t *from, const char *text);
void chat_send(channel_t *channel, const char *text);
void chat_exit(void);
-server_t *add_server(const char *name, protocol_t protocol);
-channel_t *add_channel(const char *name, server_t *server);
-server_t *find_server(const char *name);
-channel_t *find_channel(const char *name);
+void add_server(server_t *server);
+void add_channel(channel_t *channel);
+void add_user(user_t *user);
-/* Protocol functions */
-extern void irc_init(void);
-extern server_t *irc_server(void);
-extern channel_t *irc_channel(void);
+/* IRC functions */
extern void irc_config(server_t *server, channel_t *channel,
const char *group, const char *name,
const char *key, const char *value);
extern void irc_send(channel_t *channel, const char *text);
extern void irc_exit(void);
+extern void irc_init(void);
+/* XMPP functions */
extern void xmpp_init(void);
-extern server_t *xmpp_server(void);
-extern channel_t *xmpp_channel(void);
extern void xmpp_config(server_t *server, channel_t *channel,
const char *group, const char *name,
const char *key, const char *value);