Mercurial > pidgin.yaz
comparison libpurple/plugins/perl/perl.c @ 23650:d1d32f318ce9
Fix output redirection for perl plugins on win32.
author | Daniel Atallah <daniel.atallah@gmail.com> |
---|---|
date | Mon, 28 Jul 2008 04:49:39 +0000 |
parents | ab5b9acebde3 |
children | fb86dbeb2b15 |
comparison
equal
deleted
inserted
replaced
23649:df9e569b8f1f | 23650:d1d32f318ce9 |
---|---|
265 PERL_SET_CONTEXT(prober); | 265 PERL_SET_CONTEXT(prober); |
266 | 266 |
267 PL_perl_destruct_level = 1; | 267 PL_perl_destruct_level = 1; |
268 perl_construct(prober); | 268 perl_construct(prober); |
269 | 269 |
270 /* Fix IO redirection to match where pidgin's is going. | |
271 * Without this, we lose stdout/stderr unless we redirect to a file */ | |
272 #ifdef _WIN32 | |
273 { | |
274 PerlIO* newprlIO = PerlIO_open("CONOUT$", "w"); | |
275 if (newprlIO) { | |
276 int stdout_fd = PerlIO_fileno(PerlIO_stdout()); | |
277 int stderr_fd = PerlIO_fileno(PerlIO_stderr()); | |
278 PerlIO_close(PerlIO_stdout()); | |
279 PerlIO_close(PerlIO_stderr()); | |
280 PerlLIO_dup2(PerlIO_fileno(newprlIO), stdout_fd); | |
281 PerlLIO_dup2(PerlIO_fileno(newprlIO), stderr_fd); | |
282 | |
283 PerlIO_close(newprlIO); | |
284 } | |
285 } | |
286 #endif | |
287 | |
270 perl_parse(prober, xs_init, argc, argv, NULL); | 288 perl_parse(prober, xs_init, argc, argv, NULL); |
271 | 289 |
272 perl_run(prober); | 290 perl_run(prober); |
273 | 291 |
274 plugin_info = perl_get_hv("PLUGIN_INFO", FALSE); | 292 plugin_info = perl_get_hv("PLUGIN_INFO", FALSE); |