ncurses 6.0 - patch 20150822
[ncurses.git] / Ada95 / src / terminal_interface-curses-forms-field_types-regexp.adb
index cbd9e2f3683cda67b875c7d67abefd6934233f47..f5ea0db2b11cf1f4c644f5ca3f50c43f3ea9f2ab 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B O D Y                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998 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 Interfaces.C; use Interfaces.C;
@@ -43,28 +43,15 @@ with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
 
 package body Terminal_Interface.Curses.Forms.Field_Types.RegExp is
 
-   procedure Set_Field_Type (Fld : in Field;
-                             Typ : in Regular_Expression_Field)
+   procedure Set_Field_Type (Fld : Field;
+                             Typ : Regular_Expression_Field)
    is
-      type Char_Ptr is access all Interfaces.C.char;
-
-      C_Regexp_Field_Type : C_Field_Type;
-      pragma Import (C, C_Regexp_Field_Type, "TYPE_REGEXP");
-
       function Set_Ftyp (F    : Field := Fld;
-                         Cft  : C_Field_Type := C_Regexp_Field_Type;
-                         Arg1 : Char_Ptr) return C_Int;
-      pragma Import (C, Set_Ftyp, "set_field_type");
+                         Arg1 : char_array) return Eti_Error;
+      pragma Import (C, Set_Ftyp, "set_field_type_regexp");
 
-      Txt : char_array (0 .. Typ.Regular_Expression.all'Length);
-      Len : size_t;
-      Res : Eti_Error;
    begin
-      To_C (Typ.Regular_Expression.all, Txt, Len);
-      Res := Set_Ftyp (Arg1 => Txt (Txt'First)'Access);
-      if Res /= E_Ok then
-         Eti_Exception (Res);
-      end if;
+      Eti_Exception (Set_Ftyp (Arg1 => To_C (Typ.Regular_Expression.all)));
       Wrap_Builtin (Fld, Typ);
    end Set_Field_Type;