diff options
Diffstat (limited to 'transcode.c')
| -rw-r--r-- | transcode.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/transcode.c b/transcode.c index 09c732366d..766425125d 100644 --- a/transcode.c +++ b/transcode.c @@ -1289,7 +1289,8 @@ rb_econv_convert(rb_econv_t *ec, ret == econv_incomplete_input) { /* deal with invalid byte sequence */ /* todo: add more alternative behaviors */ - if (ec->flags&ECONV_INVALID_REPLACE) { + switch (ec->flags & ECONV_INVALID_MASK) { + case ECONV_INVALID_REPLACE: if (output_replacement_character(ec) == 0) goto resume; } @@ -1299,10 +1300,12 @@ rb_econv_convert(rb_econv_t *ec, /* valid character in source encoding * but no related character(s) in destination encoding */ /* todo: add more alternative behaviors */ - if (ec->flags&ECONV_UNDEF_REPLACE) { + switch (ec->flags & ECONV_UNDEF_MASK) { + case ECONV_UNDEF_REPLACE: if (output_replacement_character(ec) == 0) goto resume; - } + break; + } } return ret; |
