summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--lib/net/imap.rb10
2 files changed, 9 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index c525bda998..be2e77216c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,7 @@
-Fri Jul 30 12:38:22 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Jul 30 12:42:02 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * lib/net/imap.rb (example): use IO#noecho to read password if
+ possible, and defer until needed. [ruby-dev:41889]
* lib/net/imap.rb (example): support starttls option.
[ruby-dev:41888]
diff --git a/lib/net/imap.rb b/lib/net/imap.rb
index fded6cc152..a032a1850d 100644
--- a/lib/net/imap.rb
+++ b/lib/net/imap.rb
@@ -3488,12 +3488,10 @@ EOF
def get_password
print "password: "
- system("stty", "-echo")
begin
- return gets.chop
+ return _noecho(&:gets).chomp
ensure
- system("stty", "echo")
- print "\n"
+ puts
end
end
@@ -3546,7 +3544,9 @@ EOF
imap = Net::IMAP.new($host, :port => $port, :ssl => $ssl)
begin
imap.starttls if $starttls
- password = get_password
+ class << password = method(:get_password)
+ alias to_str call
+ end
imap.authenticate($auth, $user, password)
while true
cmd, *args = get_command