forked from PsychoticNinja/irssi
some perl fixes. NICK_REC is also now "iobject"..
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1358 dbcabf3a-b0e7-0310-adc4-f8d773084564
This commit is contained in:
parent
d2e7e041ff
commit
21ce8803d6
@ -24,7 +24,7 @@ while (<STDIN>) {
|
|||||||
s/CHANNEL_REC[^,]*/iobject/g;
|
s/CHANNEL_REC[^,]*/iobject/g;
|
||||||
s/QUERY_REC[^,]*/iobject/g;
|
s/QUERY_REC[^,]*/iobject/g;
|
||||||
s/COMMAND_REC[^,]*/Irssi::Command/g;
|
s/COMMAND_REC[^,]*/Irssi::Command/g;
|
||||||
s/NICK_REC[^,]*/Irssi::Nick/g;
|
s/NICK_REC[^,]*/iobject/g;
|
||||||
s/LOG_REC[^,]*/Irssi::Log/g;
|
s/LOG_REC[^,]*/Irssi::Log/g;
|
||||||
s/RAWLOG_REC[^,]*/Irssi::Rawlog/g;
|
s/RAWLOG_REC[^,]*/Irssi::Rawlog/g;
|
||||||
s/IGNORE_REC[^,]*/Irssi::Ignore/g;
|
s/IGNORE_REC[^,]*/Irssi::Ignore/g;
|
||||||
|
@ -55,7 +55,6 @@ static void perl_call_signal(const char *func, int signal_id,
|
|||||||
int retcount;
|
int retcount;
|
||||||
|
|
||||||
PERL_SIGNAL_ARGS_REC *rec;
|
PERL_SIGNAL_ARGS_REC *rec;
|
||||||
HV *stash;
|
|
||||||
SV *perlarg;
|
SV *perlarg;
|
||||||
void *arg;
|
void *arg;
|
||||||
int n;
|
int n;
|
||||||
@ -82,13 +81,19 @@ static void perl_call_signal(const char *func, int signal_id,
|
|||||||
else if (strncmp(rec->args[n], "gslist_", 7) == 0) {
|
else if (strncmp(rec->args[n], "gslist_", 7) == 0) {
|
||||||
/* linked list - push as AV */
|
/* linked list - push as AV */
|
||||||
GSList *tmp;
|
GSList *tmp;
|
||||||
|
SV *sv;
|
||||||
AV *av;
|
AV *av;
|
||||||
|
int iobject;
|
||||||
|
|
||||||
|
iobject = strcmp(rec->args[n]+7, "iobject") == 0;
|
||||||
av = newAV();
|
av = newAV();
|
||||||
stash = gv_stashpv(rec->args[n]+7, 0);
|
for (tmp = arg; tmp != NULL; tmp = tmp->next) {
|
||||||
for (tmp = arg; tmp != NULL; tmp = tmp->next)
|
sv = iobject ? irssi_bless((SERVER_REC *) tmp->data) :
|
||||||
av_push(av, sv_2mortal(new_bless(tmp->data, stash)));
|
irssi_bless_plain(rec->args[n]+7, tmp->data);
|
||||||
perlarg = (SV*)av;
|
av_push(av, sv);
|
||||||
|
}
|
||||||
|
|
||||||
|
perlarg = newRV_noinc((SV *) av);
|
||||||
} else if (arg == NULL) {
|
} else if (arg == NULL) {
|
||||||
/* don't bless NULL arguments */
|
/* don't bless NULL arguments */
|
||||||
perlarg = newSViv(0);
|
perlarg = newSViv(0);
|
||||||
@ -101,7 +106,7 @@ static void perl_call_signal(const char *func, int signal_id,
|
|||||||
/* blessed object */
|
/* blessed object */
|
||||||
perlarg = irssi_bless_plain(rec->args[n], arg);
|
perlarg = irssi_bless_plain(rec->args[n], arg);
|
||||||
}
|
}
|
||||||
XPUSHs(sv_2mortal(perlarg));
|
XPUSHs(sv_2mortal(perlarg));
|
||||||
}
|
}
|
||||||
|
|
||||||
PUTBACK;
|
PUTBACK;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user