[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]