summaryrefslogtreecommitdiff
path: root/transcode.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-12-17 01:28:26 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-12-17 01:28:26 +0000
commit5c4cf9bfdfa8afe48c096830787d4e7e6ae7bb23 (patch)
treec4fe1447f18ac861210664f44e8954270f68af4a /transcode.c
parentb7beb63b0b55819a68eb93a96b86ceda9bd8c5a4 (diff)
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
Diffstat (limited to 'transcode.c')
-rw-r--r--transcode.c3
1 files changed, 1 insertions, 2 deletions
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;