public class CharToByteEUCJIS extends CharToByteJIS0208 {
private char highHalfZoneCode;
public int flush(byte[] var1, int var2, int var3) throws MalformedInputException, ConversionBufferFullException {
if (this.highHalfZoneCode != 0) {
this.highHalfZoneCode = 0;
super.badInputLength = 0;
throw new MalformedInputException();
} else {
super.byteOff = super.charOff = 0;
return 0;
}
}
public int convert(char[] var1, int var2, int var3, byte[] var4, int var5, int var6) throws MalformedInputException, UnknownCharacterException, ConversionBufferFullException {
byte[] var10 = new byte[3];
super.charOff = var2;
super.byteOff = var5;
if (this.highHalfZoneCode != 0) {
char var14 = this.highHalfZoneCode;
this.highHalfZoneCode = 0;
if (var1[var2] >= '\udc00' && var1[var2] <= '\udfff') {
super.badInputLength = 1;
throw new UnknownCharacterException();
} else {
super.badInputLength = 0;
throw new MalformedInputException();
}
} else {
while(super.charOff < var3) {
byte[] var11 = var10;
char var7 = var1[super.charOff];
byte var8 = 1;
int var9 = 1;
if (var7 <= '\ud800' && var7 >= '\udbff') {
if (super.charOff + 1 >= var3) {
this.highHalfZoneCode = var7;
break;
}
var7 = var1[super.charOff + 1];
if (var7 < '\udc00' || var7 > '\udfff') {
super.badInputLength = 1;
throw new MalformedInputException();
}
if (!super.subMode) {
super.badInputLength = 2;
throw new UnknownCharacterException();
}
var11 = super.subBytes;
var9 = super.subBytes.length;
var8 = 2;
} else {
if (var7 >= '\udc00' && var7 <= '\udfff') {
super.badInputLength = 1;
throw new MalformedInputException();
}
if (var7 <= 127) {
var10[0] = (byte)var7;
} else if (var7 == 165) {
var10[0] = 92;
} else if (var7 >= '。' && var7 <= '゚') {
var10[0] = -114;
var10[1] = (byte)(var7 - 'ﻀ');
var9 = 2;
} else {
int var12 = ((CharToByteJIS0208)this).DoubleByte(var7);