forked from PsychoticNinja/irssi
Added format_create_dest() + $dest->print() functions. here's also our first
magic perl variable - many thanks to Qrczak for helping with it :) git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2784 dbcabf3a-b0e7-0310-adc4-f8d773084564
This commit is contained in:
parent
9c038783a4
commit
0a4cedd83d
@ -1,5 +1,19 @@
|
|||||||
#include "module.h"
|
#include "module.h"
|
||||||
|
|
||||||
|
static int magic_free_text_dest(SV *sv, MAGIC *mg)
|
||||||
|
{
|
||||||
|
TEXT_DEST_REC *dest = (TEXT_DEST_REC *) mg->mg_ptr;
|
||||||
|
g_free((char *) dest->target);
|
||||||
|
g_free(dest);
|
||||||
|
mg->mg_ptr = NULL;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static MGVTBL vtbl_free_text_dest =
|
||||||
|
{
|
||||||
|
NULL, NULL, NULL, NULL, magic_free_text_dest
|
||||||
|
};
|
||||||
|
|
||||||
MODULE = Irssi::UI::Formats PACKAGE = Irssi::UI::Window
|
MODULE = Irssi::UI::Formats PACKAGE = Irssi::UI::Window
|
||||||
PROTOTYPES: ENABLE
|
PROTOTYPES: ENABLE
|
||||||
|
|
||||||
@ -43,3 +57,37 @@ PPCODE:
|
|||||||
|
|
||||||
XPUSHs(sv_2mortal(new_pv(ret)));
|
XPUSHs(sv_2mortal(new_pv(ret)));
|
||||||
g_free_not_null(ret);
|
g_free_not_null(ret);
|
||||||
|
|
||||||
|
MODULE = Irssi::UI::Formats PACKAGE = Irssi
|
||||||
|
|
||||||
|
void
|
||||||
|
format_create_dest(server, target=NULL, level=MSGLEVEL_CLIENTNOTICE, window=NULL)
|
||||||
|
Irssi::Server server
|
||||||
|
char *target
|
||||||
|
int level
|
||||||
|
Irssi::UI::Window window
|
||||||
|
PREINIT:
|
||||||
|
TEXT_DEST_REC *dest;
|
||||||
|
SV *sv;
|
||||||
|
PPCODE:
|
||||||
|
dest = g_new0(TEXT_DEST_REC, 1);
|
||||||
|
format_create_dest(dest, server, g_strdup(target), level, window);
|
||||||
|
|
||||||
|
sv = plain_bless(dest, "Irssi::UI::TextDest");
|
||||||
|
XPUSHs(sv_2mortal(sv));
|
||||||
|
|
||||||
|
sv = *hv_fetch(hvref(sv), "_irssi", 6, 0);
|
||||||
|
sv_magic(sv, NULL, '~', NULL, 0);
|
||||||
|
|
||||||
|
SvMAGIC(sv)->mg_private = 0x1551; /* HF */
|
||||||
|
SvMAGIC(sv)->mg_virtual = &vtbl_free_text_dest;
|
||||||
|
SvMAGIC(sv)->mg_ptr = (char *) dest;
|
||||||
|
|
||||||
|
MODULE = Irssi::UI::Formats PACKAGE = Irssi::UI::TextDest
|
||||||
|
|
||||||
|
void
|
||||||
|
print(dest, str)
|
||||||
|
Irssi::UI::TextDest dest
|
||||||
|
char *str
|
||||||
|
CODE:
|
||||||
|
printtext_dest(dest, str);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user