History

checkpatch: make git output use LANGUAGE=en_US.utf8

git output parsing depends on the language being en_US english. Make the backtick execution of all `git <foo>` commands set the LANGUAGE of the process to en_US.utf8 before executing the actual command using `export LANGUAGE=en_US.utf8; git <foo>`. Because the command is executed in a child process, the parent LANGUAGE is unchanged.

Joe Perches committed 7 years ago

Commit dbbf8691 parent 5a7f4451 file · +6 −4Browse files

Unified · Split

scripts/checkpatch.pl+6−4
@@ -62,6 +62,8 @@ my $conststructsfile = "$D/const_structs.checkpatch"; · 61 unmodified lines
62my $typedefsfile = "";62my $typedefsfile = "";
63my $color = "auto";63my $color = "auto";
64my $allow_c99_comments = 1; # Can be overridden by --ignore C99_COMMENT_TOLERANCE64my $allow_c99_comments = 1; # Can be overridden by --ignore C99_COMMENT_TOLERANCE
65# git output parsing needs US English output, so first set backtick child process LANGUAGE
66my $git_command ='export LANGUAGE=en_US.UTF-8; git';
65 67
66sub help {68sub help {
67 my ($exitcode) = @_;69 my ($exitcode) = @_;
@@ -904,7 +906,7 @@ sub seed_camelcase_includes { · 836 unmodified lines
904 $camelcase_seeded = 1;906 $camelcase_seeded = 1;
905 907
906 if (-e ".git") {908 if (-e ".git") {
907 my $git_last_include_commit = `git log --no-merges --pretty=format:"%h%n" -1 -- include`;909 my $git_last_include_commit = `${git_command} log --no-merges --pretty=format:"%h%n" -1 -- include`;
908 chomp $git_last_include_commit;910 chomp $git_last_include_commit;
909 $camelcase_cache = ".checkpatch-camelcase.git.$git_last_include_commit";911 $camelcase_cache = ".checkpatch-camelcase.git.$git_last_include_commit";
910 } else {912 } else {
@@ -932,7 +934,7 @@ sub seed_camelcase_includes { · 21 unmodified lines
932 }934 }
933 935
934 if (-e ".git") {936 if (-e ".git") {
935 $files = `git ls-files "include/*.h"`;937 $files = `${git_command} ls-files "include/*.h"`;
936 @include_files = split('\n', $files);938 @include_files = split('\n', $files);
937 }939 }
938 940
@@ -956,7 +958,7 @@ sub git_commit_info { · 17 unmodified lines
956 958
957 return ($id, $desc) if ((which("git") eq "") || !(-e ".git"));959 return ($id, $desc) if ((which("git") eq "") || !(-e ".git"));
958 960
959 my $output = `git log --no-color --format='%H %s' -1 $commit 2>&1`;961 my $output = `${git_command} log --no-color --format='%H %s' -1 $commit 2>&1`;
960 $output =~ s/^\s*//gm;962 $output =~ s/^\s*//gm;
961 my @lines = split("\n", $output);963 my @lines = split("\n", $output);
962 964
@@ -1006,7 +1008,7 @@ if ($git) { · 43 unmodified lines
1006 } else {1008 } else {
1007 $git_range = "-1 $commit_expr";1009 $git_range = "-1 $commit_expr";
1008 }1010 }
1009 my $lines = `git log --no-color --no-merges --pretty=format:'%H %s' $git_range`;1011 my $lines = `${git_command} log --no-color --no-merges --pretty=format:'%H %s' $git_range`;
1010 foreach my $line (split(/\n/, $lines)) {1012 foreach my $line (split(/\n/, $lines)) {
1011 $line =~ /^([0-9a-fA-F]{40,40}) (.*)$/;1013 $line =~ /^([0-9a-fA-F]{40,40}) (.*)$/;
1012 next if (!defined($1) || !defined($2));1014 next if (!defined($1) || !defined($2));