[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Ncurses - how do you get mousemask working?

Richard Lyman

12/10/2005 8:52:00 PM

I've tried... and I've looked around.

A few other projects have the line with 'Ncurses::mousemask...' in
them - but it's always commented out... like they couldn't get it
working either.

Is this feature not functional?

I've currently got 'Ncurses::mousemask(Ncurses::ALL_MOUSE_EVENTS,[])'
and the error 'wrong number of arguments (2 for 1)' and as soon as I
drop the second arg I get the error 'oldmask (2nd argument) must be an
empty Array' which is kinda bothersome... :-)

Any hints? Tobias?

-Rich


4 Answers

Paul Duncan

12/12/2005 9:36:00 PM

0

* Richard Lyman (lymans@gmail.com) wrote:
> I've tried... and I've looked around.
>
> A few other projects have the line with 'Ncurses::mousemask...' in
> them - but it's always commented out... like they couldn't get it
> working either.

They couldn't

> Is this feature not functional?

It's a bug in the method definition; see below.

> I've currently got 'Ncurses::mousemask(Ncurses::ALL_MOUSE_EVENTS,[])'
> and the error 'wrong number of arguments (2 for 1)' and as soon as I
> drop the second arg I get the error 'oldmask (2nd argument) must be an
> empty Array' which is kinda bothersome... :-)

It's a bug in the library. It's been there forever (I came across it
when I was trying to add mouse support to Raggle, then just forgot to
send a patch upstream).

> Any hints? Tobias?

Apply this patch (also attached):

diff -ur ncurses-ruby-0.9.2/ncurses_wrap.c ncurses-ruby-0.9.2-mousemask/ncurses_wrap.c
--- ncurses-ruby-0.9.2/ncurses_wrap.c 2005-12-12 16:33:00.000000000 -0500
+++ ncurses-ruby-0.9.2-mousemask/ncurses_wrap.c 2005-02-26 19:22:13.000000000 -0500
@@ -2387,7 +2387,7 @@
NCFUNC(ungetmouse, 1);
#endif
#ifdef HAVE_MOUSEMASK
- NCFUNC(mousemask, 2);
+ NCFUNC(mousemask, 1);
#endif
#ifdef HAVE_WENCLOSE
rb_define_module_function(mNcurses, "wenclose?",


--
Paul Duncan <pabs@pablotron.org> pabs in #ruby-lang (OPN IRC)
http://www.pabl... OpenPGP Key ID: 0x82C29562

Paul Duncan

12/12/2005 9:44:00 PM

0

* Paul Duncan (pabs@pablotron.org) wrote:
> * Richard Lyman (lymans@gmail.com) wrote:
> > I've tried... and I've looked around.
> >
> > A few other projects have the line with 'Ncurses::mousemask...' in
> > them - but it's always commented out... like they couldn't get it
> > working either.
>
> They couldn't
>
> > Is this feature not functional?
>
> It's a bug in the method definition; see below.
>
> > I've currently got 'Ncurses::mousemask(Ncurses::ALL_MOUSE_EVENTS,[])'
> > and the error 'wrong number of arguments (2 for 1)' and as soon as I
> > drop the second arg I get the error 'oldmask (2nd argument) must be an
> > empty Array' which is kinda bothersome... :-)
>
> It's a bug in the library. It's been there forever (I came across it
> when I was trying to add mouse support to Raggle, then just forgot to
> send a patch upstream).
>
> > Any hints? Tobias?

Err, my patch is backwards... Here's the correct one (again, attached):

diff -ur ncurses-ruby-0.9.2/ncurses_wrap.c ncurses-ruby-0.9.2-mousemask_fix/ncurses_wrap.c
--- ncurses-ruby-0.9.2/ncurses_wrap.c 2005-02-26 19:22:13.000000000 -0500
+++ ncurses-ruby-0.9.2-mousemask_fix/ncurses_wrap.c 2005-12-12 16:42:11.000000000 -0500
@@ -2387,7 +2387,7 @@
NCFUNC(ungetmouse, 1);
#endif
#ifdef HAVE_MOUSEMASK
- NCFUNC(mousemask, 1);
+ NCFUNC(mousemask, 2);
#endif
#ifdef HAVE_WENCLOSE
rb_define_module_function(mNcurses, "wenclose?",

> Apply this patch (also attached):
>
> diff -ur ncurses-ruby-0.9.2/ncurses_wrap.c ncurses-ruby-0.9.2-mousemask/ncurses_wrap.c
> --- ncurses-ruby-0.9.2/ncurses_wrap.c 2005-12-12 16:33:00.000000000 -0500
> +++ ncurses-ruby-0.9.2-mousemask/ncurses_wrap.c 2005-02-26 19:22:13.000000000 -0500
> @@ -2387,7 +2387,7 @@
> NCFUNC(ungetmouse, 1);
> #endif
> #ifdef HAVE_MOUSEMASK
> - NCFUNC(mousemask, 2);
> + NCFUNC(mousemask, 1);
> #endif
> #ifdef HAVE_WENCLOSE
> rb_define_module_function(mNcurses, "wenclose?",
>
>
> --
> Paul Duncan <pabs@pablotron.org> pabs in #ruby-lang (OPN IRC)
> http://www.pabl... OpenPGP Key ID: 0x82C29562

> diff -ur ncurses-ruby-0.9.2/ncurses_wrap.c ncurses-ruby-0.9.2-mousemask/ncurses_wrap.c
> --- ncurses-ruby-0.9.2/ncurses_wrap.c 2005-12-12 16:33:00.000000000 -0500
> +++ ncurses-ruby-0.9.2-mousemask/ncurses_wrap.c 2005-02-26 19:22:13.000000000 -0500
> @@ -2387,7 +2387,7 @@
> NCFUNC(ungetmouse, 1);
> #endif
> #ifdef HAVE_MOUSEMASK
> - NCFUNC(mousemask, 2);
> + NCFUNC(mousemask, 1);
> #endif
> #ifdef HAVE_WENCLOSE
> rb_define_module_function(mNcurses, "wenclose?",




--
Paul Duncan <pabs@pablotron.org> pabs in #ruby-lang (OPN IRC)
http://www.pabl... OpenPGP Key ID: 0x82C29562

Richard Lyman

12/13/2005 6:13:00 PM

0

Thanks for the reply, but I think I'm going to move away from
ncurses... you can't get CTRL-<Arrow> to be unique can you? I haven't
found anywhere in the docs where it allows you to detect the CTRL key
on it's own.

If you can't, then that's the straw that breaks it.

Again - thanks for the reply.

-Rich


Thomas Dickey

12/14/2005 11:07:00 AM

0

Richard Lyman <lymans@gmail.com> wrote:
> Thanks for the reply, but I think I'm going to move away from
> ncurses... you can't get CTRL-<Arrow> to be unique can you? I haven't
> found anywhere in the docs where it allows you to detect the CTRL key
> on it's own.

That's a terminal-dependent feature. If the terminal supports it,
one can write a terminfo that describes it (as a function-key).
(n)curses supports up to 60 function keys (which you would probably
find too limiting ;-)

bye.

--
Thomas E. Dickey
http://invisible-...
ftp://invisible-...