Adjust to libgit2 v0.23

This commit is contained in:
Carlos Martín Nieto
2015-09-20 20:16:16 +02:00
parent b3eaaa2df0
commit 28e890ca95
3 changed files with 11 additions and 8 deletions

View File

@@ -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));

View File

@@ -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 */

View File

@@ -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);