From mboxrd@z Thu Jan 1 00:00:00 1970 From: john at keeping.me.uk (John Keeping) Date: Tue, 16 Feb 2016 09:33:25 +0000 Subject: [PATCH 1/1] ui-plain: show directory listing for top of repo in plain view In-Reply-To: <20160216075739.8DB5882322@gnosis.slac.com> References: <20160216075739.8DB5882322@gnosis.slac.com> Message-ID: <20160216093325.GA9461@serenity.lan> On Mon, Feb 15, 2016 at 11:57:39PM -0800, Joe Anakata wrote: > unsigned to signed comparison was always false when at the root of the > tree Missing sign-off (see [1] for what this means). It would also be helpful if the commit message explains that in the "root of the tree" case match_baselen is -1. More below... [1] http://elinux.org/Developer_Certificate_Of_Origin > --- > ui-plain.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/ui-plain.c b/ui-plain.c > index ff85113..b4e3bef 100644 > --- a/ui-plain.c > +++ b/ui-plain.c > @@ -143,7 +143,7 @@ static int walk_tree(const unsigned char *sha1, struct strbuf *base, > walk_tree_ctx->match = 2; > return READ_TREE_RECURSIVE; > } > - } else if (base->len > walk_tree_ctx->match_baselen) { > + } else if ((int)base->len > walk_tree_ctx->match_baselen) { nit: we prefer a space after casts (see Git's Documentation/CodingGuidelines which we follow). I also think we should be casting "len" to ssize_t here (for those who haven't looked in the code, "len" is a size_t and "match_baselen" is an int). This changed in commit 7358f63 (git: update for v2.3.0, 2015-02-07) when walk_tree() changed from taking a "const char *" with an "int" length to taking a "struct strbuf". So when "match_baselen" was originally added it matched the type of the length parameter to which it is compared here. > print_dir_entry(sha1, base->buf, base->len, pathname, mode); > walk_tree_ctx->match = 2; > } else if (S_ISDIR(mode)) { > -- > 1.9.1