X-Git-Url: https://defaria.com/gitweb/?a=blobdiff_plain;ds=sidebyside;f=lib%2FUtils.pm;h=446d2e7589d31b00cf1df118700a8e33ec8d5efa;hb=f3e0cdceb40c69dc13b1edf6d9d2af3bd38798c1;hp=eddef3aa1995f32a581bf0bd913f0d0e5909875a;hpb=bdb1e0c845a6921e22d52fbff3404d5c1dfae520;p=clearscm.git diff --git a/lib/Utils.pm b/lib/Utils.pm index eddef3a..446d2e7 100644 --- a/lib/Utils.pm +++ b/lib/Utils.pm @@ -341,10 +341,9 @@ Returns: =cut - $prompt ||= 'Password'; - my $password; + my $password = ''; local $| = 1; @@ -365,9 +364,18 @@ Returns: last; } # if - print '*'; + # Handle backspaces + if ($key eq chr(127)) { + unless ($password eq '') { + chop $password; + + print "\b \b"; + } # unless + } else { + print '*'; - $password .= $key; + $password .= $key; + } # if } # while ReadMode 'restore'; # Reset tty mode before exiting. @@ -463,7 +471,7 @@ In a scalar context just the 1 minute load average. # TODO: Make it work on Windows... return if $^O =~ /win/i; - open my $loadAvg, '/proc/loadavg' + open my $loadAvg, '<', '/proc/loadavg' or croak "Unable to open /proc/loadavg\n"; my $load = <$loadAvg>; @@ -578,7 +586,7 @@ Returns: =cut - open my $pipe, '|-', $to + open my $pipe, '|', $to or error "Unable to open pipe - $!", 1; foreach (@output) {