Overdorf, Sam wrote: > So can we change the Ruby Library? > Sam Overdorf > Looking at the source code it doesn't look like it would be too hard to change the names of the methods that are not standard Curses. I don't know how much it would break though. > -----Original Message----- > From: Michael W. Ryder [mailto:_mwryder / worldnet.att.net] > Sent: Wednesday, September 27, 2006 5:15 PM > To: ruby-talk ML > Subject: Re: Curses > > Eero Saynatkari wrote: >> On 2006.09.28 07:35, Eero Saynatkari wrote: >>> On 2006.09.28 07:30, Michael W. Ryder wrote: >>>> Eero Saynatkari wrote: >>>>> On 2006.09.28 04:25, Michael W. Ryder wrote: >>>>>> Eero Saynatkari wrote: >>>>>>> On 2006.09.27 15:45, Michael W. Ryder wrote: >>>>>>>> Eero Saynatkari wrote: >>>>>>>>> On 2006.09.27 10:35, Michael W. Ryder wrote: >>>>>>>>>> Overdorf, Sam wrote: >>>>>>>>>>> Is anyone using the Curses class? >>>>>>>>>>> Is anyone maintaining the Curses class? >>>>>>>>>>> >>>>>>>>>>> It looks like the Curses function move(y,x) is calling the > wrong >>>>>>>>>>> library >>>>>>>>>>> routine. >>>>>>>>>>> >>>>>>>>>>> It is calling the window move function and not the cursor > positioning >>>>>>>>>>> function. >>>>>>>>>>> >>>>>>>>>>> Thanks, >>>>>>>>>>> Sam Overdorf >>>>>>>>>>> >>>>>>>>>> According to O'Reilly's Programming with Curses "move() is > really a >>>>>>>>>> #define macro for wmove() which takes a WINDOW* as its first >>>>>>>>>> argument" So it appears that the library is working correctly. >>>>>>>>> #setpos x, y >>>>>>>> What flavor of Curses is this from? >>>>>>> This one: >>>>>>> >>>>>>> > http://www.ruby-doc.org/stdlib/libdoc/curses/rdoc/classes/Curses.html >>>>>> The source code shows that it uses Curses' move() function which > is a >>>>>> macro to wmove() as I described above. >>>>> No, move() moves the cursor (wmove() moves a specified window's > cursor). >>>>> Confusingly, Ruby's Curses bindings also have a .move which > actually >>>>> uses mvwin() which moves the window itself. >>>> ALL input/output in Curses is done with windows. The only > difference >>>> between move() and wmove() is that move() passes the current window > to >>>> the wmove() function. When you first start Curses it creates a > window >>>> and sets it as the current window. Unless you create another window > and >>>> change to it this window is used for all I/O. >>> Which is exactly what I said. Please review the Curses documentation. >>> >>> http://www.die.net/doc/linux/man/man3/move.3.html >>> http://www.die.net/doc/linux/man/man3/mvwin.3.html >> >> And yes, Ruby's Curses.move is not the same as move(). Curses.move >> is the same as mvwin(). Curses.setpos is the same as move(). >> >> > Having programmed using Curses with C for many years I am familiar with > how Curses works. As I kept pointing out move() and wmove() are the > same function. Why the Ruby library uses different names for the > functions I do not know. The mvwin() command in original Curses moves > the top left corner of the window, not the cursor position as one would > expect with a name like Curses.move. Personally, if I were using the > library I would have to rename all of the functions to their proper > Curses representation, not some random name like seems to have been > used. The current names makes it impossible to use available programs > and documentation with the Ruby library. >