From 766f2adb74adbe476e693c0e541ea265c5a62f36 Mon Sep 17 00:00:00 2001 From: matz Date: Thu, 6 Feb 2003 10:06:47 +0000 Subject: * re.c (rb_reg_initialize_m): shoule not preset "kcode" unless encoding is explicitly specified. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3453 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ re.c | 32 +++++++++++++++++--------------- 2 files changed, 22 insertions(+), 15 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4ca02ddf87..d2330e440a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Thu Feb 6 19:04:32 2003 Yukihiro Matsumoto + + * re.c (rb_reg_initialize_m): shoule not preset "kcode" unless + encoding is explicitly specified. + Thu Feb 6 19:01:32 2003 Minero Aoki * lib/fileutils.rb: new method FileUtils.pwd. diff --git a/re.c b/re.c index b837da8c3f..4b8c821d2b 100644 --- a/re.c +++ b/re.c @@ -1239,21 +1239,23 @@ rb_reg_initialize_m(argc, argv, self) } rb_reg_check(argv[0]); flags = RREGEXP(argv[0])->ptr->options & 0xf; - switch (RBASIC(argv[0])->flags & KCODE_MASK) { - case KCODE_NONE: - flags |= 16; - break; - case KCODE_EUC: - flags |= 32; - break; - case KCODE_SJIS: - flags |= 48; - break; - case KCODE_UTF8: - flags |= 64; - break; - default: - break; + if (FL_TEST(argv[0], KCODE_FIXED)) { + switch (RBASIC(argv[0])->flags & KCODE_MASK) { + case KCODE_NONE: + flags |= 16; + break; + case KCODE_EUC: + flags |= 32; + break; + case KCODE_SJIS: + flags |= 48; + break; + case KCODE_UTF8: + flags |= 64; + break; + default: + break; + } } s = RREGEXP(argv[0])->str; len = RREGEXP(argv[0])->len; -- cgit v1.2.3