public static void validateEncodingBinmode(ThreadContext context, int[] fmode_p, int ecflags, IOEncodable ioEncodable) { Ruby runtime = context.runtime; int fmode = fmode_p[0]; if ((fmode & OpenFile.READABLE) != 0 && ioEncodable.getEnc2() == null && (fmode & OpenFile.BINMODE) == 0 && !(ioEncodable.getEnc() != null ? ioEncodable.getEnc() : runtime.getDefaultExternalEncoding()).isAsciiCompatible()) { throw runtime.newArgumentError("ASCII incompatible encoding needs binmode"); } if ((fmode & OpenFile.BINMODE) == 0 && (EncodingUtils.DEFAULT_TEXTMODE != 0 || (ecflags & EncodingUtils.ECONV_DECORATOR_MASK) != 0)) { fmode |= EncodingUtils.DEFAULT_TEXTMODE; fmode_p[0] = fmode; } else if (EncodingUtils.DEFAULT_TEXTMODE == 0 && (ecflags & ECONV_NEWLINE_DECORATOR_MASK) == 0) { fmode &= ~OpenFile.TEXTMODE; fmode_p[0] = fmode; } }
public void copy(IOEncodable that) { this.enc = that.getEnc(); this.enc2 = that.getEnc2(); this.ecflags = that.getEcflags(); this.ecopts = that.getEcopts(); this.bom = that.getBOM(); }
public static void validateEncodingBinmode(ThreadContext context, int[] fmode_p, int ecflags, IOEncodable ioEncodable) { Ruby runtime = context.runtime; int fmode = fmode_p[0]; if ((fmode & OpenFile.READABLE) != 0 && ioEncodable.getEnc2() == null && (fmode & OpenFile.BINMODE) == 0 && !(ioEncodable.getEnc() != null ? ioEncodable.getEnc() : runtime.getDefaultExternalEncoding()).isAsciiCompatible()) { throw runtime.newArgumentError("ASCII incompatible encoding needs binmode"); } if ((fmode & OpenFile.BINMODE) == 0 && (EncodingUtils.DEFAULT_TEXTMODE != 0 || (ecflags & EncodingUtils.ECONV_DECORATOR_MASK) != 0)) { fmode |= EncodingUtils.DEFAULT_TEXTMODE; fmode_p[0] = fmode; } else if (EncodingUtils.DEFAULT_TEXTMODE == 0 && (ecflags & ECONV_NEWLINE_DECORATOR_MASK) == 0) { fmode &= ~OpenFile.TEXTMODE; fmode_p[0] = fmode; } }
public void copy(IOEncodable that) { this.enc = that.getEnc(); this.enc2 = that.getEnc2(); this.ecflags = that.getEcflags(); this.ecopts = that.getEcopts(); this.bom = that.getBOM(); }
public static void validateEncodingBinmode(ThreadContext context, int[] fmode_p, int ecflags, IOEncodable ioEncodable) { Ruby runtime = context.runtime; int fmode = fmode_p[0]; if ((fmode & OpenFile.READABLE) != 0 && ioEncodable.getEnc2() == null && (fmode & OpenFile.BINMODE) == 0 && !(ioEncodable.getEnc() != null ? ioEncodable.getEnc() : runtime.getDefaultExternalEncoding()).isAsciiCompatible()) { throw runtime.newArgumentError("ASCII incompatible encoding needs binmode"); } if ((fmode & OpenFile.BINMODE) != 0 && (ecflags & EConvFlags.NEWLINE_DECORATOR_MASK) != 0) { throw runtime.newArgumentError("newline decorator with binary mode"); } if ((fmode & OpenFile.BINMODE) == 0 && (EncodingUtils.DEFAULT_TEXTMODE != 0 || (ecflags & EConvFlags.NEWLINE_DECORATOR_MASK) != 0)) { fmode |= OpenFile.TEXTMODE; fmode_p[0] = fmode; } else if (EncodingUtils.DEFAULT_TEXTMODE == 0 && (ecflags & EConvFlags.NEWLINE_DECORATOR_MASK) == 0) { fmode &= ~OpenFile.TEXTMODE; fmode_p[0] = fmode; } }
public static void validateEncodingBinmode(ThreadContext context, int[] fmode_p, int ecflags, IOEncodable ioEncodable) { Ruby runtime = context.runtime; int fmode = fmode_p[0]; if ((fmode & OpenFile.READABLE) != 0 && ioEncodable.getEnc2() == null && (fmode & OpenFile.BINMODE) == 0 && !(ioEncodable.getEnc() != null ? ioEncodable.getEnc() : runtime.getDefaultExternalEncoding()).isAsciiCompatible()) { throw runtime.newArgumentError("ASCII incompatible encoding needs binmode"); } if ((fmode & OpenFile.BINMODE) != 0 && (ecflags & EConvFlags.NEWLINE_DECORATOR_MASK) != 0) { throw runtime.newArgumentError("newline decorator with binary mode"); } if ((fmode & OpenFile.BINMODE) == 0 && (EncodingUtils.DEFAULT_TEXTMODE != 0 || (ecflags & EConvFlags.NEWLINE_DECORATOR_MASK) != 0)) { fmode |= OpenFile.TEXTMODE; fmode_p[0] = fmode; } else if (EncodingUtils.DEFAULT_TEXTMODE == 0 && (ecflags & EConvFlags.NEWLINE_DECORATOR_MASK) == 0) { fmode &= ~OpenFile.TEXTMODE; fmode_p[0] = fmode; } }