comparison plugins/irc.c @ 1047:ece2d1543b20

[gaim-migrate @ 1057] Plugins now use GModule. Protocol plugins can be dynamically updated. committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Wed, 01 Nov 2000 22:30:36 +0000
parents 4593605da0e2
children 49799527aebf
comparison
equal deleted inserted replaced
1046:4593605da0e2 1047:ece2d1543b20
890 890
891 /* But first, let's go ahead and check our list */ 891 /* But first, let's go ahead and check our list */
892 irc_request_buddy_update(gc); 892 irc_request_buddy_update(gc);
893 } 893 }
894 894
895 struct prpl *irc_init() { 895 static struct prpl *my_protocol = NULL;
896 struct prpl *ret = g_new0(struct prpl, 1); 896
897 897 void irc_init(struct prpl *ret) {
898 ret->protocol = PROTO_IRC; 898 ret->protocol = PROTO_IRC;
899 ret->name = irc_name; 899 ret->name = irc_name;
900 ret->login = irc_login; 900 ret->login = irc_login;
901 ret->close = irc_close; 901 ret->close = irc_close;
902 ret->send_im = irc_send_im; 902 ret->send_im = irc_send_im;
920 ret->chat_invite = NULL; 920 ret->chat_invite = NULL;
921 ret->chat_leave = irc_chat_leave; 921 ret->chat_leave = irc_chat_leave;
922 ret->chat_whisper = NULL; 922 ret->chat_whisper = NULL;
923 ret->chat_send = irc_chat_send; 923 ret->chat_send = irc_chat_send;
924 ret->keepalive = NULL; 924 ret->keepalive = NULL;
925 925
926 return ret; 926 my_protocol = ret;
927 } 927 }
928 928
929 int gaim_plugin_init(void *handle) { 929 char *gaim_plugin_init(GModule *handle) {
930 load_protocl(irc_init); 930 load_protocol(irc_init);
931 return 0; 931 return NULL;
932 } 932 }
933
934 void gaim_plugin_remove() {
935 struct prpl *p = find_prpl(PROTO_IRC);
936 if (p == my_protocol)
937 unload_protocol(p);
938 }