Junio C Hamano wrote: > As long as we do not need to readline from the terminal, we > should not barf when starting up the program. Without this > patch, t9001 test on Cygwin occasionally died with the following > error message: > > Unable to get Terminal Size. The TIOCGWINSZ ioctl didn't work. The COLUMNS and LINES environment variables didn't work. The resize program didn't work. at /usr/lib/perl5/vendor_perl/5.8/cygwin/Term/ReadKey.pm line 362. > Compilation failed in require at /usr/lib/perl5/vendor_perl/5.8/Term/ReadLine/Perl.pm line 58. > > Signed-off-by: Junio C Hamano <junkio@xxxxxxx> > --- > > * I do not use send-email myself that often so extra sets of > eyeballs are appreciated. > Looks fine to me. Acked-by: Ryan Anderson <ryan@xxxxxxxxxxxxxx> (I personally would have put the package declaration at the end of the file, but it's not significant enough for me to send a patch, heh.) > git-send-email.perl | 18 +++++++++++++++++- > t/t9001-send-email.sh | 11 +++++++---- > 2 files changed, 24 insertions(+), 5 deletions(-) > > diff --git a/git-send-email.perl b/git-send-email.perl > index c5d9e73..b04b8f4 100755 > --- a/git-send-email.perl > +++ b/git-send-email.perl > @@ -22,6 +22,17 @@ use Term::ReadLine; > use Getopt::Long; > use Data::Dumper; > > +package FakeTerm; > +sub new { > + my ($class, $reason) = @_; > + return bless \$reason, shift; > +} > +sub readline { > + my $self = shift; > + die "Cannot use readline on FakeTerm: $$self"; > +} > +package main; > + > # most mail servers generate the Date: header, but not all... > $ENV{LC_ALL} = 'C'; > use POSIX qw/strftime/; > @@ -46,7 +57,12 @@ my $smtp_server; > # Example reply to: > #$initial_reply_to = ''; #<20050203173208.GA23964@xxxxxxxxxx>'; > > -my $term = new Term::ReadLine 'git-send-email'; > +my $term = eval { > + new Term::ReadLine 'git-send-email'; > +}; > +if ($@) { > + $term = new FakeTerm "$@: going non-interactive"; > +} > > # Begin by accumulating all the variables (defined above), that we will end up > # needing, first, from the command line: > diff --git a/t/t9001-send-email.sh b/t/t9001-send-email.sh > index a61da1e..e9ea33c 100755 > --- a/t/t9001-send-email.sh > +++ b/t/t9001-send-email.sh > @@ -25,10 +25,13 @@ test_expect_success \ > git add fake.sendmail > GIT_AUTHOR_NAME="A" git commit -a -m "Second."' > > -test_expect_success \ > - 'Extract patches and send' \ > - 'git format-patch -n HEAD^1 > - git send-email -from="Example <nobody@xxxxxxxxxxx>" --to=nobody@xxxxxxxxxxx --smtp-server="$(pwd)/fake.sendmail" ./0001*txt' > +test_expect_success 'Extract patches' ' > + patches=`git format-patch -n HEAD^1` > +' > + > +test_expect_success 'Send patches' ' > + git send-email -from="Example <nobody@xxxxxxxxxxx>" --to=nobody@xxxxxxxxxxx --smtp-server="$(pwd)/fake.sendmail" $patches 2>errors > +' > > cat >expected <<\EOF > !nobody@xxxxxxxxxxx! > -- Ryan Anderson sometimes Pug Majere
Attachment:
signature.asc
Description: OpenPGP digital signature