On some recent Windows versions, GetLastError() may also return
NO_ERROR instead of ERROR_IO_PENDING during an overlapped write
operation to a pipe. This was confusing the state machine in
Server.cpp so that replies to commands were scheduled but were
never actually output.
(cherry picked from commit
cf5f2661dc0a902e541704172ab369ba3e5a54d6)
error = GetLastError();
- if (success && error == ERROR_IO_PENDING) {
+ if (success && (error == ERROR_IO_PENDING || error == NO_ERROR)) {
// The write operation is still pending.
// We get here when a reader is started
// well before a reply is ready, so delay
- When reconfiguring LyX, correctly detect commands specified with a
full path with spaces (bug 11214).
+- Fix the LyX server on Windows so that replies are actually output.
+
* DOCUMENTATION AND LOCALIZATION