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

ruby-changes:2624

From: ko1@a...
Date: 6 Dec 2007 01:07:29 +0900
Subject: [ruby-changes:2624] naruse - Ruby:r14115 (trunk): * ext/iconv/iconv.c (iconv_s_list): support NetBSD/Citrus iconv.

naruse	2007-12-06 01:04:12 +0900 (Thu, 06 Dec 2007)

  New Revision: 14115

  Modified files:
    trunk/ChangeLog
    trunk/ext/iconv/extconf.rb
    trunk/ext/iconv/iconv.c

  Log:
    * ext/iconv/iconv.c (iconv_s_list): support NetBSD/Citrus iconv.


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/iconv/iconv.c?r1=14115&r2=14114
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=14115&r2=14114
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/iconv/extconf.rb?r1=14115&r2=14114

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 14114)
+++ ChangeLog	(revision 14115)
@@ -1,3 +1,7 @@
+Thu Dec  6 01:00:38 2007  NARUSE, Yui <naruse@r...>
+
+	* ext/iconv/iconv.c (iconv_s_list): support NetBSD/Citrus iconv.
+
 Wed Dec  5 16:18:50 2007  Nobuyoshi Nakada  <nobu@r...>
 
 	* proc.c (rb_proc_s_new): call initialize.  [ruby-core:13824]
Index: ext/iconv/iconv.c
===================================================================
--- ext/iconv/iconv.c	(revision 14114)
+++ ext/iconv/iconv.c	(revision 14115)
@@ -741,6 +741,24 @@
     state = *(int *)args;
     if (state) rb_jump_tag(state);
     if (args[1]) return args[1];
+#elif defined(HAVE___ICONV_FREE_LIST)
+    char **list;
+    size_t sz, i;
+    VALUE ary;
+
+    if (__iconv_get_list(&list, &sz)) return Qnil;
+
+    ary = rb_ary_new2(sz);
+    for (i = 0; i < sz; i++) {
+	rb_ary_push(ary, rb_str_new2(list[i]));
+    }
+    __iconv_free_list(list, sz);
+
+    if (!rb_block_given_p())
+	return ary;
+    for (i = 0; i < RARRAY_LEN(ary); i++) {
+	rb_yield(RARRAY_PTR(ary)[i]);
+    }
 #else
     rb_notimplement();
 #endif
Index: ext/iconv/extconf.rb
===================================================================
--- ext/iconv/extconf.rb	(revision 14114)
+++ ext/iconv/extconf.rb	(revision 14115)
@@ -24,6 +24,7 @@
     $defs.push('-DICONV_INPTR_CONST')
   end
   have_func("iconvlist", "iconv.h")
+  have_func("__iconv_free_list", "iconv.h")
   if conf
     prefix = '$(srcdir)'
     prefix =  $nmake ? "{#{prefix}}" : "#{prefix}/"

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml

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