From: Junio C Hamano Date: Fri, 18 Jan 2013 19:20:08 +0000 (-0800) Subject: Merge branch 'rs/pretty-use-prefixcmp' X-Git-Tag: v1.8.2-rc0~118 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/3ab4c543e30c2c57dd79ea1cb15cb3a6f18cc614?hp=-c Merge branch 'rs/pretty-use-prefixcmp' * rs/pretty-use-prefixcmp: pretty: use prefixcmp instead of memcmp on NUL-terminated strings --- 3ab4c543e30c2c57dd79ea1cb15cb3a6f18cc614 diff --combined pretty.c index 92c839fe64,94c6a34fa8..01795de687 --- a/pretty.c +++ b/pretty.c @@@ -567,7 -567,7 +567,7 @@@ char *logmsg_reencode(const struct comm char *encoding; char *out; - if (!*output_encoding) + if (!output_encoding || !*output_encoding) return NULL; encoding = get_header(commit, "encoding"); use_encoding = encoding ? encoding : utf8; @@@ -966,7 -966,7 +966,7 @@@ static size_t format_commit_one(struct if (!end) return 0; - if (!memcmp(begin, "auto,", 5)) { + if (!prefixcmp(begin, "auto,")) { if (!want_color(c->pretty_ctx->color)) return end - placeholder + 1; begin += 5; @@@ -1107,8 -1107,9 +1107,8 @@@ } return 0; /* unknown %g placeholder */ case 'N': - if (c->pretty_ctx->show_notes) { - format_display_notes(commit->object.sha1, sb, - get_log_output_encoding(), 0); + if (c->pretty_ctx->notes_message) { + strbuf_addstr(sb, c->pretty_ctx->notes_message); return 1; } return 0; @@@ -1257,15 -1258,23 +1257,15 @@@ void format_commit_message(const struc const struct pretty_print_context *pretty_ctx) { struct format_commit_context context; - static const char utf8[] = "UTF-8"; const char *output_enc = pretty_ctx->output_encoding; memset(&context, 0, sizeof(context)); context.commit = commit; context.pretty_ctx = pretty_ctx; context.wrap_start = sb->len; - context.message = commit->buffer; - if (output_enc) { - char *enc = get_header(commit, "encoding"); - if (strcmp(enc ? enc : utf8, output_enc)) { - context.message = logmsg_reencode(commit, output_enc); - if (!context.message) - context.message = commit->buffer; - } - free(enc); - } + context.message = logmsg_reencode(commit, output_enc); + if (!context.message) + context.message = commit->buffer; strbuf_expand(sb, format, format_commit_item, &context); rewrap_message_tail(sb, &context, 0, 0, 0); @@@ -1301,7 -1310,7 +1301,7 @@@ static void pp_header(const struct pret continue; } - if (!memcmp(line, "parent ", 7)) { + if (!prefixcmp(line, "parent ")) { if (linelen != 48) die("bad parent line in commit"); continue; @@@ -1325,11 -1334,11 +1325,11 @@@ * FULL shows both authors but not dates. * FULLER shows both authors and dates. */ - if (!memcmp(line, "author ", 7)) { + if (!prefixcmp(line, "author ")) { strbuf_grow(sb, linelen + 80); pp_user_info(pp, "Author", sb, line + 7, encoding); } - if (!memcmp(line, "committer ", 10) && + if (!prefixcmp(line, "committer ") && (pp->fmt == CMIT_FMT_FULL || pp->fmt == CMIT_FMT_FULLER)) { strbuf_grow(sb, linelen + 80); pp_user_info(pp, "Commit", sb, line + 10, encoding); @@@ -1412,6 -1421,16 +1412,6 @@@ void pp_remainder(const struct pretty_p } } -char *reencode_commit_message(const struct commit *commit, const char **encoding_p) -{ - const char *encoding; - - encoding = get_log_output_encoding(); - if (encoding_p) - *encoding_p = encoding; - return logmsg_reencode(commit, encoding); -} - void pretty_print_commit(const struct pretty_print_context *pp, const struct commit *commit, struct strbuf *sb) @@@ -1428,8 -1447,7 +1428,8 @@@ return; } - reencoded = reencode_commit_message(commit, &encoding); + encoding = get_log_output_encoding(); + reencoded = logmsg_reencode(commit, encoding); if (reencoded) { msg = reencoded; } @@@ -1489,6 -1507,10 +1489,6 @@@ if (pp->fmt == CMIT_FMT_EMAIL && sb->len <= beginning_of_body) strbuf_addch(sb, '\n'); - if (pp->show_notes) - format_display_notes(commit->object.sha1, sb, encoding, - NOTES_SHOW_HEADER | NOTES_INDENT); - free(reencoded); }