summaryrefslogtreecommitdiff
path: root/src/perl/xs/Irssi.xs
diff options
context:
space:
mode:
Diffstat (limited to 'src/perl/xs/Irssi.xs')
-rw-r--r--src/perl/xs/Irssi.xs942
1 files changed, 31 insertions, 911 deletions
diff --git a/src/perl/xs/Irssi.xs b/src/perl/xs/Irssi.xs
index 95c75163..a3c85c39 100644
--- a/src/perl/xs/Irssi.xs
+++ b/src/perl/xs/Irssi.xs
@@ -1,933 +1,53 @@
-/* This could be split to different files / modules ..? */
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
+#include "module.h"
+#include "levels.h"
-#undef _
-#include <irssi-plugin.h>
-#include <irc-base/server-setup.h>
-#include <irc-base/server-reconnect.h>
-#include <irc-base/server-redirect.h>
-
-typedef SERVER_REC *Irssi__Server;
-typedef SERVER_CONNECT_REC *Irssi__Connect;
-typedef RECONNECT_REC *Irssi__Reconnect;
-typedef CHANNEL_REC *Irssi__Channel;
-typedef COMMAND_REC *Irssi__Command;
-typedef NICK_REC *Irssi__Nick;
-typedef BAN_REC *Irssi__Ban;
-typedef DCC_REC *Irssi__Dcc;
-typedef NETSPLIT_REC *Irssi__Netsplit;
-typedef AUTOIGNORE_REC *Irssi__Autoignore;
-typedef LOG_REC *Irssi__Log;
-typedef LOG_ITEM_REC *Irssi__Logitem;
-typedef PLUGIN_REC *Irssi__Plugin;
-
-#define new_pv(a) (newSVpv((a) == NULL ? "" : (a), (a) == NULL ? 0 : strlen(a)))
-
-void add_connect_hash(HV *hv, SERVER_CONNECT_REC *conn)
+void connect_fill_hash(HV *hv, IRC_SERVER_CONNECT_REC *conn)
{
hv_store(hv, "address", 7, new_pv(conn->address), 0);
hv_store(hv, "port", 4, newSViv(conn->port), 0);
- hv_store(hv, "password", 8, new_pv(conn->password), 0);
-
hv_store(hv, "ircnet", 6, new_pv(conn->ircnet), 0);
+
+ hv_store(hv, "password", 8, new_pv(conn->password), 0);
hv_store(hv, "wanted_nick", 11, new_pv(conn->nick), 0);
hv_store(hv, "alternate_nick", 14, new_pv(conn->alternate_nick), 0);
hv_store(hv, "username", 8, new_pv(conn->username), 0);
hv_store(hv, "realname", 8, new_pv(conn->realname), 0);
- hv_store(hv, "autojoin_channels", 17, new_pv(conn->autojoin_channels), 0);
}
-MODULE = Irssi PACKAGE = Irssi
-
-PROTOTYPES: ENABLE
-
-Irssi::Channel
-cur_channel()
-CODE:
- RETVAL = cur_channel;
-OUTPUT:
- RETVAL
-
-Irssi::Server
-cur_server()
-CODE:
- RETVAL = cur_channel->server;
-OUTPUT:
- RETVAL
-
-void
-channels()
-PREINIT:
- GSList *tmp;
- HV *stash;
-PPCODE:
- stash = gv_stashpv("Irssi::Channel", 0);
- for (tmp = channels; tmp != NULL; tmp = tmp->next) {
- XPUSHs(sv_2mortal(sv_bless(newRV_noinc(newSViv(GPOINTER_TO_INT(tmp->data))), stash)));
- }
-
-void
-servers()
-PREINIT:
- GSList *tmp;
- HV *stash;
-PPCODE:
- stash = gv_stashpv("Irssi::Server", 0);
- for (tmp = servers; tmp != NULL; tmp = tmp->next) {
- XPUSHs(sv_2mortal(sv_bless(newRV_noinc(newSViv(GPOINTER_TO_INT(tmp->data))), stash)));
- }
-
-void
-commands()
-PREINIT:
- GSList *tmp;
- HV *stash;
-PPCODE:
- stash = gv_stashpv("Irssi::Command", 0);
- for (tmp = commands; tmp != NULL; tmp = tmp->next) {
- XPUSHs(sv_2mortal(sv_bless(newRV_noinc(newSViv(GPOINTER_TO_INT(tmp->data))), stash)));
- }
-
-void
-dccs()
-PREINIT:
- GSList *tmp;
- HV *stash;
-PPCODE:
- stash = gv_stashpv("Irssi::Dcc", 0);
- for (tmp = dcc_conns; tmp != NULL; tmp = tmp->next) {
- XPUSHs(sv_2mortal(sv_bless(newRV_noinc(newSViv(GPOINTER_TO_INT(tmp->data))), stash)));
- }
-
-void
-logs()
-PREINIT:
- GSList *tmp;
- HV *stash;
-PPCODE:
- stash = gv_stashpv("Irssi::Log", 0);
- for (tmp = logs; tmp != NULL; tmp = tmp->next) {
- XPUSHs(sv_2mortal(sv_bless(newRV_noinc(newSViv(GPOINTER_TO_INT(tmp->data))), stash)));
- }
-
-void
-plugins()
-PREINIT:
- GSList *tmp;
+void server_fill_hash(HV *hv, IRC_SERVER_REC *server)
+{
HV *stash;
-PPCODE:
- stash = gv_stashpv("Irssi::Plugin", 0);
- for (tmp = plugins; tmp != NULL; tmp = tmp->next) {
- XPUSHs(sv_2mortal(sv_bless(newRV_noinc(newSViv(GPOINTER_TO_INT(tmp->data))), stash)));
- }
-
-Irssi::Connect
-server_create_conn(dest, port=6667, password=NULL, nick=NULL, channels=NULL)
- char *dest
- int port
- char *password
- char *nick
- char *channels
-
-Irssi::Server
-server_find_tag(tag)
- char *tag
-
-Irssi::Server
-server_find_ircnet(ircnet)
- char *ircnet
-
-Irssi::Channel
-channel_find(channel)
- char *channel
-CODE:
- RETVAL = channel_find(NULL, channel);
-OUTPUT:
- RETVAL
-
-void
-print(str)
- char *str
-CODE:
- printtext(NULL, NULL, MSGLEVEL_CLIENTNOTICE, str);
-
-void
-signal_emit(signal, ...)
- char *signal
-CODE:
- void *p[6];
- int n;
-
- memset(p, 0, sizeof(p));
- for (n = 1; n < items && n < 6; n++) {
- p[n-1] = SvPOKp(ST(n)) ? SvPV(ST(n), PL_na) : (void *) SvIV((SV*)SvRV(ST(n)));
- }
- signal_emit(signal, items-1, p[0], p[1], p[2], p[3], p[4], p[5]);
-
-void
-signal_add(signal, func)
- char *signal
- char *func
-CODE:
- perl_signal_add(signal, func);
-
-void
-signal_add_last(signal, func)
- char *signal
- char *func
-CODE:
- perl_signal_add_last(signal, func);
-
-void
-signal_remove(signal, func)
- char *signal
- char *func
-CODE:
- perl_signal_remove(signal, func);
-
-int
-timeout_add(msecs, func, data)
- int msecs
- char *func
- char *data
-CODE:
- RETVAL = perl_timeout_add(msecs, func, data);
-OUTPUT:
- RETVAL
-
-void
-timeout_remove(tag)
- int tag
-CODE:
- perl_timeout_remove(tag);
-
-void
-command_bind(cmd, category, func)
- char *cmd
- char *category
- char *func
-CODE:
- char *signal;
-
- command_bind(cmd, *category ? category : "Perl scripts' commands", NULL);
- signal = g_strconcat("command ", cmd, NULL);
- perl_signal_add(signal, func);
- g_free(signal);
-
-void
-command_unbind(cmd, func)
- char *cmd
- char *func
-CODE:
- char *signal;
-
- command_unbind(cmd, NULL);
- signal = g_strconcat("command ", cmd, NULL);
- perl_signal_remove(signal, func);
- g_free(signal);
-
-void
-command(cmd, server=cur_channel->server, channel=cur_channel)
- char *cmd
- Irssi::Server server
- Irssi::Channel channel
-CODE:
- signal_emit("send command", 3, cmd, server, channel);
-
-int
-is_channel(text)
- char *text
-CODE:
- RETVAL = ischannel(*text);
-OUTPUT:
- RETVAL
-
-int
-irc_mask_match(mask, nick, user, host)
- char *mask
- char *nick
- char *user
- char *host
-
-int
-irc_mask_match_address(mask, nick, address)
- char *mask
- char *nick
- char *address
-
-int
-irc_masks_match(masks, nick, address)
- char *masks
- char *nick
- char *address
-
-char *
-irc_get_mask(nick, host, flags)
- char *nick
- char *host
- int flags
-
-int
-level2bits(str)
- char *str
-
-char *
-bits2level(bits)
- int bits
-
-int
-combine_level(level, str)
- int level
- char *str
-
-Irssi::Dcc
-dcc_find_item(type, nick, arg)
- int type
- char *nick
- char *arg
-
-Irssi::Dcc
-dcc_find_by_port(nick, port)
- char *nick
- int port
-
-char *
-dcc_type2str(type)
- int type
-
-int
-dcc_str2type(type)
- char *type
-
-void
-ignore_add(mask, level)
- char *mask
- char *level
-
-void
-ignore_remove(mask, level)
- char *mask
- char *level
-
-Irssi::Log
-log_create(fname, data)
- char *fname
- char *data
-
-Irssi::Log
-log_create_with_level(fname, level)
- char *fname
- int level
-
-Irssi::Log
-log_file_find(fname)
- char *fname
-
-void
-notifylist_add(nick, ircnet)
- char *nick
- char *ircnet
-
-Irssi::Server
-notifylist_ison(nick, serverlist)
- char *nick
- char *serverlist
-
-int
-plugin_load(name, args)
- char *name
- char *args
-
-char *
-plugin_get_description(name)
- char *name
-
-Irssi::Plugin
-plugin_find(name)
- char *name
-
-void
-setup_get(option)
- char *option
-PREINIT:
- char *ret;
-PPCODE:
- switch(setup_option_type(option)) {
- case SETUP_TYPE_TOGGLEBUTTON:
- XPUSHs(sv_2mortal(newSViv(setup_get_bool(option))));
- break;
- case SETUP_TYPE_SPIN:
- case SETUP_TYPE_INT_OBJECT:
- XPUSHs(sv_2mortal(newSViv(setup_get_int(option))));
- break;
- case SETUP_TYPE_ENTRY:
- ret = setup_get_str(option);
- XPUSHs(sv_2mortal(newSVpv(ret, strlen(ret))));
- break;
- }
-
-
-#*******************************************************
-MODULE = Irssi PACKAGE = Irssi::Server PREFIX = server_
-#*******************************************************
-
-void
-send_raw(server, cmd)
- Irssi::Server server
- char *cmd
-CODE:
- irc_send_cmd(server, cmd);
-
-void
-command(server, cmd, channel=cur_channel)
- char *cmd
- Irssi::Server server
- Irssi::Channel channel
-CODE:
- if (channel->server != server) {
- GSList *tmp;
-
- for (tmp = channels; tmp != NULL; tmp = tmp->next) {
- CHANNEL_REC *rec = tmp->data;
-
- if (rec->server == server) {
- channel = rec;
- break;
- }
- }
- }
- signal_emit("send command", 3, cmd, server, channel);
-
-void
-server_disconnect(server)
- Irssi::Server server
-
-Irssi::Channel
-channel_create(server, channel, type, automatic)
- Irssi::Server server
- char *channel
- int type
- int automatic
-Irssi::Channel
-channel_find(server, channel)
- Irssi::Server server
- char *channel
+ connect_fill_hash(hv, server->connrec);
+ hv_store(hv, "connect_time", 12, newSViv(server->connect_time), 0);
-Irssi::Channel
-channel_find_closest(server, channel, level)
- Irssi::Server server
- char *channel
- int level
-
-Irssi::Channel
-channel_find_level(server, level)
- Irssi::Server server
- int level
-
-void
-printtext(server, channel, level, str)
- Irssi::Server server
- char *channel
- int level
- char *str
-CODE:
- printtext(server, channel, level, str);
-
-void
-irc_send_cmd_split(server, cmd, arg, max_nicks)
- Irssi::Server server
- char *cmd
- int arg
- int max_nicks
-
-void
-ctcp_send_reply(server, data)
- Irssi::Server server
- char *data
-
-Irssi::Netsplit
-netsplit_find(server, nick, address)
- Irssi::Server server
- char *nick
- char *address
-
-Irssi::Nick
-netsplit_find_channel(server, nick, address, channel)
- Irssi::Server server
- char *nick
- char *address
- char *channel
-
-void
-rawlog_input(server, str)
- Irssi::Server server
- char *str
-
-void
-rawlog_output(server, str)
- Irssi::Server server
- char *str
-
-void
-rawlog_redirect(server, str)
- Irssi::Server server
- char *str
-
-void
-server_redirect_init(server, command, last, ...)
- Irssi::Server server
- char *command
- int last
-PREINIT:
- GSList *list;
- int n;
-CODE:
- list = NULL;
- for (n = 3; n < items; n++) {
- list = g_slist_append(list, SvPV(ST(n), PL_na));
- }
- server_redirect_initv(server, command, last, list);
-
-int
-server_redirect_single_event(server, arg, last, group, event, signal, argpos)
- Irssi::Server server
- char *arg
- int last
- int group
- char *event
- char *signal
- int argpos
-
-void
-server_redirect_event(server, arg, last, ...)
- Irssi::Server server
- char *arg
- int last
-PREINIT:
- int n, group;
-CODE:
- group = 0;
- for (n = 3; n+3 <= items; n += 3, last--) {
- group = server_redirect_single_event(server, arg, last > 0, group,
- (char *) SvPV(ST(n), PL_na), (char *) SvPV(ST(n+1), PL_na), (int) SvIV(ST(n+2)));
- }
-
-void
-autoignore_add(server, type, nick)
- Irssi::Server server
- int type
- char *nick
-
-int
-autoignore_remove(server, mask, level)
- Irssi::Server server
- char *mask
- char *level
-
-int
-ignore_check(server, nick, host, type)
- Irssi::Server server
- char *nick
- char *host
- int type
-
-int
-notifylist_ison_server(server, nick)
- Irssi::Server server
- char *nick
-
-void
-values(server)
- Irssi::Server server
-PREINIT:
- HV *hv;
-PPCODE:
- hv = newHV();
- add_connect_hash(hv, server->connrec);
- hv_store(hv, "real_address", 12, new_pv(server->real_address), 0);
hv_store(hv, "tag", 3, new_pv(server->tag), 0);
hv_store(hv, "nick", 4, new_pv(server->nick), 0);
- hv_store(hv, "usermode", 8, new_pv(server->usermode), 0);
- hv_store(hv, "usermode_away", 13, newSViv(server->usermode_away), 0);
- hv_store(hv, "away_reason", 11, new_pv(server->away_reason), 0);
+
hv_store(hv, "connected", 9, newSViv(server->connected), 0);
hv_store(hv, "connection_lost", 15, newSViv(server->connection_lost), 0);
- XPUSHs(sv_2mortal(newRV_noinc((SV*)hv)));
-
-#*******************************************************
-MODULE = Irssi PACKAGE = Irssi::Connect PREFIX = server_
-#*******************************************************
-
-void
-values(conn)
- Irssi::Connect conn
-PREINIT:
- HV *hv;
-PPCODE:
- hv = newHV();
- add_connect_hash(hv, conn);
- XPUSHs(sv_2mortal(newRV_noinc((SV*)hv)));
-
-Irssi::Server
-server_connect(conn)
- Irssi::Connect conn
-
-#*******************************************************
-MODULE = Irssi PACKAGE = Irssi::Reconnect
-#*******************************************************
-
-void
-values(reconnect)
- Irssi::Reconnect reconnect
-PREINIT:
- HV *hv;
-PPCODE:
- hv = newHV();
- add_connect_hash(hv, reconnect->conn);
- hv_store(hv, "tag", 3, newSViv(reconnect->tag), 0);
- hv_store(hv, "next_connect", 12, newSViv(reconnect->next_connect), 0);
- XPUSHs(sv_2mortal(newRV_noinc((SV*)hv)));
-
-#*******************************************************
-MODULE = Irssi PACKAGE = Irssi::Channel PREFIX = channel_
-#*******************************************************
-
-void
-command(channel, cmd)
- Irssi::Channel channel
- char *cmd
-CODE:
- signal_emit("send command", 3, cmd, channel->server, channel);
-
-void
-channel_destroy(channel)
- Irssi::Channel channel
-
-void
-channel_change_name(channel, name)
- Irssi::Channel channel
- char *name
-
-char *
-channel_get_mode(channel)
- Irssi::Channel channel
-
-Irssi::Nick
-nicklist_insert(channel, nick, op, voice, send_massjoin)
- Irssi::Channel channel
- char *nick
- int op
- int voice
- int send_massjoin
-
-void
-nicklist_remove(channel, nick)
- Irssi::Channel channel
- Irssi::Nick nick
-
-Irssi::Nick
-nicklist_find(channel, mask)
- Irssi::Channel channel
- char *mask
-
-void
-nicklist_getnicks(channel)
- Irssi::Channel channel
-PREINIT:
- GSList *list, *tmp;
- HV *stash;
-PPCODE:
- list = nicklist_getnicks(channel);
-
- stash = gv_stashpv("Irssi::Nick", 0);
- for (tmp = list; tmp != NULL; tmp = tmp->next) {
- XPUSHs(sv_2mortal(sv_bless(newRV_noinc(newSViv(GPOINTER_TO_INT(tmp->data))), stash)));
- }
- g_slist_free(list);
-
-Irssi::Ban
-ban_add(channel, ban, nick, time)
- Irssi::Channel channel
- char *ban
- char *nick
- time_t time
-
-void
-ban_remove(channel, ban)
- Irssi::Channel channel
- char *ban
-Irssi::Ban
-ban_exception_add(channel, ban, nick, time)
- Irssi::Channel channel
- char *ban
- char *nick
- time_t time
-
-void
-ban_exception_remove(channel, ban)
- Irssi::Channel channel
- char *ban
-
-char *
-ban_get_mask(channel, nick)
- Irssi::Channel channel
- char *nick
-
-void
-modes_set(channel, data, mode)
- Irssi::Channel channel
- char *data
- char *mode
-CODE:
- modes_set(data, mode, channel->server, channel);
-
-void
-modes_parse_channel(channel, setby, modestr)
- Irssi::Channel channel
- char *setby
- char *modestr
-
-void
-invitelist_add(channel, mask)
- Irssi::Channel channel
- char *mask
-
-void
-invitelist_remove(channel, mask)
- Irssi::Channel channel
- char *mask
-
-void
-values(channel)
- Irssi::Channel channel
-PREINIT:
- HV *hv, *stash;
- char *type;
-PPCODE:
- switch (channel->type)
- {
- case CHANNEL_TYPE_CHANNEL:
- type = "channel";
- break;
- case CHANNEL_TYPE_QUERY:
- type = "query";
- break;
- case CHANNEL_TYPE_DCC_CHAT:
- type = "dcc chat";
- break;
- default:
- type = "empty";
- break;
- }
- hv = newHV();
- stash = gv_stashpv("Irssi::Server", 0);
- hv_store(hv, "server", 6, sv_bless(newRV_noinc(newSViv(GPOINTER_TO_INT(channel->server))), stash), 0);
-
- hv_store(hv, "name", 4, new_pv(channel->name), 0);
- hv_store(hv, "type", 4, new_pv(type), 0);
-
- hv_store(hv, "topic", 5, new_pv(channel->topic), 0);
- hv_store(hv, "key", 3, new_pv(channel->key), 0);
- hv_store(hv, "limit", 5, newSViv(channel->limit), 0);
-
- hv_store(hv, "level", 5, newSViv(channel->level), 0);
- hv_store(hv, "new_data", 8, newSViv(channel->new_data), 0);
-
- hv_store(hv, "synced", 6, newSViv(channel->synced), 0);
- hv_store(hv, "wholist", 7, newSViv(channel->wholist), 0);
- hv_store(hv, "names_got", 9, newSViv(channel->names_got), 0);
- hv_store(hv, "chanop", 6, newSViv(channel->chanop), 0);
- hv_store(hv, "left", 4, newSViv(channel->left), 0);
- hv_store(hv, "kicked", 6, newSViv(channel->kicked), 0);
-
- XPUSHs(sv_2mortal(newRV_noinc((SV*)hv)));
-
-#*******************************************************
-MODULE = Irssi PACKAGE = Irssi::Command
-#*******************************************************
-
-void
-values(cmd)
- Irssi::Command cmd
-PREINIT:
- HV *hv;
-PPCODE:
- hv = newHV();
- hv_store(hv, "cmd", 3, new_pv(cmd->cmd), 0);
- hv_store(hv, "category", 8, new_pv(cmd->category), 0);
- XPUSHs(sv_2mortal(newRV_noinc((SV*)hv)));
-
-#*******************************************************
-MODULE = Irssi PACKAGE = Irssi::Nick
-#*******************************************************
-
-void
-values(nick)
- Irssi::Nick nick
-PREINIT:
- HV *hv;
-PPCODE:
- hv = newHV();
- hv_store(hv, "nick", 4, new_pv(nick->nick), 0);
- hv_store(hv, "host", 4, new_pv(nick->host), 0);
- hv_store(hv, "name", 4, new_pv(nick->realname), 0);
- hv_store(hv, "hops", 4, newSViv(nick->hops), 0);
- hv_store(hv, "op", 2, newSViv(nick->op), 0);
- hv_store(hv, "voice", 5, newSViv(nick->voice), 0);
- hv_store(hv, "gone", 4, newSViv(nick->gone), 0);
- hv_store(hv, "ircop", 5, newSViv(nick->ircop), 0);
- hv_store(hv, "last_check", 10, newSViv(nick->last_check), 0);
- hv_store(hv, "send_massjoin", 13, newSViv(nick->send_massjoin), 0);
- XPUSHs(sv_2mortal(newRV_noinc((SV*)hv)));
-
-#*******************************************************
-MODULE = Irssi PACKAGE = Irssi::Ban
-#*******************************************************
-
-void
-values(ban)
- Irssi::Ban ban
-PREINIT:
- HV *hv;
-PPCODE:
- hv = newHV();
- hv_store(hv, "ban", 3, new_pv(ban->ban), 0);
- hv_store(hv, "setby", 5, new_pv(ban->setby), 0);
- hv_store(hv, "time", 4, newSViv(ban->time), 0);
- XPUSHs(sv_2mortal(newRV_noinc((SV*)hv)));
-
-#*******************************************************
-MODULE = Irssi PACKAGE = Irssi::Dcc PREFIX = dcc_
-#*******************************************************
-
-void
-dcc_destroy(dcc)
- Irssi::Dcc dcc
-
-void
-values(ban)
- Irssi::Ban ban
-PREINIT:
- HV *hv;
-PPCODE:
- hv = newHV();
- hv_store(hv, "ban", 3, new_pv(ban->ban), 0);
- hv_store(hv, "setby", 5, new_pv(ban->setby), 0);
- hv_store(hv, "time", 4, newSViv(ban->time), 0);
- XPUSHs(sv_2mortal(newRV_noinc((SV*)hv)));
-
-#*******************************************************
-MODULE = Irssi PACKAGE = Irssi::Netsplit
-#*******************************************************
-
-void
-values(netsplit)
- Irssi::Netsplit netsplit
-PREINIT:
- HV *hv;
-PPCODE:
- hv = newHV();
- hv_store(hv, "nick", 4, new_pv(netsplit->nick), 0);
- hv_store(hv, "address", 7, new_pv(netsplit->address), 0);
- hv_store(hv, "server", 6, new_pv(netsplit->server), 0);
- hv_store(hv, "destserver", 10, new_pv(netsplit->destserver), 0);
- hv_store(hv, "destroy", 7, newSViv(netsplit->destroy), 0);
- /*FIXME: add GSList *channels;*/
- XPUSHs(sv_2mortal(newRV_noinc((SV*)hv)));
-
-#*******************************************************
-MODULE = Irssi PACKAGE = Irssi::Autoignore
-#*******************************************************
-
-void
-values(ai)
- Irssi::Autoignore ai
-PREINIT:
- HV *hv;
-PPCODE:
- hv = newHV();
- hv_store(hv, "nick", 4, new_pv(ai->nick), 0);
- hv_store(hv, "timeleft", 8, newSViv(ai->timeleft), 0);
- hv_store(hv, "level", 5, newSViv(ai->level), 0);
- XPUSHs(sv_2mortal(newRV_noinc((SV*)hv)));
-
-#*******************************************************
-MODULE = Irssi PACKAGE = Irssi::Log PREFIX = log_
-#*******************************************************
-
-void
-values(log)
- Irssi::Log log
-PREINIT:
- HV *hv;
-PPCODE:
- hv = newHV();
- hv_store(hv, "fname", 5, new_pv(log->fname), 0);
- hv_store(hv, "autoopen_log", 12, newSViv(log->autoopen_log), 0);
- hv_store(hv, "last", 4, newSViv(log->last), 0);
- hv_store(hv, "level", 5, newSViv(log->level), 0);
- /*FIXME: add GSList *items;*/
- XPUSHs(sv_2mortal(newRV_noinc((SV*)hv)));
-
-void
-destroy(log)
- Irssi::Log log
-CODE:
- log_file_destroy(log);
-
-int
-open(log)
- Irssi::Log log
-CODE:
- log_file_open(log);
-
-void
-close(log)
- Irssi::Log log
-CODE:
- log_file_close(log);
-
-void
-log_append_item(log, name, level)
- Irssi::Log log
- char *name
- int level
-
-void
-log_remove_item(log, name)
- Irssi::Log log
- char *name
-
-#*******************************************************
-MODULE = Irssi PACKAGE = Irssi::Logitem
-#*******************************************************
+ stash = gv_stashpv("Irssi::Rawlog", 0);
+ hv_store(hv, "rawlog", 6, sv_bless(newRV_noinc(newSViv(GPOINTER_TO_INT(server->rawlog))), stash), 0);
+}
-void
-values(item)
- Irssi::Logitem item
-PREINIT:
- HV *hv;
-PPCODE:
- hv = newHV();
- hv_store(hv, "name", 4, new_pv(item->name), 0);
- hv_store(hv, "level", 5, newSViv(item->level), 0);
- XPUSHs(sv_2mortal(newRV_noinc((SV*)hv)));
+MODULE = Irssi PACKAGE = Irssi
-#*******************************************************
-MODULE = Irssi PACKAGE = Irssi::Plugin PREFIX = plugin_
-#*******************************************************
+PROTOTYPES: ENABLE
-void
-values(plugin)
- Irssi::Plugin plugin
-PREINIT:
- HV *hv;
-PPCODE:
- hv = newHV();
- hv_store(hv, "name", 4, new_pv(plugin->name), 0);
- hv_store(hv, "description", 11, new_pv(plugin->description), 0);
- XPUSHs(sv_2mortal(newRV_noinc((SV*)hv)));
+INCLUDE: Irssi-bans.xs
+INCLUDE: Irssi-channel.xs
+INCLUDE: Irssi-core.xs
+INCLUDE: Irssi-dcc.xs
+INCLUDE: Irssi-flood.xs
+INCLUDE: Irssi-ignore.xs
+INCLUDE: Irssi-log.xs
+INCLUDE: Irssi-masks.xs
+INCLUDE: Irssi-modes.xs
+INCLUDE: Irssi-netsplit.xs
+INCLUDE: Irssi-notifylist.xs
+INCLUDE: Irssi-query.xs
+INCLUDE: Irssi-rawlog.xs
+INCLUDE: Irssi-server.xs
+INCLUDE: Irssi-settings.xs
+INCLUDE: Irssi-window.xs