ruby-changes:4922
From: ko1@a...
Date: Wed, 14 May 2008 17:17:04 +0900 (JST)
Subject: [ruby-changes:4922] usa - Ruby:r16415 (ruby_1_8): * ext/tk/tkutil/extronf.rb: check stdndup() because it's not standard
usa 2008-05-14 17:16:51 +0900 (Wed, 14 May 2008) New Revision: 16415 Modified files: branches/ruby_1_8/ChangeLog branches/ruby_1_8/ext/tk/tkutil/extconf.rb branches/ruby_1_8/ext/tk/tkutil/tkutil.c branches/ruby_1_8/version.h Log: * ext/tk/tkutil/extronf.rb: check stdndup() because it's not standard function of C. * ext/tk/tkutil/tkutil.c (cbsubst_table_setup): use malloc() and strncpy() instead of strndup() if not available. http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ChangeLog?r1=16415&r2=16414&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ext/tk/tkutil/extconf.rb?r1=16415&r2=16414&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/version.h?r1=16415&r2=16414&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ext/tk/tkutil/tkutil.c?r1=16415&r2=16414&diff_format=u Index: ruby_1_8/ext/tk/tkutil/extconf.rb =================================================================== --- ruby_1_8/ext/tk/tkutil/extconf.rb (revision 16414) +++ ruby_1_8/ext/tk/tkutil/extconf.rb (revision 16415) @@ -8,5 +8,6 @@ if has_tk require 'mkmf' have_func("rb_obj_instance_exec", "ruby.h") + have_func("strndup", "string.h") create_makefile('tkutil') end Index: ruby_1_8/ext/tk/tkutil/tkutil.c =================================================================== --- ruby_1_8/ext/tk/tkutil/tkutil.c (revision 16414) +++ ruby_1_8/ext/tk/tkutil/tkutil.c (revision 16415) @@ -1522,8 +1522,17 @@ chr = (unsigned char)(0x80 + idx); subst_inf->keylen[chr] = RSTRING_LEN(RARRAY_PTR(inf)[0]); +#if HAVE_STRNDUP subst_inf->key[chr] = strndup(RSTRING_PTR(RARRAY_PTR(inf)[0]), RSTRING_LEN(RARRAY_PTR(inf)[0])); +#else + subst_inf->key[chr] = malloc(RSTRING_LEN(RARRAY_PTR(inf)[0]) + 1); + if (subst_inf->key[chr]) { + strncpy(subst_inf->key[chr], RSTRING_PTR(RARRAY_PTR(inf)[0]), + RSTRING_LEN(RARRAY_PTR(inf)[0]) + 1); + subst_inf->key[chr][RSTRING_LEN(RARRAY_PTR(inf)[0])] = '\0'; + } +#endif if (TYPE(RARRAY_PTR(inf)[1]) == T_STRING) { subst_inf->type[chr] = *(RSTRING_PTR(RARRAY_PTR(inf)[1])); } else { Index: ruby_1_8/ChangeLog =================================================================== --- ruby_1_8/ChangeLog (revision 16414) +++ ruby_1_8/ChangeLog (revision 16415) @@ -1,3 +1,11 @@ +Wed May 14 17:15:11 2008 NAKAMURA Usaku <usa@r...> + + * ext/tk/tkutil/extronf.rb: check stdndup() because it's not standard + function of C. + + * ext/tk/tkutil/tkutil.c (cbsubst_table_setup): use malloc() and + strncpy() instead of strndup() if not available. + Wed May 14 09:52:02 2008 Hidetoshi NAGAI <nagai@a...> * ext/tk/tkutil/tkutil.c: improve handling callback-subst-keys. Index: ruby_1_8/version.h =================================================================== --- ruby_1_8/version.h (revision 16414) +++ ruby_1_8/version.h (revision 16415) @@ -1,7 +1,7 @@ #define RUBY_VERSION "1.8.7" -#define RUBY_RELEASE_DATE "2008-05-13" +#define RUBY_RELEASE_DATE "2008-05-14" #define RUBY_VERSION_CODE 187 -#define RUBY_RELEASE_CODE 20080513 +#define RUBY_RELEASE_CODE 20080514 #define RUBY_PATCHLEVEL 5000 #define RUBY_VERSION_MAJOR 1 @@ -9,7 +9,7 @@ #define RUBY_VERSION_TEENY 7 #define RUBY_RELEASE_YEAR 2008 #define RUBY_RELEASE_MONTH 5 -#define RUBY_RELEASE_DAY 13 +#define RUBY_RELEASE_DAY 14 #ifdef RUBY_EXTERN RUBY_EXTERN const char ruby_version[]; -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/