summaryrefslogtreecommitdiff
path: root/src/perl/irc/IrcChannel.xs
diff options
context:
space:
mode:
Diffstat (limited to 'src/perl/irc/IrcChannel.xs')
-rw-r--r--src/perl/irc/IrcChannel.xs44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/perl/irc/IrcChannel.xs b/src/perl/irc/IrcChannel.xs
new file mode 100644
index 00000000..7d2b1092
--- /dev/null
+++ b/src/perl/irc/IrcChannel.xs
@@ -0,0 +1,44 @@
+MODULE = Irssi::Irc PACKAGE = Irssi::Irc::Channel PREFIX = irc_channel_
+
+void
+bans(channel)
+ Irssi::Irc::Channel channel
+PREINIT:
+ GSList *tmp;
+ HV *stash;
+PPCODE:
+ stash = gv_stashpv("Irssi::Irc::Ban", 0);
+ for (tmp = channel->banlist; tmp != NULL; tmp = tmp->next) {
+ XPUSHs(sv_2mortal(sv_bless(newRV_noinc(newSViv(GPOINTER_TO_INT(tmp->data))), stash)));
+ }
+
+void
+ebans(channel)
+ Irssi::Irc::Channel channel
+PREINIT:
+ GSList *tmp;
+ HV *stash;
+PPCODE:
+ stash = gv_stashpv("Irssi::Irc::Ban", 0);
+ for (tmp = channel->ebanlist; tmp != NULL; tmp = tmp->next) {
+ XPUSHs(sv_2mortal(sv_bless(newRV_noinc(newSViv(GPOINTER_TO_INT(tmp->data))), stash)));
+ }
+
+void
+invites(channel)
+ Irssi::Irc::Channel channel
+PREINIT:
+ GSList *tmp;
+ HV *stash;
+PPCODE:
+ for (tmp = channel->invitelist; tmp != NULL; tmp = tmp->next) {
+ XPUSHs(new_pv(tmp->data));
+ }
+
+MODULE = Irssi::Irc PACKAGE = Irssi::Irc::Server PREFIX = irc_
+
+Irssi::Irc::Channel
+irc_channel_create(server, name, automatic)
+ Irssi::Irc::Server server
+ char *name
+ int automatic