[#16154] : and :: — Shin-ichiro HARA <sinara@...>
原です。
まつもと ゆきひろです
原です。
まつもと ゆきひろです
原です。
[#16178] Marshal::dump calls Proc#yield? (1.6.7) — akira yamada / やまだあきら <akira@...>
まつもと ゆきひろです
[#16191] getopts() broken — "Akinori MUSHA" <knu@...>
getopts が最新の 1.6/1.7 で動かなくなっているようなので、
[#16211] pstore.rb and sync.rb — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
[#16214] net/http.rb version_1_2 not work — Tietew <tietew-ml-ruby-dev@...>
Tietew です。
[#16223] importing racc-runtime — "Akinori MUSHA" <knu@...>
rough にある racc runtime モジュールを眺めていたんですが、
[#16231] LoadLibraryEx vs. LoadLibrary — WATANABE Hirofumi <eban@...>
わたなべです。
[#16240] [Oni Guruma] look behind — nobu.nakada@...
なかだです。
nobu.nakada@nifty.ne.jpさんの
In article <20020307054004.BFADD57D@helium.ruby-lang.org>,
Tanaka Akiraさんの<hvog03clxib.fsf@coulee.a02.aist.go.jp>から
[#16277] Dir::glob(pattern, flags = 0) — "Akinori MUSHA" <knu@...>
しばらく放置していた、
[#16283] ライブラリ拡大計画 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
高橋征義です。
まつもと ゆきひろです
In article <1015827556.101112.6552.nullmailer@ev.netlab.jp>,
まつもと ゆきひろです
なかだです。
あおきです。
まつもと ゆきひろです
In article <hvowuwjbo4j.fsf@coulee.a02.aist.go.jp>,
わたなべです。
At Mon, 11 Mar 2002 12:17:12 +0900,
まつもと ゆきひろです
At Wed, 27 Mar 2002 18:56:03 +0900,
まつもと ゆきひろです
At Thu, 28 Mar 2002 00:12:49 +0900,
At Thu, 28 Mar 2002 23:45:49 +0900,
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
なかだです。
At Fri, 29 Mar 2002 20:32:17 +0900,
At Sun, 31 Mar 2002 02:20:04 +0900,
At Sun, 31 Mar 2002 02:20:04 +0900,
なかだです。
わたなべです。
At Fri, 8 Mar 2002 18:05:01 +0900,
まつもと ゆきひろです
なかだです。
In article <20020314133401.3918E10F3@sharui.nakada.kanuma.tochigi.jp>,
なかだです。
In article <20020315050614.C975F10F0@sharui.nakada.kanuma.tochigi.jp>,
なかだです。
In article <20020315160435.7A84B114C@sharui.nakada.kanuma.tochigi.jp>,
なかだです。
In article <200204161515.g3GFFjM17207@sharui.nakada.kanuma.tochigi.jp>,
なかだです。
In article <200204170729.g3H7TeM15268@sharui.nakada.kanuma.tochigi.jp>,
[#16290] IO#gets improvement — nobu.nakada@...
なかだです。
In article <20020308131426.8C36123B9@sharui.nakada.kanuma.tochigi.jp>,
なかだです。
In article <20020309025151.5405C24F2@sharui.nakada.kanuma.tochigi.jp>,
なかだです。
なかだです。
わたなべです。
なかだです。
わたなべです。
なかだです。
わたなべです。
なかだです。
わたなべです。
なかだです。
[#16351] map in printf format — nobu.nakada@...
なかだです。
[#16411] block local var — "K.Kosako" <kosako@...>
Version: 1.7 latest
> コンパイル時点で、ブロック変数かどうかの判定が
[#16422] abort with message — nobu.nakada@...
なかだです。
西山和広です。
[#16423] Re: [ruby-list:34301] Re: Enumerable#inject (Re: しぶらぐっ議事録。) — Koji Arai <JCA02266@...>
新井です。
[#16433] class variable & inheritance & singlton method / 1.6.7 — sinara@...
原です。
[#16454] Re: ext/iconv does not work with iconv 2.0 (FreeBSD) (PR#273) — nobu.nakada@...
なかだです。
[#16486] mswin32 configuration — nobu.nakada@...
なかだです。
こんにちは、なかむら(う)です。
なかだです。
こんにちは、なかむら(う)です。
なかだです。
こんにちは、なかむら(う)です。
なかだです。
こんにちは、なかむら(う)です。
なかだです。
こんにちは、なかむら(う)です。
なかだです。
こんにちは、なかむら(う)です。
なかだです。
[#16508] Re: [ruby-cvs] ruby: * mkconfig.rb: don't touch rbconfig.rb if there is a trouble. — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
In article <20020320203914.55E9.USA@osb.att.ne.jp>,
[#16514] MAKEFLAGS for ext — nobu.nakada@...
なかだです。
[#16518] ruby-zlib cvs operation — "Akinori MUSHA" <knu@...>
At Thu, 21 Mar 2002 16:53:03 +0000,
In article <86d6xxerjd.wl@daemon.musha.org>,
新井です。
うえのです。
[#16522] sprintf("%u") — Koji Arai <JCA02266@...>
新井です。
[#16532] 定数の再定義 — Wakou Aoyama <wakou@...>
青山です。
[#16545] BigFloat — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
At Sat, 23 Mar 2002 22:55:45 +0900,
At Sun, 24 Mar 2002 02:20:26 +0900,
In article <867ko3yyik.wl@archon.local.idaemons.org>,
At Sun, 24 Mar 2002 04:21:59 +0900,
In article <864rj7yljs.wl@archon.local.idaemons.org>,
At Sun, 24 Mar 2002 07:44:15 +0900,
In article <861yeazvtg.wl@archon.local.idaemons.org>,
At Sun, 24 Mar 2002 15:41:18 +0900,
けいじゅ@日本ラショナルソフトウェアです.
けいじゅ@日本ラショナルソフトウェアです.
At Tue, 2 Apr 2002 16:16:04 +0900,
原です。
小林です。
[#16555] File.fnmatch (Re: [rubyist:1286] Re: ARGV の機能) — Koji Arai <JCA02266@...>
新井です。
In article <20020324.135631.115921076.JCA02266@nifty.ne.jp>,
新井です。
In article <20020324.143726.89024092.JCA02266@nifty.ne.jp>,
新井です。
[#16593] Oniguruma and multibyte character literal — TAKAHASHI Masayoshi <maki@...>
高橋征義です。
まつもと ゆきひろです
なかだです。
[#16609] control uid/gid — nagai@...
永井@知能.九工大です.
[#16633] socket.c/sock_addrinfo() — WATANABE Tetsuya <tetsu@...>
渡辺哲也です。
[#16636] -L for iconv — Tanaka Akira <akr@...17n.org>
FreeBSD で --prefix つきで Ruby を install するときに、ext/iconv を使
[#16652] [OniGuruma] nested repeat operator — "K.Kosako" <kosako@...>
[ruby-talk:36959]で指摘された
なかだです。
なひです。
なかだです。
なひです。
なかだです。
まつもと ゆきひろです
In article <20020329022810.68F9E17@helium.ruby-lang.org>,
Tanaka Akiraさんの<hvohemzoku6.fsf@coulee.a02.aist.go.jp>から
In article <20020329090116.832F4807@helium.ruby-lang.org>,
Tanaka Akiraさんの<hvod6xnohi8.fsf@coulee.a02.aist.go.jp>から
In article <20020402043641.5E1F6783@helium.ruby-lang.org>,
[#16697] assignment nil to $~ — Tanaka Akira <akr@...17n.org>
% ruby -e '$~ = nil'
まつもと ゆきひろです
In article <1017631490.892199.30753.nullmailer@ev.netlab.jp>,
[ruby-dev:16649] Re: Oniguruma and multibyte character literal
なかだです。
At Wed, 27 Mar 2002 13:21:42 +0900,
Yukihiro Matsumoto wrote:
> |\x{}では、コードポイントを有効なバイト表現にエンコードする、ということ
> |でしょうか。
>
> そういうことです。
うむむ。めんどくさっ。
Index: parse.y
===================================================================
RCS file: /cvs/ruby/src/ruby/parse.y,v
retrieving revision 1.164
diff -u -2 -p -r1.164 parse.y
--- parse.y 2002/03/26 06:18:49 1.164
+++ parse.y 2002/03/28 13:34:52
@@ -2364,4 +2364,14 @@ tokadd(c)
}
+static void
+tokspace(n)
+ int n;
+{
+ if ((tokidx += n) > toksiz) {
+ while ((toksiz *= 2) < tokidx);
+ REALLOC_N(tokenbuf, char, toksiz);
+ }
+}
+
static int
read_escape()
@@ -2494,5 +2504,16 @@ tokadd_escape(term)
tokadd('\\');
tokadd(c);
- scan_hex(lex_p, 2, &numlen);
+ if ((c = nextc()) == '{') {
+ char *p = memchr(lex_p, '}', lex_pend - lex_p);
+ if (!p || (scan_hex(lex_p, p - lex_p, &numlen), numlen != p - lex_p)) {
+ yyerror("Invalid hexadecimal character syntax");
+ return '\0';
+ }
+ tokadd(c);
+ ++numlen;
+ }
+ else {
+ scan_hex(lex_p, 2, &numlen);
+ }
while (numlen--)
tokadd(nextc());
@@ -2706,7 +2727,20 @@ parse_string(func, term, paren)
}
else {
- pushback(c);
if (func != '"') tokadd('\\');
- tokadd(read_escape());
+ if (c == 'x' && peek('{')) {
+ int numlen;
+ char *p;
+ nextc();
+ p = memchr(lex_p, '}', lex_pend -lex_p);
+ if (!p) goto unterm_str;
+ c = scan_hex(lex_p, p - lex_p, &numlen);
+ if (numlen != lex_pend - lex_p) goto unterm_str;
+ tokspace(wclen(c));
+ tokidx += wc2mbs(c, &tokenbuf[tokidx]);
+ }
+ else {
+ pushback(c);
+ tokadd(read_escape());
+ }
}
continue;
Index: regex.c
===================================================================
RCS file: /cvs/ruby/src/ruby/regex.c,v
retrieving revision 1.67
diff -u -2 -p -r1.67 regex.c
--- regex.c 2002/03/25 09:08:15 1.67
+++ regex.c 2002/03/28 15:19:15
@@ -499,4 +499,61 @@ utf8_firstbyte(c)
}
+int wclen(c)
+ unsigned long c;
+{
+ switch (current_mbctype) {
+ case MBCTYPE_ASCII:
+ return 1;
+ case MBCTYPE_EUC:
+ if (c < 0x100) return 1;
+ if (c < 0x10000) return 2;
+ return 3;
+ case MBCTYPE_SJIS:
+ if (c < 0x100) return 1;
+ return 2;
+ case MBCTYPE_UTF8:
+ if (c < 0x80) return 1;
+ if (c <= 0x7ff) return 2;
+ if (c <= 0xffff) return 3;
+ if (c <= 0x1fffff) return 4;
+ if (c <= 0x3ffffff) return 5;
+ if (c <= 0x7fffffff) return 6;
+ }
+ return -1;
+}
+
+int wc2mbs(c, s)
+ unsigned long c;
+ char *s;
+{
+ switch (current_mbctype) {
+ case MBCTYPE_ASCII:
+ *s++ = (char)c;
+ return 1;
+ case MBCTYPE_UTF8:
+ {
+ int l = mbclen(*s = utf8_firstbyte(c));
+ int n = l;
+ while (--l > 0) {
+ s[l] = (c & 0x3f) | 0xc0;
+ }
+ return n;
+ }
+ break;
+ default:
+ {
+ char *start = s;
+ if (c >> BYTEWIDTH * 2) {
+ *s++ = (char)(c >> BYTEWIDTH * 2);
+ }
+ if (c >> BYTEWIDTH) {
+ *s++ = (char)(c >> BYTEWIDTH);
+ }
+ *s++ = (char)c;
+ return s - start;
+ }
+ }
+}
+
static void
print_mbc(c)
@@ -1530,6 +1587,20 @@ re_compile_pattern(pattern, size, bufp)
case 'x':
- c = scan_hex(p, 2, &numlen);
- p += numlen;
+ if (*p == '{') {
+ ++p;
+ nextp = memchr(p, '}', pend - p);
+ if (!nextp) goto end_of_pattern;
+ c = scan_hex(p, nextp - p, &numlen);
+ if (numlen != nextp - p) goto invalid_escape;
+ p = nextp + 1;
+ if (wclen(c) > 1) {
+ ++had_mbchar;
+ break;
+ }
+ }
+ else {
+ c = scan_hex(p, 2, &numlen);
+ p += numlen;
+ }
had_num_literal = 1;
break;
@@ -2259,6 +2330,20 @@ re_compile_pattern(pattern, size, bufp)
case 'x':
had_mbchar = 0;
- c = scan_hex(p, 2, &numlen);
- p += numlen;
+ if (*p == '{') {
+ ++p;
+ nextp = memchr(p, '}', pend - p);
+ if (!nextp) goto end_of_pattern;
+ c = scan_hex(p, nextp - p, &numlen);
+ if (numlen != nextp - p) goto invalid_escape;
+ p = ++nextp;
+ if (wclen(c) > 1) {
+ had_mbchar = 2;
+ goto wide_char;
+ }
+ }
+ else {
+ c = scan_hex(p, 2, &numlen);
+ p += numlen;
+ }
had_num_literal = 1;
goto numeric_char;
@@ -2341,4 +2426,5 @@ re_compile_pattern(pattern, size, bufp)
numeric_char:
nextp = p + mbclen(c) - 1;
+ wide_char:
if (!pending_exact || pending_exact + *pending_exact + 1 != b
|| *pending_exact >= (c1 ? 0176 : 0177)
@@ -2355,4 +2441,12 @@ re_compile_pattern(pattern, size, bufp)
(*pending_exact)++;
had_num_literal = 0;
+ }
+ if (had_mbchar == 2) {
+ int len = wclen(c);
+ GET_BUFFER_SPACE(len);
+ wc2mbs(c, b);
+ b += len;
+ *pending_exact += len;
+ continue;
}
BUFPUSH(c);
Index: regex.h
===================================================================
RCS file: /cvs/ruby/src/ruby/regex.h,v
retrieving revision 1.15
diff -u -2 -p -r1.15 regex.h
--- regex.h 2002/01/04 14:14:35 1.15
+++ regex.h 2002/03/28 13:35:00
@@ -40,4 +40,6 @@
# define re_set_casetable ruby_re_set_casetable
# define register_info_type ruby_register_info_type
+# define wclen ruby_wclen
+# define wc2mbs ruby_wc2mbs
#endif
@@ -101,6 +103,10 @@ const unsigned char *re_mbctab;
#if defined(__STDC__)
void re_mbcinit (int);
+int wclen (unsigned long);
+int wc2mbs (unsigned long, char *);
#else
void re_mbcinit ();
+int wclen ();
+int wc2mbs ();
#endif
--
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
中田 伸悦