When CMSPAR is define, the space and mark parity is reversed: The flag PARODD isn't set correctly
Signed-off-by: Julien D'Ascenzio jdascenzio@paratronic.fr --- dlls/ntdll/serial.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/dlls/ntdll/serial.c b/dlls/ntdll/serial.c index 29e9fafbca..b3404d4534 100644 --- a/dlls/ntdll/serial.c +++ b/dlls/ntdll/serial.c @@ -280,8 +280,8 @@ static NTSTATUS get_line_control(int fd, SERIAL_LINE_CONTROL* slc) case PARENB: slc->Parity = EVENPARITY; break; case PARENB|PARODD: slc->Parity = ODDPARITY; break; #ifdef CMSPAR - case PARENB|CMSPAR: slc->Parity = MARKPARITY; break; - case PARENB|PARODD|CMSPAR: slc->Parity = SPACEPARITY; break; + case PARENB|PARODD|CMSPAR: slc->Parity = MARKPARITY; break; + case PARENB|CMSPAR: slc->Parity = SPACEPARITY; break; #endif } switch (port.c_cflag & CSIZE) @@ -676,8 +676,8 @@ static NTSTATUS set_line_control(int fd, const SERIAL_LINE_CONTROL* slc) case EVENPARITY: port.c_cflag |= PARENB; break; #ifdef CMSPAR /* Linux defines mark/space (stick) parity */ - case MARKPARITY: port.c_cflag |= PARENB | CMSPAR; break; - case SPACEPARITY: port.c_cflag |= PARENB | PARODD | CMSPAR; break; + case MARKPARITY: port.c_cflag |= PARENB | PARODD | CMSPAR; break; + case SPACEPARITY: port.c_cflag |= PARENB | CMSPAR; break; #else /* try the POSIX way */ case MARKPARITY:
Hi Julien, thanks for your interest in contributing to Wine! The patch looks correct to me in principle, but would you please fix the whitespace so that the break statements are still lined up?
-Alex
Also, you used a different email address (and a different capitalization of your name) in your email's From line and its Signed-off-by line. Both lines should have exactly the same information.
-Alex