Mercurial > pidgin.yaz
comparison src/prpl.c @ 4040:89b56ab2b692
[gaim-migrate @ 4248]
faceprint got jabber registration working again :-)
committer: Tailor Script <tailor@pidgin.im>
author | Luke Schierer <lschiere@pidgin.im> |
---|---|
date | Tue, 03 Dec 2002 17:50:43 +0000 |
parents | 9178da61c19f |
children | 133cf6424c53 |
comparison
equal
deleted
inserted
replaced
4039:630826d97d54 | 4040:89b56ab2b692 |
---|---|
754 | 754 |
755 GSList *add_smiley(GSList *list, char *key, char **xpm, int show) | 755 GSList *add_smiley(GSList *list, char *key, char **xpm, int show) |
756 { | 756 { |
757 struct _prpl_smiley *smiley; | 757 struct _prpl_smiley *smiley; |
758 | 758 |
759 smiley = (struct _prpl_smiley *)g_new0(struct _prpl_smiley, 1); | 759 smiley = (struct _prpl_smiley *)g_new0(struct _prpl_smiley, 1); |
760 smiley->key = g_strdup(key); | 760 smiley->key = g_strdup(key); |
761 smiley->xpm = xpm; | 761 smiley->xpm = xpm; |
762 smiley->show = show; | 762 smiley->show = show; |
763 list = g_slist_append(list, smiley); | 763 list = g_slist_append(list, smiley); |
764 | 764 |
765 return list; | 765 return list; |
766 } | 766 } |
767 | |
768 static gboolean delayed_unload(void *handle) { | |
769 g_module_close(handle); | |
770 return FALSE; | |
771 } | |
772 | |
773 gboolean ref_protocol(struct prpl *p) { | |
774 #ifdef GAIM_PLUGINS | |
775 if(p->plug) { /* This protocol is a plugin */ | |
776 prpl_accounts[p->protocol]++; | |
777 debug_printf("Protocol %s now in use by %d connections.\n", p->name, prpl_accounts[p->protocol]); | |
778 if(!p->plug->handle) { /*But the protocol isn't yet loaded */ | |
779 unload_protocol(p); | |
780 if (load_prpl(p)) | |
781 return FALSE; | |
782 } | |
783 } | |
784 #endif /* GAIM_PLUGINS */ | |
785 return TRUE; | |
786 } | |
787 | |
788 void unref_protocol(struct prpl *p) { | |
789 #ifdef GAIM_PLUGINS | |
790 if(p->plug) { /* This protocol is a plugin */ | |
791 prpl_accounts[p->protocol]--; | |
792 debug_printf("Protocol %s now in use by %d connections.\n", p->name, prpl_accounts[p->protocol]); | |
793 if(prpl_accounts[p->protocol] == 0) { /* No longer needed */ | |
794 debug_printf("Throwing out %s protocol plugin\n", p->name); | |
795 g_timeout_add(0, delayed_unload, p->plug->handle); | |
796 p->plug->handle = NULL; | |
797 } | |
798 } | |
799 #endif /* GAIM_PLUGINS */ | |
800 } | |
801 |