[#24698] NKF(nkf2)を1.8ブランチに入れました — "NARUSE, Yui" <naruse@...>

naruseです。

14 messages 2004/11/03
[#24734] Re: NKF(nkf2)を1.8ブランチに入れました — 堀川 久 <vzw00011@...> 2004/11/06

こんにちは。

[#24720] メール関係ライブラリの標準添付について — MoonWolf <moonwolf@...>

MoonWolfです。

17 messages 2004/11/05
[#24721] Re: メール関係ライブラリの標準添付について — Yukihiro Matsumoto <matz@...> 2004/11/05

まつもと ゆきひろです

[#24722] Re: メール関係ライブラリの標準添付について — MoonWolf <moonwolf@...> 2004/11/05

MoonWolfです。

[#24804] Re: まつもとさんの負担を減らすために、何ができるだろう — "URABE Shyouhei aka.mput" <root@...>

mput です。 ruby-dev に移動します。

21 messages 2004/11/13
[#24805] Re: まつもとさんの負担を減らすために、何ができるだろう — Tanaka Akira <akr@...17n.org> 2004/11/13

In article <2D6284E3-351D-11D9-B7EF-000393735AAE@mput.dip.jp>,

[#24806] Re: まつもとさんの負担を減らすために、何ができるだろう — "URABE Shyouhei aka.mput" <root@...> 2004/11/13

mput です。

[#24808] Re: まつもとさんの負担を減らすために、何ができるだろう — Masayoshi Takahashi <maki@...> 2004/11/13

高橋征義です。

[#24809] Re: まつもとさんの負担を減らすために、何ができるだろう — "URABE Shyouhei aka.mput" <root@...> 2004/11/13

mput です。

[#24834] Process.getrlimit and Process.setrlimit — Tanaka Akira <akr@...17n.org>

Process.getrlimit と Process.setrlimit が欲しいので実装してみました。

25 messages 2004/11/13

[#24965] sync and stdio buffering — Tanaka Akira <akr@...17n.org>

ちょっとした思いつきなのですが、

12 messages 2004/11/26

[#24993] rb_io_sysread dumps core [BUG] rb_sys_fail() - errno == 0 — Tietew <tietew-ml-ruby-dev@...>

ソケットとスレッドを大量に使うアプリ(具体的には IRCbot です)を

13 messages 2004/11/29

[#25003] IO#flush dumps core again — Tanaka Akira <akr@...17n.org>

次のようにすると core を吐きます。

28 messages 2004/11/30
[#25004] Re: IO#flush dumps core again — nobu@... 2004/11/30

なかだです。

[#25005] Re: IO#flush dumps core again — Yukihiro Matsumoto <matz@...> 2004/11/30

まつもと ゆきひろです

[#25009] Re: IO#flush dumps core again — Tanaka Akira <akr@...17n.org> 2004/12/01

In article <1101836040.635395.27476.nullmailer@x31.priv.netlab.jp>,

[#25014] Re: IO#flush dumps core again — Tanaka Akira <akr@...17n.org> 2004/12/01

In article <1101878558.979715.1359.nullmailer@x31.priv.netlab.jp>,

[#25015] Re: IO#flush dumps core again — Yukihiro Matsumoto <matz@...> 2004/12/01

まつもと ゆきひろです

[#25056] Re: IO#flush dumps core again — Tanaka Akira <akr@...17n.org> 2004/12/05

In article <1101888165.570792.4192.nullmailer@x31.priv.netlab.jp>,

[#25074] Re: IO#flush dumps core again — Tanaka Akira <akr@...17n.org> 2004/12/06

In article <1102293033.356112.2288.nullmailer@x31.priv.netlab.jp>,

[ruby-dev:24924] [Oniguruma] patch for 3.4.0

From: "K.Kosako" <kosako@...>
Date: 2004-11-19 10:45:57 UTC
List: ruby-dev #24924
3.4.0のimport後、今日までに発見された
バグの修正を、一つのパッチに纏めました。

対応した不具合は以下の通りです。

1. [ruby-dev:24802], [ruby-core:3733]
   PLATFORM_UNALIGNED_WORD_ACCESSでない環境
   での致命的バグ

2. [ruby-dev:24859]
   HP-UX B.11.23 ia64 がmakeに失敗

3. [ruby-dev:24887]
   "a".gsub(/a\Z/, "")がSEGV

4. よしだむネット 2004/11/11
   UTF-8の文字クラス

test_regexp.rbへの追加も添付します。
--
小迫@ソフネック   渋谷区恵比寿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 -r1.6 regcomp.c
161d160
< #ifdef PLATFORM_UNALIGNED_WORD_ACCESS
163,167d161
< #else
<   UChar buf[SERIALIZE_BUFSIZE];
<   SERIALIZE_RELADDR(ra, buf);
<   BBUF_ADD(reg, buf, SIZE_RELADDR);
< #endif
176d169
< #ifdef PLATFORM_UNALIGNED_WORD_ACCESS
178,182d170
< #else
<   UChar buf[SERIALIZE_BUFSIZE];
<   SERIALIZE_ABSADDR(ra, buf);
<   BBUF_ADD(reg, buf, SIZE_ABSADDR);
< #endif
191d178
< #ifdef PLATFORM_UNALIGNED_WORD_ACCESS
193,197d179
< #else
<   UChar buf[SERIALIZE_BUFSIZE];
<   SERIALIZE_LENGTH(l, buf);
<   BBUF_ADD(reg, buf, SIZE_LENGTH);
< #endif
206d187
< #ifdef PLATFORM_UNALIGNED_WORD_ACCESS
208,212d188
< #else
<   UChar buf[SERIALIZE_BUFSIZE];
<   SERIALIZE_MEMNUM(n, buf);
<   BBUF_ADD(reg, buf, SIZE_MEMNUM);
< #endif
222d197
< #ifdef PLATFORM_UNALIGNED_WORD_ACCESS
224,228d198
< #else
<   UChar buf[SERIALIZE_BUFSIZE];
<   SERIALIZE_REPEATNUM(n, buf);
<   BBUF_ADD(reg, buf, SIZE_REPEATNUM);
< #endif
236d205
< #ifdef PLATFORM_UNALIGNED_WORD_ACCESS
238,242d206
< #else
<   UChar buf[SERIALIZE_BUFSIZE];
<   SERIALIZE_OPTION(option, buf);
<   BBUF_ADD(reg, buf, SIZE_OPTION);
< #endif
1640,1642d1603
< #ifndef PLATFORM_UNALIGNED_WORD_ACCESS
<   UChar buf[SERIALIZE_BUFSIZE];
< #endif
1650d1610
< #ifdef PLATFORM_UNALIGNED_WORD_ACCESS
1652,1655d1611
< #else
<     SERIALIZE_ABSADDR(addr, buf);
<     BBUF_WRITE(reg, offset, buf, SIZE_ABSADDR);
< #endif
5128,5129c5084
<       addr = *((RelAddrType* )bp);
<       bp += SIZE_RELADDR;
---
>       GET_RELADDR_INC(addr, bp);
Index: regexec.c
===================================================================
RCS file: /home/kosako/cvsrep/oniguruma/regexec.c,v
retrieving revision 1.9
diff -r1.9 regexec.c
3202c3202
<       UChar* pre_end = ONIGENC_STEP_BACK(reg->enc, start, end, 1);
---
>       UChar* pre_end = ONIGENC_STEP_BACK(reg->enc, str, end, 1);
Index: regint.h
===================================================================
RCS file: /home/kosako/cvsrep/oniguruma/regint.h,v
retrieving revision 1.6
diff -r1.6 regint.h
583,597d582
< #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)
599,602d583
< #define GET_MEMNUM_INC(num,p) do{\
<   num = *((MemNumType* )(p));\
<   (p) += SIZE_MEMNUM;\
< } while(0)
604,607c585
< #define GET_REPEATNUM_INC(num,p) do{\
<   num = *((RepeatNumType* )(p));\
<   (p) += SIZE_REPEATNUM;\
< } while(0)
---
> #ifdef PLATFORM_UNALIGNED_WORD_ACCESS
609,611c587,589
< #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);\
616,630c594,597
< #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)
632a600,606
> 
> #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)
Index: regparse.c
===================================================================
RCS file: /home/kosako/cvsrep/oniguruma/regparse.c,v
retrieving revision 1.6
diff -r1.6 regparse.c
3633a3634,3636
>         if (*vs > 0xff || v > 0xff)
>           return ONIGERR_INVALID_WIDE_CHAR_VALUE;
> 
3649,3655d3651
<       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
3656a3653
> #endif
3665a3663
> #if 0
3667d3664
< #endif
3669a3667
> #endif
3829c3827
<       v = tok->u.code;
---
>       v = (OnigCodePoint )tok->u.code;
3955c3953
< 	  r = next_state_val(cc, &vs, 0, &val_israw, 0, CCV_SB,
---
> 	  r = next_state_val(cc, &vs, 0, &val_israw, 0, val_type,
3995c3993
<     r = next_state_val(cc, &vs, 0, &val_israw, 0, CCV_SB,
---
>     r = next_state_val(cc, &vs, 0, &val_israw, 0, val_type,

In This Thread

Prev Next