e$B@.@%$G$9!#e(B
NetBSD e$B$Ne(B Citrus iconv
e$B$GBP1~%(%s%3!<%G%#%s%0$N%j%9%H$rF@$k%Q%C%A$G$9!#e(B
e$B<BBN$He(B alias
e$B$,$4$C$A$c$K$J$C$F$$$^$9$,!"$=$l$G$b$=$l$J$j$N=u$1$K$O$J$ke(B
e$B$H;W$&$N$G$H$j$"$($:!#e(B
Index: ext/iconv/iconv.c
— ext/iconv/iconv.c (e$B%j%S%8%g%se(B 14101)
+++ ext/iconv/iconv.c (e$B:n6H%3%T!<e(B)
@@ -738,6 +738,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 (e$B%j%S%8%g%se(B 14101)
+++ ext/iconv/extconf.rb (e$B:n6H%3%T!<e(B)
@@ -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}/”