summaryrefslogtreecommitdiff
path: root/builtin
diff options
context:
space:
mode:
authorLibravatar Josh Steadmon <steadmon@google.com>2022-04-04 15:42:24 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2022-04-06 08:41:25 -0700
commit350296cc78912c245847ec65e55143053450cce1 (patch)
treea0812fe413b90cdbfb07a188dc726c24e59d0af9 /builtin
parentls-tree: split up "fast path" callbacks (diff)
downloadtgif-350296cc78912c245847ec65e55143053450cce1.tar.xz
ls-tree: `-l` should not imply recursive listing
In 9c4d58ff2c (ls-tree: split up "fast path" callbacks, 2022-03-23), a refactoring of the various read_tree_at() callbacks caused us to unconditionally recurse into directories if `-l` (long format) was passed on the command line, regardless of whether or not we also pass the `-r` (recursive) flag. Fix this by making show_tree_long() return the value of `recurse`, rather than always returning 1. This value is interpreted by read_tree_at() to be a signal on whether or not to recurse. Signed-off-by: Josh Steadmon <steadmon@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin')
-rw-r--r--builtin/ls-tree.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/builtin/ls-tree.c b/builtin/ls-tree.c
index 44a91cf9d0..696d94b8b8 100644
--- a/builtin/ls-tree.c
+++ b/builtin/ls-tree.c
@@ -255,7 +255,7 @@ static int show_tree_long(const struct object_id *oid, struct strbuf *base,
printf("%06o %s %s %7s\t", data.mode, type_name(data.type),
find_unique_abbrev(data.oid, abbrev), size_text);
show_tree_common_default_long(base, pathname, data.base->len);
- return 1;
+ return recurse;
}
static int show_tree_name_only(const struct object_id *oid, struct strbuf *base,