index: grab all of the fields from C-land
This commit is contained in:
@@ -148,7 +148,6 @@ geef_index_count(ErlNifEnv *env, int argc, const ERL_NIF_TERM argv[])
|
|||||||
ERL_NIF_TERM entry_to_term(ErlNifEnv *env, const git_index_entry *entry)
|
ERL_NIF_TERM entry_to_term(ErlNifEnv *env, const git_index_entry *entry)
|
||||||
{
|
{
|
||||||
ErlNifBinary id, path;
|
ErlNifBinary id, path;
|
||||||
ERL_NIF_TERM mode, file_size;
|
|
||||||
size_t len;
|
size_t len;
|
||||||
|
|
||||||
if (geef_oid_bin(&id, &entry->oid) < 0)
|
if (geef_oid_bin(&id, &entry->oid) < 0)
|
||||||
@@ -161,11 +160,19 @@ ERL_NIF_TERM entry_to_term(ErlNifEnv *env, const git_index_entry *entry)
|
|||||||
}
|
}
|
||||||
memcpy(path.data, entry->path, len);
|
memcpy(path.data, entry->path, len);
|
||||||
|
|
||||||
mode = enif_make_uint(env, entry->mode);
|
return enif_make_tuple(env, 13, atoms.ok,
|
||||||
file_size = enif_make_int64(env, entry->file_size);
|
enif_make_int64(env, entry->ctime.seconds),
|
||||||
|
enif_make_int64(env, entry->mtime.seconds),
|
||||||
return enif_make_tuple5(env, atoms.ok, enif_make_binary(env, &path), enif_make_binary(env, &id),
|
enif_make_uint(env, entry->dev),
|
||||||
mode, file_size);
|
enif_make_uint(env, entry->ino),
|
||||||
|
enif_make_uint(env, entry->mode),
|
||||||
|
enif_make_uint(env, entry->uid),
|
||||||
|
enif_make_uint(env, entry->gid),
|
||||||
|
enif_make_int64(env, entry->file_size),
|
||||||
|
enif_make_binary(env, &id),
|
||||||
|
enif_make_uint(env, entry->flags),
|
||||||
|
enif_make_uint(env, entry->flags_extended),
|
||||||
|
enif_make_binary(env, &path));
|
||||||
}
|
}
|
||||||
|
|
||||||
ERL_NIF_TERM
|
ERL_NIF_TERM
|
||||||
|
|||||||
@@ -74,8 +74,9 @@ get(Pid, Path, Stage) ->
|
|||||||
nth(Pid, Nth) ->
|
nth(Pid, Nth) ->
|
||||||
maybe_entry(gen_server:call(Pid, {nth, Nth})).
|
maybe_entry(gen_server:call(Pid, {nth, Nth})).
|
||||||
|
|
||||||
maybe_entry({ok, Path, Id, Mode, Size}) ->
|
maybe_entry({ok, Ctime, Mtime, Dev, Ino, Mode, Uid, Gid, Size, Id, Flags, FlagsExtended, Path}) ->
|
||||||
{ok, #geef_index_entry{path=Path, id=Id, mode=Mode, size=Size}};
|
{ok, #geef_index_entry{ctime=Ctime, mtime=Mtime, dev=Dev, ino=Ino, mode=Mode, uid=Uid, gid=Gid,
|
||||||
|
size=Size, id=Id, flags=Flags, flags_extended=FlagsExtended, path=Path}};
|
||||||
maybe_entry(Error = {error, _}) ->
|
maybe_entry(Error = {error, _}) ->
|
||||||
Error.
|
Error.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user