Sonntag, 21. Dezember 2008

Ruby 1.9.1 Preview2 selberbacken

Im Moment spiele ich mal wieder mit diversen Skriptsprachen herum von denen eine Ruby ist. Leider läßt sich der aktuelle Preview nur mit ein paar Umwegen unter OpenSolaris backen. Darum hier ein kleines Patch damit Vorgang durchläuft. Ich übernehme wie immer keine Verantwortung für eventuelle Probleme ^^.

--- ext/curses/curses.c Tue Nov 11 12:00:39 2008
+++ ext/curses/curses.c Sun Dec 21 17:00:44 2008
@@ -410,6 +410,9 @@
static VALUE
curses_getch(VALUE obj)
{
+#if defined(__sun)
+ eucwidth_t wp;
+#endif
int c;

rb_read_check(stdin);
@@ -416,7 +419,12 @@
curses_stdscr();
c = getch();
if (c == EOF) return Qnil;
+#if defined( __sun)
+ getwidth(&wp);
+ if (ISPRINT(c, wp)) {
+#else
if (ISPRINT(c)) {
+#endif
char ch = (char)c;

return rb_locale_str_new(&ch, 1);
@@ -1105,12 +1113,20 @@
{
struct windata *winp;
int c;
+#if defined(__sun)
+ eucwidth_t wp;
+#endif

rb_read_check(stdin);
GetWINDOW(obj, winp);
c = wgetch(winp->window);
if (c == EOF) return Qnil;
+#if defined(__sun)
+ getwidth(&wp);
+ if (ISPRINT(c, wp)) {
+#else
if (ISPRINT(c)) {
+#endif
char ch = (char)c;

return rb_locale_str_new(&ch, 1);

Keine Kommentare: