From cc02277095799a0fd5fa29cf98d225a6d9fbbb69 Mon Sep 17 00:00:00 2001 From: Rudi Grinberg Date: Tue, 20 Mar 2018 22:02:49 +0800 Subject: [PATCH] Handle duplicate environment variables Fixes #638 --- src/env.ml | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/src/env.ml b/src/env.ml index ce553e87..69a9ab75 100644 --- a/src/env.ml +++ b/src/env.ml @@ -44,15 +44,10 @@ let of_unix arr = Sexp.code_error "Env.of_unix: entry without '=' found in the environ" ["var", Sexp.To_sexp.string s] | Some (k, v) -> (k, v)) - |> Map.of_list - |> function - | Ok x -> x - | Error (var, v1, v2) -> - Sexp.code_error "Env.of_unix: duplicated variable found in the environment" - [ "var" , Sexp.To_sexp.string var - ; "value1", Sexp.To_sexp.string v1 - ; "value2", Sexp.To_sexp.string v2 - ] + |> Map.of_list_multi + |> Map.map ~f:(function + | [] -> assert false + | x::_ -> x) let initial = let i =