From 44c7972950621f1efc2d6401b8a62cac7d6da473 Mon Sep 17 00:00:00 2001 From: Kristoffer Carlsson Date: Mon, 20 Nov 2017 07:22:53 +0100 Subject: [PATCH] hack around libgit2 being in Base --- base/libgit2/signature.jl | 8 +++++++- stdlib/Dates/src/Dates.jl | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/base/libgit2/signature.jl b/base/libgit2/signature.jl index fb099efb07d38..f7cc75213d321 100644 --- a/base/libgit2/signature.jl +++ b/base/libgit2/signature.jl @@ -35,10 +35,16 @@ function Base.convert(::Type{GitSignature}, sig::Signature) return GitSignature(sig_ptr_ptr[]) end +# Work around needing to access Dates from Base, +# even though Dates is in the stdlib. +# This Ref is filled with the needed function +# when Dates is loaed +const unix2datetime = Ref{Any}() + function Base.show(io::IO, sig::Signature) print(io, "Name: ", sig.name, ", ") print(io, "Email: ", sig.email, ", ") - print(io, "Time: ", Dates.unix2datetime(sig.time + 60*sig.time_offset)) + print(io, "Time: ", unix2datetime[](sig.time + 60*sig.time_offset)) @printf(io, "%+03i:%02i", divrem(sig.time_offset, 60)...) end diff --git a/stdlib/Dates/src/Dates.jl b/stdlib/Dates/src/Dates.jl index 6001e4d60d28b..f353e5fd4e337 100644 --- a/stdlib/Dates/src/Dates.jl +++ b/stdlib/Dates/src/Dates.jl @@ -50,6 +50,8 @@ include("io.jl") include("parse.jl") include("deprecated.jl") +Base.LibGit2.unix2datetime[] = unix2datetime + export Period, DatePeriod, TimePeriod, Year, Month, Week, Day, Hour, Minute, Second, Millisecond, Microsecond, Nanosecond,