Skip to content

Commit 34dade0

Browse files
committed
Revert "Merge pull request #1645 from vanstee/string-split-repeats"
This reverts commit fb30101, reversing changes made to c348eb7.
1 parent eb96d73 commit 34dade0

File tree

5 files changed

+23
-15
lines changed

5 files changed

+23
-15
lines changed

lib/elixir/lib/kernel.ex

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3621,15 +3621,15 @@ defmodule Kernel do
36213621
case is_binary(string) do
36223622
true ->
36233623
case mod do
3624-
?b -> lc p inlist String.split(string), p != "", do: p
3625-
?a -> lc p inlist String.split(string), p != "", do: binary_to_atom(p)
3626-
?c -> lc p inlist String.split(string), p != "", do: String.to_char_list!(p)
3624+
?b -> String.split(string)
3625+
?a -> lc p inlist String.split(string), do: binary_to_atom(p)
3626+
?c -> lc p inlist String.split(string), do: String.to_char_list!(p)
36273627
end
36283628
false ->
36293629
case mod do
3630-
?b -> quote do: lc(p inlist String.split(unquote(string)), p != "", do: p)
3631-
?a -> quote do: lc(p inlist String.split(unquote(string)), p != "", do: binary_to_atom(p))
3632-
?c -> quote do: lc(p inlist String.split(unquote(string)), p != "", do: String.to_char_list!(p))
3630+
?b -> quote do: String.split(unquote(string))
3631+
?a -> quote do: lc(p inlist String.split(unquote(string)), do: binary_to_atom(p))
3632+
?c -> quote do: lc(p inlist String.split(unquote(string)), do: String.to_char_list!(p))
36333633
end
36343634
end
36353635
end

lib/elixir/lib/string.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ defmodule String do
140140

141141
@doc """
142142
Splits a string on substrings at each Unicode whitespace
143-
occurrence.
143+
occurrence with leading and trailing whitespace ignored.
144144
145145
## Examples
146146
@@ -149,7 +149,7 @@ defmodule String do
149149
iex> String.split("foo" <> <<194, 133>> <> "bar")
150150
["foo", "bar"]
151151
iex> String.split(" foo bar ")
152-
["", "foo", "bar", ""]
152+
["foo", "bar"]
153153
154154
"""
155155
@spec split(t) :: [t]

lib/elixir/priv/unicode.ex

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,11 @@ defmodule String.Unicode do
145145

146146
lc codepoint inlist whitespace do
147147
defp do_split(unquote(codepoint) <> rest, buffer, acc) do
148-
do_split(rest, "", [buffer | acc])
148+
if buffer != "" do
149+
do_split(rest, "", [buffer | acc])
150+
else
151+
do_split(rest, buffer, acc)
152+
end
149153
end
150154
end
151155

@@ -154,7 +158,11 @@ defmodule String.Unicode do
154158
end
155159

156160
defp do_split(<<>>, buffer, acc) do
157-
[buffer | acc]
161+
if buffer != "" do
162+
[buffer | acc]
163+
else
164+
acc
165+
end
158166
end
159167

160168
# Graphemes

lib/elixir/test/elixir/string_test.exs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@ defmodule StringTest do
1818
test :split do
1919
assert String.split("") == [""]
2020
assert String.split("foo bar") == ["foo", "bar"]
21-
assert String.split(" foo bar") == ["", "foo", "bar"]
22-
assert String.split("foo bar ") == ["foo", "bar", ""]
23-
assert String.split(" foo bar ") == ["", "foo", "bar", ""]
24-
assert String.split("foo\t\n\v\f\r\sbar\n") == ["foo", "", "", "", "", "", "bar", ""]
21+
assert String.split(" foo bar") == ["foo", "bar"]
22+
assert String.split("foo bar ") == ["foo", "bar"]
23+
assert String.split(" foo bar ") == ["foo", "bar"]
24+
assert String.split("foo\t\n\v\f\r\sbar\n") == ["foo", "bar"]
2525
assert String.split("foo" <> <<31>> <> "bar") == ["foo", "bar"]
2626
assert String.split("foo" <> <<194, 133>> <> "bar") == ["foo", "bar"]
2727

lib/iex/test/iex/helpers_test.exs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ defmodule IEx.HelpersTest do
133133
assert ["ebin", "lib", "mix.exs", "test"]
134134
= capture_io(fn -> ls end)
135135
|> String.split
136-
|> Enum.filter(&(&1 != ""))
136+
|> Enum.map(String.strip(&1))
137137
|> Enum.sort
138138
assert capture_io(fn -> ls "~" end) == capture_io(fn -> ls System.user_home end)
139139
end

0 commit comments

Comments
 (0)