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);