summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2003-05-26 15:57:04 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2003-05-26 15:57:04 +0000
commit35e6bf7f8eca0860153eb356e816d3357d47f4fa (patch)
tree7c46b8ad2985d51f05e2504a6e94a335de95baff
parent2003-05-22 Ralf Corsepius <corsepiu@faw.uni-ulm.de> (diff)
downloadrtems-35e6bf7f8eca0860153eb356e816d3357d47f4fa.tar.bz2
2003-04-17 Thomas Doerfler <Thomas.Doerfler@imd-systems.de>
PR 399/rtems_misc * src/termios.c: In canonical mode, when input is present in the input buffer that contains an EOL character and some following characters, a read call read data behind the EOL character, although it should stop reading with the EOL character.
-rw-r--r--cpukit/libcsupport/ChangeLog8
-rw-r--r--cpukit/libcsupport/src/termios.c5
2 files changed, 12 insertions, 1 deletions
diff --git a/cpukit/libcsupport/ChangeLog b/cpukit/libcsupport/ChangeLog
index 5613c18700..95d1773e9a 100644
--- a/cpukit/libcsupport/ChangeLog
+++ b/cpukit/libcsupport/ChangeLog
@@ -1,3 +1,11 @@
+2003-04-17 Thomas Doerfler <Thomas.Doerfler@imd-systems.de>
+
+ PR 399/rtems_misc
+ * src/termios.c: In canonical mode, when input is present in the
+ input buffer that contains an EOL character and some following
+ characters, a read call read data behind the EOL character, although
+ it should stop reading with the EOL character.
+
2003-04-17 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* src/no_posix.c: include <reent.h> instead of <sys/reent.h>
diff --git a/cpukit/libcsupport/src/termios.c b/cpukit/libcsupport/src/termios.c
index d83b635d37..96eb92d509 100644
--- a/cpukit/libcsupport/src/termios.c
+++ b/cpukit/libcsupport/src/termios.c
@@ -1063,8 +1063,10 @@ fillBufferQueue (struct rtems_termios_tty *tty)
/* continue processing new character */
if (tty->termios.c_lflag & ICANON) {
- if (siproc (c, tty))
+ if (siproc (c, tty)) {
wait = 0;
+ break; /* done */
+ }
}
else {
siproc (c, tty);
@@ -1510,3 +1512,4 @@ static rtems_task rtems_termios_rxdaemon(rtems_task_argument argument)
}
}
}
+