Skip to content

Commit 85bce68

Browse files
authored
Merge pull request #20 from JuliaString/spj/splituni
Fix split on UniStr union (due to change in Base)
2 parents 41c5598 + 09d8bef commit 85bce68

File tree

2 files changed

+9
-8
lines changed

2 files changed

+9
-8
lines changed

Project.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ authors = ["ScottPJones <[email protected]>"]
44
keywords = ["Strings"]
55
license = "MIT"
66
uuid = "e79e7a6a-7bb1-5a4d-9d64-da657b06f53a"
7-
version = "1.1.2"
7+
version = "1.1.3"
88

99
[deps]
1010
Unicode = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5"

src/util.jl

+8-7
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@ rpad(ch::Chr, cnt::Integer, pad::AbstractChar=' ') =
6565
const SetOfChars =
6666
Union{Tuple{Vararg{<:AbstractChar}},AbstractVector{<:AbstractChar},Set{<:AbstractChar}}
6767

68-
@static if !isdefined(Base, :eachsplit)
6968
function __split(str, splitter, limit::Integer, keep_empty::Bool, strs::Vector)
7069
pos = 1
7170
lst = lastindex(str)
@@ -86,7 +85,6 @@ function __split(str, splitter, limit::Integer, keep_empty::Bool, strs::Vector)
8685
end
8786
(keep_empty || pos <= lst) ? push!(strs, SubString(str, pos)) : strs
8887
end
89-
end
9088

9189
function __rsplit(str, splitter, limit::Integer, keep_empty::Bool, strs::Vector)
9290
res = find(Last, splitter, str)
@@ -113,22 +111,25 @@ splitarr(::MaybeSub{String}) = SubString{String}[]
113111
splitarr(::MaybeSub{T}) where {T<:Str} =
114112
SubString{Str{basecse(T),Nothing,Nothing,Nothing}}[]
115113

116-
@static if !isdefined(Base, :eachsplit)
114+
@static if isdefined(Base, :eachsplit)
115+
const _SplitTypes = MaybeSub{<:Str{<:Union{_LatinCSE,_UCS2CSE,_UTF32CSE}}}
116+
else
117+
const _SplitTypes = MaybeSub{<:Str}
117118
Base._split(str::MaybeSub{<:Str}, splitter, limit, keepempty, vec) =
118119
__split(str, splitter, limit, keepempty, vec)
120+
end
119121

120-
split(str::MaybeSub{<:Str}, splitter;
122+
split(str::_SplitTypes, splitter;
121123
limit::Integer=0, keepempty::Bool=true, keep::Union{Nothing,Bool}=nothing) =
122124
__split(str, splitter, limit, checkkeep(keepempty, keep, :split), splitarr(str))
123125

124-
split(str::MaybeSub{<:Str}, splitter::AbstractChar;
126+
split(str::_SplitTypes, splitter::AbstractChar;
125127
limit::Integer=0, keepempty::Bool=true, keep::Union{Nothing,Bool}=nothing) =
126128
__split(str, isequal(splitter), limit, checkkeep(keepempty, keep, :split), splitarr(str))
127129

128-
split(str::MaybeSub{<:Str}, splitter::SetOfChars;
130+
split(str::_SplitTypes, splitter::SetOfChars;
129131
limit::Integer=0, keepempty::Bool=true, keep::Union{Nothing,Bool}=nothing) =
130132
__split(str, in(splitter), limit, checkkeep(keepempty, keep, :split), splitarr(str))
131-
end
132133

133134
Base._rsplit(str::MaybeSub{<:Str}, splitter, limit, keepempty, vec) =
134135
__rsplit(str, splitter, limit, keepempty, vec)

0 commit comments

Comments
 (0)