annotate plugins/perl/common/BuddyList.xs @ 9578:7cd7da72c872

[gaim-migrate @ 10421] Fix a pretty good-sized problem that deryni pointed out in the Perl plugin. Basically, if a script didn't have an unload function set, the data, signals, timeouts, commands, etc. was remaining after the plugin was unloaded. This should be fixed now, barring any bizarre bugs that result from the simple change. committer: Tailor Script <tailor@pidgin.im>
author Christian Hammond <chipx86@chipx86.com>
date Fri, 23 Jul 2004 00:12:55 +0000
parents 12169973c663
children 18223e71ced7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6531
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1 #include "module.h"
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3 MODULE = Gaim::BuddyList PACKAGE = Gaim::BuddyList PREFIX = gaim_blist_
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4 PROTOTYPES: ENABLE
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
6 void
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
7 gaim_blist_set_visible(show)
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
8 gboolean show
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
9
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
10 void
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
11 add_buddy(buddy, group)
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
12 Gaim::BuddyList::Buddy buddy
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
13 Gaim::BuddyList::Group group
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
14 CODE:
6699
12169973c663 [gaim-migrate @ 7225]
Christian Hammond <chipx86@chipx86.com>
parents: 6545
diff changeset
15 gaim_blist_add_buddy(buddy, NULL, group, NULL);
6531
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
16
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
17 void
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
18 add_group(group)
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
19 Gaim::BuddyList::Group group
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
20 CODE:
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
21 gaim_blist_add_group(group, NULL);
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
22
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
23 void
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
24 add_chat(chat, group)
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
25 Gaim::BuddyList::Chat chat
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
26 Gaim::BuddyList::Group group
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
27 CODE:
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
28 gaim_blist_add_chat(chat, group, NULL);
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
29
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
30 void
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
31 gaim_blist_remove_buddy(buddy)
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
32 Gaim::BuddyList::Buddy buddy
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
33
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
34 void
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
35 gaim_blist_remove_group(group)
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
36 Gaim::BuddyList::Group group
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
37
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
38 void
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
39 gaim_blist_remove_chat(chat)
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
40 Gaim::BuddyList::Chat chat
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
41
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
42 Gaim::BuddyList::Buddy
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
43 find_buddy(account, name)
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
44 Gaim::Account account
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
45 const char *name
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
46 CODE:
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
47 RETVAL = gaim_find_buddy(account, name);
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
48 OUTPUT:
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
49 RETVAL
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
50
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
51 void
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
52 find_buddies(account, name)
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
53 Gaim::Account account
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
54 const char *name
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
55 PREINIT:
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
56 GSList *l;
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
57 PPCODE:
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
58 for (l = gaim_find_buddies(account, name); l != NULL; l = l->next)
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
59 {
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
60 XPUSHs(sv_2mortal(gaim_perl_bless_object(l->data,
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
61 "Gaim::BuddyList::Buddy")));
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
62 }
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
63
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
64 g_slist_free(l);
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
65
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
66 Gaim::BuddyList::Group
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
67 find_group(name)
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
68 const char *name
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
69 CODE:
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
70 RETVAL = gaim_find_group(name);
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
71 OUTPUT:
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
72 RETVAL
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
73
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
74 Gaim::BuddyList::Chat
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
75 gaim_blist_find_chat(account, name)
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
76 Gaim::Account account
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
77 const char *name
7c42b8ca3222 [gaim-migrate @ 7048]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
78
6540
eae61831e596 [gaim-migrate @ 7062]
Christian Hammond <chipx86@chipx86.com>
parents: 6531
diff changeset
79 void
eae61831e596 [gaim-migrate @ 7062]
Christian Hammond <chipx86@chipx86.com>
parents: 6531
diff changeset
80 groups()
eae61831e596 [gaim-migrate @ 7062]
Christian Hammond <chipx86@chipx86.com>
parents: 6531
diff changeset
81 PREINIT:
eae61831e596 [gaim-migrate @ 7062]
Christian Hammond <chipx86@chipx86.com>
parents: 6531
diff changeset
82 GaimBlistNode *node;
6544
a87b9c7d199e [gaim-migrate @ 7066]
Christian Hammond <chipx86@chipx86.com>
parents: 6543
diff changeset
83 PPCODE:
6543
4d45f1eb0a7b [gaim-migrate @ 7065]
Christian Hammond <chipx86@chipx86.com>
parents: 6542
diff changeset
84 if (gaim_get_blist() != NULL)
6540
eae61831e596 [gaim-migrate @ 7062]
Christian Hammond <chipx86@chipx86.com>
parents: 6531
diff changeset
85 {
6543
4d45f1eb0a7b [gaim-migrate @ 7065]
Christian Hammond <chipx86@chipx86.com>
parents: 6542
diff changeset
86 for (node = gaim_get_blist()->root; node != NULL; node = node->next)
4d45f1eb0a7b [gaim-migrate @ 7065]
Christian Hammond <chipx86@chipx86.com>
parents: 6542
diff changeset
87 {
4d45f1eb0a7b [gaim-migrate @ 7065]
Christian Hammond <chipx86@chipx86.com>
parents: 6542
diff changeset
88 XPUSHs(sv_2mortal(gaim_perl_bless_object(node,
4d45f1eb0a7b [gaim-migrate @ 7065]
Christian Hammond <chipx86@chipx86.com>
parents: 6542
diff changeset
89 "Gaim::BuddyList::Group")));
4d45f1eb0a7b [gaim-migrate @ 7065]
Christian Hammond <chipx86@chipx86.com>
parents: 6542
diff changeset
90 }
6540
eae61831e596 [gaim-migrate @ 7062]
Christian Hammond <chipx86@chipx86.com>
parents: 6531
diff changeset
91 }
6545
5a3fbef32910 [gaim-migrate @ 7067]
Christian Hammond <chipx86@chipx86.com>
parents: 6544
diff changeset
92
5a3fbef32910 [gaim-migrate @ 7067]
Christian Hammond <chipx86@chipx86.com>
parents: 6544
diff changeset
93 void *
5a3fbef32910 [gaim-migrate @ 7067]
Christian Hammond <chipx86@chipx86.com>
parents: 6544
diff changeset
94 handle()
5a3fbef32910 [gaim-migrate @ 7067]
Christian Hammond <chipx86@chipx86.com>
parents: 6544
diff changeset
95 CODE:
5a3fbef32910 [gaim-migrate @ 7067]
Christian Hammond <chipx86@chipx86.com>
parents: 6544
diff changeset
96 RETVAL = gaim_blist_get_handle();
5a3fbef32910 [gaim-migrate @ 7067]
Christian Hammond <chipx86@chipx86.com>
parents: 6544
diff changeset
97 OUTPUT:
5a3fbef32910 [gaim-migrate @ 7067]
Christian Hammond <chipx86@chipx86.com>
parents: 6544
diff changeset
98 RETVAL