diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 20:18:39 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 20:18:39 +0000 |
commit | fff5217f02d91268ce90c8c05665602c059faaef (patch) | |
tree | 2ba24d32dc96eafe7ed0a85269548e76796d849d /src/perl/common/Channel.xs | |
parent | Initial commit. (diff) | |
download | irssi-fff5217f02d91268ce90c8c05665602c059faaef.tar.xz irssi-fff5217f02d91268ce90c8c05665602c059faaef.zip |
Adding upstream version 1.4.5.upstream/1.4.5upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/perl/common/Channel.xs')
-rw-r--r-- | src/perl/common/Channel.xs | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/src/perl/common/Channel.xs b/src/perl/common/Channel.xs new file mode 100644 index 0000000..69141c7 --- /dev/null +++ b/src/perl/common/Channel.xs @@ -0,0 +1,117 @@ +#define PERL_NO_GET_CONTEXT +#include "module.h" + +MODULE = Irssi::Channel PACKAGE = Irssi +PROTOTYPES: ENABLE + +void +channels() +PREINIT: + GSList *tmp; +PPCODE: + for (tmp = channels; tmp != NULL; tmp = tmp->next) { + XPUSHs(sv_2mortal(iobject_bless((CHANNEL_REC *) tmp->data))); + } + +Irssi::Channel +channel_find(channel) + char *channel +CODE: + RETVAL = channel_find(NULL, channel); +OUTPUT: + RETVAL + +#******************************* +MODULE = Irssi::Channel PACKAGE = Irssi::Server +#******************************* + +void +channels(server) + Irssi::Server server +PREINIT: + GSList *tmp; +PPCODE: + for (tmp = server->channels; tmp != NULL; tmp = tmp->next) { + XPUSHs(sv_2mortal(iobject_bless((CHANNEL_REC *) tmp->data))); + } + +void +channels_join(server, channels, automatic) + Irssi::Server server + char *channels + int automatic +CODE: + server->channels_join(server, channels, automatic); + +Irssi::Channel +channel_find(server, name) + Irssi::Server server + char *name + +void +nicks_get_same(server, nick) + Irssi::Server server + char *nick +PREINIT: + GSList *list, *tmp; +PPCODE: + list = nicklist_get_same(server, nick); + + for (tmp = list; tmp != NULL; tmp = tmp->next->next) { + XPUSHs(sv_2mortal(iobject_bless((CHANNEL_REC *) tmp->data))); + XPUSHs(sv_2mortal(iobject_bless((NICK_REC *) tmp->next->data))); + } + g_slist_free(list); + +#******************************* +MODULE = Irssi::Channel PACKAGE = Irssi::Channel PREFIX = channel_ +#******************************* + +void +channel_destroy(channel) + Irssi::Channel channel + +void +nick_insert(channel, nick) + Irssi::Channel channel + Irssi::Nick nick +CODE: + nicklist_insert(channel, nick); + +void +nick_remove(channel, nick) + Irssi::Channel channel + Irssi::Nick nick +CODE: + nicklist_remove(channel, nick); + +Irssi::Nick +nick_find(channel, nick) + Irssi::Channel channel + char *nick +CODE: + RETVAL = nicklist_find(channel, nick); +OUTPUT: + RETVAL + +Irssi::Nick +nick_find_mask(channel, mask) + Irssi::Channel channel + char *mask +CODE: + RETVAL = nicklist_find_mask(channel, mask); +OUTPUT: + RETVAL + +void +nicks(channel) + Irssi::Channel channel +PREINIT: + GSList *list, *tmp; +PPCODE: + list = nicklist_getnicks(channel); + + for (tmp = list; tmp != NULL; tmp = tmp->next) { + XPUSHs(sv_2mortal(iobject_bless((NICK_REC *) tmp->data))); + } + g_slist_free(list); |