[#29736] [提案] Kernel#p をもっと便利に — "Yusuke ENDOH" <mame@...>

遠藤侑介と申します。

19 messages 2006/11/01

[#29765] merge with YARV — SASADA Koichi <ko1@...>

 ささだです。

16 messages 2006/11/03

[#29767] 1.8 proposal of RUBY_PATCHLEVEL — URABE Shyouhei <root@...>

-----BEGIN PGP SIGNED MESSAGE-----

52 messages 2006/11/04
[#29771] Re: 1.8 proposal of RUBY_PATCHLEVEL — Shugo Maeda <shugo@...> 2006/11/04

前田です。

[#29925] ruby -v — Urabe Shyouhei <shyouhei@...>

卜部です。

28 messages 2006/11/24

[#29964] 1.8, 1.9, svn化, などなどのまとめ — "U.Nakamura" <usa@...>

こんにちは、なかむら(う)です。

15 messages 2006/11/28

[#29970] BUG: Incorrect handling of Ignorecase matching (regex.c of 1.8.5) — "きむらこういち" <hogemuta@...>

木村です。

15 messages 2006/11/28

[ruby-dev:29974] Re: BUG: Incorrect handling of Ignorecase matching (regex.c of 1.8.5)

From: KIMURA Koichi <kimura.koichi@...>
Date: 2006-11-29 03:22:04 UTC
List: ruby-dev #29974
木村です。

On Wed, 29 Nov 2006 10:30:01 +0900
KIMURA Koichi <kimura.koichi@canon.co.jp> wrote:

> パッチについてはちょっと考え直します。

作り直しました。

re_compile_fastmap は、一つのパターンを内部表現に変換するときに一回だけ
呼ばれるものなので、例のフラグは関数のauto 変数として保持しても大丈夫だ
と思います。

あとfastmapに格納される内容が1,2の2通りあるので、それを潰さないように
しました。

#とここまで書いたら、魔神からパッチが出てしまった。

--- regex.c.orig	2006-08-07 12:43:42.000000000 +0900
+++ regex.c	2006-11-29 11:43:49.524937500 +0900
@@ -2788,6 +2788,8 @@ re_compile_fastmap(bufp)
   unsigned char **stacke = stackb + NFAILURES;
   int options = bufp->options;
 
+  int found_casefold = 0;
+
   memset(fastmap, 0, (1 << BYTEWIDTH));
   bufp->fastmap_accurate = 1;
   bufp->can_be_null = 0;
@@ -2836,6 +2838,19 @@ re_compile_fastmap(bufp)
       case casefold_on:
 	bufp->options |= RE_MAY_IGNORECASE;
 	options |= RE_OPTION_IGNORECASE;
+          {
+              if (!found_casefold) {
+                  char *p = fastmap;
+                  int i;
+                  for (i=0; i<=(1<<BYTEWIDTH); i++) {
+                      if (p[i]!=0) {
+                          p[translate[i]] = p[i];
+                          /* p[i] = 0; Do we need this line?*/
+                      }
+                  }
+                  found_casefold = 1;
+              }
+          }
 	continue;
 
       case casefold_off:


-- 
木村浩一


In This Thread