--
-- Copyright (C) 2018-2019, AdaCore
--
-- SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
--
with Ada.Strings.UTF_Encoding.Wide_Strings;
with Ada.Strings.Wide_Unbounded;
pragma Warnings (Off);
with System.Win32;
pragma Warnings (On);
with Spawn.Internal;
package body Spawn.Environments.Internal is
---------
-- Raw --
---------
function Raw
(Self : Process_Environment'Class) return Interfaces.C.wchar_array
is
Sum : Ada.Strings.Wide_Unbounded.Unbounded_Wide_String;
begin
for J in Self.Map.Iterate loop
Ada.Strings.Wide_Unbounded.Append
(Sum,
Spawn.Internal.Environments.To_Key (UTF_8_String_Maps.Key (J)));
Ada.Strings.Wide_Unbounded.Append (Sum, "=");
Ada.Strings.Wide_Unbounded.Append
(Sum,
Ada.Strings.UTF_Encoding.Wide_Strings.Decode
(UTF_8_String_Maps.Element (J)));
Ada.Strings.Wide_Unbounded.Append (Sum, Wide_Character'Val (0));
end loop;
Ada.Strings.Wide_Unbounded.Append (Sum, Wide_Character'Val (0));
return Interfaces.C.To_C
(Ada.Strings.Wide_Unbounded.To_Wide_String (Sum));
end Raw;
end Spawn.Environments.Internal;