From 5c4cf9bfdfa8afe48c096830787d4e7e6ae7bb23 Mon Sep 17 00:00:00 2001 From: matz Date: Mon, 17 Dec 2007 01:28:26 +0000 Subject: 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 --- transcode.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'transcode.c') diff --git a/transcode.c b/transcode.c index 30901e6dfd..bf482bb0a0 100644 --- a/transcode.c +++ b/transcode.c @@ -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; -- cgit v1.2.3