X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=Ada95%2Fsrc%2Fterminal_interface-curses-forms-field_types-user.adb;h=f544637bae0d36875af8358aff4ef4551fd1eb32;hp=6e348b93dd2b34e1ae3c03bb98b10d57283ccfe5;hb=9776951416d7fb862b9dca1f4c9f8031a5c9059b;hpb=a8987e73ec254703634802b4f7ee30d3a485524d;ds=sidebyside diff --git a/Ada95/src/terminal_interface-curses-forms-field_types-user.adb b/Ada95/src/terminal_interface-curses-forms-field_types-user.adb index 6e348b93..f544637b 100644 --- a/Ada95/src/terminal_interface-curses-forms-field_types-user.adb +++ b/Ada95/src/terminal_interface-curses-forms-field_types-user.adb @@ -7,7 +7,7 @@ -- B O D Y -- -- -- ------------------------------------------------------------------------------ --- Copyright (c) 1998 Free Software Foundation, Inc. -- +-- Copyright (c) 1998-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 -- @@ -35,19 +35,17 @@ ------------------------------------------------------------------------------ -- Author: Juergen Pfeifer, 1996 -- Version Control: --- $Revision: 1.10 $ +-- $Revision: 1.17 $ +-- $Date: 2011/03/08 01:16:49 $ -- Binding Version 01.00 ------------------------------------------------------------------------------ with Ada.Unchecked_Conversion; -with Interfaces.C; with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux; package body Terminal_Interface.Curses.Forms.Field_Types.User is - use type Interfaces.C.int; - - procedure Set_Field_Type (Fld : in Field; - Typ : in User_Defined_Field_Type) + procedure Set_Field_Type (Fld : Field; + Typ : User_Defined_Field_Type) is function Allocate_Arg (T : User_Defined_Field_Type'Class) return Argument_Access; @@ -56,14 +54,15 @@ package body Terminal_Interface.Curses.Forms.Field_Types.User is Cft : C_Field_Type := C_Generic_Type; Arg1 : Argument_Access) return C_Int; - pragma Import (C, Set_Fld_Type, "set_field_type"); + pragma Import (C, Set_Fld_Type, "set_field_type_user"); Res : Eti_Error; function Allocate_Arg (T : User_Defined_Field_Type'Class) return Argument_Access is - Ptr : Field_Type_Access := new User_Defined_Field_Type'Class'(T); + Ptr : constant Field_Type_Access + := new User_Defined_Field_Type'Class'(T); begin return new Argument'(Usr => System.Null_Address, Typ => Ptr, @@ -77,29 +76,31 @@ package body Terminal_Interface.Curses.Forms.Field_Types.User is end if; end Set_Field_Type; + pragma Warnings (Off); function To_Argument_Access is new Ada.Unchecked_Conversion (System.Address, Argument_Access); + pragma Warnings (On); function Generic_Field_Check (Fld : Field; - Usr : System.Address) return C_Int + Usr : System.Address) return Curses_Bool is Result : Boolean; - Udf : User_Defined_Field_Type_Access := + Udf : constant User_Defined_Field_Type_Access := User_Defined_Field_Type_Access (To_Argument_Access (Usr).Typ); begin Result := Field_Check (Fld, Udf.all); - return C_Int (Boolean'Pos (Result)); + return Curses_Bool (Boolean'Pos (Result)); end Generic_Field_Check; function Generic_Char_Check (Ch : C_Int; - Usr : System.Address) return C_Int + Usr : System.Address) return Curses_Bool is Result : Boolean; - Udf : User_Defined_Field_Type_Access := + Udf : constant User_Defined_Field_Type_Access := User_Defined_Field_Type_Access (To_Argument_Access (Usr).Typ); begin Result := Character_Check (Character'Val (Ch), Udf.all); - return C_Int (Boolean'Pos (Result)); + return Curses_Bool (Boolean'Pos (Result)); end Generic_Char_Check; -- -----------------------------------------------------------------------