diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-10-16 16:57:08 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-10-16 16:57:08 +0000 |
commit | 81ed881511962bbd3d03f8c02c190ad247883aa5 (patch) | |
tree | 43a83b84c034836a236fb3e5c8675cfdcccbc1a5 /re.c | |
parent | 24c863cf84f8c4573d2b8c30c88258c6b18e9f1a (diff) | |
download | ruby-81ed881511962bbd3d03f8c02c190ad247883aa5.tar.gz |
* re.c (rb_reg_initialize_m): allow binary encoding option.
[ruby-dev:32083]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13725 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 're.c')
-rw-r--r-- | re.c | 12 |
1 files changed, 11 insertions, 1 deletions
@@ -1573,7 +1573,7 @@ rb_reg_initialize_m(int argc, VALUE *argv, VALUE self) int flags = 0; VALUE str; - if (argc == 0 || argc > 2) { + if (argc == 0 || argc > 3) { rb_raise(rb_eArgError, "wrong number of arguments"); } if (TYPE(argv[0]) == T_REGEXP) { @@ -1600,7 +1600,17 @@ rb_reg_initialize_m(int argc, VALUE *argv, VALUE self) if (FIXNUM_P(argv[1])) flags = FIX2INT(argv[1]); else if (RTEST(argv[1])) flags = ONIG_OPTION_IGNORECASE; } + if (argc == 3 && !NIL_P(argv[2])) { + char *kcode = StringValuePtr(argv[2]); + if (kcode[0] == 'n' || kcode[1] == 'N') { + flags |= ARG_KCODE_NONE; + } + else { + rb_warning("encoding option is obsolete - %s", kcode); + } + } str = argv[0]; + StringValueCStr(str); if (rb_reg_initialize_str(self, str, flags, err)) { rb_reg_raise_str(str, flags, err); } |