-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 2000 Free Software Foundation, Inc. --
+-- Copyright (c) 2000-2009,2011 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 --
------------------------------------------------------------------------------
-- Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
-- Version Control
--- $Revision: 1.1 $
+-- $Revision: 1.9 $
+-- $Date: 2011/03/19 12:03:08 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with ncurses2.util; use ncurses2.util;
with Terminal_Interface.Curses.Aux;
procedure ncurses2.slk_test is
- procedure myGet (Win : in Window := Standard_Window;
+ procedure myGet (Win : Window := Standard_Window;
Str : out Ada.Strings.Unbounded.Unbounded_String;
- Len : in Integer := -1);
+ Len : Integer := -1);
- procedure myGet (Win : in Window := Standard_Window;
+ procedure myGet (Win : Window := Standard_Window;
Str : out Ada.Strings.Unbounded.Unbounded_String;
- Len : in Integer := -1)
+ Len : Integer := -1)
is
use Ada.Strings.Unbounded;
use Interfaces.C;
Len : int) return int;
pragma Import (C, Wgetnstr, "wgetnstr");
- Txt : char_array (0 .. 10);
+ -- FIXME: how to construct "(Len > 0) ? Len : 80"?
+ Ask : constant Interfaces.C.size_t := Interfaces.C.size_t'Val (Len + 80);
+ Txt : char_array (0 .. Ask);
+
begin
Txt (0) := Interfaces.C.char'First;
- if Wgetnstr (Win, Txt, 8) = Curses_Err then
+ if Wgetnstr (Win, Txt, Txt'Length) = Curses_Err then
raise Curses_Exception;
end if;
Str := To_Unbounded_String (To_Ada (Txt, True));
end myGet;
-
use Int_IO;
use Ada.Strings.Unbounded;
when 'x' | 'q' =>
exit;
-- the C version needed a goto, ha ha
- -- breaks exit the case not the loop because fall-throuh
+ -- breaks exit the case not the loop because fall-through
-- happens in C!
when others =>
Beep;