… | |
… | |
4 | |
4 | |
5 | #include "perlmulticore.h" |
5 | #include "perlmulticore.h" |
6 | |
6 | |
7 | #include "uulib/fptools.h" |
7 | #include "uulib/fptools.h" |
8 | #include "uulib/uudeview.h" |
8 | #include "uulib/uudeview.h" |
9 | #include "uulib/uuint.h" |
|
|
10 | |
9 | |
11 | static int perlinterp_released; |
10 | static int perlinterp_released; |
12 | |
11 | |
13 | #define RELEASE do { perlinterp_released = 1; perlinterp_release (); } while (0) |
12 | #define RELEASE do { perlinterp_released = 1; perlinterp_release (); } while (0) |
14 | #define ACQUIRE do { perlinterp_acquire (); perlinterp_released = 0; } while (0) |
13 | #define ACQUIRE do { perlinterp_acquire (); perlinterp_released = 0; } while (0) |
… | |
… | |
135 | dSP; |
134 | dSP; |
136 | int count; |
135 | int count; |
137 | |
136 | |
138 | ENTER; SAVETMPS; PUSHMARK (SP); EXTEND (SP, 2); |
137 | ENTER; SAVETMPS; PUSHMARK (SP); EXTEND (SP, 2); |
139 | |
138 | |
140 | PUSHs (sv_2mortal(newSVpv(subject, 0))); |
139 | PUSHs (sv_2mortal (newSVpv (subject, 0))); |
141 | PUSHs (filename ? sv_2mortal(newSVpv(filename, 0)) : &PL_sv_undef); |
140 | PUSHs (filename ? sv_2mortal (newSVpv (filename, 0)) : &PL_sv_undef); |
142 | |
141 | |
143 | PUTBACK; count = perl_call_sv ((SV *)cb, G_ARRAY); SPAGAIN; |
142 | PUTBACK; count = perl_call_sv ((SV *)cb, G_ARRAY); SPAGAIN; |
144 | |
143 | |
145 | if (count > 1) |
144 | if (count > 1) |
146 | croak ("filenamecallback perl callback must return nothing or a single filename"); |
145 | croak ("filenamecallback perl callback must return nothing or a single filename"); |