mirror of
https://github.com/AdaCore/spawn.git
synced 2026-02-12 13:09:41 -08:00
38 lines
959 B
Ada
38 lines
959 B
Ada
--
|
|
-- Copyright (C) 2018-2019, AdaCore
|
|
--
|
|
-- SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
--
|
|
|
|
with Ada.Strings.Fixed;
|
|
with Interfaces.C.Strings;
|
|
|
|
with Spawn.Posix;
|
|
|
|
separate (Spawn.Environments)
|
|
procedure Initialize_Default
|
|
(Default : out Spawn.Environments.Process_Environment)
|
|
is
|
|
use type Interfaces.C.Strings.chars_ptr;
|
|
begin
|
|
for J in Spawn.Posix.environ'Range loop
|
|
declare
|
|
Item : constant Interfaces.C.Strings.chars_ptr :=
|
|
Spawn.Posix.environ (J);
|
|
|
|
Text : constant UTF_8_String :=
|
|
(if Item = Interfaces.C.Strings.Null_Ptr then ""
|
|
else Interfaces.C.Strings.Value (Item));
|
|
|
|
Separator : constant Natural :=
|
|
Ada.Strings.Fixed.Index (Text, "=");
|
|
begin
|
|
exit when Separator = 0;
|
|
|
|
Default.Insert
|
|
(Text (Text'First .. Separator - 1),
|
|
Text (Separator + 1 .. Text'Last));
|
|
end;
|
|
end loop;
|
|
end Initialize_Default;
|