[#20490] [BUG] evalがらみでSIGSEGV — "yamamoto madoka" <dan@...2.so-net.ne.jp>
こんにちは、山本 円と申します。
[#20495] 不正なバイト列とのマッチ — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#20499] Re: [ruby-cvs] ruby/ext/curses: * string.c (rb_str_shared_replace): clear flags before copy. — nobu.nakada@...
なかだです。
まつもと ゆきひろです
わたなべです。
まつもと ゆきひろです
わたなべです。
[#20525] [BigDecimal] changing rule of coerce — "Tadashi Saito" <shiba@...2.accsnet.ne.jp>
斎藤です。
小林です。
まつもと ゆきひろです
小林です。
小林です。
前田です。
小林です。
小林です。
小林です。
小林です。
小林です。
[#20570] Marshal upgrade — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
咳といいます。
まつもと ゆきひろです
まつもと ゆきひろです
新井です。
新井です。
まつもと ゆきひろです
咳といいます。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
[#20580] add library(Re:ruby-dev:20570) — たむらけんいち <sgs02516@...>
たむらです。
なひです。
In message <038d01c349cb$eaad71d0$93222fc0@sarion.co.jp>,
まつもと ゆきひろです
In message <1058171960.400840.10041.nullmailer@picachu.netlab.jp>,
話をそらしてしまうかもしれませんが、
In message <20030714.183104.09092354.taca@back-street.net>,
In message <20030715.013655.424936247.gotoyuzo@kotetsu.does.notwork.org>
In message <20030715.025907.26217115.taca@back-street.net>,
In message <20030715.051853.968499478.gotoyuzo@kotetsu.does.notwork.org>
In message <20030721.163444.09092937.taca@back-street.net>,
In message <20030721.191306.60866533.gotoyuzo@kotetsu.does.notwork.org>
In message <20030721.211845.20473808.taca@back-street.net>,
In message <20030722.002037.774147317.gotoyuzo@kotetsu.does.notwork.org>
In message <20030722.003236.72433302.taca@back-street.net>,
[#20582] rexmlのuconv依存 — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
まつもと ゆきひろです
In article <1057770842.878440.16422.nullmailer@picachu.netlab.jp>,
なかだです。
In article <200307100751.h6A7pLFs003667@sharui.nakada.kanuma.tochigi.jp>,
[#20606] ruby-1.8.0 on BSD/OS — OHARA Shigeki <os@...>
大原です。
[#20613] compiling Ruby on AIX (powerpc-ibm-aix4.3.3.0) and Alpha OSF/1 (alphaev67-dec-osf5.1) — NISHIMATSU Takeshi <t-nissie@...>
西松と申します.
なかだです。
西松です. お返事が遅くなり申し訳ありません.
[#20631] SOAP4R in 1.8.0? — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#20655] frozen ThreadGroup — Hidetoshi NAGAI <nagai@...>
永井@知能.九工大です.
まつもと ゆきひろです
永井@知能.九工大です.
まつもと ゆきひろです
永井@知能.九工大です.
まつもと ゆきひろです
永井@知能.九工大です.
永井@知能.九工大です.
まつもと ゆきひろです
永井@知能.九工大です.
まつもと ゆきひろです
In article <1058719939.886480.22830.nullmailer@picachu.netlab.jp>,
[#20680] 1.8.0 on IA64 etc. — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#20691] Re: [Oniguruma] explicit capture — kkosako@...
> -----Original Message-----
[#20716] Re: [Oniguruma] explicit capture — kkosako@...
> -----Original Message-----
[#20748] [BigDecimal] exception handling — "Tadashi Saito" <shiba@...2.accsnet.ne.jp>
斎藤です。
[#20765] Re: [ruby-cvs] ruby/lib: * lib/tmpdir.rb: new library to get temporary directory path, — WATANABE Hirofumi <eban@...>
わたなべです。
まつもと ゆきひろです
わたなべです。
まつもと ゆきひろです
わたなべです。
[#20780] complex.rb — Masahiro TANAKA <masa@...>
complex.rb についての修正案を[ruby-math:00543]で提案しましたが、その後
まつもと ゆきひろです
けいじゅ@いしつかです.
At Tue, 22 Jul 2003 17:30:31 +0900, Yukihiro Matsumoto wrote:
まつもと ゆきひろです
けいじゅ@いしつかです.
At Sat, 26 Jul 2003 06:52:21 +0900, 石塚圭樹 wrote:
[#20791] 1.8.0 preview4 schedule — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
永井@知能.九工大です.
[#20795] warning: terminated thread — Masatoshi SEKI <m_seki@...>
咳といいます。
mput です。こんばんわ。
まつもと ゆきひろです
[#20800] 0**(-1) with rational — Tanaka Akira <akr@...17n.org>
そういえば思い出したのですが、rational を require しているときとしてい
At Wed, 23 Jul 2003 03:30:41 +0900, Tanaka Akira wrote:
[#20810] Rational 始めました。 — Shin-ichiro HARA <sinara@...>
原です。
けいじゅ@いしつかです.
In article <200307241940.EAA14225.keiju@ishitsuka.com>,
けいじゅ@いしつかです.
In article <200307271500.AAA04363.keiju@bc.mbn.or.jp>,
[#20818] ThreadGroup#wait — nobu.nakada@...
なかだです。
まつもと ゆきひろです
[#20868] ruby 1.8.0 preview4 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#20887] ext/openssl undefined BN_pseudo_rand_range — Kazuhiro Yoshida <moriq@...>
もりきゅうです。
[#20915] [BUG] errno == 0 — Kazuhiro Yoshida <moriq@...>
もりきゅうです。win32だけかもしれません。
まつもと ゆきひろです
もりきゅうです。
[#20932] move ChangeLog — Tanaka Akira <akr@...17n.org>
提案なんですが、1.8.0 が出たらそこまでのぶんの ChangeLog を移動しませ
[#20949] multiple Tk interpreter support — Hidetoshi NAGAI <nagai@...>
永井@知能.九工大です.
[#20954] ruby 1.8.0 preview5 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
もりきゅうです。
Siena. です。
[#20957] [BigDecimal] conflict between Numeric#div and BigDecimal#div — "Tadashi Saito" <shiba@...2.accsnet.ne.jp>
斎藤です。
At Mon, 28 Jul 2003 18:26:20 +0900, Tadashi Saito wrote:
まつもと ゆきひろです
At Mon, 28 Jul 2003 21:16:08 +0900, Yukihiro Matsumoto wrote:
まつもと ゆきひろです
At Tue, 29 Jul 2003 14:43:19 +0900, Yukihiro Matsumoto wrote:
原です。
[#20989] Re: [Oniguruma] explicit capture — kkosako@...
> -----Original Message-----
[#21027] -W option — WATANABE Hirofumi <eban@...>
わたなべです。
[ruby-dev:20620] Re: rexmlのuconv依存
なかだです。
At Thu, 10 Jul 2003 17:20:04 +0900,
Tanaka Akira wrote:
> > 吸収したいのは山々なんですが、iconvで何が使えるのか調べる方法と
> > 対応付がシステム依存になってしまうというところで止まってます。
>
> このへんはシステム毎にアドホックにやるしかないでしょうから、iconv.rb
> をつくってそっちを呼び出すようにすればいいんじゃないかと思ってます。
>
> まぁ、システムによっては方法が無いかもしれませんが、最悪ハードコードで
> もいいじゃありませんか。
その辺はしょうがないと思いますが、そのハードコードの元データを
どうしようかと。
> >> ていて、Solaris については公式っぽい対応表を捜し出すところまではやった
> >> のですが...
> >
> > どんなものでしょう。
>
> http://jp.sun.com/software/management/internet/sims/docs/rn/probs_rnotes.1.html
>
> の最後の「IMAP4 検索でサポートされる文字セット」です。
http://www.ctan.org/tex-archive/macros/texinfo/texinfo/intl/config.charset
もほぼ同じですね。
> 結局、メール関係を iconv で扱おうとすれば、(iconv が直接 MIME charset
> を扱わない限り)どうしてもこういう対応表は必要になります。だから、メー
> ルを扱うシステムが提供されてればどっかにはあるはずです。まぁ、それが公
> 開されているかどうかはわかんないわけで、最悪、システム付属の MUA
> (Solaris なら dtmail) のバイナリを strings するなどといった必要がある
> かも知れませんが。
それははげしくいやーん。というかクロスのときには使えませんね。
とりあえずこんなのを作ってみました。上のconfig.charsetが必要で
す。
Index: ext/iconv/MANIFEST
===================================================================
RCS file: /cvs/ruby/src/ruby/ext/iconv/MANIFEST,v
retrieving revision 1.2
diff -u -2 -p -r1.2 MANIFEST
--- ext/iconv/MANIFEST 18 Mar 2002 09:23:11 -0000 1.2
+++ ext/iconv/MANIFEST 10 Jul 2003 13:08:19 -0000
@@ -3,2 +3,4 @@ extconf.rb
iconv.c
depend
+iconv-sysdep.rb
+config.charset
Index: ext/iconv/extconf.rb
===================================================================
RCS file: /cvs/ruby/src/ruby/ext/iconv/extconf.rb,v
retrieving revision 1.2
diff -u -2 -p -r1.2 extconf.rb
--- ext/iconv/extconf.rb 18 Mar 2002 03:54:10 -0000 1.2
+++ ext/iconv/extconf.rb 10 Jul 2003 13:06:22 -0000
@@ -1,8 +1,42 @@
require 'mkmf'
+# http://www.ctan.org/tex-archive/macros/texinfo/texinfo/intl/config.charset
+# at Fri, 30 May 2003 00:09:00 GMT
+
dir_config("iconv")
+config_charset = with_config("iconv-config.charset", "#{$srcdir}/config.charset")
+
+def charset_alias(config_charset)
+ map = {}
+ os = CONFIG["target_os"]
+ unless /linux|-gnu/ =~ os
+ comments = []
+ shell = with_config("shell", CONFIG['/bin/sh'])
+ IO.popen("#{shell} #{config_charset} #{os}", "r") do |conf|
+ conf.each do |list|
+ next if /^\#/ =~ list
+ next unless /^(\S+)\s+(\S+)$/ =~ list
+ next if $1 == $2
+ map[$2] = $1
+ end
+ end
+ end
+ if map.empty?
+ File.rm_f("./iconv.rb")
+ else
+ open("iconv.rb", "w") do |f|
+ f.puts(comments)
+ f.puts("require 'iconv-sysdep'\nclass Iconv\n Sysdep = {")
+ map.each {|can, sys| f.puts(" '#{can}' => '#{sys}',")}
+ f.puts(" }\nend")
+ end
+ $INSTALLFILES = [["iconv-sysdep.rb", "$(RUBYLIBDIR)"], ["./iconv.rb", "$(RUBYARCHDIR)"]]
+ end
+end
+
if have_header("iconv.h")
have_library("iconv")
+ charset_alias(config_charset)
create_makefile("iconv")
end
Index: ext/iconv/iconv.c
===================================================================
RCS file: /cvs/ruby/src/ruby/ext/iconv/iconv.c,v
retrieving revision 1.6
diff -u -2 -p -r1.6 iconv.c
--- ext/iconv/iconv.c 4 May 2003 16:03:14 -0000 1.6
+++ ext/iconv/iconv.c 10 Jul 2003 13:10:16 -0000
@@ -64,4 +64,5 @@ static VALUE iconv_failure_failed _((VAL
static iconv_t iconv_create _((VALUE to, VALUE from));
+static void iconv_dfree _((void *cd));
static VALUE iconv_free _((VALUE cd));
static VALUE iconv_try _((iconv_t cd, const char **inptr, size_t *inlen, char **outptr, size_t *outlen));
@@ -123,4 +124,18 @@ iconv_create
}
+static void
+iconv_dfree
+#ifdef HAVE_PROTOTYPES
+(void *cd)
+#else /* HAVE_PROTOTYPES */
+ (cd)
+ void *cd;
+#endif /* HAVE_PROTOTYPES */
+{
+ iconv_close(VALUE2ICONV(cd));
+}
+
+#define ICONV_FREE iconv_dfree
+
static VALUE
iconv_free
@@ -137,6 +152,4 @@ iconv_free
}
-#define ICONV_FREE (RUBY_DATA_FUNC)iconv_free
-
static VALUE
iconv_try
@@ -189,5 +202,5 @@ iconv_failure_initialize
#endif /* HAVE_PROTOTYPES */
{
- if (!rb_ivar_defined(error, rb_mesg) || NIL_P(rb_ivar_get(error, rb_mesg)))
+ if (NIL_P(rb_attr_get(error, rb_mesg)))
rb_ivar_set(error, rb_mesg, rb_inspect(failed));
if (env) {
@@ -479,4 +492,22 @@ iconv_s_iconv
}
+static VALUE
+iconv_s_conv
+#ifdef HAVE_PROTOTYPES
+ (VALUE self, VALUE to, VALUE from, VALUE str)
+#else /* HAVE_PROTOTYPES */
+ (self, to, from, str)
+ VALUE self, to, from, str;
+#endif /* HAVE_PROTOTYPES */
+{
+ struct iconv_env_t arg;
+
+ arg.argc = 1;
+ arg.argv = &str;
+ arg.ret = rb_str_new(0, 0);
+ arg.cd = iconv_create(to, from);
+ return rb_ensure(iconv_s_convert, (VALUE)&arg, iconv_free, ICONV2VALUE(arg.cd));
+}
+
/*
@@ -691,7 +722,13 @@ Init_iconv _((void))
{
VALUE rb_cIconv = rb_define_class("Iconv", rb_cData);
+ VALUE metaclass = RBASIC(rb_cIconv)->klass;
+
rb_define_alloc_func(rb_cIconv, iconv_s_allocate);
rb_define_singleton_method(rb_cIconv, "open", iconv_s_open, 2);
rb_define_singleton_method(rb_cIconv, "iconv", iconv_s_iconv, -1);
+ rb_define_singleton_method(rb_cIconv, "conv", iconv_s_conv, 3);
+ rb_enable_super(metaclass, "open");
+ rb_enable_super(metaclass, "iconv");
+ rb_enable_super(metaclass, "conv");
rb_define_method(rb_cIconv, "initialize", iconv_initialize, 2);
rb_define_method(rb_cIconv, "close", iconv_finish, 0);
Index: ext/iconv/iconv-sysdep.rb
===================================================================
RCS file: ext/iconv/iconv-sysdep.rb
diff -N ext/iconv/iconv-sysdep.rb
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ ext/iconv/iconv-sysdep.rb 10 Jul 2003 12:50:09 -0000
@@ -0,0 +1,28 @@
+require 'iconv.so'
+class Iconv
+ init = instance_method(:initialize)
+ open = method(:open)
+ iconv = method(:iconv)
+ include Module.new {
+ define_method(:initialize, init)
+ }
+ extend Module.new {
+ define_method(:open, open)
+ define_method(:iconv, iconv)
+ }
+ def initialize(to, from)
+ to = Sysdep.fetch(to) {to}
+ from = Sysdep.fetch(from) {from}
+ super
+ end
+ def self.open(to, from)
+ to = Sysdep.fetch(to) {to}
+ from = Sysdep.fetch(from) {from}
+ super
+ end
+ def self.iconv(to, from, *args)
+ to = Sysdep.fetch(to) {to}
+ from = Sysdep.fetch(from) {from}
+ super
+ end
+end
--
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
中田 伸悦