]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - Ada95/samples/ncurses2-getch_test.adb
ncurses 5.9 - patch 20110807
[ncurses.git] / Ada95 / samples / ncurses2-getch_test.adb
index d786d49644f6bda040ca213e4584beed6fe856e8..2802cfb55017e8e93a579cb273315fa97b9b6ba5 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 2000 Free Software Foundation, Inc.                        --
+-- Copyright (c) 2000-2008,2009 Free Software Foundation, Inc.              --
 --                                                                          --
 -- Permission is hereby granted, free of charge, to any person obtaining a  --
 -- copy of this software and associated documentation files (the            --
@@ -35,7 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
 --  Version Control
---  $Revision: 1.1 $
+--  $Revision: 1.8 $
+--  $Date: 2009/12/26 17:38:58 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 --  Character input test
@@ -83,7 +84,6 @@ procedure ncurses2.getch_test is
       return To_String (buf);
    end mouse_decode;
 
-
    buf : String (1 .. 1024); --  TODO was BUFSIZE
    n : Integer;
    c : Key_Code;
@@ -96,6 +96,7 @@ procedure ncurses2.getch_test is
    y : Line_Position;
    tmpx : Integer;
    incount : Integer := 0;
+
 begin
    Refresh;
    tmp2 := Start_Mouse (All_Events);
@@ -120,14 +121,15 @@ begin
          Put (tmp6, Integer (c), 8);
          Add (Str => tmp6);
          Add (Ch => ' ');
-         if c = Key_Mouse then declare
-            event : Mouse_Event;
-         begin
-            event := Get_Mouse;
-            Add (Str => "KEY_MOUSE, ");
-            Add (Str => mouse_decode (event));
-            Add (Ch => newl);
-         end;
+         if c = Key_Mouse then
+            declare
+               event : Mouse_Event;
+            begin
+               event := Get_Mouse;
+               Add (Str => "KEY_MOUSE, ");
+               Add (Str => mouse_decode (event));
+               Add (Ch => newl);
+            end;
          elsif c >= Key_Min then
             Key_Name (c, tmp20);
             Add (Str => tmp20);
@@ -135,7 +137,7 @@ begin
             Add (Ch => newl);
          elsif c > 16#80# then --  TODO fix, use constant if possible
             declare
-               c2 : Character := Character'Val (c mod 16#80#);
+               c2 : constant Character := Character'Val (c mod 16#80#);
             begin
                if Ada.Characters.Handling.Is_Graphic (c2) then
                   Add (Str => "M-");
@@ -149,21 +151,22 @@ begin
                Add (Str => " (high-half character)");
                Add (Ch => newl);
             end;
-         else declare
-            c2 : Character := Character'Val (c mod 16#80#);
-         begin
-            if Ada.Characters.Handling.Is_Graphic (c2) then
-               Add (Ch => c2);
-               Add (Str => " (ASCII printable character)");
-               Add (Ch => newl);
-            else
-               Add (Str => Un_Control ((Ch => c2,
-                                       Color => Color_Pair'First,
-                                       Attr => Normal_Video)));
-               Add (Str => " (ASCII control character)");
-               Add (Ch => newl);
-            end if;
-         end;
+         else
+            declare
+               c2 : constant Character := Character'Val (c mod 16#80#);
+            begin
+               if Ada.Characters.Handling.Is_Graphic (c2) then
+                  Add (Ch => c2);
+                  Add (Str => " (ASCII printable character)");
+                  Add (Ch => newl);
+               else
+                  Add (Str => Un_Control ((Ch => c2,
+                                          Color => Color_Pair'First,
+                                          Attr => Normal_Video)));
+                  Add (Str => " (ASCII control character)");
+                  Add (Ch => newl);
+               end if;
+            end;
          end if;
          --  TODO I am not sure why this was in the C version
          --  the delay statement scroll anyway.
@@ -202,7 +205,7 @@ begin
                Add (Str => " I saw '");
                myAdd (Str => boundedbuf);
                Add (Str => "'.");
-               Add (ch => newl);
+               Add (Ch => newl);
             end if;
          end;
       elsif c = Character'Pos ('s') then
@@ -242,7 +245,7 @@ begin
       end loop;
    end loop;
 
-   tmp2 := Start_Mouse (No_Events);
+   End_Mouse (tmp2);
    Set_Timeout_Mode (Mode => Blocking, Amount => 0); --  amount is ignored
    Set_Raw_Mode (SwitchOn => False);
    Set_NL_Mode (SwitchOn => True);