[ruby-talk:00212] Re: Get character with no wait

From: Gabriel <gabriel@...>
Date: 1999-01-25 04:31:11 UTC
List: ruby-talk #212
That suppressed echo of input, but didn't solve the problem.
Here is my code snippet, where s is a socket object:

system 'stty -echo'
   loop do 
   	j = getc()
   	if j != nil
   		s.putc(j)
   	end
   	m = s.getc
   	if m != nil
   		putc(m)
   	end	
   end
                                                            


On Mon, Jan 25, 1999 at 01:17:07PM +0900, Yukihiro Matsumoto wrote:
> Hi.
> 
> In message "[ruby-talk:00210] Get character with no wait"
>     on 99/01/24, Gabriel <gabriel@devo.com> writes:
> 
> |What is the best way to do a getc without waiting; so I can try to grab
> |it in a loop where i am also sending characters (e.g. in an irc program,
> |where I am grabbing input from a socket while sending characters from
> |the console).  I'd rather not do it with threads in the interest of
> |portability, but if it's the best solution, I'd like to know.
> 
> I think the easiest way is to use stty, if you are on UNIX.
> 
>   begin
>     system 'stty -echo'
>     loop do
>       c = getc()
>       ...
>     end
>   ensure
>     system 'stty echo'
>   end
> 
> I believe this works also on cygwin32.
> 
>                                                 matz.
> 

In This Thread