X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=apply.c;h=7c1a8411f21ee42d095e6c5a515987ef2a6f779a;hb=9d34c29db39bdb5c2443475dd6a24cfc5c2c9e37;hp=c671d9e86cc04e2c6756212e3496c4ef5db8207a;hpb=89ab859e9452cbc8f1f15afab52257e9b789c899;p=git.git diff --git a/apply.c b/apply.c index c671d9e8..7c1a8411 100644 --- a/apply.c +++ b/apply.c @@ -563,7 +563,7 @@ static int find_header(char *line, unsigned long size, int *hdrsize, struct patc struct fragment dummy; if (parse_fragment_header(line, len, &dummy) < 0) continue; - error("patch fragment without header at line %d: %.*s", linenr, len-1, line); + error("patch fragment without header at line %d: %.*s", linenr, (int)len-1, line); } if (size < len + 6) @@ -968,7 +968,7 @@ static int apply_fragments(struct buffer_desc *desc, struct patch *patch) while (frag) { if (apply_one_fragment(desc, frag) < 0) - return error("patch failed: %s:%d", patch->old_name, frag->oldpos); + return error("patch failed: %s:%ld", patch->old_name, frag->oldpos); frag = frag->next; } return 0; @@ -1043,8 +1043,12 @@ static int check_patch(struct patch *patch) return error("%s: already exists in working directory", new_name); if (errno != ENOENT) return error("%s: %s", new_name, strerror(errno)); - if (!patch->new_mode) - patch->new_mode = S_IFREG | 0644; + if (!patch->new_mode) { + if (patch->is_new) + patch->new_mode = S_IFREG | 0644; + else + patch->new_mode = patch->old_mode; + } } if (new_name && old_name) {