History

checkpatch: check utf-8 content from a commit log when it's missing from charset

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"'

Pasi Savanainen committed 14 years ago

Commit fa642051 parent 8290e2d1 file · +12 −3Browse files

Showing the changes to scripts/checkpatch.pl (1 of 1 file). Show all

Unified · Split

scripts/checkpatch.pl+12−3
@@ -1386,6 +1386,8 @@ sub process { · 1385 unmodified lines
13861386 my $in_header_lines = 1;
13871387 my $in_commit_log = 0; #Scanning lines before patch
13881388
1389+ my $non_utf8_charset = 0;
1390+
13891391 our @report = ();
13901392 our $cnt_lines = 0;
13911393 our $cnt_error = 0;
@@ -1686,10 +1688,17 @@ sub process { · 294 unmodified lines
16861688 $in_commit_log = 1;
16871689 }
16881690
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 =~ /^$/ &&
16911700 $rawline =~ /$NON_ASCII_UTF8/) {
1692− CHK("UTF8_BEFORE_PATCH",
1701+ WARN("UTF8_BEFORE_PATCH",
16931702 "8-bit UTF-8 used in possible commit log\n" . $herecurr);
16941703 }
16951704