Code

Merge branch 'maint'
[git.git] / builtin-fsck.c
index fcb8ed5af1bc50df19a2f533989aa9673ea166e8..cbbcaf011a09d1dd9b3f2a01d18e1ab93e26fd3b 100644 (file)
@@ -219,6 +219,7 @@ static int fsck_tree(struct tree *item)
 {
        int retval;
        int has_full_path = 0;
+       int has_empty_name = 0;
        int has_zero_pad = 0;
        int has_bad_modes = 0;
        int has_dup_entries = 0;
@@ -242,6 +243,8 @@ static int fsck_tree(struct tree *item)
 
                if (strchr(name, '/'))
                        has_full_path = 1;
+               if (!*name)
+                       has_empty_name = 1;
                has_zero_pad |= *(char *)desc.buffer == '0';
                update_tree_entry(&desc);
 
@@ -253,7 +256,7 @@ static int fsck_tree(struct tree *item)
                case S_IFREG | 0644:
                case S_IFLNK:
                case S_IFDIR:
-               case S_IFDIRLNK:
+               case S_IFGITLINK:
                        break;
                /*
                 * This is nonstandard, but we had a few of these
@@ -291,6 +294,9 @@ static int fsck_tree(struct tree *item)
        if (has_full_path) {
                objwarning(&item->object, "contains full pathnames");
        }
+       if (has_empty_name) {
+               objwarning(&item->object, "contains empty pathname");
+       }
        if (has_zero_pad) {
                objwarning(&item->object, "contains zero-padded file modes");
        }
@@ -709,7 +715,7 @@ int cmd_fsck(int argc, char **argv, const char *prefix)
                        struct object *obj;
 
                        mode = ntohl(active_cache[i]->ce_mode);
-                       if (S_ISDIRLNK(mode))
+                       if (S_ISGITLINK(mode))
                                continue;
                        blob = lookup_blob(active_cache[i]->sha1);
                        if (!blob)