Add perl_signal_args_to_c() to convert signal parameters from Perl to C values,

and make Irssi::signal_emit/Irssi::signal_continue use it. Also make
perl_call_signal() turn NULLs into undef, so we can recover them in
perl_signal_args_to_c(), which is its inverse operation.
Patch by Lukas Mai.


git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4953 dbcabf3a-b0e7-0310-adc4-f8d773084564
This commit is contained in:
Emanuele Giaquinta 2008-12-08 16:06:11 +00:00 committed by exg
commit 8c64738cdc
3 changed files with 190 additions and 45 deletions

View file

@ -1,6 +1,9 @@
#ifndef __PERL_SIGNALS_H
#define __PERL_SIGNALS_H
void perl_signal_args_to_c(void (*callback)(void *, void **), void *cb_arg,
int signal_id, SV **args, size_t n_args);
void perl_signal_add_full(const char *signal, SV *func, int priority);
void perl_signal_remove(const char *signal, SV *func);