public void setRegexpEncoding(Ruby runtime, ByteList value, RegexpOptions options) { Encoding optionsEncoding = options.setup(runtime); // Change encoding to one specified by regexp options as long as the string is compatible. if (optionsEncoding != null) { if (optionsEncoding != value.getEncoding() && !is7BitASCII(value)) { mismatchedRegexpEncodingError(optionsEncoding, value.getEncoding()); } value.setEncoding(optionsEncoding); } else if (options.isEncodingNone()) { if (value.getEncoding() != ASCII8BIT_ENCODING && !is7BitASCII(value)) { mismatchedRegexpEncodingError(optionsEncoding, value.getEncoding()); } value.setEncoding(ASCII8BIT_ENCODING); } else if (getEncoding() == USASCII_ENCODING) { if (!is7BitASCII(value)) { value.setEncoding(USASCII_ENCODING); // This will raise later } else { value.setEncoding(ASCII8BIT_ENCODING); } } }
public void setRegexpEncoding(Ruby runtime, ByteList value, RegexpOptions options) { Encoding optionsEncoding = options.setup(runtime); // Change encoding to one specified by regexp options as long as the string is compatible. if (optionsEncoding != null) { if (optionsEncoding != value.getEncoding() && !is7BitASCII(value)) { mismatchedRegexpEncodingError(optionsEncoding, value.getEncoding()); } value.setEncoding(optionsEncoding); } else if (options.isEncodingNone()) { if (value.getEncoding() != ASCII8BIT_ENCODING && !is7BitASCII(value)) { mismatchedRegexpEncodingError(optionsEncoding, value.getEncoding()); } value.setEncoding(ASCII8BIT_ENCODING); } else if (getEncoding() == USASCII_ENCODING) { if (!is7BitASCII(value)) { value.setEncoding(USASCII_ENCODING); // This will raise later } else { value.setEncoding(ASCII8BIT_ENCODING); } } }