diff options
Diffstat (limited to 'lib/stdlib/src')
| -rw-r--r-- | lib/stdlib/src/ets.erl | 2 | ||||
| -rw-r--r-- | lib/stdlib/src/filename.erl | 17 | 
2 files changed, 19 insertions, 0 deletions
| diff --git a/lib/stdlib/src/ets.erl b/lib/stdlib/src/ets.erl index b5d3cd3c8d..1db004c91e 100644 --- a/lib/stdlib/src/ets.erl +++ b/lib/stdlib/src/ets.erl @@ -1700,6 +1700,8 @@ choice(Height, Width, P, Mode, Tab, Key, Turn, Opos) ->  		    io:format("~ts\n", [ErrorString]),  		    choice(Height, Width, P, Mode, Tab, Key, Turn, Opos)  	    end; +        eof -> +            ok;  	_  ->  	    choice(Height, Width, P, Mode, Tab, Key, Turn, Opos)      end. diff --git a/lib/stdlib/src/filename.erl b/lib/stdlib/src/filename.erl index 9bf4290916..ee807dfd09 100644 --- a/lib/stdlib/src/filename.erl +++ b/lib/stdlib/src/filename.erl @@ -439,6 +439,10 @@ join(Name1, Name2) when is_atom(Name2) ->  join1([UcLetter, $:|Rest], RelativeName, [], win32)  when is_integer(UcLetter), UcLetter >= $A, UcLetter =< $Z ->      join1(Rest, RelativeName, [$:, UcLetter+$a-$A], win32); +join1([$\\,$\\|Rest], RelativeName, [], win32) -> +    join1([$/,$/|Rest], RelativeName, [], win32); +join1([$/,$/|Rest], RelativeName, [], win32) -> +    join1(Rest, RelativeName, [$/,$/], win32);  join1([$\\|Rest], RelativeName, Result, win32) ->      join1([$/|Rest], RelativeName, Result, win32);  join1([$/|Rest], RelativeName, [$., $/|Result], OsType) -> @@ -467,6 +471,10 @@ join1([Atom|Rest], RelativeName, Result, OsType) when is_atom(Atom) ->  join1b(<<UcLetter, $:, Rest/binary>>, RelativeName, [], win32)  when is_integer(UcLetter), UcLetter >= $A, UcLetter =< $Z ->      join1b(Rest, RelativeName, [$:, UcLetter+$a-$A], win32); +join1b(<<$\\,$\\,Rest/binary>>, RelativeName, [], win32) -> +    join1b(<<$/,$/,Rest/binary>>, RelativeName, [], win32); +join1b(<<$/,$/,Rest/binary>>, RelativeName, [], win32) -> +    join1b(Rest, RelativeName, [$/,$/], win32);  join1b(<<$\\,Rest/binary>>, RelativeName, Result, win32) ->      join1b(<<$/,Rest/binary>>, RelativeName, Result, win32);  join1b(<<$/,Rest/binary>>, RelativeName, [$., $/|Result], OsType) -> @@ -477,6 +485,8 @@ join1b(<<>>, <<>>, Result, OsType) ->      list_to_binary(maybe_remove_dirsep(Result, OsType));  join1b(<<>>, RelativeName, [$:|Rest], win32) ->      join1b(RelativeName, <<>>, [$:|Rest], win32); +join1b(<<>>, RelativeName, [$/,$/|Result], win32) -> +    join1b(RelativeName, <<>>, [$/,$/|Result], win32);  join1b(<<>>, RelativeName, [$/|Result], OsType) ->      join1b(RelativeName, <<>>, [$/|Result], OsType);  join1b(<<>>, RelativeName, [$., $/|Result], OsType) -> @@ -490,6 +500,8 @@ maybe_remove_dirsep([$/, $:, Letter], win32) ->      [Letter, $:, $/];  maybe_remove_dirsep([$/], _) ->      [$/]; +maybe_remove_dirsep([$/,$/], win32) -> +    [$/,$/];  maybe_remove_dirsep([$/|Name], _) ->      lists:reverse(Name);  maybe_remove_dirsep(Name, _) -> @@ -679,6 +691,9 @@ win32_splitb(<<Letter0,$:,Rest/binary>>) when ?IS_DRIVELETTER(Letter0) ->      Letter = fix_driveletter(Letter0),      L = binary:split(Rest,[<<"/">>,<<"\\">>],[global]),      [<<Letter,$:>> | [ X || X <- L, X =/= <<>> ]]; +win32_splitb(<<Slash,Slash,Rest/binary>>) when ((Slash =:= $\\) orelse (Slash =:= $/)) -> +    L = binary:split(Rest,[<<"/">>,<<"\\">>],[global]), +    [<<"//">> | [ X || X <- L, X =/= <<>> ]];  win32_splitb(<<Slash,Rest/binary>>) when ((Slash =:= $\\) orelse (Slash =:= $/)) ->      L = binary:split(Rest,[<<"/">>,<<"\\">>],[global]),      [<<$/>> | [ X || X <- L, X =/= <<>> ]]; @@ -690,6 +705,8 @@ win32_splitb(Name) ->  unix_split(Name) ->      split(Name, [], unix). +win32_split([Slash,Slash|Rest]) when ((Slash =:= $\\) orelse (Slash =:= $/)) -> +    split(Rest, [[$/,$/]], win32);  win32_split([$\\|Rest]) ->      win32_split([$/|Rest]);  win32_split([X, $\\|Rest]) when is_integer(X) -> | 
