[#1025] gsub(/^a/) (Re: ruby 0.99.3-961111 available) — sinara@...
原です。
4 messages
1996/11/14
[#1030] Bug report: divmod, ruby-mode.el — keiju@... (Keiju ISHITSUKA)
けいじゅ@SHLジャパンです.
6 messages
1996/11/15
[#1040] ruby 0.99.3-961118 available — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
11 messages
1996/11/18
[#1041] Re: ruby 0.99.3-961118 available
— sinara@...
1996/11/18
原です。
[#1050] [BUG] sub(){} (Re: ruby 0.99.3-961118 available) — sinara@...
原です。
7 messages
1996/11/18
[#1052] Re: [BUG] sub(){} (Re: ruby 0.99.3-961118 available)
— matz@... (Yukihiro Matsumoto)
1996/11/18
まつもと ゆきひろです.
[#1058] ruby 0.99.3-961119 available — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです.
19 messages
1996/11/19
[#1059] segm fault (Re ruby 0.99.3-961119 available)
— sinara@...
1996/11/19
原です。
[#1071] segm fault 2 (Re ruby 0.99.3-961119 available)
— sinara@...
1996/11/20
原です。
[#1073] Re: segm fault 2 (Re ruby 0.99.3-961119 available)
— matz@... (Yukihiro Matsumoto)
1996/11/20
まつもと ゆきひろです
[#1074] Re: segm fault 2 (Re ruby 0.99.3-961119 available)
— sinara@...
1996/11/20
原です。
[#1075] Re: segm fault 2 (Re ruby 0.99.3-961119 available)
— matz@... (Yukihiro Matsumoto)
1996/11/20
まつもと ゆきひろです.
[#1076] Re: segm fault 2 (Re ruby 0.99.3-961119 available)
— sinara@...
1996/11/21
原です。
[#1065] compile error [HP] — Yasuo OHBA <jammy@...>
大庭@SHLJapanです.
5 messages
1996/11/20
[#1080] [BUG?] REGEXP (Re ruby 0.99.3-961119 available) — sinara@...
原です。
9 messages
1996/11/23
[#1086] Re: [BUG?] REGEXP (Re ruby 0.99.3-961119 available)
— matz@... (Yukihiro Matsumoto)
1996/11/23
まつもと ゆきひろです.
[#1089] Re: [BUG?] REGEXP (Re ruby 0.99.3-961119 available)
— sinara@...
1996/11/25
原です。
[#1091] Re: [BUG?] REGEXP (Re ruby 0.99.3-961119 available)
— matz@... (Yukihiro Matsumoto)
1996/11/25
まつもと ゆきひろです
[#1096] ruby 0.99.3-961126 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです.
8 messages
1996/11/26
[#1102] Japanese and tr — Noritugu Nakamura <nnakamur@...>
10 messages
1996/11/27
[#1103] Re: Japanese and tr
— matz@... (Yukihiro Matsumoto)
1996/11/27
まつもと ゆきひろです.
[#1108] [BUG]defined? in class(Re: ruby 0.99.3-961126 released) — sinara@...
原です。
5 messages
1996/11/27
[#1118] ruby 0.99.3-961128 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです.
10 messages
1996/11/28
[#1121] Re: ruby 0.99.3-961128
— WATANABE Hirofumi <watanabe@...>
1996/11/28
渡辺@ソニーです.
[#1126] forum about ruby(Nikkei MIX) — Takaaki Higuchi - Marketing <thiguchi@...>
技術的な話ではないのですが (^^;)
10 messages
1996/11/28
[#1127] Re: forum about ruby(Nikkei MIX)
— matz@... (Yukihiro Matsumoto)
1996/11/28
まつもと ゆきひろです.
[#1128] Re: forum about ruby(Nikkei MIX)
— sinara@...
1996/11/28
原です。
[#1137] [BUG]unless-else (Re: ruby 0.99.3-961128) — sinara@...
原です。
5 messages
1996/11/28
[ruby-list:1135] Re: [BUG]gsub (Re: ruby 0.99.3-961128)
From:
matz@... (Yukihiro Matsumoto)
Date:
1996-11-28 08:03:45 UTC
List:
ruby-list #1135
まつもと ゆきひろです.
In message "[ruby-list:1131] [BUG]gsub (Re: ruby 0.99.3-961128)"
on 96/11/28, sinara@blade.nagaokaut.ac.jp <sinara@blade.nagaokaut.ac.jp> writes:
|
|原です。
|
|どうもよく現象が分からないのですが、つぎの関数に
|str = "と ゆ" を jis にしたもの
|を食わせると無限ループに入ります。
gsubのイテレータブロックの中でなんらかのマッチが発生すると変
数$~の値が書き換っちゃてダメということだったようです.
# また,明日もリリースか….ふう
いちおうパッチつけときます.前の比較演算子の書き換えも含んで
います.
まつもと ゆきひろ /:|)
--- string.c~ Thu Nov 28 00:04:37 1996
+++ string.c Thu Nov 28 16:57:12 1996
@@ -268,3 +268,3 @@
- if (len > 0) {
+ if (len >= 0) {
if (str->len < len || str->len - len > 1024) {
@@ -830,3 +830,3 @@
VALUE val, result;
- int beg, offset, n;
+ int beg, offset, n, null;
struct re_registers *regs;
@@ -852,3 +852,3 @@
result = str_new(0,0);
- n = 0; offset=0;
+ n = 0; offset = 0;
while ((beg=reg_search(pat, str, offset, 0)) >= 0) {
@@ -856,2 +856,3 @@
+ null = 0;
regs = RMATCH(backref_get())->regs;
@@ -859,8 +860,4 @@
- val = rb_yield(reg_nth_match(0, backref_get()));
- val = obj_as_string(val);
- str_cat(result, RSTRING(val)->ptr, RSTRING(val)->len);
-
if (END(0) == offset) {
- str_cat(result, str->ptr+END(0), 1);
+ null = 1;
offset = END(0)+1;
@@ -871,2 +868,9 @@
+ val = rb_yield(reg_nth_match(0, backref_get()));
+ val = obj_as_string(val);
+ str_cat(result, RSTRING(val)->ptr, RSTRING(val)->len);
+ if (null) {
+ str_cat(result, str->ptr+offset-1, 1);
+ }
+
if (once) break;
@@ -950,3 +954,3 @@
if (rb_scan_args(argc, argv, "11", &pat, &val) == 1) {
- v = str_sub_iter_s(str_dup(str), pat, 0);
+ v = str_sub_iter_s(str, pat, 0);
}