Thu Mar 21 11:19:15 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>

* mach/devstream.c (input): Translate \r to \n on input.
This commit is contained in:
Roland McGrath 1996-03-21 16:23:21 +00:00
parent ce563359af
commit 036a272548
2 changed files with 15 additions and 3 deletions

View File

@ -1,3 +1,7 @@
Thu Mar 21 11:19:15 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
* mach/devstream.c (input): Translate \r to \n on input.
Wed Mar 20 11:28:49 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> Wed Mar 20 11:28:49 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* stdio-common/printf.h, stdio-common/printf_fp.c, * stdio-common/printf.h, stdio-common/printf_fp.c,

View File

@ -1,7 +1,7 @@
/* stdio on a Mach device port. /* stdio on a Mach device port.
Translates \n to \r\n on output, echos input. Translates \n to \r\n on output, echos and translates \r to \n on input.
Copyright (C) 1992, 1993, 1994 Free Software Foundation, Inc. Copyright (C) 1992, 1993, 1994, 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -63,6 +63,14 @@ input (FILE *f)
err = device_write_inband ((device_t) f->__cookie, 0, f->__target, err = device_write_inband ((device_t) f->__cookie, 0, f->__target,
buffer, nread, (int *) &to_read); buffer, nread, (int *) &to_read);
/* Translate LF to CR. */
{
char *p;
for (p = memchr (buffer, '\r', nread); p;
p = memchr (p + 1, '\r', (buffer + nread) - (p + 1)))
*p = '\n';
}
if (f->__buffer == NULL) if (f->__buffer == NULL)
return (unsigned char) c; return (unsigned char) c;
@ -84,7 +92,7 @@ output (FILE *f, int c)
while (to_write > 0) while (to_write > 0)
{ {
if (err = device_write ((device_t) f->__cookie, 0, if (err = device_write ((device_t) f->__cookie, 0,
f->__target, (char *)p, f->__target, (char *)p,
to_write, &wrote)) to_write, &wrote))
{ {
errno = err; errno = err;