X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=builtin%2Fpatch-id.c;h=3cfe02d5a5716de1a3aaa5edc1ca0e3d74c03b03;hb=dddc411f7abbd82f6fa7d323711b8a7b94a1abc2;hp=f821eb3f0b864c26d5e822cc7c5b0747340abee5;hpb=fee6bc5f031a9d18d09463d96d7df562d62438f7;p=git.git diff --git a/builtin/patch-id.c b/builtin/patch-id.c index f821eb3f0..3cfe02d5a 100644 --- a/builtin/patch-id.c +++ b/builtin/patch-id.c @@ -56,13 +56,13 @@ static int scan_hunk_header(const char *p, int *p_before, int *p_after) return 1; } -static int get_one_patchid(unsigned char *next_sha1, git_SHA_CTX *ctx) +static int get_one_patchid(unsigned char *next_sha1, git_SHA_CTX *ctx, struct strbuf *line_buf) { - static char line[1000]; int patchlen = 0, found_next = 0; int before = -1, after = -1; - while (fgets(line, sizeof(line), stdin) != NULL) { + while (strbuf_getwholeline(line_buf, stdin, '\n') != EOF) { + char *line = line_buf->buf; char *p = line; int len; @@ -133,14 +133,16 @@ static void generate_id_list(void) unsigned char sha1[20], n[20]; git_SHA_CTX ctx; int patchlen; + struct strbuf line_buf = STRBUF_INIT; git_SHA1_Init(&ctx); hashclr(sha1); while (!feof(stdin)) { - patchlen = get_one_patchid(n, &ctx); + patchlen = get_one_patchid(n, &ctx, &line_buf); flush_current_id(patchlen, sha1, &ctx); hashcpy(sha1, n); } + strbuf_release(&line_buf); } static const char patch_id_usage[] = "git patch-id < patch";