From: Junio C Hamano Date: Sat, 15 Sep 2012 04:39:27 +0000 (-0700) Subject: Merge branch 'jc/mailinfo-RE' X-Git-Tag: v1.8.0-rc0~53 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/cd14f3e17cf60c478ef4e921fc622b6164cb2f25?ds=inline;hp=-c Merge branch 'jc/mailinfo-RE' We strip the prefix from "Re: subject" and also from a less common "re: subject", but left even less common "RE: subject" intact. * jc/mailinfo-RE: mailinfo: strip "RE: " prefix --- cd14f3e17cf60c478ef4e921fc622b6164cb2f25 diff --combined builtin/mailinfo.c index dd4f925475,18895ee4d9..b691b77158 --- a/builtin/mailinfo.c +++ b/builtin/mailinfo.c @@@ -232,7 -232,9 +232,9 @@@ static void cleanup_subject(struct strb case 'r': case 'R': if (subject->len <= at + 3) break; - if (!memcmp(subject->buf + at + 1, "e:", 2)) { + if ((subject->buf[at + 1] == 'e' || + subject->buf[at + 1] == 'E') && + subject->buf[at + 2] == ':') { strbuf_remove(subject, at, 3); continue; } @@@ -481,12 -483,36 +483,12 @@@ static struct strbuf *decode_b_segment( return out; } -/* - * When there is no known charset, guess. - * - * Right now we assume that if the target is UTF-8 (the default), - * and it already looks like UTF-8 (which includes US-ASCII as its - * subset, of course) then that is what it is and there is nothing - * to do. - * - * Otherwise, we default to assuming it is Latin1 for historical - * reasons. - */ -static const char *guess_charset(const struct strbuf *line, const char *target_charset) -{ - if (is_encoding_utf8(target_charset)) { - if (is_utf8(line->buf)) - return NULL; - } - return "ISO8859-1"; -} - static void convert_to_utf8(struct strbuf *line, const char *charset) { char *out; - if (!charset || !*charset) { - charset = guess_charset(line, metainfo_charset); - if (!charset) - return; - } - + if (!charset || !*charset) + return; if (!strcasecmp(metainfo_charset, charset)) return; out = reencode_string(line->buf, metainfo_charset, charset);