mirror of
https://github.com/git/git.git
synced 2026-03-04 06:27:36 +01:00
Merge branch 'sp/send-email-validate-charset' into jch
"git send-email" has learned to be a bit more careful when it accepts charset to use from the end-user, to avoid 'y' (mistaken 'yes' when expecting a charset like 'UTF-8') and other nonsense. * sp/send-email-validate-charset: send-email: validate charset name in 8bit encoding prompt
This commit is contained in:
@@ -23,6 +23,7 @@ use Getopt::Long;
|
||||
use Git::LoadCPAN::Error qw(:try);
|
||||
use Git;
|
||||
use Git::I18N;
|
||||
use Encode qw(find_encoding);
|
||||
|
||||
Getopt::Long::Configure qw/ pass_through /;
|
||||
|
||||
@@ -1051,9 +1052,27 @@ if (!defined $auto_8bit_encoding && scalar %broken_encoding) {
|
||||
foreach my $f (sort keys %broken_encoding) {
|
||||
print " $f\n";
|
||||
}
|
||||
$auto_8bit_encoding = ask(__("Which 8bit encoding should I declare [UTF-8]? "),
|
||||
valid_re => qr/.{4}/, confirm_only => 1,
|
||||
default => "UTF-8");
|
||||
while (1) {
|
||||
my $encoding = ask(
|
||||
__("Declare which 8bit encoding to use [default: UTF-8]? "),
|
||||
valid_re => qr/^\S+$/,
|
||||
default => "UTF-8");
|
||||
next unless defined $encoding;
|
||||
if (find_encoding($encoding)) {
|
||||
$auto_8bit_encoding = $encoding;
|
||||
last;
|
||||
}
|
||||
my $yesno = ask(
|
||||
sprintf(
|
||||
__("'%s' does not appear to be a valid charset name. Use it anyway [y/N]? "),
|
||||
$encoding),
|
||||
valid_re => qr/^(?:y|n)/i,
|
||||
default => "n");
|
||||
if (defined $yesno && $yesno =~ /^y/i) {
|
||||
$auto_8bit_encoding = $encoding;
|
||||
last;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!$force) {
|
||||
|
||||
@@ -1691,7 +1691,7 @@ test_expect_success $PREREQ 'asks about and fixes 8bit encodings' '
|
||||
email-using-8bit >stdout &&
|
||||
grep "do not declare a Content-Transfer-Encoding" stdout &&
|
||||
grep email-using-8bit stdout &&
|
||||
grep "Which 8bit encoding" stdout &&
|
||||
grep "Declare which 8bit encoding to use" stdout &&
|
||||
grep -E "Content|MIME" msgtxt1 >actual &&
|
||||
test_cmp content-type-decl actual
|
||||
'
|
||||
|
||||
Reference in New Issue
Block a user