Adjust to libgit2 v0.23
This commit is contained in:
@@ -125,21 +125,24 @@ geef_config_get_string(ErlNifEnv *env, int argc, const ERL_NIF_TERM argv[])
|
||||
{
|
||||
geef_config *cfg;
|
||||
ErlNifBinary bin, result;
|
||||
git_buf buf = { 0 };
|
||||
int error;
|
||||
const char *val;
|
||||
ERL_NIF_TERM ret;
|
||||
|
||||
ret = extract(&cfg, &bin, env, argv);
|
||||
if (ret != atoms.ok)
|
||||
return ret;
|
||||
|
||||
error = git_config_get_string(&val, cfg->config, (char *) bin.data);
|
||||
error = git_config_get_string_buf(&buf, cfg->config, (char *) bin.data);
|
||||
enif_release_binary(&bin);
|
||||
|
||||
if (error < 0)
|
||||
return geef_error(env);
|
||||
|
||||
if (geef_string_to_bin(&result, val) < 0)
|
||||
error = geef_string_to_bin(&result, buf.ptr);
|
||||
git_buf_free(&buf);
|
||||
|
||||
if (error < 0)
|
||||
return geef_error(env);
|
||||
|
||||
return enif_make_tuple2(env, atoms.ok, enif_make_binary(env, &result));
|
||||
|
||||
@@ -111,11 +111,11 @@ geef_index_add(ErlNifEnv *env, int argc, const ERL_NIF_TERM argv[])
|
||||
memset(&entry, 0, sizeof(entry));
|
||||
|
||||
if (enif_compare(eentry[1], atoms.undefined) &&
|
||||
!enif_get_int64(env, eentry[1], &entry.ctime.seconds))
|
||||
!enif_get_int(env, eentry[1], &entry.ctime.seconds))
|
||||
return enif_make_badarg(env);
|
||||
|
||||
if (enif_compare(eentry[2], atoms.undefined) &&
|
||||
!enif_get_int64(env, eentry[2], &entry.mtime.seconds))
|
||||
!enif_get_int(env, eentry[2], &entry.mtime.seconds))
|
||||
return enif_make_badarg(env);
|
||||
|
||||
if (enif_compare(eentry[3], atoms.undefined) &&
|
||||
@@ -137,7 +137,7 @@ geef_index_add(ErlNifEnv *env, int argc, const ERL_NIF_TERM argv[])
|
||||
!enif_get_uint(env, eentry[7], &entry.gid))
|
||||
return enif_make_badarg(env);
|
||||
|
||||
if (!enif_get_int64(env, eentry[8], &entry.file_size))
|
||||
if (!enif_get_uint(env, eentry[8], &entry.file_size))
|
||||
return enif_make_badarg(env);
|
||||
|
||||
/* [9] comes later */
|
||||
|
||||
@@ -396,13 +396,13 @@ geef_reference_create(ErlNifEnv *env, int argc, const ERL_NIF_TERM argv[])
|
||||
pname = (const char *) name.data;
|
||||
if (enif_is_identical(argv[2], atoms.oid)) {
|
||||
const git_oid *oid = (const git_oid *) target.data;
|
||||
error = git_reference_create(&ref, repo->repo, pname, oid, force, NULL, NULL);
|
||||
error = git_reference_create(&ref, repo->repo, pname, oid, force, NULL);
|
||||
} else if (enif_is_identical(argv[2], atoms.symbolic)) {
|
||||
if (!geef_terminate_binary(&target))
|
||||
return geef_oom(env);
|
||||
|
||||
ptarget = (const char *) target.data;
|
||||
error = git_reference_symbolic_create(&ref, repo->repo, pname, ptarget, force, NULL, NULL);
|
||||
error = git_reference_symbolic_create(&ref, repo->repo, pname, ptarget, force, NULL);
|
||||
enif_release_binary(&target);
|
||||
} else {
|
||||
enif_release_binary(&target);
|
||||
|
||||
Reference in New Issue
Block a user