Patchwork Work around stdio redirection by SDL on Windows

login
register
mail settings
Submitter Sebastian Herbszt
Date Aug. 9, 2009, 12:06 p.m.
Message ID <CB9C1DB604194FD4B20F3055C9363217@FSCPC>
Download mbox | patch
Permalink /patch/31019/
State Superseded
Headers show

Comments

Sebastian Herbszt - Aug. 9, 2009, 12:06 p.m.
Work around no longer working console output with SDL on Windows.

Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
Filip Navara - Aug. 9, 2009, 12:26 p.m.
On Sun, Aug 9, 2009 at 2:06 PM, Sebastian Herbszt<herbszt@gmx.de> wrote:
> Work around no longer working console output with SDL on Windows.
>
> Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
>
> --- v0.11.0-rc0-201-gd9c3231/vl.c.orig Sun Aug  9 11:52:47 2009
> +++ v0.11.0-rc0-201-gd9c3231/vl.c Sun Aug  9 11:58:59 2009
> @@ -4873,6 +4873,12 @@
>    CPUState *env;
>    int show_vnc_port = 0;
>
> +/* Work around stdio redirection by SDL on Windows */
> +#if defined (CONFIG_SDL) && defined (_WIN32)
> +    freopen("CON", "wb", stdout);
> +    freopen("CON", "wb", stderr);
> +#endif
> +

That will not work in RXVT, SSH consoles and for pipes unfortunately
:-/ Also it won't respect the redirections specified on command line,
which is something I often use, therefore I object to this patch. It's
better to use SDL compiled with the --enable-stdio-redirect=no option.

Best regards,
Filip Navara
Sebastian Herbszt - Aug. 9, 2009, 10 p.m.
Filip Navara wrote:
>> Sebastian Herbszt wrote:
>> --- v0.11.0-rc0-201-gd9c3231/vl.c.orig Sun Aug 9 11:52:47 2009
>> +++ v0.11.0-rc0-201-gd9c3231/vl.c Sun Aug 9 11:58:59 2009
>> @@ -4873,6 +4873,12 @@
>> CPUState *env;
>> int show_vnc_port = 0;
>>
>> +/* Work around stdio redirection by SDL on Windows */
>> +#if defined (CONFIG_SDL) && defined (_WIN32)
>> + freopen("CON", "wb", stdout);
>> + freopen("CON", "wb", stderr);
>> +#endif
>> +
>
> That will not work in RXVT, SSH consoles and for pipes unfortunately
> :-/ Also it won't respect the redirections specified on command line,
> which is something I often use, therefore I object to this patch. It's
> better to use SDL compiled with the --enable-stdio-redirect=no option.

Too bad this work around is a no go. At least for me it's good enough to
make qemu usable again.

I hope the need for a custom SDL will at least get properly documented since
this is a big regression for Windows users.

- Sebastian

Patch

--- v0.11.0-rc0-201-gd9c3231/vl.c.orig Sun Aug  9 11:52:47 2009
+++ v0.11.0-rc0-201-gd9c3231/vl.c Sun Aug  9 11:58:59 2009
@@ -4873,6 +4873,12 @@ 
     CPUState *env;
     int show_vnc_port = 0;
 
+/* Work around stdio redirection by SDL on Windows */
+#if defined (CONFIG_SDL) && defined (_WIN32)
+    freopen("CON", "wb", stdout);
+    freopen("CON", "wb", stderr);
+#endif
+
     qemu_cache_utils_init(envp);
 
     LIST_INIT (&vm_change_state_head);