comp.lang.ada
 help / color / mirror / Atom feed
From: Maciej Sobczak <no.spam@no.spam.com>
Subject: Get_Line problem (GNAT bug?)
Date: Wed, 06 Dec 2006 15:25:31 +0100
Date: 2006-12-06T15:25:31+01:00	[thread overview]
Message-ID: <el6jss$268$1@cernne03.cern.ch> (raw)

Hi,

Consider:

with Ada.Text_IO;

procedure Hello is
    use Ada.Text_IO;

    Input_Line : String(1..100);
    Last_Index : Integer range 0..100;
begin
    loop
       Put("What's your name? ");
       exit when End_Of_File;
       Get_Line(Input_Line, Last_Index);
       if Last_Index >= Input_Line'First then
          Put("Hi, ");
          Put(Input_Line(1..Last_Index));
          New_Line;
       else
          Put("You have funny empty name.");
          New_Line;
       end if;
    end loop;
end Hello;

(please focus on the Get_Line problem here)

It should be obvious what the program does, except that the behaviour in 
the case of empty input line is a bit strange.
Below, in the right-hand column I describe what keys were pressed:

$ ./hello
What's your name? Maciek                -- M a c i e k ENTER
Hi, Maciek
What's your name?                       -- ENTER
                                         -- ENTER
You have funny empty name.
What's your name?                       -- ENTER
You have funny empty name.
What's your name?                       -- EOF
$

As you see, the first ENTER was somehow "swollowed", creating an empty 
line in the console (that's the echo of what user typed), but still 
blocking in Get_Line. All subsequent ENTERs seem to be handled 
correctly, which means that Get_Line returns with Last_Index < 
Input_Line'First.

I was already suggested that it might be a GNAT feature. If yes, it 
seems to be persistent, because I see it with two different versions.

Of course, I expect that empty lines are handled uniformly.

Any thoughts?

-- 
Maciej Sobczak : http://www.msobczak.com/
Programming    : http://www.msobczak.com/prog/



             reply	other threads:[~2006-12-06 14:25 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-12-06 14:25 Maciej Sobczak [this message]
2006-12-06 18:06 ` Get_Line problem (GNAT bug?) Adam Beneschan
2006-12-06 20:34 ` Gautier
2006-12-06 21:47 ` Dmitry A. Kazakov
2006-12-06 23:40   ` Adam Beneschan
2006-12-07  0:02     ` Björn Persson
2006-12-07  1:09       ` Adam Beneschan
2006-12-07  1:28         ` Björn Persson
2006-12-07  5:00         ` Jeffrey R. Carter
2006-12-07  8:26   ` Maciej Sobczak
2006-12-07  9:21     ` Jean-Pierre Rosen
2006-12-07 13:35       ` Ludovic Brenta
2006-12-07 22:23       ` Robert A Duff
2006-12-07 10:22     ` Dmitry A. Kazakov
2006-12-07 14:51       ` Maciej Sobczak
2006-12-07 16:29         ` Dmitry A. Kazakov
2006-12-08  8:22           ` Maciej Sobczak
2006-12-07 22:50       ` Robert A Duff
2006-12-08  0:13         ` Randy Brukardt
2006-12-08  4:04         ` Larry Kilgallen
2006-12-08  9:11         ` Dmitry A. Kazakov
2006-12-07  9:14   ` Jean-Pierre Rosen
2006-12-07  3:34 ` Steve
2006-12-07 17:42   ` Adam Beneschan
2006-12-07 22:35     ` Robert A Duff
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox