mirror of
https://github.com/git/git.git
synced 2025-01-22 07:24:10 +08:00
ls-tree: simplify nesting if/else logic in "show_tree()"
Use the object_type() function to determine the object type from the "mode" passed to us by read_tree(), instead of doing so with the S_*() macros. Helped-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Teng Long <dyronetengb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
889f78383e
commit
87af0ddf5f
@ -66,20 +66,17 @@ static int show_tree(const struct object_id *oid, struct strbuf *base,
|
||||
{
|
||||
int recurse = 0;
|
||||
size_t baselen;
|
||||
enum object_type type = OBJ_BLOB;
|
||||
enum object_type type = object_type(mode);
|
||||
|
||||
if (S_ISGITLINK(mode)) {
|
||||
type = OBJ_COMMIT;
|
||||
} else if (S_ISDIR(mode)) {
|
||||
if (show_recursive(base->buf, base->len, pathname)) {
|
||||
recurse = READ_TREE_RECURSIVE;
|
||||
if (!(ls_options & LS_SHOW_TREES))
|
||||
return recurse;
|
||||
}
|
||||
type = OBJ_TREE;
|
||||
if (type == OBJ_BLOB) {
|
||||
if (ls_options & LS_TREE_ONLY)
|
||||
return 0;
|
||||
} else if (type == OBJ_TREE &&
|
||||
show_recursive(base->buf, base->len, pathname)) {
|
||||
recurse = READ_TREE_RECURSIVE;
|
||||
if (!(ls_options & LS_SHOW_TREES))
|
||||
return recurse;
|
||||
}
|
||||
else if (ls_options & LS_TREE_ONLY)
|
||||
return 0;
|
||||
|
||||
if (!(ls_options & LS_NAME_ONLY)) {
|
||||
if (ls_options & LS_SHOW_SIZE) {
|
||||
|
Loading…
Reference in New Issue
Block a user