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