summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-09-26 03:53:11 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-09-26 03:53:11 +0000
commit3deb806a067dfcf68dd870f518a6eefe6f8794f7 (patch)
tree688004538e051b49ba9f6e6fb920cee9b8e4dd0b
parentedebd815b00518a782f6cf01a0f39b3e8fe21b05 (diff)
* error.c (Init_Exception): introduce EncodingError which is a
superclass for all encoding related exception classes, e.g. Encoding::CompatibilityError. [ruby-dev:36371] * transcode.c (Init_transcode): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19570 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog8
-rw-r--r--error.c4
-rw-r--r--include/ruby/ruby.h1
-rw-r--r--transcode.c6
4 files changed, 15 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 1371e3f990..751e0d948e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -632,6 +632,14 @@ Thu Sep 18 22:35:03 2008 Yusuke Endoh <mame@tsg.ne.jp>
* test/bigdecimal/test_bigdecimal.rb: add tests for above.
+Thu Sep 18 22:20:08 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * error.c (Init_Exception): introduce EncodingError which is a
+ superclass for all encoding related exception classes,
+ e.g. Encoding::CompatibilityError. [ruby-dev:36371]
+
+ * transcode.c (Init_transcode): ditto.
+
Thu Sep 18 21:57:32 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
* string.c (rb_str_comparable): make ascii8bit string to be
diff --git a/error.c b/error.c
index 4782cfa796..be03f94ba4 100644
--- a/error.c
+++ b/error.c
@@ -323,6 +323,7 @@ VALUE rb_eIndexError;
VALUE rb_eKeyError;
VALUE rb_eRangeError;
VALUE rb_eNameError;
+VALUE rb_eEncodingError;
VALUE rb_eEncCompatError;
VALUE rb_eNoMethodError;
VALUE rb_eSecurityError;
@@ -1056,7 +1057,8 @@ Init_Exception(void)
rb_eRuntimeError = rb_define_class("RuntimeError", rb_eStandardError);
rb_eSecurityError = rb_define_class("SecurityError", rb_eException);
rb_eNoMemError = rb_define_class("NoMemoryError", rb_eException);
- rb_eEncCompatError = rb_define_class_under(rb_cEncoding, "CompatibilityError", rb_eStandardError);
+ rb_eEncodingError = rb_define_class("EncodingError", rb_eStandardError);
+ rb_eEncCompatError = rb_define_class_under(rb_cEncoding, "CompatibilityError", rb_eEncodingError);
syserr_tbl = st_init_numtable();
rb_eSystemCallError = rb_define_class("SystemCallError", rb_eStandardError);
diff --git a/include/ruby/ruby.h b/include/ruby/ruby.h
index eb80bce4c2..ff18128925 100644
--- a/include/ruby/ruby.h
+++ b/include/ruby/ruby.h
@@ -1036,6 +1036,7 @@ RUBY_EXTERN VALUE rb_eFloatDomainError;
RUBY_EXTERN VALUE rb_eLocalJumpError;
RUBY_EXTERN VALUE rb_eSysStackError;
RUBY_EXTERN VALUE rb_eRegexpError;
+RUBY_EXTERN VALUE rb_eEncodingError;
RUBY_EXTERN VALUE rb_eEncCompatError;
RUBY_EXTERN VALUE rb_eScriptError;
diff --git a/transcode.c b/transcode.c
index 1f0909cd3f..9734420acd 100644
--- a/transcode.c
+++ b/transcode.c
@@ -3995,9 +3995,9 @@ extern void Init_newline(void);
void
Init_transcode(void)
{
- rb_eUndefinedConversionError = rb_define_class_under(rb_cEncoding, "UndefinedConversionError", rb_eStandardError);
- rb_eInvalidByteSequenceError = rb_define_class_under(rb_cEncoding, "InvalidByteSequenceError", rb_eStandardError);
- rb_eConverterNotFoundError = rb_define_class_under(rb_cEncoding, "ConverterNotFoundError", rb_eStandardError);
+ rb_eUndefinedConversionError = rb_define_class_under(rb_cEncoding, "UndefinedConversionError", rb_eEncodingError);
+ rb_eInvalidByteSequenceError = rb_define_class_under(rb_cEncoding, "InvalidByteSequenceError", rb_eEncodingError);
+ rb_eConverterNotFoundError = rb_define_class_under(rb_cEncoding, "ConverterNotFoundError", rb_eEncodingError);
transcoder_table = st_init_strcasetable();