From dbea22478ea0d0bc8f7ed688bf75899c669ffcfa Mon Sep 17 00:00:00 2001 From: Louis Pilfold Date: Thu, 9 Sep 2021 18:44:43 +0100 Subject: [PATCH] Always return binary strings from get_line Closes https://github.com/gleam-lang/gleam/issues/1252 --- src/gleam_erlang_ffi.erl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/gleam_erlang_ffi.erl b/src/gleam_erlang_ffi.erl index 7aa7571..f5be089 100644 --- a/src/gleam_erlang_ffi.erl +++ b/src/gleam_erlang_ffi.erl @@ -23,10 +23,11 @@ atom_from_dynamic(Data) when is_atom(Data) -> atom_from_dynamic(_) -> {error, list_to_binary("expected an atom, got some other type")}. --spec get_line(io:prompt()) -> {ok, string() | unicode:unicode_binary()} | {error, eof} | {error, no_data}. +-spec get_line(io:prompt()) -> {ok, unicode:unicode_binary()} | {error, eof | no_data}. get_line(Prompt) -> case io:get_line(Prompt) of eof -> {error, eof}; {error, _} -> {error, no_data}; - Data -> {ok, Data} + Data when is_binary(Data) -> {ok, Data}; + Data when is_list(Data) -> {ok, unicode:characters_to_binary(Data)} end.