wok-6.x rev 16777
Add ruby-ncurses
author | Paul Issott <paul@slitaz.org> |
---|---|
date | Sun Jun 22 16:35:17 2014 +0100 (2014-06-22) |
parents | 313b384e2a06 |
children | 08fef135770f |
files | ruby-ncurses/receipt ruby-ncurses/stuff/STR2CSTR-deprecated.patch ruby-ncurses/stuff/Werror-format-security.patch ruby-ncurses/stuff/ruby-ncurses-fix-missing-tz-prototypes.patch |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/ruby-ncurses/receipt Sun Jun 22 16:35:17 2014 +0100 1.3 @@ -0,0 +1,33 @@ 1.4 +# SliTaz package receipt. 1.5 + 1.6 +PACKAGE="ruby-ncurses" 1.7 +VERSION="1.3.1" 1.8 +CATEGORY="development" 1.9 +SHORT_DESC="Ruby extension for the ncurses C library." 1.10 +MAINTAINER="paul@slitaz.org" 1.11 +DEPENDS="ruby ncurses" 1.12 +BUILD_DEPENDS="ruby-dev ncurses-dev" 1.13 +TARBALL="$PACKAGE-$VERSION.tar.bz2" 1.14 +SOURCE="ncurses-ruby" 1.15 +WEB_SITE="http://pkgs.fedoraproject.org/repo/pkgs/ruby-ncurses/" 1.16 +WGET_URL="http://pkgs.fedoraproject.org/repo/pkgs/ruby-ncurses/ncurses-ruby-1.3.1.tar.bz2/63fd3d09a51cdd745e1ed37f85621ea2/ncurses-ruby-1.3.1.tar.bz2" 1.17 + 1.18 +# Rules to configure and make the package. 1.19 +compile_rules() 1.20 +{ 1.21 + cd $src 1.22 + # use fedora patches 1.23 + patch -i ../../stuff/STR2CSTR-deprecated.patch 1.24 + patch -i ../../stuff/ruby-ncurses-fix-missing-tz-prototypes.patch 1.25 + ruby extconf.rb 1.26 + make 1.27 + make DESTDIR=$DESTDIR install 1.28 +} 1.29 + 1.30 +# Rules to gen a SliTaz package suitable for Tazpkg. 1.31 +genpkg_rules() 1.32 +{ 1.33 + mkdir -p $fs/usr 1.34 + cp -a $install/usr/lib $fs/usr 1.35 +} 1.36 +
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 2.2 +++ b/ruby-ncurses/stuff/STR2CSTR-deprecated.patch Sun Jun 22 16:35:17 2014 +0100 2.3 @@ -0,0 +1,320 @@ 2.4 +diff -Naur ncurses-ruby-1.3.1/form_wrap.c ncurses-ruby-1.3.1.p/form_wrap.c 2.5 +--- ncurses-ruby-1.3.1/form_wrap.c 2011-05-31 01:41:46.000000000 +0200 2.6 ++++ ncurses-ruby-1.3.1.p/form_wrap.c 2013-03-14 14:38:21.097682379 +0100 2.7 +@@ -625,7 +625,8 @@ 2.8 + char** list = ALLOC_N(char*, n+1); 2.9 + int i; 2.10 + for (i = 0; i < n; i++) { 2.11 +- list[i] = STR2CSTR(rb_ary_entry(arg3, (long)i)); 2.12 ++ VALUE tmp = rb_ary_entry(arg3, (long)i); 2.13 ++ list[i] = StringValuePtr(tmp); 2.14 + } 2.15 + list[n] = NULL; 2.16 + return INT2NUM(set_field_type(field, ftype, 2.17 +@@ -654,7 +655,7 @@ 2.18 + if (argc != 2) 2.19 + rb_raise(rb_eArgError, "TYPE_REGEXP requires one additional argument"); 2.20 + return INT2NUM(set_field_type(field, ftype, 2.21 +- STR2CSTR(arg3))); 2.22 ++ StringValuePtr(arg3))); 2.23 + } 2.24 + else if (ftype == TYPE_IPV4){ 2.25 + if (argc != 1) 2.26 +@@ -742,7 +743,7 @@ 2.27 + */ 2.28 + static VALUE rbncurs_c_set_field_buffer(VALUE rb_field, VALUE buf, VALUE value) { 2.29 + FIELD* field = get_field(rb_field); 2.30 +- return INT2NUM(set_field_buffer(field, NUM2INT(buf), STR2CSTR(value))); 2.31 ++ return INT2NUM(set_field_buffer(field, NUM2INT(buf), StringValuePtr(value))); 2.32 + } 2.33 + static VALUE rbncurs_m_set_field_buffer(VALUE dummy, VALUE rb_field, VALUE buf, VALUE value) 2.34 + { return rbncurs_c_set_field_buffer(rb_field, buf, value); } 2.35 +@@ -1052,7 +1053,7 @@ 2.36 + { return rbncurs_c_form_request_name(request); } 2.37 + 2.38 + static VALUE rbncurs_c_form_request_by_name(VALUE name) { 2.39 +- return INT2NUM(form_request_by_name(STR2CSTR(name))); 2.40 ++ return INT2NUM(form_request_by_name(StringValuePtr(name))); 2.41 + } 2.42 + static VALUE rbncurs_m_form_request_by_name(VALUE dummy, VALUE name) 2.43 + { return rbncurs_c_form_request_by_name(name); } 2.44 +diff -Naur ncurses-ruby-1.3.1/menu_wrap.c ncurses-ruby-1.3.1.p/menu_wrap.c 2.45 +--- ncurses-ruby-1.3.1/menu_wrap.c 2011-05-31 01:41:46.000000000 +0200 2.46 ++++ ncurses-ruby-1.3.1.p/menu_wrap.c 2013-03-14 14:39:37.016571464 +0100 2.47 +@@ -372,7 +372,7 @@ 2.48 + * Item creation/destruction functions - mitem_new(3X) man page 2.49 + */ 2.50 + static VALUE rbncurs_m_new_item(VALUE dummy, VALUE name, VALUE description) 2.51 +-{ return wrap_item(new_item(STR2CSTR(name), STR2CSTR(description))); } 2.52 ++{ return wrap_item(new_item(StringValuePtr(name), StringValuePtr(description))); } 2.53 + 2.54 + static VALUE rbncurs_c_free_item(VALUE rb_item) 2.55 + { 2.56 +@@ -670,7 +670,7 @@ 2.57 + 2.58 + static VALUE rbncurs_c_menu_request_by_name(VALUE name) 2.59 + { 2.60 +- return INT2NUM(menu_request_by_name(STR2CSTR(name))); 2.61 ++ return INT2NUM(menu_request_by_name(StringValuePtr(name))); 2.62 + } 2.63 + static VALUE rbncurs_m_menu_request_by_name(VALUE dummy, VALUE name) 2.64 + { return rbncurs_c_menu_request_by_name(name); } 2.65 +@@ -909,7 +909,7 @@ 2.66 + static VALUE rbncurs_c_set_menu_mark(VALUE rb_menu, VALUE value) 2.67 + { 2.68 + MENU *menu = get_menu(rb_menu); 2.69 +- return INT2NUM(set_menu_mark(menu, STR2CSTR(value))); 2.70 ++ return INT2NUM(set_menu_mark(menu, StringValuePtr(value))); 2.71 + } 2.72 + static VALUE rbncurs_m_set_menu_mark(VALUE dummy, VALUE rb_field, VALUE value) 2.73 + { return rbncurs_c_set_menu_mark(rb_field, value); } 2.74 +@@ -929,7 +929,7 @@ 2.75 + static VALUE rbncurs_c_set_menu_pattern(VALUE rb_menu, VALUE pattern) 2.76 + { 2.77 + MENU *menu = get_menu(rb_menu); 2.78 +- return INT2NUM(set_menu_pattern(menu, STR2CSTR(pattern))); 2.79 ++ return INT2NUM(set_menu_pattern(menu, StringValuePtr(pattern))); 2.80 + } 2.81 + static VALUE rbncurs_m_set_menu_pattern(VALUE dummy, VALUE rb_menu, VALUE pattern) 2.82 + { return rbncurs_c_set_menu_pattern(rb_menu, pattern); } 2.83 +diff -Naur ncurses-ruby-1.3.1/ncurses_wrap.c ncurses-ruby-1.3.1.p/ncurses_wrap.c 2.84 +--- ncurses-ruby-1.3.1/ncurses_wrap.c 2011-05-31 01:41:46.000000000 +0200 2.85 ++++ ncurses-ruby-1.3.1.p/ncurses_wrap.c 2013-03-14 15:09:59.535783327 +0100 2.86 +@@ -475,7 +475,7 @@ 2.87 + static VALUE rbncurs_define_key(VALUE dummy, VALUE definition, VALUE keycode) 2.88 + { 2.89 + return INT2NUM(define_key((definition != Qnil) 2.90 +- ? STR2CSTR(definition) 2.91 ++ ? StringValuePtr(definition) 2.92 + : (char*)(NULL), 2.93 + NUM2INT(keycode))); 2.94 + } 2.95 +@@ -580,10 +580,10 @@ 2.96 + return return_value; 2.97 + } 2.98 + static VALUE rbncurs_addnstr(VALUE dummy, VALUE arg1, VALUE arg2) { 2.99 +- return INT2NUM(addnstr(STR2CSTR(arg1), NUM2INT(arg2))); 2.100 ++ return INT2NUM(addnstr(StringValuePtr(arg1), NUM2INT(arg2))); 2.101 + } 2.102 + static VALUE rbncurs_addstr(VALUE dummy, VALUE arg1) { 2.103 +- return INT2NUM(addstr(STR2CSTR(arg1))); 2.104 ++ return INT2NUM(addstr(StringValuePtr(arg1))); 2.105 + } 2.106 + static VALUE rbncurs_attroff(VALUE dummy, VALUE arg1) { 2.107 + return INT2NUM(attroff(NUM2ULONG(arg1))); 2.108 +@@ -1011,10 +1011,10 @@ 2.109 + return INT2NUM(insertln()); 2.110 + } 2.111 + static VALUE rbncurs_insnstr(VALUE dummy, VALUE arg1, VALUE arg2) { 2.112 +- return INT2NUM(insnstr(STR2CSTR(arg1), NUM2INT(arg2))); 2.113 ++ return INT2NUM(insnstr(StringValuePtr(arg1), NUM2INT(arg2))); 2.114 + } 2.115 + static VALUE rbncurs_insstr(VALUE dummy, VALUE arg1) { 2.116 +- return INT2NUM(insstr(STR2CSTR(arg1))); 2.117 ++ return INT2NUM(insstr(StringValuePtr(arg1))); 2.118 + } 2.119 + #ifdef HAVE_INTRFLUSH 2.120 + static VALUE rbncurs_intrflush(VALUE dummy, VALUE arg1, VALUE arg2) { 2.121 +@@ -1070,10 +1070,10 @@ 2.122 + return return_value; 2.123 + } 2.124 + static VALUE rbncurs_mvaddnstr(VALUE dummy, VALUE arg1, VALUE arg2, VALUE arg3, VALUE arg4) { 2.125 +- return INT2NUM(mvaddnstr(NUM2INT(arg1), NUM2INT(arg2), STR2CSTR(arg3), NUM2INT(arg4))); 2.126 ++ return INT2NUM(mvaddnstr(NUM2INT(arg1), NUM2INT(arg2), StringValuePtr(arg3), NUM2INT(arg4))); 2.127 + } 2.128 + static VALUE rbncurs_mvaddstr(VALUE dummy, VALUE arg1, VALUE arg2, VALUE arg3) { 2.129 +- return INT2NUM(mvaddstr(NUM2INT(arg1), NUM2INT(arg2), STR2CSTR(arg3))); 2.130 ++ return INT2NUM(mvaddstr(NUM2INT(arg1), NUM2INT(arg2), StringValuePtr(arg3))); 2.131 + } 2.132 + #ifdef HAVE_MVCHGAT 2.133 + static VALUE rbncurs_mvchgat(VALUE dummy, VALUE arg1, VALUE arg2, VALUE arg3, VALUE arg4, VALUE arg5, VALUE arg6) { 2.134 +@@ -1106,10 +1106,10 @@ 2.135 + return INT2NUM(mvinsch(NUM2INT(arg1), NUM2INT(arg2), NUM2ULONG(arg3))); 2.136 + } 2.137 + static VALUE rbncurs_mvinsnstr(VALUE dummy, VALUE arg1, VALUE arg2, VALUE arg3, VALUE arg4) { 2.138 +- return INT2NUM(mvinsnstr(NUM2INT(arg1), NUM2INT(arg2), STR2CSTR(arg3), NUM2INT(arg4))); 2.139 ++ return INT2NUM(mvinsnstr(NUM2INT(arg1), NUM2INT(arg2), StringValuePtr(arg3), NUM2INT(arg4))); 2.140 + } 2.141 + static VALUE rbncurs_mvinsstr(VALUE dummy, VALUE arg1, VALUE arg2, VALUE arg3) { 2.142 +- return INT2NUM(mvinsstr(NUM2INT(arg1), NUM2INT(arg2), STR2CSTR(arg3))); 2.143 ++ return INT2NUM(mvinsstr(NUM2INT(arg1), NUM2INT(arg2), StringValuePtr(arg3))); 2.144 + } 2.145 + #ifdef HAVE_MVVLINE 2.146 + static VALUE rbncurs_mvvline(VALUE dummy, VALUE arg1, VALUE arg2, VALUE arg3, VALUE arg4) { 2.147 +@@ -1137,10 +1137,10 @@ 2.148 + return return_value; 2.149 + } 2.150 + static VALUE rbncurs_mvwaddnstr(VALUE dummy, VALUE arg1, VALUE arg2, VALUE arg3, VALUE arg4, VALUE arg5) { 2.151 +- return INT2NUM(mvwaddnstr(get_window(arg1), NUM2INT(arg2), NUM2INT(arg3), STR2CSTR(arg4), NUM2INT(arg5))); 2.152 ++ return INT2NUM(mvwaddnstr(get_window(arg1), NUM2INT(arg2), NUM2INT(arg3), StringValuePtr(arg4), NUM2INT(arg5))); 2.153 + } 2.154 + static VALUE rbncurs_mvwaddstr(VALUE dummy, VALUE arg1, VALUE arg2, VALUE arg3, VALUE arg4) { 2.155 +- return INT2NUM(mvwaddstr(get_window(arg1), NUM2INT(arg2), NUM2INT(arg3), STR2CSTR(arg4))); 2.156 ++ return INT2NUM(mvwaddstr(get_window(arg1), NUM2INT(arg2), NUM2INT(arg3), StringValuePtr(arg4))); 2.157 + } 2.158 + #ifdef HAVE_MVWCHGAT 2.159 + static VALUE rbncurs_mvwchgat(VALUE dummy, VALUE arg1, VALUE arg2, VALUE arg3, VALUE arg4, VALUE arg5, VALUE arg6, VALUE arg7) { 2.160 +@@ -1171,10 +1171,10 @@ 2.161 + return INT2NUM(mvwinsch(get_window(arg1), NUM2INT(arg2), NUM2INT(arg3), NUM2ULONG(arg4))); 2.162 + } 2.163 + static VALUE rbncurs_mvwinsnstr(VALUE dummy, VALUE arg1, VALUE arg2, VALUE arg3, VALUE arg4, VALUE arg5) { 2.164 +- return INT2NUM(mvwinsnstr(get_window(arg1), NUM2INT(arg2), NUM2INT(arg3), STR2CSTR(arg4), NUM2INT(arg5))); 2.165 ++ return INT2NUM(mvwinsnstr(get_window(arg1), NUM2INT(arg2), NUM2INT(arg3), StringValuePtr(arg4), NUM2INT(arg5))); 2.166 + } 2.167 + static VALUE rbncurs_mvwinsstr(VALUE dummy, VALUE arg1, VALUE arg2, VALUE arg3, VALUE arg4) { 2.168 +- return INT2NUM(mvwinsstr(get_window(arg1), NUM2INT(arg2), NUM2INT(arg3), STR2CSTR(arg4))); 2.169 ++ return INT2NUM(mvwinsstr(get_window(arg1), NUM2INT(arg2), NUM2INT(arg3), StringValuePtr(arg4))); 2.170 + } 2.171 + #ifdef HAVE_MVWVLINE 2.172 + static VALUE rbncurs_mvwvline(VALUE dummy, VALUE arg1, VALUE arg2, VALUE arg3, VALUE arg4, VALUE arg5) { 2.173 +@@ -1238,7 +1238,7 @@ 2.174 + } 2.175 + #ifdef HAVE_PUTP 2.176 + static VALUE rbncurs_putp(VALUE dummy, VALUE arg1) { 2.177 +- return INT2NUM(putp(STR2CSTR(arg1))); 2.178 ++ return INT2NUM(putp(StringValuePtr(arg1))); 2.179 + } 2.180 + #endif 2.181 + #ifdef HAVE_QIFLUSH 2.182 +@@ -1271,12 +1271,12 @@ 2.183 + } 2.184 + #ifdef HAVE_SCR_DUMP 2.185 + static VALUE rbncurs_scr_dump(VALUE dummy, VALUE arg1) { 2.186 +- return INT2NUM(scr_dump(STR2CSTR(arg1))); 2.187 ++ return INT2NUM(scr_dump(StringValuePtr(arg1))); 2.188 + } 2.189 + #endif 2.190 + #ifdef HAVE_SCR_INIT 2.191 + static VALUE rbncurs_scr_init(VALUE dummy, VALUE arg1) { 2.192 +- return INT2NUM(scr_init(STR2CSTR(arg1))); 2.193 ++ return INT2NUM(scr_init(StringValuePtr(arg1))); 2.194 + } 2.195 + #endif 2.196 + static VALUE rbncurs_scrl(VALUE dummy, VALUE arg1) { 2.197 +@@ -1290,12 +1290,12 @@ 2.198 + } 2.199 + #ifdef HAVE_SCR_RESTORE 2.200 + static VALUE rbncurs_scr_restore(VALUE dummy, VALUE arg1) { 2.201 +- return INT2NUM(scr_restore(STR2CSTR(arg1))); 2.202 ++ return INT2NUM(scr_restore(StringValuePtr(arg1))); 2.203 + } 2.204 + #endif 2.205 + #ifdef HAVE_SCR_SET 2.206 + static VALUE rbncurs_scr_set(VALUE dummy, VALUE arg1) { 2.207 +- return INT2NUM(scr_set(STR2CSTR(arg1))); 2.208 ++ return INT2NUM(scr_set(StringValuePtr(arg1))); 2.209 + } 2.210 + #endif 2.211 + static VALUE rbncurs_setscrreg(VALUE dummy, VALUE arg1, VALUE arg2) { 2.212 +@@ -1352,7 +1352,7 @@ 2.213 + return INT2NUM(slk_restore()); 2.214 + } 2.215 + static VALUE rbncurs_slk_set(VALUE dummy, VALUE arg1, VALUE arg2, VALUE arg3) { 2.216 +- return INT2NUM(slk_set(NUM2INT(arg1), STR2CSTR(arg2), NUM2INT(arg3))); 2.217 ++ return INT2NUM(slk_set(NUM2INT(arg1), StringValuePtr(arg2), NUM2INT(arg3))); 2.218 + } 2.219 + static VALUE rbncurs_slk_touch(VALUE dummy) { 2.220 + return INT2NUM(slk_touch()); 2.221 +@@ -1383,17 +1383,17 @@ 2.222 + } 2.223 + #ifdef HAVE_TIGETFLAG 2.224 + static VALUE rbncurs_tigetflag(VALUE dummy, VALUE arg1) { 2.225 +- return INT2NUM(tigetflag(STR2CSTR(arg1))); 2.226 ++ return INT2NUM(tigetflag(StringValuePtr(arg1))); 2.227 + } 2.228 + #endif 2.229 + #ifdef HAVE_TIGETNUM 2.230 + static VALUE rbncurs_tigetnum(VALUE dummy, VALUE arg1) { 2.231 +- return INT2NUM(tigetnum(STR2CSTR(arg1))); 2.232 ++ return INT2NUM(tigetnum(StringValuePtr(arg1))); 2.233 + } 2.234 + #endif 2.235 + #ifdef HAVE_TIGETSTR 2.236 + static VALUE rbncurs_tigetstr(VALUE dummy, VALUE arg1) { 2.237 +- return rb_str_new2(tigetstr(STR2CSTR(arg1))); 2.238 ++ return rb_str_new2(tigetstr(StringValuePtr(arg1))); 2.239 + } 2.240 + #endif 2.241 + static VALUE rbncurs_timeout(VALUE dummy, VALUE arg1) { 2.242 +@@ -1438,10 +1438,10 @@ 2.243 + return return_value; 2.244 + } 2.245 + static VALUE rbncurs_waddnstr(VALUE dummy, VALUE arg1, VALUE arg2, VALUE arg3) { 2.246 +- return INT2NUM(waddnstr(get_window(arg1), STR2CSTR(arg2), NUM2INT(arg3))); 2.247 ++ return INT2NUM(waddnstr(get_window(arg1), StringValuePtr(arg2), NUM2INT(arg3))); 2.248 + } 2.249 + static VALUE rbncurs_waddstr(VALUE dummy, VALUE arg1, VALUE arg2) { 2.250 +- return INT2NUM(waddstr(get_window(arg1), STR2CSTR(arg2))); 2.251 ++ return INT2NUM(waddstr(get_window(arg1), StringValuePtr(arg2))); 2.252 + } 2.253 + static VALUE rbncurs_wattron(VALUE dummy, VALUE arg1, VALUE arg2) { 2.254 + return INT2NUM(wattron(get_window(arg1), NUM2INT(arg2))); 2.255 +@@ -1514,10 +1514,10 @@ 2.256 + return INT2NUM(winsertln(get_window(arg1))); 2.257 + } 2.258 + static VALUE rbncurs_winsnstr(VALUE dummy, VALUE arg1, VALUE arg2, VALUE arg3) { 2.259 +- return INT2NUM(winsnstr(get_window(arg1), STR2CSTR(arg2), NUM2INT(arg3))); 2.260 ++ return INT2NUM(winsnstr(get_window(arg1), StringValuePtr(arg2), NUM2INT(arg3))); 2.261 + } 2.262 + static VALUE rbncurs_winsstr(VALUE dummy, VALUE arg1, VALUE arg2) { 2.263 +- return INT2NUM(winsstr(get_window(arg1), STR2CSTR(arg2))); 2.264 ++ return INT2NUM(winsstr(get_window(arg1), StringValuePtr(arg2))); 2.265 + } 2.266 + static VALUE rbncurs_wmove(VALUE dummy, VALUE arg1, VALUE arg2, VALUE arg3) { 2.267 + return INT2NUM(wmove(get_window(arg1), NUM2INT(arg2), NUM2INT(arg3))); 2.268 +@@ -1619,7 +1619,7 @@ 2.269 + { return rb_str_new2(unctrl(NUM2ULONG(ch))); } 2.270 + static VALUE rbncurs_newterm(VALUE dummy, VALUE rb_type, VALUE rb_outfd, VALUE rb_infd) 2.271 + { 2.272 +- char * type = (rb_type == Qnil) ? (char*)0 : STR2CSTR(rb_type); 2.273 ++ char * type = (rb_type == Qnil) ? (char*)0 : StringValuePtr(rb_type); 2.274 + int outfd = NUM2INT(rb_funcall(rb_outfd, rb_intern("to_i"), 0)); 2.275 + int infd = NUM2INT(rb_funcall(rb_infd, rb_intern("to_i"), 0)); 2.276 + VALUE rb_screen = 2.277 +@@ -2277,7 +2277,7 @@ 2.278 + #ifdef HAVE_MCPRINT 2.279 + static VALUE rbncurs_mcprint(VALUE dummy, VALUE data, VALUE len) 2.280 + { 2.281 +- return INT2NUM(mcprint(STR2CSTR(data), NUM2INT(len))); 2.282 ++ return INT2NUM(mcprint(StringValuePtr(data), NUM2INT(len))); 2.283 + } 2.284 + #endif 2.285 + #ifdef HAVE_HAS_KEY 2.286 +@@ -2378,9 +2378,9 @@ 2.287 + " and a String"); 2.288 + return Qnil; 2.289 + } 2.290 ++ VALUE tmp = rb_funcall3(rb_mKernel, rb_intern("sprintf"), argc-1, argv + 1); 2.291 + wprintw(get_window(argv[0]), "%s", 2.292 +- STR2CSTR(rb_funcall3(rb_mKernel, rb_intern("sprintf"), argc-1, 2.293 +- argv + 1))); 2.294 ++ StringValuePtr(tmp)); 2.295 + return Qnil; 2.296 + } 2.297 + 2.298 +@@ -2394,14 +2394,14 @@ 2.299 + return Qnil; 2.300 + } 2.301 + _tracef("%s", 2.302 +- STR2CSTR(rb_funcall3(rb_mKernel, rb_intern("sprintf"), argc, argv))); 2.303 ++ StringValuePtr(funcall3(rb_mKernel, rb_intern("sprintf"), argc, argv))); 2.304 + return Qnil; 2.305 + } 2.306 + #endif /* HAVE__TRACEF */ 2.307 + #ifdef HAVE__TRACEDUMP 2.308 + static VALUE rbncurs_tracedump(VALUE dummy, VALUE rb_label, VALUE rb_win) 2.309 + { 2.310 +- _tracedump(STR2CSTR(rb_label), get_window(rb_win)); 2.311 ++ _tracedump(StringValuePtr(rb_label), get_window(rb_win)); 2.312 + } 2.313 + #endif /* HAVE__TRACEDUMP */ 2.314 + #ifdef HAVE__TRACEATTR 2.315 +@@ -2706,7 +2706,7 @@ 2.316 + 2.317 + #ifdef HAVE_LOCALE_H 2.318 + static VALUE rbncurs_setlocale(VALUE dummy, VALUE category, VALUE locale) 2.319 +-{ return rb_str_new2(setlocale(NUM2INT(category), STR2CSTR(locale)));} 2.320 ++{ return rb_str_new2(setlocale(NUM2INT(category), StringValuePtr(locale)));} 2.321 + #endif 2.322 + 2.323 + static void init_safe_functions(void)
3.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 3.2 +++ b/ruby-ncurses/stuff/Werror-format-security.patch Sun Jun 22 16:35:17 2014 +0100 3.3 @@ -0,0 +1,12 @@ 3.4 +diff -Naur ncurses-ruby-1.3.1/form_wrap.c ncurses-ruby-1.3.1.format/form_wrap.c 3.5 +--- ncurses-ruby-1.3.1/form_wrap.c 2014-02-03 11:31:39.049867878 +0100 3.6 ++++ ncurses-ruby-1.3.1.format/form_wrap.c 2014-02-03 11:44:37.001008654 +0100 3.7 +@@ -1132,7 +1132,7 @@ 3.8 + char msg[500]; 3.9 + snprintf(msg, 500, "The validation functions for this field type need %d additional arguments.",(int)(NUM2INT(argc)-1)); 3.10 + msg[499]=0; 3.11 +- rb_raise(rb_eArgError, msg); 3.12 ++ rb_raise(rb_eArgError, "%s", msg); 3.13 + } 3.14 + } 3.15 + }
4.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 4.2 +++ b/ruby-ncurses/stuff/ruby-ncurses-fix-missing-tz-prototypes.patch Sun Jun 22 16:35:17 2014 +0100 4.3 @@ -0,0 +1,34 @@ 4.4 +From d3e59724601b2aabb231f2e12e16ebf00ba79ab1 Mon Sep 17 00:00:00 2001 4.5 +From: Caleb Marble <cm@marblenix.com> 4.6 +Date: Sun, 2 Mar 2014 13:53:05 -0600 4.7 +Subject: [PATCH] modified: ext/ncurses/ncurses_wrap.h 4.8 +MIME-Version: 1.0 4.9 +Content-Type: text/plain; charset=UTF-8 4.10 +Content-Transfer-Encoding: 8bit 4.11 + 4.12 +Fixes the following compiler error: 4.13 + 4.14 +ext/ncurses/ncurses_wrap.c: In function ‘rbncurshelper_nonblocking_wgetch’: 4.15 +ext/ncurses/ncurses_wrap.c:807:12: error: variable ‘tz’ has initializer but incomplete type 4.16 + struct timezone tz = {0,0}; 4.17 + 4.18 +Also closes #6 4.19 +--- 4.20 + ncurses_wrap.h | 1 + 4.21 + 1 file changed, 1 insertion(+) 4.22 + 4.23 +diff --git a/ncurses_wrap.h b/ncurses_wrap.h 4.24 +index 85da4f8..92583c0 100644 4.25 +--- a/ncurses_wrap.h 4.26 ++++ b/ncurses_wrap.h 4.27 +@@ -84,6 +84,7 @@ int close(int); 4.28 + #endif 4.29 + 4.30 + #include <ruby.h> 4.31 ++#include <sys/time.h> 4.32 + 4.33 + extern VALUE mNcurses; /* module Ncurses */ 4.34 + extern VALUE cWINDOW; /* class Ncurses::WINDOW */ 4.35 +-- 4.36 +1.9.1 4.37 +