private RubyArray splitCommon(IRubyObject spat, final boolean limit, final int lim, final int i, ThreadContext context) { final RubyArray result; if (spat.isNil() && (spat = context.runtime.getGlobalVariables().get("$;")).isNil()) { result = awkSplit(limit, lim, i); } else { if (spat instanceof RubyString && ((RubyString) spat).value.getRealSize() == 1) { RubyString strSpat = (RubyString) spat; if (strSpat.value.getUnsafeBytes()[strSpat.value.getBegin()] == (byte) ' ') { result = awkSplit(limit, lim, i); } else { result = regexSplit(context, spat, limit, lim, i); } } else { result = regexSplit(context, spat, limit, lim, i); } } if (!limit && lim == 0) { while (result.size() > 0 && ((RubyString) result.eltInternal(result.size() - 1)).value.getRealSize() == 0) { result.pop(context); } } return result; }
private RubyArray splitCommon(IRubyObject spat, final boolean limit, final int lim, final int i, ThreadContext context) { final RubyArray result; if (spat.isNil() && (spat = context.runtime.getGlobalVariables().get("$;")).isNil()) { result = awkSplit(limit, lim, i); } else { if (spat instanceof RubyString && ((RubyString) spat).value.getRealSize() == 1) { RubyString strSpat = (RubyString) spat; if (strSpat.value.getUnsafeBytes()[strSpat.value.getBegin()] == (byte) ' ') { result = awkSplit(limit, lim, i); } else { result = regexSplit(context, spat, limit, lim, i); } } else { result = regexSplit(context, spat, limit, lim, i); } } if (!limit && lim == 0) { while (result.size() > 0 && ((RubyString) result.eltInternal(result.size() - 1)).value.getRealSize() == 0) { result.pop(context); } } return result; }
private RubyArray splitCommon(ThreadContext context, IRubyObject spat, final boolean limit, final int lim, final int i, boolean useBackref) { final RubyArray result; if (spat == context.nil && (spat = context.runtime.getGlobalVariables().get("$;")) == context.nil) { result = awkSplit(context.runtime, limit, lim, i); } else { spat = getPatternQuoted(context, spat, false); c = len == StringSupport.preciseLength(spatEnc, bytes, p, p + len) ? spatEnc.mbcToCode(bytes, p, p + len) : -1; result = c == ' ' ? awkSplit(context.runtime, limit, lim, i) : stringSplit(context, (RubyString)spat, limit, lim, i);
private RubyArray splitCommon(ThreadContext context, IRubyObject spat, final boolean limit, final int lim, final int i, boolean useBackref) { final RubyArray result; if (spat == context.nil && (spat = context.runtime.getGlobalVariables().get("$;")) == context.nil) { result = awkSplit(context.runtime, limit, lim, i); } else { spat = getPatternQuoted(context, spat, false); c = len == StringSupport.preciseLength(spatEnc, bytes, p, p + len) ? spatEnc.mbcToCode(bytes, p, p + len) : -1; result = c == ' ' ? awkSplit(context.runtime, limit, lim, i) : stringSplit(context, (RubyString)spat, limit, lim, i);