@Deprecated public static boolean isUnicode(Encoding enc) { return enc.isUnicode(); } }
@Deprecated public static boolean isUnicode(Encoding enc) { return enc.isUnicode(); } }
@Override public IRubyObject size(IRubyObject[] args) { Ruby runtime = getRuntime(); ByteList value = getByteList(); Encoding enc = value.getEncoding(); if (!enc.isUnicode() || isSingleByteOptimizable(RubyString.this, enc)) return rubyLength(runtime); Regex reg = RubyRegexp.getRegexpFromCache(runtime, GRAPHEME_CLUSTER_PATTERN, enc, RegexpOptions.NULL_OPTIONS); int beg = value.getBegin(); int end = beg + value.getRealSize(); Matcher matcher = reg.matcher(value.getUnsafeBytes(), beg, end); int count = 0; while (beg < end) { int len = matcher.match(beg, end, Option.DEFAULT); if (len <= 0) break; count++; beg += len; } return RubyFixnum.newFixnum(runtime, count); } };
@Override public IRubyObject size(IRubyObject[] args) { Ruby runtime = getRuntime(); ByteList value = getByteList(); Encoding enc = value.getEncoding(); if (!enc.isUnicode() || isSingleByteOptimizable(RubyString.this, enc)) return rubyLength(runtime); Regex reg = RubyRegexp.getRegexpFromCache(runtime, GRAPHEME_CLUSTER_PATTERN, enc, RegexpOptions.NULL_OPTIONS); int beg = value.getBegin(); int end = beg + value.getRealSize(); Matcher matcher = reg.matcher(value.getUnsafeBytes(), beg, end); int count = 0; while (beg < end) { int len = matcher.match(beg, end, Option.DEFAULT); if (len <= 0) break; count++; beg += len; } return RubyFixnum.newFixnum(runtime, count); } };
private Node parseLineBreak() { byte[]buflb = new byte[Config.ENC_CODE_TO_MBC_MAXLEN * 2]; int len1 = enc.codeToMbc(0x0D, buflb, 0); int len2 = enc.codeToMbc(0x0A, buflb, len1); StringNode left = new StringNode(buflb, 0, len1 + len2); left.setRaw(); /* [\x0A-\x0D] or [\x0A-\x0D\x{85}\x{2028}\x{2029}] */ CClassNode right = new CClassNode(); if (enc.minLength() > 1) { right.addCodeRange(env, 0x0A, 0x0D); } else { right.bs.setRange(env, 0x0A, 0x0D); } if (enc.isUnicode()) { /* UTF-8, UTF-16BE/LE, UTF-32BE/LE */ right.addCodeRange(env, 0x85, 0x85); right.addCodeRange(env, 0x2028, 0x2029); } /* (?>...) */ EncloseNode en = new EncloseNode(EncloseType.STOP_BACKTRACK); en.setTarget(ListNode.newAlt(left, ListNode.newAlt(right, null))); return en; }
private Node parseLineBreak() { byte[]buflb = new byte[Config.ENC_CODE_TO_MBC_MAXLEN * 2]; int len1 = enc.codeToMbc(0x0D, buflb, 0); int len2 = enc.codeToMbc(0x0A, buflb, len1); StringNode left = new StringNode(buflb, 0, len1 + len2); left.setRaw(); /* [\x0A-\x0D] or [\x0A-\x0D\x{85}\x{2028}\x{2029}] */ CClassNode right = new CClassNode(); if (enc.minLength() > 1) { right.addCodeRange(env, 0x0A, 0x0D); } else { right.bs.setRange(env, 0x0A, 0x0D); } if (enc.isUnicode()) { /* UTF-8, UTF-16BE/LE, UTF-32BE/LE */ right.addCodeRange(env, 0x85, 0x85); right.addCodeRange(env, 0x2028, 0x2029); } /* (?>...) */ EncloseNode en = new EncloseNode(EncloseType.STOP_BACKTRACK); en.setTarget(ListNode.newAlt(left, ListNode.newAlt(right, null))); return en; }
byte[] buf; RubyString result = RubyString.newEmptyString(runtime); boolean unicode_p = enc.isUnicode(); boolean asciicompat = enc.isAsciiCompatible();
byte[] buf; RubyString result = RubyString.newEmptyString(runtime); boolean unicode_p = enc.isUnicode(); boolean asciicompat = enc.isAsciiCompatible();
RubyString str = this; Encoding enc = str.getEncoding(); if (!enc.isUnicode() || isSingleByteOptimizable(str, enc)) { return enumerateChars(context, name, block, wantarray);
RubyString str = this; Encoding enc = str.getEncoding(); if (!enc.isUnicode() || isSingleByteOptimizable(str, enc)) { return enumerateChars(context, name, block, wantarray);
to.append(bytes, start, len); } else { boolean isUnicode = enc.isUnicode(); p = start; while (p < end) {
to.append(bytes, start, len); } else { boolean isUnicode = enc.isUnicode(); p = start; while (p < end) {
int prev = p; RubyString result = RubyString.newEmptyString(runtime); boolean unicode_p = enc.isUnicode(); boolean asciicompat = enc.isAsciiCompatible();
int prev = p; RubyString result = RubyString.newEmptyString(runtime); boolean unicode_p = enc.isUnicode(); boolean asciicompat = enc.isAsciiCompatible();
boolean isUnicode = enc.isUnicode(); boolean asciiCompat = enc.isAsciiCompatible(); boolean needsQuotes = false;
boolean isUnicode = enc.isUnicode(); boolean asciiCompat = enc.isAsciiCompatible(); boolean needsQuotes = false;
RubyString result = new RubyString(runtime, runtime.getString(), new ByteList(end - p)); Encoding resultEnc = runtime.getDefaultInternalEncoding(); boolean isUnicode = enc.isUnicode(); boolean asciiCompat = enc.isAsciiCompatible();
RubyString result = new RubyString(runtime, runtime.getString(), new ByteList(end - p)); Encoding resultEnc = runtime.getDefaultInternalEncoding(); boolean isUnicode = enc.isUnicode(); boolean asciiCompat = enc.isAsciiCompatible();
private Node parseExtendedGraphemeCluster() { ListNode alt; if (Config.USE_UNICODE_PROPERTIES && enc.isUnicode()) { int sbOut = enc.minLength() > 1 ? 0x00 : 0x80; int extend = GraphemeNames.nameToCtype(enc, GraphemeNames.Grapheme_Cluster_Break_Extend); enclose.setTarget(alt); if (Config.USE_UNICODE_PROPERTIES && enc.isUnicode()) { int option = bsOnOff(env.option, Option.IGNORECASE, true); EncloseNode enc = EncloseNode.newOption(option);
private Node parseExtendedGraphemeCluster() { ListNode alt; if (Config.USE_UNICODE_PROPERTIES && enc.isUnicode()) { int sbOut = enc.minLength() > 1 ? 0x00 : 0x80; int extend = GraphemeNames.nameToCtype(enc, GraphemeNames.Grapheme_Cluster_Break_Extend); enclose.setTarget(alt); if (Config.USE_UNICODE_PROPERTIES && enc.isUnicode()) { int option = bsOnOff(env.option, Option.IGNORECASE, true); EncloseNode enc = EncloseNode.newOption(option);