On Wed, Oct 14, 2015 at 4:45 PM, Junio C Hamano <[email protected]> wrote:
> This requires us to pass the struct down to decode_header() and
> convert_to_utf8() callchain.
>
> Signed-off-by: Junio C Hamano <[email protected]>
> ---
> @@ -520,23 +519,24 @@ static struct strbuf *decode_b_segment(const struct
> strbuf *b_seg)
> -static void convert_to_utf8(struct strbuf *line, const char *charset)
> +static void convert_to_utf8(struct mailinfo *mi,
> + struct strbuf *line, const char *charset)
> {
> char *out;
>
> - if (!charset || !*charset)
> + if (!mi->metainfo_charset || !charset || !*charset)
> return;
Mental note: convert_to_utf8() is updated to return early when
metainfo_charset==NULL.
> - if (same_encoding(metainfo_charset, charset))
> + if (same_encoding(mi->metainfo_charset, charset))
> return;
> - out = reencode_string(line->buf, metainfo_charset, charset);
> + out = reencode_string(line->buf, mi->metainfo_charset, charset);
> if (!out)
> die("cannot convert from %s to %s",
> - charset, metainfo_charset);
> + charset, mi->metainfo_charset);
> strbuf_attach(line, out, strlen(out), strlen(out));
> }
>
> -static void decode_header(struct strbuf *it)
> +static void decode_header(struct mailinfo *mi, struct strbuf *it)
> {
> char *in, *ep, *cp;
> struct strbuf outbuf = STRBUF_INIT, *dec;
> @@ -599,8 +599,7 @@ static void decode_header(struct strbuf *it)
> dec = decode_q_segment(&piecebuf, 1);
> break;
> }
> - if (metainfo_charset)
> - convert_to_utf8(dec, charset_q.buf);
> + convert_to_utf8(mi, dec, charset_q.buf);
It's safe to drop the conditional here since convert_to_utf8() now
checks metainfo_charset. Okay.
> strbuf_addbuf(&outbuf, dec);
> strbuf_release(dec);
> @@ -745,8 +744,7 @@ static int handle_commit_msg(struct mailinfo *mi, struct
> strbuf *line)
> mi->header_stage = 0;
>
> /* normalize the log message to UTF-8. */
> - if (metainfo_charset)
> - convert_to_utf8(line, charset.buf);
> + convert_to_utf8(mi, line, charset.buf);
Ditto.
> if (mi->use_scissors && is_scissors_line(line)) {
> int i;
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html