Merge branch 'jc/maint-apply-fix' into maint
authorJunio C Hamano <gitster@pobox.com>
Fri, 6 Feb 2009 02:06:11 +0000 (18:06 -0800)
committerJunio C Hamano <gitster@pobox.com>
Fri, 6 Feb 2009 02:06:11 +0000 (18:06 -0800)
* jc/maint-apply-fix:
builtin-apply.c: do not set bogus mode in check_preimage() for deleted path

1  2 
builtin-apply.c
diff --combined builtin-apply.c
index b31007ba99b4ddc92d0b78d847dfbc5a638a8237,8248e09476bafbe07971f6f447ef6677576895bf..58d998577e6d4148ddead9e57bdb0999ff026f73
@@@ -1253,9 -1253,8 +1253,9 @@@ static char *inflate_it(const void *dat
        stream.avail_in = size;
        stream.next_out = out = xmalloc(inflated_size);
        stream.avail_out = inflated_size;
 -      inflateInit(&stream);
 -      st = inflate(&stream, Z_FINISH);
 +      git_inflate_init(&stream);
 +      st = git_inflate(&stream, Z_FINISH);
 +      git_inflate_end(&stream);
        if ((st != Z_STREAM_END) || stream.total_out != inflated_size) {
                free(out);
                return NULL;
@@@ -2436,7 -2435,7 +2436,7 @@@ static int check_preimage(struct patch 
                return error("%s: %s", old_name, strerror(errno));
        }
  
 -      if (!cached)
 +      if (!cached && !tpatch)
                st_mode = ce_mode_from_stat(*ce, st->st_mode);
  
        if (patch->is_new < 0)
        if (st_mode != patch->old_mode)
                fprintf(stderr, "warning: %s has type %o, expected %o\n",
                        old_name, st_mode, patch->old_mode);
-       if (!patch->new_mode)
+       if (!patch->new_mode && !patch->is_delete)
                patch->new_mode = st_mode;
        return 0;