summaryrefslogtreecommitdiff
path: root/src/perl/perl-common.c
diff options
context:
space:
mode:
authorTimo Sirainen <cras@irssi.org>2001-12-06 17:17:40 +0000
committercras <cras@dbcabf3a-b0e7-0310-adc4-f8d773084564>2001-12-06 17:17:40 +0000
commit31dcd8258f8f52c065e4297f7abecc5dd0a7d0a2 (patch)
treefc3cdc763159ad896422775addb1a763d53536ee /src/perl/perl-common.c
parent9dd46372ff722a54d70ae383b79542f6d3c60200 (diff)
downloadirssi-31dcd8258f8f52c065e4297f7abecc5dd0a7d0a2.zip
Irssi::signal_add(), Irssi::timeout_add(), Irssi::input_add() and their
variants now also allow use of code references. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2199 dbcabf3a-b0e7-0310-adc4-f8d773084564
Diffstat (limited to 'src/perl/perl-common.c')
-rw-r--r--src/perl/perl-common.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/perl/perl-common.c b/src/perl/perl-common.c
index 4187ae84..7000c4b1 100644
--- a/src/perl/perl-common.c
+++ b/src/perl/perl-common.c
@@ -74,6 +74,24 @@ char *perl_function_get_package(const char *function)
return NULL;
}
+SV *perl_func_sv_inc(SV *func, const char *package)
+{
+ STRLEN n_a;
+ char *name;
+
+ if (SvPOK(func)) {
+ /* prefix with package name */
+ name = g_strdup_printf("%s::%s", package,
+ (char *) SvPV(func, n_a));
+ func = new_pv(name);
+ g_free(name);
+ } else {
+ SvREFCNT_inc(func);
+ }
+
+ return func;
+}
+
SV *irssi_bless_iobject(int type, int chat_type, void *object)
{
PERL_OBJECT_REC *rec;