summaryrefslogtreecommitdiff
path: root/src/perl/irc/Netsplit.xs
blob: 4dad9c1d85df4500d825b8d284164a0bb36337d2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
MODULE = Irssi::Irc	PACKAGE = Irssi::Irc::Server

Irssi::Irc::Netsplit
netsplit_find(server, nick, address)
	Irssi::Irc::Server server
	char *nick
	char *address

Irssi::Nick
netsplit_find_channel(server, nick, address, channel)
	Irssi::Irc::Server server
	char *nick
	char *address
	char *channel


#*******************************
MODULE = Irssi::Irc	PACKAGE = Irssi::Irc::Netsplit
#*******************************

void
values(netsplit)
	Irssi::Irc::Netsplit netsplit
PREINIT:
	HV *hv, *stash;
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, "destroy", 7, newSViv(netsplit->destroy), 0);

	stash = gv_stashpv("Irssi::Irc::Netsplitserver", 0);
	hv_store(hv, "server", 6, sv_bless(newRV_noinc(newSViv(GPOINTER_TO_INT(netsplit->server))), stash), 0);
	/*FIXME: add GSList *channels;*/
	XPUSHs(sv_2mortal(newRV_noinc((SV*)hv)));

#*******************************
MODULE = Irssi::Irc	PACKAGE = Irssi::Irc::Netsplitserver
#*******************************

void
values(rec)
	Irssi::Irc::Netsplitserver rec
PREINIT:
	HV *hv;
PPCODE:
	hv = newHV();
	hv_store(hv, "server", 6, new_pv(rec->server), 0);
	hv_store(hv, "destserver", 10, new_pv(rec->destserver), 0);
	hv_store(hv, "count", 5, newSViv(rec->count), 0);
	XPUSHs(sv_2mortal(newRV_noinc((SV*)hv)));