Feature #5650

Add rb_enc_raise() to allow C extensions to raise errors with messages with correct encoding

Added by Nikolai Weibull over 3 years ago. Updated almost 3 years ago.

[ruby-core:41160]
Status:Closed
Priority:Normal
Assignee:-

Description

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.

rb_enc_raise.patch Magnifier (1023 Bytes) Nikolai Weibull, 11/20/2011 03:33 AM

Associated revisions

Revision 35283
Added by Nobuyoshi Nakada almost 3 years ago

  • error.c (rb_enc_raise): new function to raise an exception with the message in the given encoding. patched by now (Nikolai Weibull) at . [Feature #5650]

Revision 35283
Added by Nobuyoshi Nakada almost 3 years ago

  • error.c (rb_enc_raise): new function to raise an exception with the message in the given encoding. patched by now (Nikolai Weibull) at . [Feature #5650]

History

#1 Updated by Nobuyoshi Nakada over 3 years ago

  • Tracker changed from Bug to Feature

#2 Updated by Nobuyoshi Nakada over 3 years ago

  • Status changed from Open to Feedback
  • Target version set to 2.0.0

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?

#3 Updated by Nikolai Weibull over 3 years ago

On Mon, Nov 21, 2011 at 10:14, Nobuyoshi Nakada nobu@ruby-lang.org 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?

#4 Updated by Nobuyoshi Nakada almost 3 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 . [Feature #5650]

Also available in: Atom PDF