[Gauche-devel-jp] multibyte regexp bug

Zurück zum Archiv-Index

Shiro Kawai shiro****@lava*****
2002年 11月 28日 (木) 20:06:56 JST


バグでした。euc-jpではたまたま表面化しなかったため
見逃していました。

仕様では、多バイト文字は全てnon-whitespaceかつ
non-alphanumericな文字として扱うことにしています。
(従って、\Sにはマッチしますが、\wにはマッチしません。
\wの扱いに関しては変えるかもしれません)。

以下のパッチで直ると思います。

==============================
RCS file: /cvsroot/gauche/Gauche/src/regexp.c,v
retrieving revision 1.33
diff -c -r1.33 regexp.c
*** regexp.c	18 Oct 2002 05:00:17 -0000	1.33
--- regexp.c	28 Nov 2002 11:04:41 -0000
***************
*** 970,976 ****
                  input++;
              } else {
                  code++;
!                 input += SCM_CHAR_NBYTES((unsigned char)*input);
              }
              continue;
          case RE_SET:
--- 970,976 ----
                  input++;
              } else {
                  code++;
!                 input += SCM_CHAR_NFOLLOWS((unsigned char)*input) + 1;
              }
              continue;
          case RE_SET:
==============================

--shiro



Gauche-devel-jp メーリングリストの案内
Zurück zum Archiv-Index