]> sourceware.org Git - newlib-cygwin.git/commitdiff
* fhandler_termios.cc (fhandler_termios::line_edit): Call accept_input() in
authorChristopher Faylor <me@cgf.cx>
Sat, 14 Dec 2002 19:40:41 +0000 (19:40 +0000)
committerChristopher Faylor <me@cgf.cx>
Sat, 14 Dec 2002 19:40:41 +0000 (19:40 +0000)
character processing loop.  Set return value independently of input_done.

winsup/cygwin/ChangeLog
winsup/cygwin/fhandler_termios.cc

index d932e9c3ae1e8d1a6d347987efcd86a82a530804..c19dfdb3d1b5a1f334790ff0d0c304b424f4f4f9 100644 (file)
@@ -1,3 +1,9 @@
+2002-12-14  Steve Osborn  <bub@io.com>
+
+       * fhandler_termios.cc (fhandler_termios::line_edit): Call
+       accept_input() in character processing loop.  Set return value
+       independently of input_done.
+
 2002-12-14  Christopher Faylor  <cgf@redhat.com>
 
        * fhandler.cc (fhandler_base::read): Signal event, if necessary, and
index 6fa5cf9847cc6bb04840387e2b1c05a8363e70b9..16a826bd94cade7bcc02c586f829fb31468cb6fc 100644 (file)
@@ -308,7 +308,8 @@ fhandler_termios::line_edit (const char *rptr, int nread, int always_accept)
       else if (CCEQ (tc->ti.c_cc[VEOF], c))
        {
          termios_printf ("EOF");
-         input_done = 1;
+         (void) accept_input();
+         ret = line_edit_input_done;
          continue;
        }
       else if (CCEQ (tc->ti.c_cc[VEOL], c) ||
@@ -323,20 +324,21 @@ fhandler_termios::line_edit (const char *rptr, int nread, int always_accept)
        c = cyg_tolower (c);
 
       put_readahead (c);
+      if (!iscanon || always_accept || input_done)
+       {
+         (void) accept_input();
+         ret = line_edit_input_done;
+         input_done = 0;
+       }
       if (tc->ti.c_lflag & ECHO)
        doecho (&c, 1);
     }
 
-  if (!iscanon || always_accept)
-    set_input_done (ralen > 0);
+  if ((!iscanon || always_accept) && ralen > 0)
+    ret = line_edit_input_done;
 
   if (sawsig)
     ret = line_edit_signalled;
-  else if (input_done)
-    {
-      ret = line_edit_input_done;
-      (void) accept_input ();
-    }
 
   return ret;
 }
This page took 0.040255 seconds and 5 git commands to generate.