[#32910] NKF,Kconv — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#32913] openの"b"とencoding — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#32922] SEGV by regexp match in while loop — Tanaka Akira <akr@...>
Debian GNU/Linux (sarge) の gcc-3.4 を使ってビルドした ruby
[#32935] queue and timeout — Tanaka Akira <akr@...>
timeout で Queue#pop に時間制限をつけた時、タイムアウト時に
まつもと ゆきひろです
[#32940] ripper cannot build on win32 — yukimi_sake <yukimi_sake@...>
雪見酒です。
[#32945] Shift_JIS variants and UTF-16 support — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
中村さん、こんにちは。
まつもと ゆきひろです
成瀬です。
まつもと ゆきひろです
こんにちは、なかむら(う)です。
成瀬です。
こんにちは、なかむら(う)です。
成瀬です。
こんにちは、なかむら(う)です。
まつもと ゆきひろです
[#32946] replica と alias の違い(encoding) — KIMURA Koichi <kimura.koichi@...>
木村です。
[#32987] error with open-uri (instance_eval?) — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
[#32988] Re: [ruby-cvs:22194] Ruby:r14957 (trunk): * encoding.c (rb_enc_init): UTF-{16,32}{BE,LE} are not builtin. — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
[#32992] ASCII is alias of US-ASCII; replica of dummy encoding is not a dummy — "NARUSE, Yui" <naruse@...>
成瀬です。
まつもと ゆきひろです
At 18:13 08/01/09, Yukihiro Matsumoto wrote:
成瀬です。
まつもと ゆきひろです
成瀬です。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
[#32996] binmode and ASCII-8BIT — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#33069] Re: [ruby-cvs:22244] Ruby:r15007 (trunk): * enc/make_encdb.rb: added. search enc/*.c and make encoding database. — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
まつもと ゆきひろです
[#33076] Encoding.compatible? and dummy encodings — sheepman <sheepman@...>
こんにちは sheepman です。
成瀬です。
まつもと ゆきひろです
[#33078] NEW REPLICA ENCODINGS AND ENCODING ALIASES — "NARUSE, Yui" <naruse@...>
成瀬です。
[#33101] String#valid_encoding? shoud be strict? — Masayoshi Takahashi <maki@...>
高橋征義です。1.9のエンコーディングとString#valid_encoding?について。
[#33139] Bignum#* might invoke GC parallelly? — "Yusuke ENDOH" <mame@...>
遠藤と申します。
[#33156] default script encoding and -K option — sheepman <sheepman@...>
こんばんは sheepman です。
こんにちは、なかむら(う)です。
まつもと ゆきひろです
[#33164] default encoding for Marshal.load — "Shugo Maeda" <shugo@...>
前田です。
まつもと ゆきひろです
[#33185] コンパイルの問題 (r15218) — Martin Duerst <duerst@...>
r15128 当たりで (実はもう少し前から) コンパイルできなくなりました。
[#33218] Re: Ruby1.9String バイト列へのインデックス アクセス — "Hisanori Kiryu" <hkiryu@...>
> ちなみに、byte のではなく bytes の方が妥当だと思います。
[#33224] printf "%0x" — Tanaka Akira <akr@...>
printf の %0x に負の整数を与えると、値によって .. がついたり
[#33226] [PATCH] warnings of enc/trans/utf_16_32.c — Nobuyoshi Nakada <nobu@...>
なかだです。
[#33239] Re: [ruby-cvs:22386] Ruby:r15149 (trunk): * string.c (rb_str_each_char): move forward. — Tanaka Akira <akr@...>
In article <200801210259.m0L2x3CW017171@ci.ruby-lang.org>,
なかだです。
In article <20080121065650.55F60E0662@mail.bc9.jp>,
なかだです。
まつもと ゆきひろです
[#33247] requests to transcode — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
[#33303] Time#strftimeのエンコーディング — rubikitch@...
るびきちです。
まつもと ゆきひろです
なかだです。
西山和広です。
[#33368] summary of script encoding — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
まつもと ゆきひろです
こんにちは、なかむら(う)です。
まつもと ゆきひろです
永井@知能.九工大です.
[#33387] HashからStructを作る — rubikitch@...
るびきちです。
まつもと ゆきひろです
From: Yukihiro Matsumoto <matz@ruby-lang.org>
まつもと ゆきひろです
From: Yukihiro Matsumoto <matz@ruby-lang.org>
まつもと ゆきひろです
From: Yukihiro Matsumoto <matz@ruby-lang.org>
まつもと ゆきひろです
[#33399] regexp match /.../n against to UTF-8 string — Tanaka Akira <akr@...>
以下のように、つけてもいない正規表現の n オプションに関して
[#33400] /#{}/e.encoding — Tanaka Akira <akr@...>
以下のように /#{}/e の encoding が US-ASCII になります。
[#33403] wrapped String#gsub — "Park Ji-In" <tisphie@...>
こんにちは、朴 芝印です。
[#33417] コンパイルの問題 — Martin Duerst <duerst@...>
現在 (r15264 で) コンパイル使用とすると、エラーになります:
At 16:28 08/01/27, you wrote:
[#33433] Win32OLE: set encoding to OLE string — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
成瀬です。
助田です。
こんにちは、なかむら(う)です。
こんにちは、なかむら(う)です。
[#33452] enc/euc_kr.c (euckr_mbc_enc_len) euc_kr.c is also used by CP942 — "NARUSE, Yui" <naruse@...>
成瀬です。
まつもと ゆきひろです
成瀬です。
[#33461] Failed to make ruby-1.8.6-p111 on MacOSX 10.5(Leopard) — MORITA Hideyuki <h-morita@...>
=1B$B?9ED$H?=3D$7$^$9!#=1B(B
なかだです。
森田です。
なかだです。
森田です。
天野竜太郎と申します。
森田です。
天野です。
森田です。
天野です。
森田です。
天野です。
森田です。
天野です。
[#33488] 現在の script encoding の値を得る方法は? — Hidetoshi NAGAI <nagai@...>
永井@知能.九工大です.
まつもと ゆきひろです
永井@知能.九工大です.
成瀬です。
永井@知能.九工大です.
成瀬です。
永井@知能.九工大です.
成瀬です。
In article <47A00E86.4010701@airemix.com>,
成瀬です。
In article <47A03C9D.2090008@airemix.com>,
In article <87hcgvu1ng.fsf@fsij.org>,
[#33521] nkf の CP932 — Martin Duerst <duerst@...>
成瀬さん、皆さん、こんにちは。
[#33548] block parameter of String#gsub — "NARUSE, Yui" <naruse@...>
成瀬です。
まつもと ゆきひろです
[ruby-dev:33317] Re: Time#strftimeのエンコーディング
なかだです。
At Wed, 23 Jan 2008 16:43:38 +0900,
Kazuhiro NISHIYAMA wrote in [ruby-dev:33316]:
> > とりあえずformat.encodingを無視するのはまずかろうと思われるので、
> > 前者にしておきました。strftimeが非ASCIIを返すことがあるとしても、
> > strftimeの終了時にはすでにformatと混じってしまっているわけで、ど
> > うしたもんでしょうね。
>
> strftime(format.encode(locale)).encode(format.encoding)
> という感じでstrftimeにはlocaleのencodingでわたして
> Time#strftimeの返値はformatのencodingになっていると
> うれしい気がするのですが、どうでしょうか?
こんなとこですか。
$ ./ruby --arch=.i386-mingw32 -Ke -ve 'p Time.now.strftime("\xc6\xfc\xcb\xdc/%Z")'
ruby 1.9.0 (2008-01-23 revision 15187) [i386-mingw32]
"日本/東京 (標準時)"
Index: time.c
===================================================================
--- time.c (revision 15187)
+++ time.c (working copy)
@@ -11,4 +11,5 @@
#include "ruby/ruby.h"
+#include "ruby/encoding.h"
#include <sys/types.h>
#include <time.h>
@@ -2072,4 +2073,5 @@ time_strftime(VALUE time, VALUE format)
long len;
VALUE str;
+ rb_encoding *enc, *lenc;
GetTimeval(time, tobj);
@@ -2081,6 +2083,75 @@ time_strftime(VALUE time, VALUE format)
fmt = RSTRING_PTR(format);
len = RSTRING_LEN(format);
+ enc = rb_enc_get(format);
+ lenc = rb_locale_encoding();
if (len == 0) {
rb_warning("strftime called with empty format string");
+ str = rb_str_new(0, 0);
+ }
+ else if (enc != lenc && !rb_enc_str_asciionly_p(format)) {
+ VALUE strenc = rb_enc_from_encoding(enc), tmp;
+ const char *p = fmt, *pe = fmt + len, *start = p;
+ char *s;
+ int c, n;
+
+ str = rb_enc_str_new(0, 0, enc);
+ while (p < pe) {
+ int n2 = 0;
+ start = p;
+ while ((c = rb_enc_ascget(p, pe, &n, enc)) != 0 && c != '%' &&
+ (p += c < 0 ? rb_enc_mbclen(p, pe, enc) : n) < pe);
+ switch (c) {
+ case 0:
+ p += n;
+ break;
+ case '%':
+ if (p+n >= pe) {
+ p = pe;
+ }
+ else if (rb_enc_ascget(p+n, pe, &n2, enc) == '%') {
+ p += n;
+ n = n2;
+ c = -1;
+ }
+ break;
+ }
+ rb_str_cat(str, start, p - start);
+ p += n;
+ switch (c) {
+ case 0:
+ while ((c = rb_enc_ascget(p, pe, &n, enc)) == 0 &&
+ (p += n) < pe);
+ break;
+ case '%':
+ start = p;
+ len = 1;
+ while ((c = rb_enc_ascget(p, pe, &n, enc)) > 0) {
+ p += n;
+ ++len;
+ if (ISALPHA(c)) break;
+ }
+ s = buf = ALLOC_N(char, len+1);
+ *s++ = '%';
+ p = start;
+ while ((c = rb_enc_ascget(p, pe, &n, enc)) > 0) {
+ *s++ = c;
+ p += n;
+ if (ISALPHA(c)) break;
+ }
+ *s = '\0';
+ s = buf;
+ buf = buffer;
+ len = rb_strftime(&buf, s, &tobj->tm);
+ free(s);
+ tmp = rb_enc_str_new(buf, len, lenc);
+ if (buf != buffer) {
+ free(buf);
+ buf = buffer;
+ }
+ tmp = rb_funcall(tmp, rb_intern("encode"), 1, strenc);
+ rb_str_append(str, tmp);
+ break;
+ }
+ }
}
else if (strlen(fmt) < len) {
@@ -2088,5 +2159,5 @@ time_strftime(VALUE time, VALUE format)
const char *p = fmt, *pe = fmt + len;
- str = rb_str_new(0, 0);
+ str = rb_enc_str_new(0, 0, enc);
while (p < pe) {
len = rb_strftime(&buf, p, &tobj->tm);
@@ -2100,12 +2171,10 @@ time_strftime(VALUE time, VALUE format)
if (p > fmt) rb_str_cat(str, fmt, p - fmt);
}
- return str;
}
else {
len = rb_strftime(&buf, RSTRING_PTR(format), &tobj->tm);
+ str = rb_enc_str_new(buf, len, enc);
+ if (buf != buffer) free(buf);
}
- str = rb_str_new(buf, len);
- if (buf != buffer) free(buf);
- rb_enc_copy(str, format);
return str;
}
--
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
中田 伸悦