------------------------------------------------------------------------------ -- Language Server Protocol -- -- -- -- Copyright (C) 2018-2019, AdaCore -- -- -- -- This is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- -- ware Foundation; either version 3, or (at your option) any later ver- -- -- sion. This software is distributed in the hope that it will be useful, -- -- but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHAN- -- -- TABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public -- -- License for more details. You should have received a copy of the GNU -- -- General Public License distributed with this software; see file -- -- COPYING3. If not, go to http://www.gnu.org/licenses for a complete copy -- -- of the license. -- -- -- -- As a special exception under Section 7 of GPL version 3, you are granted -- -- additional permissions described in the GCC Runtime Library Exception, -- -- version 3.1, as published by the Free Software Foundation. -- ------------------------------------------------------------------------------ with Interfaces.C; package body Spawn.Environments.Internal is --------- -- Raw -- --------- function Raw (Self : Process_Environment'Class) return Gtkada.Types.Chars_Ptr_Array is use type Interfaces.C.size_t; Index : Interfaces.C.size_t := 1; begin return Result : Gtkada.Types.Chars_Ptr_Array (1 .. Interfaces.C.size_t (Self.Map.Length) + 1) do for J in Self.Map.Iterate loop Result (Index) := Gtkada.Types.New_String (UTF_8_String_Maps.Key (J) & "=" & UTF_8_String_Maps.Element (J)); Index := Index + 1; end loop; Result (Index) := Gtkada.Types.Null_Ptr; end return; end Raw; end Spawn.Environments.Internal;