[#24661] MANIFEST — WATANABE Hirofumi <eban@...>
わたなべです。
[#24670] IO.popen(["echo", "aaa"]) failure — Tanaka Akira <akr@...17n.org>
make test-all で昨日は起きなかったエラーが出るので調べたところ、
わたなべです。
まつもと ゆきひろです
[#24672] gc.c: structure has no member named `IA64_BSPSTORE' — akira yamada / やまだあきら <akira@...>
Linux/ia64環境ではgc.cで
[#24698] NKF(nkf2)を1.8ブランチに入れました — "NARUSE, Yui" <naruse@...>
naruseです。
こんにちは。
naruseです。
こんにちは。
[#24708] String#gsub causes core dump — Tanaka Akira <akr@...17n.org>
次のようにすると core を吐きます。
[#24716] Re: [ruby-cvs] ruby/lib, ruby/ext/socket, ruby: * string.c (str_gsub): should have removed rb_str_unlocktmp(str). — Tanaka Akira <akr@...17n.org>
In article <20041104234342.9C575C6718@lithium.ruby-lang.org>,
まつもと ゆきひろです
[#24720] メール関係ライブラリの標準添付について — MoonWolf <moonwolf@...>
MoonWolfです。
まつもと ゆきひろです
MoonWolfです。
高橋征義です。
naruseです。
[#24728] sysvipcをlibに取り込みたい — MoonWolf <moonwolf@...>
MoonWolfです。
[#24740] Ruby 1.8.2 preview3 — Yukihiro Matsumoto <matz@...>
Hello,
[#24748] "\000\000\000\001".unpack("N") returns [0] — GOTOU Yuuzou <gotoyuzo@...>
Ruby 1.8で、Ruby 1.9のtest/ruby/test_pack.rbを試すとエラーに
まつもと ゆきひろです
こんにちは、なかむら(う)です。
こんにちは、なかむら(う)です。
[#24771] Re: [ruby-cvs] ruby/lib, ruby/ext/socket, ruby: * dir.c (rb_glob2): do not allocate buffer from heap to avoid — nobu@...
なかだです。
まつもと ゆきひろです
まつもと ゆきひろです
[#24781] リリーススクリプト — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
[#24785] cannot require tk — Minero Aoki <aamine@...>
青木です。
[#24804] Re: まつもとさんの負担を減らすために、何ができるだろう — "URABE Shyouhei aka.mput" <root@...>
mput です。 ruby-dev に移動します。
In article <2D6284E3-351D-11D9-B7EF-000393735AAE@mput.dip.jp>,
mput です。
高橋征義です。
mput です。
[#24828] test_logger が -r gtk2 の時に失敗 — Kazuhiko <kazuhiko@...>
かずひこです。
まつもと ゆきひろです
[#24834] Process.getrlimit and Process.setrlimit — Tanaka Akira <akr@...17n.org>
Process.getrlimit と Process.setrlimit が欲しいので実装してみました。
なかだです。
In article <20041117.151309.21595195.taca@back-street.net>,
西山和広です。
In article <20041117154831.080F.ZN@mbf.nifty.com>,
まつもと ゆきひろです
In article <1100706032.176617.3333.nullmailer@x31.priv.netlab.jp>,
まつもと ゆきひろです
In article <1100749113.608312.10170.nullmailer@x31.priv.netlab.jp>,
[#24848] ERROR: install-doc — WATANABE Hirofumi <eban@...>
わたなべです。
[#24850] ChangeLog for — Tanaka Akira <akr@...17n.org>
[ruby-dev:24635] が commit log にも ChangeLog にも記述されないで取り込
In article <1100493656.630060.15787.nullmailer@x31.priv.netlab.jp>,
順序を変えて引用しています。
[#24873] A Float-related race in GC? — akira yamada / やまだあきら <akira@...>
[#24922] Re: imported Oni Guruma 3.4.0 — "K.Kosako" <kosako@...>
> 以下のパッチで segv はしなくなったのですが make test に失敗しました。
[#24924] [Oniguruma] patch for 3.4.0 — "K.Kosako" <kosako@...>
3.4.0のimport後、今日までに発見された
まつもと ゆきひろです
[#24965] sync and stdio buffering — Tanaka Akira <akr@...17n.org>
ちょっとした思いつきなのですが、
In article <87hdnc8pcq.fsf@serein.a02.aist.go.jp>,
まつもと ゆきひろです
In article <1101525226.648183.765.nullmailer@x31.priv.netlab.jp>,
In article <87653s7ye5.fsf@serein.a02.aist.go.jp>,
まつもと ゆきひろです
[#24974] Re: [ruby-cvs] ruby: * io.c (rb_io_initialize): should retrieve flags from copying file — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
まつもと ゆきひろです
[#24981] jcode tr? : from.upto(to) { |c| a.push c } — Fumitoshi UKAI <ukai@...>
migemo で http://bugs.debian.org/283192 というバグレポートをうけました。
[#24993] rb_io_sysread dumps core [BUG] rb_sys_fail() - errno == 0 — Tietew <tietew-ml-ruby-dev@...>
ソケットとスレッドを大量に使うアプリ(具体的には IRCbot です)を
なかだです。
まつもと ゆきひろです
[#25003] IO#flush dumps core again — Tanaka Akira <akr@...17n.org>
次のようにすると core を吐きます。
なかだです。
まつもと ゆきひろです
In article <1101836040.635395.27476.nullmailer@x31.priv.netlab.jp>,
In article <1101878558.979715.1359.nullmailer@x31.priv.netlab.jp>,
まつもと ゆきひろです
In article <1101888165.570792.4192.nullmailer@x31.priv.netlab.jp>,
In article <1102293033.356112.2288.nullmailer@x31.priv.netlab.jp>,
まつもと ゆきひろです
In article <1102324875.961165.10916.nullmailer@x31.priv.netlab.jp>,
In article <87sm6jznqj.fsf@serein.a02.aist.go.jp>,
[ruby-dev:24927] Re: [Oniguruma] patch for 3.4.0
Yukihiro Matsumotoさんの<1100861411.793754.1847.nullmailer@x31.priv.netlab.jp>から
> まつもと ゆきひろです
>
> In message "Re: [ruby-dev:24924] [Oniguruma] patch for 3.4.0"
> on Fri, 19 Nov 2004 19:45:57 +0900, "K.Kosako" <kosako@sofnec.co.jp> writes:
>
> |3.4.0のimport後、今日までに発見された
> |バグの修正を、一つのパッチに纏めました。
>
> ふたつめ以降のパッチがold diffになってます。diff -uで取り直
> していただけませんか。
了解しました。
--
小迫@ソフネック 渋谷区恵比寿1-15-1
--- test_regexp.rb 2004-10-30 08:22:57.000000000 +0900
+++ /home/kosako/oniguruma/test_regexp.rb 2004-11-19 17:36:57.000000000 +0900
@@ -8,4 +8,20 @@ class TestRegexp < Test::Unit::TestCase
def test_ruby_talk_116455
assert_match(/^(\w{2,}).* ([A-Za-z\xa2\xc0-\xff]{2,}?)$/, "Hallo Welt")
end
+
+ def test_ruby_dev_24887
+ assert_equal("a".gsub(/a\Z/, ""), "")
+ end
+
+ def test_yoshidam_net_20041111_1
+ s = "[\xC2\xA0-\xC3\xBE]"
+ assert_match(Regexp.new(s, nil, "u"), "\xC3\xBE")
+ end
+
+ def test_yoshidam_net_20041111_2
+ assert_raise(RegexpError) do
+ s = "[\xFF-\xFF]"
+ Regexp.new(s, nil, "u")
+ end
+ end
end
Index: regcomp.c
===================================================================
RCS file: /home/kosako/cvsrep/oniguruma/regcomp.c,v
retrieving revision 1.6
diff -u -p -r1.6 regcomp.c
--- regcomp.c 18 Oct 2004 11:44:53 -0000 1.6
+++ regcomp.c 19 Nov 2004 11:40:23 -0000
@@ -158,13 +158,7 @@ add_rel_addr(regex_t* reg, int addr)
{
RelAddrType ra = (RelAddrType )addr;
-#ifdef PLATFORM_UNALIGNED_WORD_ACCESS
BBUF_ADD(reg, &ra, SIZE_RELADDR);
-#else
- UChar buf[SERIALIZE_BUFSIZE];
- SERIALIZE_RELADDR(ra, buf);
- BBUF_ADD(reg, buf, SIZE_RELADDR);
-#endif
return 0;
}
@@ -173,13 +167,7 @@ add_abs_addr(regex_t* reg, int addr)
{
AbsAddrType ra = (AbsAddrType )addr;
-#ifdef PLATFORM_UNALIGNED_WORD_ACCESS
BBUF_ADD(reg, &ra, SIZE_ABSADDR);
-#else
- UChar buf[SERIALIZE_BUFSIZE];
- SERIALIZE_ABSADDR(ra, buf);
- BBUF_ADD(reg, buf, SIZE_ABSADDR);
-#endif
return 0;
}
@@ -188,13 +176,7 @@ add_length(regex_t* reg, int len)
{
LengthType l = (LengthType )len;
-#ifdef PLATFORM_UNALIGNED_WORD_ACCESS
BBUF_ADD(reg, &l, SIZE_LENGTH);
-#else
- UChar buf[SERIALIZE_BUFSIZE];
- SERIALIZE_LENGTH(l, buf);
- BBUF_ADD(reg, buf, SIZE_LENGTH);
-#endif
return 0;
}
@@ -203,13 +185,7 @@ add_mem_num(regex_t* reg, int num)
{
MemNumType n = (MemNumType )num;
-#ifdef PLATFORM_UNALIGNED_WORD_ACCESS
BBUF_ADD(reg, &n, SIZE_MEMNUM);
-#else
- UChar buf[SERIALIZE_BUFSIZE];
- SERIALIZE_MEMNUM(n, buf);
- BBUF_ADD(reg, buf, SIZE_MEMNUM);
-#endif
return 0;
}
@@ -219,13 +195,7 @@ add_repeat_num(regex_t* reg, int num)
{
RepeatNumType n = (RepeatNumType )num;
-#ifdef PLATFORM_UNALIGNED_WORD_ACCESS
BBUF_ADD(reg, &n, SIZE_REPEATNUM);
-#else
- UChar buf[SERIALIZE_BUFSIZE];
- SERIALIZE_REPEATNUM(n, buf);
- BBUF_ADD(reg, buf, SIZE_REPEATNUM);
-#endif
return 0;
}
#endif
@@ -233,13 +203,7 @@ add_repeat_num(regex_t* reg, int num)
static int
add_option(regex_t* reg, OnigOptionType option)
{
-#ifdef PLATFORM_UNALIGNED_WORD_ACCESS
BBUF_ADD(reg, &option, SIZE_OPTION);
-#else
- UChar buf[SERIALIZE_BUFSIZE];
- SERIALIZE_OPTION(option, buf);
- BBUF_ADD(reg, buf, SIZE_OPTION);
-#endif
return 0;
}
@@ -1637,9 +1601,6 @@ unset_addr_list_fix(UnsetAddrList* uslis
int i, offset;
EffectNode* en;
AbsAddrType addr;
-#ifndef PLATFORM_UNALIGNED_WORD_ACCESS
- UChar buf[SERIALIZE_BUFSIZE];
-#endif
for (i = 0; i < uslist->num; i++) {
en = &(NEFFECT(uslist->us[i].target));
@@ -1647,12 +1608,7 @@ unset_addr_list_fix(UnsetAddrList* uslis
addr = en->call_addr;
offset = uslist->us[i].offset;
-#ifdef PLATFORM_UNALIGNED_WORD_ACCESS
BBUF_WRITE(reg, offset, &addr, SIZE_ABSADDR);
-#else
- SERIALIZE_ABSADDR(addr, buf);
- BBUF_WRITE(reg, offset, buf, SIZE_ABSADDR);
-#endif
}
return 0;
}
@@ -5125,8 +5081,7 @@ onig_print_compiled_byte_code(FILE* f, U
case ARG_NON:
break;
case ARG_RELADDR:
- addr = *((RelAddrType* )bp);
- bp += SIZE_RELADDR;
+ GET_RELADDR_INC(addr, bp);
fprintf(f, ":(%d)", addr);
break;
case ARG_ABSADDR:
Index: regexec.c
===================================================================
RCS file: /home/kosako/cvsrep/oniguruma/regexec.c,v
retrieving revision 1.9
diff -u -p -r1.9 regexec.c
--- regexec.c 30 Oct 2004 03:31:58 -0000 1.9
+++ regexec.c 19 Nov 2004 11:40:23 -0000
@@ -3199,7 +3199,7 @@ onig_search(regex_t* reg, UChar* str, UC
}
}
else if (reg->anchor & ANCHOR_SEMI_END_BUF) {
- UChar* pre_end = ONIGENC_STEP_BACK(reg->enc, start, end, 1);
+ UChar* pre_end = ONIGENC_STEP_BACK(reg->enc, str, end, 1);
if (ONIGENC_IS_MBC_NEWLINE(reg->enc, pre_end, end)) {
semi_end = pre_end;
Index: regint.h
===================================================================
RCS file: /home/kosako/cvsrep/oniguruma/regint.h,v
retrieving revision 1.6
diff -u -p -r1.6 regint.h
--- regint.h 30 Oct 2004 03:31:58 -0000 1.6
+++ regint.h 19 Nov 2004 11:40:23 -0000
@@ -580,57 +580,31 @@ typedef short int MemNumType;
#define SIZE_OPTION sizeof(OnigOptionType)
#define SIZE_CODE_POINT sizeof(OnigCodePoint)
-#ifdef PLATFORM_UNALIGNED_WORD_ACCESS
-#define GET_RELADDR_INC(addr,p) do{\
- addr = *((RelAddrType* )(p));\
- (p) += SIZE_RELADDR;\
-} while(0)
-
-#define GET_ABSADDR_INC(addr,p) do{\
- addr = *((AbsAddrType* )(p));\
- (p) += SIZE_ABSADDR;\
-} while(0)
-
-#define GET_LENGTH_INC(len,p) do{\
- len = *((LengthType* )(p));\
- (p) += SIZE_LENGTH;\
-} while(0)
-#define GET_MEMNUM_INC(num,p) do{\
- num = *((MemNumType* )(p));\
- (p) += SIZE_MEMNUM;\
-} while(0)
-#define GET_REPEATNUM_INC(num,p) do{\
- num = *((RepeatNumType* )(p));\
- (p) += SIZE_REPEATNUM;\
-} while(0)
+#ifdef PLATFORM_UNALIGNED_WORD_ACCESS
-#define GET_OPTION_INC(option,p) do{\
- option = *((OnigOptionType* )(p));\
- (p) += SIZE_OPTION;\
+#define PLATFORM_GET_INC(val,p,type) do{\
+ val = *(type* )p;\
+ (p) += sizeof(type);\
} while(0)
#else
-#define GET_RELADDR_INC(addr,p) GET_SHORT_INC(addr,p)
-#define GET_ABSADDR_INC(addr,p) GET_SHORT_INC(addr,p)
-#define GET_LENGTH_INC(len,p) GET_SHORT_INC(len,p)
-#define GET_MEMNUM_INC(num,p) GET_SHORT_INC(num,p)
-#define GET_REPEATNUM_INC(num,p) GET_INT_INC(num,p)
-#define GET_OPTION_INC(option,p) GET_UINT_INC(option,p)
-
-#define SERIALIZE_RELADDR(addr,p) SERIALIZE_SHORT(addr,p)
-#define SERIALIZE_ABSADDR(addr,p) SERIALIZE_SHORT(addr,p)
-#define SERIALIZE_LENGTH(len,p) SERIALIZE_SHORT(len,p)
-#define SERIALIZE_MEMNUM(num,p) SERIALIZE_SHORT(num,p)
-#define SERIALIZE_REPEATNUM(num,p) SERIALIZE_INT(num,p)
-#define SERIALIZE_OPTION(option,p) SERIALIZE_UINT(option,p)
-
-#define SERIALIZE_BUFSIZE SIZEOF_INT
+#define PLATFORM_GET_INC(val,p,type) do{\
+ xmemcpy(&val, (p), sizeof(type));\
+ (p) += sizeof(type);\
+} while(0)
#endif /* PLATFORM_UNALIGNED_WORD_ACCESS */
+#define GET_RELADDR_INC(addr,p) PLATFORM_GET_INC(addr, p, RelAddrType)
+#define GET_ABSADDR_INC(addr,p) PLATFORM_GET_INC(addr, p, AbsAddrType)
+#define GET_LENGTH_INC(len,p) PLATFORM_GET_INC(len, p, LengthType)
+#define GET_MEMNUM_INC(num,p) PLATFORM_GET_INC(num, p, MemNumType)
+#define GET_REPEATNUM_INC(num,p) PLATFORM_GET_INC(num, p, RepeatNumType)
+#define GET_OPTION_INC(option,p) PLATFORM_GET_INC(option, p, OnigOptionType)
+
/* code point's address must be aligned address. */
#define GET_CODE_POINT(code,p) code = *((OnigCodePoint* )(p))
#define GET_BYTE_INC(byte,p) do{\
Index: regparse.c
===================================================================
RCS file: /home/kosako/cvsrep/oniguruma/regparse.c,v
retrieving revision 1.6
diff -u -p -r1.6 regparse.c
--- regparse.c 30 Oct 2004 04:21:32 -0000 1.6
+++ regparse.c 19 Nov 2004 11:40:23 -0000
@@ -3631,6 +3631,9 @@ next_state_val(CClassNode* cc, OnigCodeP
case CCS_RANGE:
if (intype == *type) {
if (intype == CCV_SB) {
+ if (*vs > 0xff || v > 0xff)
+ return ONIGERR_INVALID_WIDE_CHAR_VALUE;
+
if (*vs > v) {
if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC))
goto ccs_range_end;
@@ -3646,14 +3649,8 @@ next_state_val(CClassNode* cc, OnigCodeP
}
else {
#if 0
- if (intype == CCV_CODE_POINT && *type == CCV_SB &&
- ONIGENC_IS_CONTINUOUS_SB_MB(env->enc)) {
- bitset_set_range(cc->bs, (int )*vs, 0x7f);
- r = add_code_range(&(cc->mbuf), env, (OnigCodePoint )0x80, v);
- if (r < 0) return r;
- }
-#else
if (intype == CCV_CODE_POINT && *type == CCV_SB) {
+#endif
if (*vs > v) {
if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC))
goto ccs_range_end;
@@ -3663,10 +3660,11 @@ next_state_val(CClassNode* cc, OnigCodeP
bitset_set_range(cc->bs, (int )*vs, (int )(v < 0xff ? v : 0xff));
r = add_code_range(&(cc->mbuf), env, (OnigCodePoint )*vs, v);
if (r < 0) return r;
+#if 0
}
-#endif
else
return ONIGERR_MISMATCH_CODE_LENGTH_IN_CLASS_RANGE;
+#endif
}
ccs_range_end:
*state = CCS_COMPLETE;
@@ -3826,7 +3824,7 @@ parse_char_class(Node** np, OnigToken* t
break;
case TK_CODE_POINT:
- v = tok->u.code;
+ v = (OnigCodePoint )tok->u.code;
in_israw = 1;
val_entry:
len = ONIGENC_CODE_TO_MBCLEN(env->enc, v);
@@ -3952,7 +3950,7 @@ parse_char_class(Node** np, OnigToken* t
case TK_CC_AND: /* && */
{
if (state == CCS_VALUE) {
- r = next_state_val(cc, &vs, 0, &val_israw, 0, CCV_SB,
+ r = next_state_val(cc, &vs, 0, &val_israw, 0, val_type,
&val_type, &state, env);
if (r != 0) goto err;
}
@@ -3992,7 +3990,7 @@ parse_char_class(Node** np, OnigToken* t
}
if (state == CCS_VALUE) {
- r = next_state_val(cc, &vs, 0, &val_israw, 0, CCV_SB,
+ r = next_state_val(cc, &vs, 0, &val_israw, 0, val_type,
&val_type, &state, env);
if (r != 0) goto err;
}