No change in behavior, this patch just removes code that is not
used since a long time.

Tested on x86_64-pc-linux-gnu, committed on trunk

2011-09-06  Pascal Obry  <o...@adacore.com>

        * sysdep.c (winflush_nt): Removed as not needed anymore.
        (winflush_95): Likewise.
        (winflush_init): Likewise.
        (winflush_function): Likewise.
        (getc_immediate_common): Remove call to winflush_function.

Index: sysdep.c
===================================================================
--- sysdep.c    (revision 178565)
+++ sysdep.c    (working copy)
@@ -211,84 +211,10 @@
     return NULL;
 }
 
-/* This function is needed to fix a bug under Win95/98. Under these platforms
-   doing :
-                ch1 = getch();
-               ch2 = fgetc (stdin);
+#ifndef RTX
 
-   will put the same character into ch1 and ch2. It seem that the character
-   read by getch() is not correctly removed from the buffer. Even a
-   fflush(stdin) does not fix the bug. This bug does not appear under Window
-   NT. So we have two version of this routine below one for 95/98 and one for
-   NT/2000 version of Windows. There is also a special routine (winflushinit)
-   that will be called only the first time to check which version of Windows
-   we are running running on to set the right routine to use.
-
-   This problem occurs when using Text_IO.Get_Line after Text_IO.Get_Immediate
-   for example.
-
-   Calling FlushConsoleInputBuffer just after getch() fix the bug under
-   95/98. */
-
-#ifdef RTX
-
-static void winflush_nt (void);
-
-/* winflush_function will do nothing since we only have problems with Windows
-   95/98 which are not supported by RTX. */
-
-static void (*winflush_function) (void) = winflush_nt;
-
-static void
-winflush_nt (void)
-{
-  /* Does nothing as there is no problem under NT.  */
-}
-
-#else /* !RTX */
-
-static void winflush_init (void);
-
-static void winflush_95 (void);
-
-static void winflush_nt (void);
-
 int __gnat_is_windows_xp (void);
 
-/* winflusfunction is set first to the winflushinit function which will check
-   the OS version 95/98 or NT/2000 */
-
-static void (*winflush_function) (void) = winflush_init;
-
-/* This function does the runtime check of the OS version and then sets
-   winflush_function to the appropriate function and then call it. */
-
-static void
-winflush_init (void)
-{
-  DWORD dwVersion = GetVersion();
-
-  if (dwVersion < 0x80000000)                /* Windows NT/2000 */
-    winflush_function = winflush_nt;
-  else                                       /* Windows 95/98   */
-    winflush_function = winflush_95;
-
-  (*winflush_function)();      /* Perform the 'flush' */
-
-}
-
-static void
-winflush_95 (void)
-{
-  FlushConsoleInputBuffer (GetStdHandle (STD_INPUT_HANDLE));
-}
-
-static void
-winflush_nt (void)
-{
-  /* Does nothing as there is no problem under NT.  */
-}
-
 int
 __gnat_is_windows_xp (void)
 {
@@ -311,7 +237,7 @@
   return is_win_xp;
 }
 
-#endif /* !RTX */
+#endif
 
 /* Get the bounds of the stack.  The stack pointer is supposed to be
    initialized to BASE when a thread is created and the stack can be extended
@@ -542,7 +468,6 @@
       if (waiting)
        {
          *ch = getch ();
-         (*winflush_function) ();
 
          if (*ch == eot_ch)
            *end_of_file = 1;
@@ -559,7 +484,6 @@
            {
              *avail = 1;
              *ch = getch ();
-             (*winflush_function) ();
 
              if (*ch == eot_ch)
                *end_of_file = 1;

Reply via email to