Add rb_enc_raise() to allow C extensions to raise errors with messages with correct encoding
Currently, rb_raise raises exceptions with a message with an encoding set to ASCII-8BIT. Adding rb_enc_raise() will allow the caller to raise an exception with a message with a given encoding.
Updated by now (Nikolai Weibull) over 8 years ago
On Mon, Nov 21, 2011 at 10:14, Nobuyoshi Nakada email@example.com wrote:
I agree that exceptions need to consider encodings.
But I'm curious about your usage. Which needs the encoding, the format string or arguments to be converted?
Well, I simply think that passing the encoding to rb_enc_vsprintf as
in the patch should be fine. That, as I understand it, sets the
encoding of the format string and then any arguments will be converted
to the format strings encoding. Is that correct?
Updated by nobu (Nobuyoshi Nakada) about 8 years ago
- Status changed from Feedback to Closed
- % Done changed from 0 to 100
This issue was solved with changeset r35283.
Nikolai, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.
- error.c (rb_enc_raise): new function to raise an exception with the message in the given encoding. patched by now (Nikolai Weibull) at [ruby-core:41160]. [Feature #5650]