From: Paul Duncan Date: 2005-02-09T06:04:15+09:00 Subject: Re: [PATCH] add color_set support to curses.c --GoNsk6wemPQvBDov Content-Type: multipart/mixed; boundary="UfglEoIe/pm6TaqQ" Content-Disposition: inline --UfglEoIe/pm6TaqQ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable * Yukihiro Matsumoto (matz@ruby-lang.org) wrote: > Hi, >=20 > In message "Re: [PATCH] add color_set support to curses.c" > on Tue, 8 Feb 2005 03:36:30 +0900, Paul Duncan w= rites: >=20 > |I'm not sure why this is missing from the Curses binding, but the > |attached patch adds support for color_set to curses.c. >=20 > Do you know whether wcolor_set is available when USE_COLOR is defined? Err, USE_COLOR is defined in curses.c. If you're asking whether or not it's available in standard curses, here's what I got from the man page: PORTABILITY All these functions are supported in the XSI Curses standard, Issue 4. The standard defined the dedicated type for highlights, attr_t, which is not defined in SVr4 curses. The functions taking attr_t arguments are not supported under SVr4. Anyway, I think I see where you're going with this line of questions, so I went ahead and redid the patch so Curses::Window#color_set only exists if USE_COLOR is defined. Patch is attached. > matz. --=20 Paul Duncan OpenPGP Key ID: 0x82C29562 http://www.pablotron.org/ http://www.paulduncan.org/ --UfglEoIe/pm6TaqQ Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="ruby-1.8.2-curses_color_set-2.patch" Content-Transfer-Encoding: quoted-printable diff -ur ruby-1.8.2/ext/curses/curses.c ruby-1.8.2-curses_color_set/ext/cur= ses/curses.c --- ruby-1.8.2/ext/curses/curses.c 2003-12-10 03:26:33.000000000 -0500 +++ ruby-1.8.2-curses_color_set/ext/curses/curses.c 2005-02-08 16:01:52.000= 000000 -0500 @@ -1187,6 +1187,20 @@ #endif } =20 +#ifdef USE_COLOR +static VALUE +window_color_set(VALUE obj, VALUE col)=20 +{ + struct windata *winp; + int res; + + GetWINDOW(obj, winp); + res =3D wcolor_set(winp->window, NUM2INT(col), NULL); + return (res =3D=3D OK) ? Qtrue : Qfalse; + return Qfalse; +} +#endif /* USE_COLOR */ + static VALUE window_scroll(VALUE obj) { @@ -1463,6 +1477,9 @@ rb_define_method(cWindow, "box", window_box, -1); rb_define_method(cWindow, "move", window_move, 2); rb_define_method(cWindow, "setpos", window_setpos, 2); +#ifdef USE_COLOR + rb_define_method(cWindow, "color_set", window_color_set, 1); +#endif /* USE_COLOR */ rb_define_method(cWindow, "cury", window_cury, 0); rb_define_method(cWindow, "curx", window_curx, 0); rb_define_method(cWindow, "maxy", window_maxy, 0); --UfglEoIe/pm6TaqQ-- --GoNsk6wemPQvBDov Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.5 (GNU/Linux) iD8DBQFCCSlezdlT34LClWIRAkJeAKCNEETeWx5uJLee9Iv4l2zWd6eVrQCfccEp j5YwVR7AcC+C7YCnOOqMyVU= =Z1Nt -----END PGP SIGNATURE----- --GoNsk6wemPQvBDov--