Frameworks/libpurple.framework/Versions/0.6.2/Headers/irc.h
changeset 2592 e8d15275025e
parent 1739 8b0daad9656c
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/Frameworks/libpurple.framework/Versions/0.6.2/Headers/irc.h	Fri Aug 21 13:25:11 2009 -0700
     1.3 @@ -0,0 +1,198 @@
     1.4 +/**
     1.5 + * @file irc.h
     1.6 + *
     1.7 + * purple
     1.8 + *
     1.9 + * Copyright (C) 2003, Ethan Blanton <eblanton@cs.purdue.edu>
    1.10 + *
    1.11 + * This program is free software; you can redistribute it and/or modify
    1.12 + * it under the terms of the GNU General Public License as published by
    1.13 + * the Free Software Foundation; either version 2 of the License, or
    1.14 + * (at your option) any later version.
    1.15 + *
    1.16 + * This program is distributed in the hope that it will be useful,
    1.17 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    1.18 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    1.19 + * GNU General Public License for more details.
    1.20 + *
    1.21 + * You should have received a copy of the GNU General Public License
    1.22 + * along with this program; if not, write to the Free Software
    1.23 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111-1301  USA
    1.24 + */
    1.25 +
    1.26 +#ifndef _PURPLE_IRC_H
    1.27 +#define _PURPLE_IRC_H
    1.28 +
    1.29 +#include <glib.h>
    1.30 +
    1.31 +#include "circbuffer.h"
    1.32 +#include "ft.h"
    1.33 +#include "roomlist.h"
    1.34 +#include "sslconn.h"
    1.35 +
    1.36 +#define IRC_DEFAULT_SERVER "irc.freenode.net"
    1.37 +#define IRC_DEFAULT_PORT 6667
    1.38 +#define IRC_DEFAULT_SSL_PORT 994
    1.39 +
    1.40 +#define IRC_DEFAULT_CHARSET "UTF-8"
    1.41 +#define IRC_DEFAULT_AUTODETECT FALSE
    1.42 +#define IRC_DEFAULT_ALIAS "purple"
    1.43 +
    1.44 +#define IRC_DEFAULT_QUIT "Leaving."
    1.45 +
    1.46 +#define IRC_INITIAL_BUFSIZE 1024
    1.47 +
    1.48 +#define IRC_NAMES_FLAG "irc-namelist"
    1.49 +
    1.50 +
    1.51 +enum { IRC_USEROPT_SERVER, IRC_USEROPT_PORT, IRC_USEROPT_CHARSET };
    1.52 +enum irc_state { IRC_STATE_NEW, IRC_STATE_ESTABLISHED };
    1.53 +
    1.54 +struct irc_conn {
    1.55 +	PurpleAccount *account;
    1.56 +	GHashTable *msgs;
    1.57 +	GHashTable *cmds;
    1.58 +	char *server;
    1.59 +	int fd;
    1.60 +	guint timer;
    1.61 +	GHashTable *buddies;
    1.62 +
    1.63 +	gboolean ison_outstanding;
    1.64 +
    1.65 +	char *inbuf;
    1.66 +	int inbuflen;
    1.67 +	int inbufused;
    1.68 +
    1.69 +	GString *motd;
    1.70 +	GString *names;
    1.71 +	struct _whois {
    1.72 +		char *nick;
    1.73 +		char *away;
    1.74 +		char *userhost;
    1.75 +		char *name;
    1.76 +		char *server;
    1.77 +		char *serverinfo;
    1.78 +		char *channels;
    1.79 +		int ircop;
    1.80 +		int identified;
    1.81 +		int idle;
    1.82 +		time_t signon;
    1.83 +	} whois;
    1.84 +	PurpleRoomlist *roomlist;
    1.85 +	PurpleSslConnection *gsc;
    1.86 +
    1.87 +	gboolean quitting;
    1.88 +
    1.89 +	PurpleCircBuffer *outbuf;
    1.90 +	guint writeh;
    1.91 +
    1.92 +	time_t recv_time;
    1.93 +
    1.94 +	char *mode_chars;
    1.95 +	char *reqnick;
    1.96 +	gboolean nickused;
    1.97 +};
    1.98 +
    1.99 +struct irc_buddy {
   1.100 +	char *name;
   1.101 +	gboolean online;
   1.102 +	gboolean flag;
   1.103 +};
   1.104 +
   1.105 +typedef int (*IRCCmdCallback) (struct irc_conn *irc, const char *cmd, const char *target, const char **args);
   1.106 +
   1.107 +int irc_send(struct irc_conn *irc, const char *buf);
   1.108 +gboolean irc_blist_timeout(struct irc_conn *irc);
   1.109 +
   1.110 +char *irc_escape_privmsg(const char *text, gssize length);
   1.111 +
   1.112 +char *irc_mirc2html(const char *string);
   1.113 +char *irc_mirc2txt(const char *string);
   1.114 +
   1.115 +const char *irc_nick_skip_mode(struct irc_conn *irc, const char *string);
   1.116 +
   1.117 +gboolean irc_ischannel(const char *string);
   1.118 +
   1.119 +void irc_register_commands(void);
   1.120 +void irc_msg_table_build(struct irc_conn *irc);
   1.121 +void irc_parse_msg(struct irc_conn *irc, char *input);
   1.122 +char *irc_parse_ctcp(struct irc_conn *irc, const char *from, const char *to, const char *msg, int notice);
   1.123 +char *irc_format(struct irc_conn *irc, const char *format, ...);
   1.124 +
   1.125 +void irc_msg_default(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.126 +void irc_msg_away(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.127 +void irc_msg_badmode(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.128 +void irc_msg_badnick(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.129 +void irc_msg_ban(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.130 +void irc_msg_banfull(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.131 +void irc_msg_banned(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.132 +void irc_msg_chanmode(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.133 +void irc_msg_endwhois(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.134 +void irc_msg_features(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.135 +void irc_msg_invite(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.136 +void irc_msg_inviteonly(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.137 +void irc_msg_ison(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.138 +void irc_msg_join(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.139 +void irc_msg_kick(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.140 +void irc_msg_list(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.141 +void irc_msg_luser(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.142 +void irc_msg_mode(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.143 +void irc_msg_motd(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.144 +void irc_msg_names(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.145 +void irc_msg_nick(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.146 +void irc_msg_nickused(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.147 +void irc_msg_nochan(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.148 +void irc_msg_nonick(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.149 +void irc_msg_nochangenick(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.150 +void irc_msg_nosend(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.151 +void irc_msg_notice(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.152 +void irc_msg_notinchan(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.153 +void irc_msg_notop(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.154 +void irc_msg_part(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.155 +void irc_msg_ping(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.156 +void irc_msg_pong(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.157 +void irc_msg_privmsg(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.158 +void irc_msg_quit(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.159 +void irc_msg_regonly(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.160 +void irc_msg_time(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.161 +void irc_msg_topic(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.162 +void irc_msg_unavailable(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.163 +void irc_msg_unknown(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.164 +void irc_msg_wallops(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.165 +void irc_msg_whois(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.166 +
   1.167 +void irc_msg_ignore(struct irc_conn *irc, const char *name, const char *from, char **args);
   1.168 +
   1.169 +void irc_cmd_table_build(struct irc_conn *irc);
   1.170 +
   1.171 +int irc_cmd_default(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
   1.172 +int irc_cmd_away(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
   1.173 +int irc_cmd_ctcp(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
   1.174 +int irc_cmd_ctcp_action(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
   1.175 +int irc_cmd_ctcp_version(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
   1.176 +int irc_cmd_invite(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
   1.177 +int irc_cmd_join(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
   1.178 +int irc_cmd_kick(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
   1.179 +int irc_cmd_list(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
   1.180 +int irc_cmd_mode(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
   1.181 +int irc_cmd_names(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
   1.182 +int irc_cmd_nick(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
   1.183 +int irc_cmd_op(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
   1.184 +int irc_cmd_privmsg(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
   1.185 +int irc_cmd_part(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
   1.186 +int irc_cmd_ping(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
   1.187 +int irc_cmd_quit(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
   1.188 +int irc_cmd_quote(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
   1.189 +int irc_cmd_query(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
   1.190 +int irc_cmd_remove(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
   1.191 +int irc_cmd_service(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
   1.192 +int irc_cmd_time(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
   1.193 +int irc_cmd_topic(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
   1.194 +int irc_cmd_wallops(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
   1.195 +int irc_cmd_whois(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
   1.196 +int irc_cmd_whowas(struct irc_conn *irc, const char *cmd, const char *target, const char **args);
   1.197 +
   1.198 +PurpleXfer *irc_dccsend_new_xfer(PurpleConnection *gc, const char *who);
   1.199 +void irc_dccsend_send_file(PurpleConnection *gc, const char *who, const char *file);
   1.200 +void irc_dccsend_recv(struct irc_conn *irc, const char *from, const char *msg);
   1.201 +#endif /* _PURPLE_IRC_H */