From: Junio C Hamano Date: Fri, 17 Aug 2007 22:19:15 GMT Subject: Re: [PATCH] Reset terminal attributes when terminating git send-email Message-ID: <7vr6m1g5y4.fsf@gitster.siamese.dyndns.org> In-Reply-To: <11873867051589-git-send-email-seanlkml@sympatico.ca> Sean Estabrooks writes: > If you break out of the prompts presented to you by git send-email > your terminal can be left in an inconsistent state. Here we trap > the interrupt signal and reset the terminal before exiting. > > Signed-off-by: Sean Estabrooks > --- > git-send-email.perl | 3 +++ > 1 files changed, 3 insertions(+), 0 deletions(-) > > diff --git a/git-send-email.perl b/git-send-email.perl > index 69559b2..f1a8855 100755 > --- a/git-send-email.perl > +++ b/git-send-email.perl > @@ -21,8 +21,11 @@ use warnings; > use Term::ReadLine; > use Getopt::Long; > use Data::Dumper; > +use Term::ANSIColor; > use Git; > > +$SIG{INT} = sub { print color("reset"), "\n"; exit }; > + > package FakeTerm; > sub new { > my ($class, $reason) = @_; I wonder if this is something Term::ReadLine when not using FakeTerm should and does provide... Is this the standard workaround all the applications that use Term::ReadLine need to implement themselves?