From 94e3e094379b5831da668b7d893c50aad3a02760 Mon Sep 17 00:00:00 2001 From: Jeffrey Lin Date: Sat, 3 Apr 2021 17:34:50 -0400 Subject: [PATCH] base: use eachsplit where possible --- base/binaryplatforms.jl | 2 +- base/cmd.jl | 4 ++-- base/initdefs.jl | 4 ++-- base/logging.jl | 9 +++++---- base/mpfr.jl | 4 ++-- base/path.jl | 4 ++-- base/sysinfo.jl | 2 +- base/util.jl | 2 +- base/version.jl | 2 +- 9 files changed, 17 insertions(+), 16 deletions(-) diff --git a/base/binaryplatforms.jl b/base/binaryplatforms.jl index 8c9c6768090e0..fb52ec12d2c10 100644 --- a/base/binaryplatforms.jl +++ b/base/binaryplatforms.jl @@ -706,7 +706,7 @@ function Base.parse(::Type{Platform}, triplet::AbstractString; validate_strict:: libstdcxx_version = get_field(m, libstdcxx_version_mapping) cxxstring_abi = get_field(m, cxxstring_abi_mapping) function split_tags(tagstr) - tag_fields = filter(!isempty, split(tagstr, "-")) + tag_fields = split(tagstr, "-"; keepempty=false) if isempty(tag_fields) return Pair{String,String}[] end diff --git a/base/cmd.jl b/base/cmd.jl index 809bc0f3c0a57..a0714ef1c7f75 100644 --- a/base/cmd.jl +++ b/base/cmd.jl @@ -262,7 +262,7 @@ function addenv(cmd::Cmd, env::Dict; inherit::Bool = true) merge!(new_env, ENV) end else - for (k, v) in split.(cmd.env, "=") + for (k, v) in eachsplit.(cmd.env, "=") new_env[string(k)::String] = string(v)::String end end @@ -277,7 +277,7 @@ function addenv(cmd::Cmd, pairs::Pair{<:AbstractString}...; inherit::Bool = true end function addenv(cmd::Cmd, env::Vector{<:AbstractString}; inherit::Bool = true) - return addenv(cmd, Dict(k => v for (k, v) in split.(env, "=")); inherit) + return addenv(cmd, Dict(k => v for (k, v) in eachsplit.(env, "=")); inherit) end (&)(left::AbstractCmd, right::AbstractCmd) = AndCmds(left, right) diff --git a/base/initdefs.jl b/base/initdefs.jl index a61373c394eec..fe79ee2f989f8 100644 --- a/base/initdefs.jl +++ b/base/initdefs.jl @@ -101,7 +101,7 @@ function init_depot_path() if haskey(ENV, "JULIA_DEPOT_PATH") str = ENV["JULIA_DEPOT_PATH"] isempty(str) && return - for path in split(str, Sys.iswindows() ? ';' : ':') + for path in eachsplit(str, Sys.iswindows() ? ';' : ':') if isempty(path) append_default_depot_path!(DEPOT_PATH) else @@ -199,7 +199,7 @@ end function parse_load_path(str::String) envs = String[] isempty(str) && return envs - for env in split(str, Sys.iswindows() ? ';' : ':') + for env in eachsplit(str, Sys.iswindows() ? ';' : ':') if isempty(env) for env′ in DEFAULT_LOAD_PATH env′ in envs || push!(envs, env′) diff --git a/base/logging.jl b/base/logging.jl index 066523771f5fb..a50e41a9e76fc 100644 --- a/base/logging.jl +++ b/base/logging.jl @@ -646,10 +646,11 @@ function handle_message(logger::SimpleLogger, level::LogLevel, message, _module, buf = IOBuffer() iob = IOContext(buf, logger.stream) levelstr = level == Warn ? "Warning" : string(level) - msglines = split(chomp(string(message)::String), '\n') - println(iob, "┌ ", levelstr, ": ", msglines[1]) - for i in 2:length(msglines) - println(iob, "│ ", msglines[i]) + msglines = eachsplit(chomp(string(message)::String), '\n') + msg1, rest = Iterators.peel(msglines) + println(iob, "┌ ", levelstr, ": ", msg1) + for msg in rest + println(iob, "│ ", msg) end for (key, val) in kwargs key === :maxlog && continue diff --git a/base/mpfr.jl b/base/mpfr.jl index cffad32e50ea0..9ada599ffb5b8 100644 --- a/base/mpfr.jl +++ b/base/mpfr.jl @@ -962,7 +962,7 @@ function string_mpfr(x::BigFloat, fmt::String) end function _prettify_bigfloat(s::String)::String - mantissa, exponent = split(s, 'e') + mantissa, exponent = eachsplit(s, 'e') if !occursin('.', mantissa) mantissa = string(mantissa, '.') end @@ -973,7 +973,7 @@ function _prettify_bigfloat(s::String)::String expo = parse(Int, exponent) if -5 < expo < 6 expo == 0 && return mantissa - int, frac = split(mantissa, '.') + int, frac = eachsplit(mantissa, '.') if expo > 0 expo < length(frac) ? string(int, frac[1:expo], '.', frac[expo+1:end]) : diff --git a/base/path.jl b/base/path.jl index 449085c00f26d..ea0fafb31eb8e 100644 --- a/base/path.jl +++ b/base/path.jl @@ -346,8 +346,8 @@ function normpath(path::String) isabs = isabspath(path) isdir = isdirpath(path) drive, path = splitdrive(path) - parts = split(path, path_separator_re) - filter!(x->!isempty(x) && x!=".", parts) + parts = split(path, path_separator_re; keepempty=false) + filter!(!=("."), parts) while true clean = true for j = 1:length(parts)-1 diff --git a/base/sysinfo.jl b/base/sysinfo.jl index 4c113971266d7..07d433f2a9c0d 100644 --- a/base/sysinfo.jl +++ b/base/sysinfo.jl @@ -499,7 +499,7 @@ function which(program_name::String) # If we have been given just a program name (not a relative or absolute # path) then we should search `PATH` for it here: pathsep = iswindows() ? ';' : ':' - path_dirs = abspath.(split(get(ENV, "PATH", ""), pathsep)) + path_dirs = map(abspath, eachsplit(get(ENV, "PATH", ""), pathsep)) # On windows we always check the current directory as well if iswindows() diff --git a/base/util.jl b/base/util.jl index c489503d40133..b670ddb872f25 100644 --- a/base/util.jl +++ b/base/util.jl @@ -97,7 +97,7 @@ function with_output_color(@nospecialize(f::Function), color::Union{Int, Symbol} (bold ? disable_text_style[:bold] : "") * get(disable_text_style, color, text_colors[:default]) first = true - for line in split(str, '\n') + for line in eachsplit(str, '\n') first || print(buf, '\n') first = false isempty(line) && continue diff --git a/base/version.jl b/base/version.jl index 86343dcddabf4..743e6a5590d95 100644 --- a/base/version.jl +++ b/base/version.jl @@ -100,7 +100,7 @@ const VERSION_REGEX = r"^ $"ix function split_idents(s::AbstractString) - idents = split(s, '.') + idents = eachsplit(s, '.') pidents = Union{UInt64,String}[occursin(r"^\d+$", ident) ? parse(UInt64, ident) : String(ident) for ident in idents] return tuple(pidents...)::VerTuple end