git-send-email.perl: improve detection of MIME encoded-words
authorBrandon Casey <drafnel@gmail.com>
Mon, 8 Jun 2009 00:25:58 +0000 (19:25 -0500)
committerJunio C Hamano <gitster@pobox.com>
Tue, 9 Jun 2009 07:15:57 +0000 (00:15 -0700)
commita3a8262bf6e2acbb1b61cc25be073713e183c766
treefc6a602e4c290b6c285da33a59abee5aa963b81e
parentcb319c36312a16d8af9b635a75404bc0005c5119
git-send-email.perl: improve detection of MIME encoded-words

According to rfc2047, an encoded word has the following form:

   encoded-word = "=?" charset "?" encoding "?" encoded-text "?="

   charset = token

   encoding = token

   token = <Any CHAR except SPACE, CTLs, and especials>

   especials = "(" / ")" / "<" / ">" / "@" / "," / ";" / ":" / "
               <"> / "/" / "[" / "]" / "?" / "." / "="

   encoded-text = <Any printable ASCII character other than "?"
                     or SPACE>

And rfc822 defines CHARs and CTLs as:

    CHAR = <any ASCII character> ; (  0-177,  0.-127.)

    CTL = <any ASCII control     ; (  0- 37,  0.- 31.)
           character and DEL>    ; (    177,     127.)

The original code only detected rfc2047 encoded strings when the charset
was UTF-8.  This patch generalizes the matching expression and breaks the
check for an rfc2047 encoded string into its own function.  There's no real
functional change, since any properly rfc2047 encoded string would have
fallen through the remaining 'if' statements and been returned unchanged.

Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-send-email.perl