Read in text mode, write in binary mode on OS/2
This enables to convert CR+LF to LF when reading, but disables to convert LF to CR+LF when writing. Instead, however, CR+LF are not passed into mksh as is.
This commit is contained in:
9
misc.c
9
misc.c
@ -1329,6 +1329,10 @@ blocking_read(int fd, char *buf, size_t nbytes)
|
||||
ssize_t ret;
|
||||
bool tried_reset = false;
|
||||
|
||||
#ifdef __OS2__
|
||||
int saved_mode = setmode(fd, O_TEXT);
|
||||
int saved_errno;
|
||||
#endif
|
||||
while ((ret = read(fd, buf, nbytes)) < 0) {
|
||||
if (!tried_reset && errno == EAGAIN) {
|
||||
if (reset_nonblock(fd) > 0) {
|
||||
@ -1339,6 +1343,11 @@ blocking_read(int fd, char *buf, size_t nbytes)
|
||||
}
|
||||
break;
|
||||
}
|
||||
#ifdef __OS2__
|
||||
saved_errno = errno;
|
||||
setmode(fd, saved_mode);
|
||||
errno = saved_errno;
|
||||
#endif
|
||||
return (ret);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user