James Gray
5/7/2005 11:22:00 PM
On May 7, 2005, at 4:48 PM, Ryan Leavengood wrote:
> Here is a Windows version that I just wrote:
>
> require 'Win32API'
>
> @getch = Win32API.new("crtdll", "_getch", [], 'L')
>
> def ask_password(prompt)
> print prompt
> pass = ''
> while ((c = @getch.call) != 13)
> pass << c.chr
> end
> pass
> end
>
> pass = ask_password("Please give me your password: ")
> puts
> puts "Got '#{pass}'"
> __END__
>
> There may be a better way, but this works. James, feel free to put
> this in HighLine, just give me the credit :)
I have a question about this solution. You're stopping when you see
a carriage-return above, but what does Windows really tact onto the
end of the line? Is it a carriage return line feed pair, as I
suspect? Put another way, if you changed the above from 13 to 10,
would it still work?
Thanks.
James Edward Gray II
P.S. I'm not a Window's user. That should be painfully obvious by
now, but I just wanted to explain why I'm asking so many dumb
questions. :)