#include "module.h"
#include "irssi-version.h"
+#include "core.h"
+
+#include "pidwait.h"
+#include "session.h"
#define DEFAULT_COMMAND_CATEGORY "Perl scripts' commands"
p[n-1] = irssi_ref_object(ST(n));
else if (SvROK(ST(n)))
p[n-1] = (void *) SvIV((SV*)SvRV(ST(n)));
+ else if (SvIOK(ST(n)))
+ p[n-1] = (void *)SvIV(ST(n));
else
p[n-1] = NULL;
}
p[n] = irssi_ref_object(ST(n));
else if (SvROK(ST(n)))
p[n] = (void *) SvIV((SV*)SvRV(ST(n)));
+ else if (SvIOK(ST(n)))
+ p[n] = (void *) SvIV(ST(n));
else
p[n] = NULL;
}
else
perl_signal_add_hash(SvIV(ST(0)), ST(1));
+void
+signal_register(...)
+PREINIT:
+ HV *hv;
+ HE *he;
+ I32 len, pos;
+ const char *arr[7];
+CODE:
+ if (items != 1 || !is_hvref(ST(0)))
+ croak("Usage: Irssi::signal_register(hash)");
+
+ hv = hvref(ST(0));
+ hv_iterinit(hv);
+ while ((he = hv_iternext(hv)) != NULL) {
+ const char *key = hv_iterkey(he, &len);
+ SV *val = HeVAL(he);
+ AV *av;
+
+ if (!SvROK(val) || SvTYPE(SvRV(val)) != SVt_PVAV)
+ croak("not array reference");
+
+ av = (AV *) SvRV(val);
+ len = av_len(av)+1;
+ if (len > 6) len = 6;
+ for (pos = 0; pos < len; pos++) {
+ SV **val = av_fetch(av, pos, 0);
+ arr[pos] = SvPV(*val, PL_na);
+ }
+ arr[pos] = NULL;
+ perl_signal_register(key, arr);
+ }
+
+
int
SIGNAL_PRIORITY_LOW()
CODE:
croak("Irssi::timeout() : msecs must be >= 10");
RETVAL = -1;
} else {
- RETVAL = perl_timeout_add(msecs, func, data);
+ RETVAL = perl_timeout_add(msecs, func, data, FALSE);
+ }
+OUTPUT:
+ RETVAL
+
+int
+timeout_add_once(msecs, func, data)
+ int msecs
+ SV *func
+ SV *data
+CODE:
+ if (msecs < 10) {
+ croak("Irssi::timeout_once() : msecs must be >= 10");
+ RETVAL = -1;
+ } else {
+ RETVAL = perl_timeout_add(msecs, func, data, TRUE);
}
OUTPUT:
RETVAL
SV *func
SV *data
CODE:
- RETVAL = perl_input_add(source, condition, func, data);
+ RETVAL = perl_input_add(source, condition, func, data, FALSE);
OUTPUT:
RETVAL
level2bits(str)
char *str
-char *
+void
bits2level(bits)
int bits
+PREINIT:
+ char *ret;
+PPCODE:
+ ret = bits2level(bits);
+ XPUSHs(sv_2mortal(new_pv(ret)));
+ g_free(ret);
int
combine_level(level, str)
pidwait_remove(pid)
int pid
-char *
+void
parse_special(cmd, data="", flags=0)
char *cmd
char *data
OUTPUT:
RETVAL
+char *
+get_irssi_binary()
+CODE:
+ RETVAL = irssi_binary;
+OUTPUT:
+ RETVAL
+
char *
version()
PREINIT:
OUTPUT:
RETVAL
+int
+get_gui()
+CODE:
+ RETVAL = irssi_gui;
+OUTPUT:
+ RETVAL
+
+int
+IRSSI_GUI_NONE()
+CODE:
+ RETVAL = IRSSI_GUI_NONE;
+OUTPUT:
+ RETVAL
+
+int
+IRSSI_GUI_TEXT()
+CODE:
+ RETVAL = IRSSI_GUI_TEXT;
+OUTPUT:
+ RETVAL
+
+int
+IRSSI_GUI_GTK()
+CODE:
+ RETVAL = IRSSI_GUI_GTK;
+OUTPUT:
+ RETVAL
+
+int
+IRSSI_GUI_GNOME()
+CODE:
+ RETVAL = IRSSI_GUI_GNOME;
+OUTPUT:
+ RETVAL
+
+int
+IRSSI_GUI_QT()
+CODE:
+ RETVAL = IRSSI_GUI_QT;
+OUTPUT:
+ RETVAL
+
+int
+IRSSI_GUI_KDE()
+CODE:
+ RETVAL = IRSSI_GUI_KDE;
+OUTPUT:
+ RETVAL
+
#*******************************
MODULE = Irssi::Core PACKAGE = Irssi::Server
#*******************************