Check that a commit log doesn't contain UTF-8 when a mail header explicitly defines a different charset, like 'Content-Type: text/plain; charset="us-ascii"'
Showing the changes to scripts/checkpatch.pl (1 of 1 file). Show all
Unified · Split
| @@ -1386,6 +1386,8 @@ sub process { · 1385 unmodified lines | ||
| 1386 | 1386 | my $in_header_lines = 1; |
| 1387 | 1387 | my $in_commit_log = 0; #Scanning lines before patch |
| 1388 | 1388 | |
| 1389 | + my $non_utf8_charset = 0; | |
| 1390 | + | |
| 1389 | 1391 | our @report = (); |
| 1390 | 1392 | our $cnt_lines = 0; |
| 1391 | 1393 | our $cnt_error = 0; |
| @@ -1686,10 +1688,17 @@ sub process { · 294 unmodified lines | ||
| 1686 | 1688 | $in_commit_log = 1; |
| 1687 | 1689 | } |
| 1688 | 1690 | |
| 1689 | −# Still not yet in a patch, check for any UTF-8 | |
| 1690 | − if ($in_commit_log && $realfile =~ /^$/ && | |
| 1691 | +# Check if there is UTF-8 in a commit log when a mail header has explicitly | |
| 1692 | +# declined it, i.e defined some charset where it is missing. | |
| 1693 | + if ($in_header_lines && | |
| 1694 | + $rawline =~ /^Content-Type:.+charset="(.+)".*$/ && | |
| 1695 | + $1 !~ /utf-8/i) { | |
| 1696 | + $non_utf8_charset = 1; | |
| 1697 | + } | |
| 1698 | + | |
| 1699 | + if ($in_commit_log && $non_utf8_charset && $realfile =~ /^$/ && | |
| 1691 | 1700 | $rawline =~ /$NON_ASCII_UTF8/) { |
| 1692 | − CHK("UTF8_BEFORE_PATCH", | |
| 1701 | + WARN("UTF8_BEFORE_PATCH", | |
| 1693 | 1702 | "8-bit UTF-8 used in possible commit log\n" . $herecurr); |
| 1694 | 1703 | } |
| 1695 | 1704 | |