Skip to content

Commit fa64205

Browse files
Pasi Savanainentorvalds
authored andcommitted
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"' Signed-off-by: Pasi Savanainen <[email protected]> Cc: Joe Perches <[email protected]> Cc: Andy Whitcroft <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
1 parent 8290e2d commit fa64205

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

scripts/checkpatch.pl

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1386,6 +1386,8 @@ sub process {
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 {
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

0 commit comments

Comments
 (0)