From: Guillaume Marcais Date: 2006-10-10T12:01:10+09:00 Subject: Re: Curses Personally, in the recent curses program I wrote, I used ruby-ncurses. It has the disadvantage of not being in the standard library. On the other hand, it follows the C API very closely. Although documentation is lacking, the C man pages and the couple of example in the distribution are really all you need as the translation from the C api to Ruby is straight-forward and consistent. Don't take me wrong, more documentation and a separate more Ruby-esque API would be nice. It is just that given the almost 1-to-1 mapping between the two APIs, it was fairly easy to use the C documentation. I feel that incorporating ruby-ncurses to the standard library would be better than modifying Curses. My 2 cents, Guillaume. Le 9 oct. 06, � 21:10, Overdorf, Sam a �crit : > So how do I go about getting this changed for the Ruby Curses Library? > Sam Overdorf > > > -----Original Message----- > From: Overdorf, Sam [mailto:sam.overdorf@intel.com] > Sent: Thursday, September 28, 2006 5:39 PM > To: ruby-talk ML > Subject: Re: Curses > > That is always the $64,000 question. > > -----Original Message----- > From: Michael W. Ryder [mailto:_mwryder@worldnet.att.net] > Sent: Thursday, September 28, 2006 1:45 PM > To: ruby-talk ML > Subject: Re: Curses > > 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. >> > >