proc main()
{
var badUtf = new PackUbyte(10);
badUtf[0] = 'B';
badUtf[1] = 'a';
badUtf[2] = 'd';
badUtf[3] = ' ';
badUtf[4] = 0x92; // Illegal UTF-8 char
badUtf[5] = ' ';
badUtf[6] = 'U';
badUtf[7] = 'T';
badUtf[8] = 'F';
badUtf[9] = '\n';
var f = new File("badutf8c.txt", "wb");
f.write(badUtf);
f.close();
// "r+" so we can delete it on close
f = new File("badutf8c.txt", "r+");
try {
while (true) {
var ch = f.getchar();
"", WideChar(ch);
}
}
catch (e) {
"\n";
if (e == oadl::UTF8Check) {
"Caught UTF8Check as expected\n";
f.close("delete");
oadl::halt();
}
}
"Failed to catch UTF8check\n";
}