Add config variable core.symrefsonly
[git.git] / apply.c
diff --git a/apply.c b/apply.c
index 472bcdc..590adc6 100644 (file)
--- a/apply.c
+++ b/apply.c
@@ -27,7 +27,7 @@ static int no_add = 0;
 static int show_index_info = 0;
 static int line_termination = '\n';
 static const char apply_usage[] =
-"git-apply [--stat] [--numstat] [--summary] [--check] [--index] [--apply] [--index-info] [-z] <patch>...";
+"git-apply [--stat] [--numstat] [--summary] [--check] [--index] [--apply] [--no-add] [--index-info] [-z] <patch>...";
 
 /*
  * For "diff-stat" like behaviour, we keep track of the biggest change
@@ -370,7 +370,7 @@ static int gitdiff_index(const char *line, struct patch *patch)
        int len;
 
        ptr = strchr(line, '.');
-       if (!ptr || ptr[1] != '.' || 40 <= ptr - line)
+       if (!ptr || ptr[1] != '.' || 40 < ptr - line)
                return 0;
        len = ptr - line;
        memcpy(patch->old_sha1_prefix, line, len);
@@ -384,7 +384,7 @@ static int gitdiff_index(const char *line, struct patch *patch)
                ptr = eol;
        len = ptr - line;
 
-       if (40 <= len)
+       if (40 < len)
                return 0;
        memcpy(patch->new_sha1_prefix, line, len);
        patch->new_sha1_prefix[len] = 0;
@@ -895,7 +895,8 @@ static int parse_chunk(char *buffer, unsigned long size, struct patch *patch)
                static const char binhdr[] = "Binary files ";
 
                if (sizeof(binhdr) - 1 < size - offset - hdrsize &&
-                   !memcmp(binhdr, buffer + hdrsize, sizeof(binhdr)-1))
+                   !memcmp(binhdr, buffer + hdrsize + offset,
+                           sizeof(binhdr)-1))
                        patch->is_binary = 1;
 
                if (patch->is_binary && !apply && !check)