3 static int magic_free_text_dest(pTHX_ SV *sv, MAGIC *mg)
5 TEXT_DEST_REC *dest = (TEXT_DEST_REC *) mg->mg_ptr;
6 char *target = (char *) dest->target;
14 static MGVTBL vtbl_free_text_dest =
16 NULL, NULL, NULL, NULL, magic_free_text_dest
19 static SV *perl_format_create_dest(SERVER_REC *server, char *target,
20 int level, WINDOW_REC *window)
25 dest = g_new0(TEXT_DEST_REC, 1);
26 format_create_dest(dest, server, g_strdup(target), level, window);
28 ret_sv = plain_bless(dest, "Irssi::UI::TextDest");
30 sv = *hv_fetch(hvref(ret_sv), "_irssi", 6, 0);
31 sv_magic(sv, NULL, '~', NULL, 0);
33 SvMAGIC(sv)->mg_private = 0x1551; /* HF */
34 SvMAGIC(sv)->mg_virtual = &vtbl_free_text_dest;
35 SvMAGIC(sv)->mg_ptr = (char *) dest;
40 MODULE = Irssi::UI::Formats PACKAGE = Irssi
44 format_get_length(str)
48 format_real_length(str, len)
58 ret = strip_codes(input);
59 XPUSHs(sv_2mortal(new_pv(ret)));
64 format_create_dest(target, level=MSGLEVEL_CLIENTNOTICE, window=NULL)
67 Irssi::UI::Window window
69 XPUSHs(sv_2mortal(perl_format_create_dest(NULL, target, level, window)));
71 #*******************************
72 MODULE = Irssi::UI::Formats PACKAGE = Irssi::UI::Window
73 #*******************************
76 format_get_text(window, module, server, target, formatnum, ...)
77 Irssi::UI::Window window
89 charargs = g_new0(char *, items-5+1);
90 for (n = 5; n < items; n++) {
91 charargs[n-5] = (char *)SvPV(ST(n), PL_na);
94 format_create_dest(&dest, server, target, 0, window);
95 theme = window_get_theme(dest.window);
97 ret = format_get_text_theme_charargs(theme, module, &dest, formatnum, charargs);
100 XPUSHs(sv_2mortal(new_pv(ret)));
101 g_free_not_null(ret);
103 #*******************************
104 MODULE = Irssi::UI::Formats PACKAGE = Irssi::Window
105 #*******************************
108 format_create_dest(window=NULL, level=MSGLEVEL_CLIENTNOTICE)
109 Irssi::UI::Window window
112 XPUSHs(sv_2mortal(perl_format_create_dest(NULL, NULL, level, window)));
114 #*******************************
115 MODULE = Irssi::UI::Formats PACKAGE = Irssi::Server
116 #*******************************
119 format_create_dest(server, target=NULL, level=MSGLEVEL_CLIENTNOTICE, window=NULL)
123 Irssi::UI::Window window
125 XPUSHs(sv_2mortal(perl_format_create_dest(server, target, level, window)));
127 #*******************************
128 MODULE = Irssi::UI::Formats PACKAGE = Irssi::UI::TextDest
129 #*******************************
133 Irssi::UI::TextDest dest
136 printtext_dest(dest, "%s", str);