SwitchMode (bytes, ref byteIndex, ref byteCount, ref m, ISO2022JPMode.ASCII);
value = (int) ch;
} else {
-#if NET_2_0
HandleFallback (
chars, ref i, ref charCount,
bytes, ref byteIndex, ref byteCount, this);
-#endif
// skip non-convertible character
continue;
}
}
else
{
-#if NET_2_0
HandleFallback (chars, ref i, ref charCount,
bytes, ref byteIndex, ref byteCount, this);
-#endif
// skip non-convertible character
continue;
}
}
#endif
-#if NET_2_0
public override void Reset ()
{
m = ISO2022JPMode.ASCII;
shifted_in_conv = shifted_in_count = false;
}
-#endif
}
continue;
}
i++;
- if (bytes [i] == 0x42)
+ if (bytes [i] == 0x42 || bytes [i] == 0x40)
m = wide ? ISO2022JPMode.JISX0208 : ISO2022JPMode.ASCII;
else if (bytes [i] == 0x4A) // obsoleted
m = ISO2022JPMode.ASCII;
// am so lazy, so reusing jis2sjis
int s1 = ((bytes [i] - 1) >> 1) + ((bytes [i] <= 0x5e) ? 0x71 : 0xb1);
int s2 = bytes [i + 1] + (((bytes [i] & 1) != 0) ? 0x20 : 0x7e);
- int v = (s1 - 0x81) * 0xBC;
+ int v = (s1 <= 0x9F ? (s1 - 0x81) : (s1 - 0xc1)) * 0xBC;
v += s2 - 0x41;
int ch = ToChar (v);
continue;
}
i++;
- if (bytes [i] == 0x42)
+ if (bytes [i] == 0x42 || bytes [i] == 0x40)
m = wide ? ISO2022JPMode.JISX0208 : ISO2022JPMode.ASCII;
else if (bytes [i] == 0x4A) // obsoleted
m = ISO2022JPMode.ASCII;
return charIndex - start;
}
-#if NET_2_0
public override void Reset ()
{
m = ISO2022JPMode.ASCII;
shifted_in_count = shifted_in_conv = false;
}
-#endif
}
[Serializable]