[前][次][番号順一覧][スレッド一覧]

ruby-changes:6847

From: nobu <ko1@a...>
Date: Tue, 5 Aug 2008 12:35:15 +0900 (JST)
Subject: [ruby-changes:6847] Ruby:r18363 (trunk): * transcode_data.h (TRANSCODE_ERROR): common transcode failure

nobu	2008-08-05 12:34:52 +0900 (Tue, 05 Aug 2008)

  New Revision: 18363

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=18363

  Log:
    * transcode_data.h (TRANSCODE_ERROR): common transcode failure
      exception, would be changed later.
    
    * enc/trans/japanese.c (UNSUPPORTED_MODE): unsupported mode transition
      exception.

  Modified files:
    trunk/ChangeLog
    trunk/enc/trans/japanese.c
    trunk/transcode.c
    trunk/transcode_data.h

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 18362)
+++ ChangeLog	(revision 18363)
@@ -1,3 +1,11 @@
+Tue Aug  5 12:34:49 2008  Nobuyoshi Nakada  <nobu@r...>
+
+	* transcode_data.h (TRANSCODE_ERROR): common transcode failure
+	  exception, would be changed later.
+
+	* enc/trans/japanese.c (UNSUPPORTED_MODE): unsupported mode transition
+	  exception.
+
 Tue Aug  5 03:29:52 2008  Nobuyoshi Nakada  <nobu@r...>
 
 	* array.c (rb_ary_sort_bang): respect overridden <=> for String and
Index: enc/trans/japanese.c
===================================================================
--- enc/trans/japanese.c	(revision 18362)
+++ enc/trans/japanese.c	(revision 18363)
@@ -23723,48 +23723,46 @@
 #define ISO_2022_GZ_JIS_X_0213_2000_2           ISO_2022_ENCODING(ISO_2022_GZDM4,'P')
 #define ISO_2022_GZ_JIS_X_0213_2004_1           ISO_2022_ENCODING(ISO_2022_GZDM4,'Q')
 
+#define UNSUPPORTED_MODE TRANSCODE_ERROR
+
 static int
 get_iso_2022_mode(const unsigned char **in_pos)
 {
     int new_mode;
     const unsigned char *in_p = *in_pos;
-    switch (*in_p++)
-    {
-    case '(':
-	switch (*in_p++)
-	{
-	case 'B': case 'I': case 'J':
+    switch (*in_p++) {
+      case '(':
+	switch (*in_p++) {
+	  case 'B': case 'I': case 'J':
 	    new_mode = ISO_2022_ENCODING(ISO_2022_GZD4, *(in_p-1));
 	    break;
-	default:
-	    rb_raise(rb_eRuntimeError /*change exception*/, "this mode is not supported (ESC ( %c)", *(in_p-1));
+	  default:
+	    rb_raise(UNSUPPORTED_MODE, "this mode is not supported (ESC ( %c)", *(in_p-1));
 	    break;
 	}
 	break;
-    case '$':
-	switch (*in_p++)
-	{
-	case '@': case 'A': case 'B':
+      case '$':
+	switch (*in_p++) {
+	  case '@': case 'A': case 'B':
 	    new_mode = ISO_2022_ENCODING(ISO_2022_GZDM4, *(in_p-1));
 	    break;
-	case '(':
-	    switch (*in_p++)
-	    {
-	    case 'D': case 'O': case 'P': case 'Q':
+	  case '(':
+	    switch (*in_p++) {
+	      case 'D': case 'O': case 'P': case 'Q':
 		new_mode = ISO_2022_ENCODING(ISO_2022_GZDM4, *(in_p-1));
 		break;
-	    default:
-		rb_raise(rb_eRuntimeError /*change exception*/, "this mode is not supported (ESC $ ( %c)", *(in_p-1));
+	      default:
+		rb_raise(UNSUPPORTED_MODE, "this mode is not supported (ESC $ ( %c)", *(in_p-1));
 		break;
 	    }
 	    break;
-	default:
-	    rb_raise(rb_eRuntimeError /*change exception*/, "this mode is not supported (ESC $ %c)", *(in_p-1));
+	  default:
+	    rb_raise(UNSUPPORTED_MODE, "this mode is not supported (ESC $ %c)", *(in_p-1));
 	    break;
 	}
 	break;
-    default:
-	    rb_raise(rb_eRuntimeError /*change exception*/, "this mode is not supported (ESC %c)", *(in_p-1));
+      default:
+	rb_raise(UNSUPPORTED_MODE, "this mode is not supported (ESC %c)", *(in_p-1));
 	break;
     }
     *in_pos = in_p;
@@ -23793,25 +23791,28 @@
 	c1 = *in_p++;
 	if (c1 == 0x1B) {
 	    cur_mode = get_iso_2022_mode(&in_p);
-	} else if (c1 == 0x1E || c1 == 0x1F) {
+	}
+	else if (c1 == 0x1E || c1 == 0x1F) {
 	    /* SHIFT */
-	    rb_raise(rb_eRuntimeError /*change exception*/, "shift is not supported");
-	} else if (c1 >= 0x80) {
-	    rb_raise(rb_eRuntimeError /*change exception*/, "invalid byte sequence");
-	} else {
+	    rb_raise(UNSUPPORTED_MODE, "shift is not supported");
+	}
+	else if (c1 >= 0x80) {
+	    rb_raise(TRANSCODE_ERROR, "invalid byte sequence");
+	}
+	else {
 	    switch (cur_mode) {
-	    case ISO_2022_GZ_ASCII:
-	    case ISO_2022_GZ_JIS_X_0201_Roman:
+	      case ISO_2022_GZ_ASCII:
+	      case ISO_2022_GZ_JIS_X_0201_Roman:
 		*out_p++ = c1;
 		break;
-	    case ISO_2022_GZ_JIS_X_0201_Katakana:
+	      case ISO_2022_GZ_JIS_X_0201_Katakana:
 		*out_p++ = 0x8E;
 		*out_p++ = c1 | 0x80;
 		break;
-	    case ISO_2022_GZ_JIS_X_0212_1990:
+	      case ISO_2022_GZ_JIS_X_0212_1990:
 		*out_p++ = 0x8F;
-	    case ISO_2022_GZ_JIS_C_6226_1978:
-	    case ISO_2022_GZ_JIS_X_0208_1983:
+	      case ISO_2022_GZ_JIS_C_6226_1978:
+	      case ISO_2022_GZ_JIS_X_0208_1983:
 		*out_p++ = c1 | 0x80;
 		*out_p++ = *in_p++ | 0x80;
 		break;
@@ -23828,13 +23829,12 @@
 {
     unsigned char *out_p = *out_pos;
     *out_p++ = '\x1b';
-    switch (new_mode>>8)
-    {
-    case ISO_2022_GZD4:
+    switch (new_mode>>8) {
+      case ISO_2022_GZD4:
 	*out_p++ = new_mode >> 8;
 	*out_p++ = new_mode & 0x7F;
 	break;
-    case ISO_2022_GZDM4:
+      case ISO_2022_GZDM4:
 	*out_p++ = new_mode >> 16;
 	if ((new_mode & 0x7F) != '@' &&
 	    (new_mode & 0x7F) != 'A' &&
@@ -23844,8 +23844,8 @@
 	}
 	*out_p++ = new_mode & 0x7F;
 	break;
-    default:
-	rb_raise(rb_eRuntimeError /*change exception*/, "this mode is not supported.");
+      default:
+	rb_raise(UNSUPPORTED_MODE, "this mode is not supported.");
 	break;
     }
     *out_pos = out_p;
@@ -23874,20 +23874,24 @@
 	next_byte = *in_p++;
 	if (next_byte < 0x80) {
 	    new_mode = ISO_2022_GZ_ASCII;
-	} else if (next_byte == 0x8E) {
+	}
+	else if (next_byte == 0x8E) {
 	    new_mode = ISO_2022_GZ_JIS_X_0201_Katakana;
 	    next_byte = *in_p++;
-	} else if (next_byte == 0x8F) {
+	}
+	else if (next_byte == 0x8F) {
 	    new_mode = ISO_2022_GZ_JIS_X_0212_1990;
 	    next_byte = *in_p++;
-	} else {
+	}
+	else {
 	    new_mode = ISO_2022_GZ_JIS_X_0208_1983;
 	}
 	if (cur_mode != new_mode)
 	    cur_mode = select_iso_2022_mode(&out_p, new_mode);
 	if (cur_mode < 0xFFFF) {
 	    *out_p++ = next_byte & 0x7F;
-	} else {
+	}
+	else {
 	    *out_p++ = next_byte & 0x7F;
 	    *out_p++ = *in_p++ & 0x7F;
 	}
Index: transcode_data.h
===================================================================
--- transcode_data.h	(revision 18362)
+++ transcode_data.h	(revision 18363)
@@ -83,4 +83,6 @@
 void rb_declare_transcoder(const char *enc1, const char *enc2, const char *lib);
 void rb_register_transcoder(const rb_transcoder *);
 
+#define TRANSCODE_ERROR rb_eRuntimeError /*change exception*/
+
 #endif /* RUBY_TRANSCODE_DATA_H */
Index: transcode.c
===================================================================
--- transcode.c	(revision 18362)
+++ transcode.c	(revision 18363)
@@ -274,7 +274,7 @@
 	    output_replacement_character(&out_p, to_encoding);
 	    continue;
 	}
-	rb_raise(rb_eRuntimeError /*change exception*/, "invalid byte sequence");
+	rb_raise(TRANSCODE_ERROR, "invalid byte sequence");
 	continue;
       undef:
 	/* valid character in from encoding
@@ -291,7 +291,7 @@
 	    output_replacement_character(&out_p, to_encoding);
 	    continue;
 	}
-	rb_raise(rb_eRuntimeError /*@@@change exception*/, "conversion undefined for byte sequence (maybe invalid byte sequence)");
+	rb_raise(TRANSCODE_ERROR, "conversion undefined for byte sequence (maybe invalid byte sequence)");
 	continue;
     }
     /* cleanup */

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]