apply: handle patches with funny filename and colon in timezone
[gitweb.git] / builtin / ls-tree.c
index 4484185afc4c144bc0d88d9c3832cbeb1515841b..a8187568bf99872e717c389b031331838544fe04 100644 (file)
@@ -52,6 +52,8 @@ static int show_recursive(const char *base, int baselen, const char *pathname)
                speclen = strlen(spec);
                if (speclen <= len)
                        continue;
+               if (spec[len] && spec[len] != '/')
+                       continue;
                if (memcmp(pathname, spec, len))
                        continue;
                return 1;
@@ -103,13 +105,11 @@ static int show_tree(const unsigned char *sha1, const char *base, int baselen,
                        } else
                                strcpy(size_text, "-");
                        printf("%06o %s %s %7s\t", mode, type,
-                              abbrev ? find_unique_abbrev(sha1, abbrev)
-                                     : sha1_to_hex(sha1),
+                              find_unique_abbrev(sha1, abbrev),
                               size_text);
                } else
                        printf("%06o %s %s\t", mode, type,
-                              abbrev ? find_unique_abbrev(sha1, abbrev)
-                                     : sha1_to_hex(sha1));
+                              find_unique_abbrev(sha1, abbrev));
        }
        write_name_quotedpfx(base + chomp_prefix, baselen - chomp_prefix,
                          pathname, stdout, line_termination);