1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

for undefined conversions.

* transcode_data_iso_8859.c: Changed from character constants
  ('\xC2') to integer contants (0xC2) for shorter files and
  better readability; eliminated duplicated tables; changed
  from -1 offset to actual UNDEF entry (not yet distinguishing
  UNDEF and ILLEGAL correctly).

* test/ruby/test_transcode.rb: added a test for UNDEF conversion.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14251 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
matz 2007-12-17 01:28:26 +00:00
parent b7beb63b0b
commit 5c4cf9bfdf
5 changed files with 1639 additions and 1953 deletions

View file

@ -191,7 +191,6 @@ transcode_loop(char **in_pos, char **out_pos,
next_byte = (unsigned char)*in_p++;
follow_byte:
next_offset = next_table->base[next_byte];
if (next_offset == (base_element)-1) goto illegal;
next_info = (VALUE)next_table->info[next_offset];
switch (next_info & 0x1F) {
case NOMAP:
@ -234,7 +233,7 @@ transcode_loop(char **in_pos, char **out_pos,
goto illegal;
case UNDEF:
/* todo: add code for alternative behaviors */
rb_raise(rb_eRuntimeError /*@@@change exception*/, "conversion undefined for byte sequence");
rb_raise(rb_eRuntimeError /*@@@change exception*/, "conversion undefined for byte sequence (maybe illegal byte sequence)");
continue;
}
continue;