From c1637652eaf3682dc2b5aa8c87b45552a8e1cf67 Mon Sep 17 00:00:00 2001 From: Thomas Martitz Date: Mon, 20 Aug 2012 23:50:35 +0200 Subject: [PATCH] pacat: Enable binary mode on Windows. Without this reading from stdin will eventually end with EOF (if there happens to be a newline sign in the stream), because read() returns 0. This patch fixes raw data input and piping to pacat on Windows. --- src/utils/pacat.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/utils/pacat.c b/src/utils/pacat.c index ec360f78..734017cd 100644 --- a/src/utils/pacat.c +++ b/src/utils/pacat.c @@ -1129,6 +1129,10 @@ int main(int argc, char *argv[]) { pa_disable_sigpipe(); if (raw) { +#ifdef OS_IS_WIN32 + /* need to turn on binary mode for stdio io. Windows, meh */ + setmode(mode == PLAYBACK ? STDIN_FILENO : STDOUT_FILENO, O_BINARY); +#endif if (!(stdio_event = mainloop_api->io_new(mainloop_api, mode == PLAYBACK ? STDIN_FILENO : STDOUT_FILENO, mode == PLAYBACK ? PA_IO_EVENT_INPUT : PA_IO_EVENT_OUTPUT, -- 2.39.2