diff --git a/patch-id.c b/patch-id.c
index 5a8dc75d0e0184f8a4afa53e22b44d20f060685f..086d2d9c68835c6a7434932f6e3b430e0906578d 100644 (file)
--- a/patch-id.c
+++ b/patch-id.c
-#include <ctype.h>
#include "cache.h"
static void flush_current_id(int patchlen, unsigned char *id, SHA_CTX *c)
if (!memcmp(line, "diff-tree ", 10))
p += 10;
+ else if (!memcmp(line, "commit ", 7))
+ p += 7;
if (!get_sha1_hex(p, n)) {
flush_current_id(patchlen, sha1, &ctx);
- memcpy(sha1, n, 20);
+ hashcpy(sha1, n);
patchlen = 0;
continue;
}
if (!patchlen && memcmp(line, "diff ", 5))
continue;
+ /* Ignore git-diff index header */
+ if (!memcmp(line, "index ", 6))
+ continue;
+
/* Ignore line numbers when computing the SHA1 of the patch */
if (!memcmp(line, "@@ -", 4))
continue;