On Wed, Oct 14, 2015 at 4:45 PM, Junio C Hamano <gits...@pobox.com> wrote:
> This requires us to pass the struct down to decode_header() and
> convert_to_utf8() callchain.
>
> Signed-off-by: Junio C Hamano <gits...@pobox.com>
> ---
> @@ -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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to