X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=Ada95%2Fsamples%2Fncurses2-getch_test.adb;h=8f020e7c123b4ee9970ea136f315d41f4ea825d5;hp=d786d49644f6bda040ca213e4584beed6fe856e8;hb=6208c89f98f1cf9fe0980bd8e791846ce007a13d;hpb=46722468f47c2b77b3987729b4bcf2321cccfd01;ds=sidebyside diff --git a/Ada95/samples/ncurses2-getch_test.adb b/Ada95/samples/ncurses2-getch_test.adb index d786d496..8f020e7c 100644 --- a/Ada95/samples/ncurses2-getch_test.adb +++ b/Ada95/samples/ncurses2-getch_test.adb @@ -7,7 +7,7 @@ -- B O D Y -- -- -- ------------------------------------------------------------------------------ --- Copyright (c) 2000 Free Software Foundation, Inc. -- +-- Copyright (c) 2000-2009,2014 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 2000 -- Version Control --- $Revision: 1.1 $ +-- $Revision: 1.9 $ +-- $Date: 2014/09/13 19:10:18 $ -- 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,13 +205,15 @@ 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 ShellOut (True); - elsif c = Character'Pos ('x') or c = Character'Pos ('q') or - (c = Key_None and blockflag = Blocking) then + elsif c = Character'Pos ('x') or + c = Character'Pos ('q') or + (c = Key_None and blockflag = Blocking) + then exit; elsif c = Character'Pos ('?') then Add (Str => "Type any key to see its keypad value. Also:"); @@ -242,7 +247,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);