# HG changeset patch # User Daniel Atallah # Date 1217220579 0 # Node ID d1d32f318ce9c0e8f305ecd5bc89c71d181f84b2 # Parent df9e569b8f1f6d365615a8538531e0ea665d2100 Fix output redirection for perl plugins on win32. diff -r df9e569b8f1f -r d1d32f318ce9 libpurple/plugins/perl/perl.c --- a/libpurple/plugins/perl/perl.c Mon Jul 28 03:47:14 2008 +0000 +++ b/libpurple/plugins/perl/perl.c Mon Jul 28 04:49:39 2008 +0000 @@ -267,6 +267,24 @@ PL_perl_destruct_level = 1; perl_construct(prober); +/* Fix IO redirection to match where pidgin's is going. + * Without this, we lose stdout/stderr unless we redirect to a file */ +#ifdef _WIN32 +{ + PerlIO* newprlIO = PerlIO_open("CONOUT$", "w"); + if (newprlIO) { + int stdout_fd = PerlIO_fileno(PerlIO_stdout()); + int stderr_fd = PerlIO_fileno(PerlIO_stderr()); + PerlIO_close(PerlIO_stdout()); + PerlIO_close(PerlIO_stderr()); + PerlLIO_dup2(PerlIO_fileno(newprlIO), stdout_fd); + PerlLIO_dup2(PerlIO_fileno(newprlIO), stderr_fd); + + PerlIO_close(newprlIO); + } +} +#endif + perl_parse(prober, xs_init, argc, argv, NULL); perl_run(prober);