(Resent as v3 since patch 5 went into space(?)) I've been tryng to run pulseaudio (including utils) on windows. This series is the first to contribute fixes to achieve this. One issue I came across is the assertion failue (!e->dead) in pacat. This is fixed by the third patch. Uncovered by this and fixed by patch 2 is that stdio needs to be switched to binary mode in order to pipe data through it. Patch 1 works around massive build warnings on mingw32, but it's not mission critical (note: I don't know why the patch order of 1-3 is different to the first set). Another issue was pa_read() failure in flush(), which wasn't actually failure, but rather not handling non-blocking sockets. Actually, I'm not sure if the fix is correct (perhaps because pa_read() should not wait for non-block sockets or the fix is windows-only) but it functions as a work- around. The last 2 patches are more or less minor and speak for themselves. Please review and comment on my patches, especually patch#4. This is my first contribution to PA, but surely not the last one so I would like to get things right. Thomas Martitz (6): gccmacro: Disable printf-like format checking on mingw32 compilers. pacat: Enable binary mode on Windows. Proper poll() emulation to fix pacat and friends on windows. Windows/pa_read,_write: Transparently handle non-blocking sockets. pacat: Replace read(), write() with pa_* equivalent. Windows/pa_cstrerror(): Slightly more helpful unknown error. src/Makefile.am | 7 +- src/pulse/gccmacro.h | 2 +- src/pulse/mainloop.c | 18 -- src/pulsecore/core-error.c | 4 +- src/pulsecore/core-util.c | 35 ++- src/pulsecore/poll-posix.c | 237 +++++++++++++++++ src/pulsecore/poll-win32.c | 627 ++++++++++++++++++++++++++++++++++++++++++++ src/pulsecore/poll.c | 237 ----------------- src/utils/pacat.c | 12 +- 9 files changed, 913 insertions(+), 266 deletions(-) create mode 100644 src/pulsecore/poll-posix.c create mode 100644 src/pulsecore/poll-win32.c delete mode 100644 src/pulsecore/poll.c -- 1.7.10.4