]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - Ada95/src/terminal_interface-curses-forms-field_types-enumeration.adb
ncurses 6.1 - patch 20181201
[ncurses.git] / Ada95 / src / terminal_interface-curses-forms-field_types-enumeration.adb
index 8c7815f6611b78155d8a27cbde8e4391a32a7e06..8d4c9cee49b743399ace0ad4aa6d2d02a5ee2309 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc.              --
+-- Copyright (c) 1998-2011,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,7 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control:
---  $Revision: 1.8 $
+--  $Revision: 1.12 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Ada.Unchecked_Deallocation;
@@ -63,13 +63,13 @@ package body Terminal_Interface.Curses.Forms.Field_Types.Enumeration is
          if Info.Names (I) = null then
             raise Form_Exception;
          end if;
-         E.Arr (size_t (I)) := New_String (Info.Names (I).all);
+         E.Arr.all (size_t (I)) := New_String (Info.Names (I).all);
          if Auto_Release_Names then
             S := Info.Names (I);
             Release_String (S);
          end if;
       end loop;
-      E.Arr (L) := Null_Ptr;
+      E.Arr.all (L) := Null_Ptr;
       return E;
    end Create;
 
@@ -79,10 +79,10 @@ package body Terminal_Interface.Curses.Forms.Field_Types.Enumeration is
       P : chars_ptr;
    begin
       loop
-         P := Enum.Arr (I);
+         P := Enum.Arr.all (I);
          exit when P = Null_Ptr;
          Free (P);
-         Enum.Arr (I) := Null_Ptr;
+         Enum.Arr.all (I) := Null_Ptr;
          I := I + 1;
       end loop;
       Enum.Arr := null;
@@ -91,28 +91,21 @@ package body Terminal_Interface.Curses.Forms.Field_Types.Enumeration is
    procedure Set_Field_Type (Fld : Field;
                              Typ : Enumeration_Field)
    is
-      C_Enum_Type : C_Field_Type;
-      pragma Import (C, C_Enum_Type, "TYPE_ENUM");
-
       function Set_Fld_Type (F    : Field := Fld;
-                             Cft  : C_Field_Type := C_Enum_Type;
                              Arg1 : chars_ptr_array;
                              Arg2 : C_Int;
-                             Arg3 : C_Int) return C_Int;
-      pragma Import (C, Set_Fld_Type, "set_field_type");
+                             Arg3 : C_Int) return Eti_Error;
+      pragma Import (C, Set_Fld_Type, "set_field_type_enum");
 
-      Res : Eti_Error;
    begin
       if Typ.Arr = null then
          raise Form_Exception;
       end if;
-      Res := Set_Fld_Type (Arg1 => Typ.Arr.all,
-                           Arg2 => C_Int (Boolean'Pos (Typ.Case_Sensitive)),
-                           Arg3 => C_Int (Boolean'Pos
-                                          (Typ.Match_Must_Be_Unique)));
-      if Res /= E_Ok then
-         Eti_Exception (Res);
-      end if;
+      Eti_Exception
+        (Set_Fld_Type
+           (Arg1 => Typ.Arr.all,
+            Arg2 => C_Int (Boolean'Pos (Typ.Case_Sensitive)),
+            Arg3 => C_Int (Boolean'Pos (Typ.Match_Must_Be_Unique))));
       Wrap_Builtin (Fld, Typ, C_Choice_Router);
    end Set_Field_Type;