Merge pull request #640 from rgrinberg/fix-duplicate-env

Handle duplicate environment variables
This commit is contained in:
Rudi Grinberg 2018-03-20 23:55:43 +08:00 committed by GitHub
commit 237c05466a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 4 additions and 9 deletions

View File

@ -44,15 +44,10 @@ let of_unix arr =
Sexp.code_error "Env.of_unix: entry without '=' found in the environ" Sexp.code_error "Env.of_unix: entry without '=' found in the environ"
["var", Sexp.To_sexp.string s] ["var", Sexp.To_sexp.string s]
| Some (k, v) -> (k, v)) | Some (k, v) -> (k, v))
|> Map.of_list |> Map.of_list_multi
|> function |> Map.map ~f:(function
| Ok x -> x | [] -> assert false
| Error (var, v1, v2) -> | x::_ -> x)
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
]
let initial = let initial =
let i = let i =