fix incorrect folder name for julia-0.6.x
Former-commit-id: ef2c7401e0876f22d2f7762d182cfbcd5a7d9c70
This commit is contained in:
51
julia-0.6.3/share/julia/base/libgit2/signature.jl
Normal file
51
julia-0.6.3/share/julia/base/libgit2/signature.jl
Normal file
@@ -0,0 +1,51 @@
|
||||
# This file is a part of Julia. License is MIT: https://julialang.org/license
|
||||
|
||||
function Signature(ptr::Ptr{SignatureStruct})
|
||||
sig = unsafe_load(ptr)::SignatureStruct
|
||||
name = unsafe_string(sig.name)
|
||||
email = unsafe_string(sig.email)
|
||||
time = sig.when.time
|
||||
offset = sig.when.offset
|
||||
return Signature(name, email, time, offset)
|
||||
end
|
||||
Signature(sig::GitSignature) = Signature(sig.ptr)
|
||||
|
||||
function Signature(name::AbstractString, email::AbstractString)
|
||||
sig_ptr_ptr = Ref{Ptr{SignatureStruct}}(C_NULL)
|
||||
@check ccall((:git_signature_now, :libgit2), Cint,
|
||||
(Ptr{Ptr{SignatureStruct}}, Cstring, Cstring), sig_ptr_ptr, name, email)
|
||||
sig = GitSignature(sig_ptr_ptr[])
|
||||
s = Signature(sig.ptr)
|
||||
close(sig)
|
||||
return s
|
||||
end
|
||||
|
||||
function Signature(repo::GitRepo)
|
||||
sig = default_signature(repo)
|
||||
s = Signature(sig.ptr)
|
||||
close(sig)
|
||||
return s
|
||||
end
|
||||
|
||||
function Base.convert(::Type{GitSignature}, sig::Signature)
|
||||
sig_ptr_ptr = Ref{Ptr{SignatureStruct}}(C_NULL)
|
||||
@check ccall((:git_signature_new, :libgit2), Cint,
|
||||
(Ptr{Ptr{SignatureStruct}}, Cstring, Cstring, Int64, Cint),
|
||||
sig_ptr_ptr, sig.name, sig.email, sig.time, sig.time_offset)
|
||||
return GitSignature(sig_ptr_ptr[])
|
||||
end
|
||||
|
||||
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))
|
||||
@printf(io, "%+03i:%02i", divrem(sig.time_offset, 60)...)
|
||||
end
|
||||
|
||||
"""Return signature object. Free it after use."""
|
||||
function default_signature(repo::GitRepo)
|
||||
sig_ptr_ptr = Ref{Ptr{SignatureStruct}}(C_NULL)
|
||||
@check ccall((:git_signature_default, :libgit2), Cint,
|
||||
(Ptr{Ptr{SignatureStruct}}, Ptr{Void}), sig_ptr_ptr, repo.ptr)
|
||||
return GitSignature(sig_ptr_ptr[])
|
||||
end
|
||||
Reference in New Issue
Block a user