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

ruby-changes:7126

From: akr <ko1@a...>
Date: Fri, 15 Aug 2008 18:34:13 +0900 (JST)
Subject: [ruby-changes:7126] Ruby:r18644 (trunk): * include/ruby/encoding.h (rb_econv_t): add error_tc in last_error.

akr	2008-08-15 18:33:59 +0900 (Fri, 15 Aug 2008)

  New Revision: 18644

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

  Log:
    * include/ruby/encoding.h (rb_econv_t): add error_tc in last_error.
    
    * transcode.c (rb_econv_convert): fill error_tc.

  Modified files:
    trunk/ChangeLog
    trunk/include/ruby/encoding.h
    trunk/transcode.c

Index: include/ruby/encoding.h
===================================================================
--- include/ruby/encoding.h	(revision 18643)
+++ include/ruby/encoding.h	(revision 18644)
@@ -227,6 +227,7 @@
     /* last error */
     struct {
         rb_econv_result_t result;
+        struct rb_transcoding *error_tc;
         const char *source_encoding;
         const char *destination_encoding;
         const unsigned char *error_bytes_start;
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 18643)
+++ ChangeLog	(revision 18644)
@@ -1,3 +1,9 @@
+Fri Aug 15 18:33:22 2008  Tanaka Akira  <akr@f...>
+
+	* include/ruby/encoding.h (rb_econv_t): add error_tc in last_error.
+
+	* transcode.c (rb_econv_convert): fill error_tc.
+
 Fri Aug 15 18:10:49 2008  Tanaka Akira  <akr@f...>
 
 	* include/ruby/encoding.h (rb_econv_t): new field: last_error.
Index: transcode.c
===================================================================
--- transcode.c	(revision 18643)
+++ transcode.c	(revision 18644)
@@ -950,11 +950,13 @@
     ec->last_error.partial_input = flags & ECONV_PARTIAL_INPUT;
     if (res == econv_invalid_byte_sequence ||
         res == econv_undefined_conversion) {
-        ec->last_error.source_encoding = ec->elems[result_position].tc->transcoder->from_encoding;
-        ec->last_error.destination_encoding = ec->elems[result_position].tc->transcoder->to_encoding;
-        ec->last_error.error_bytes_start = TRANSCODING_READBUF(ec->elems[result_position].tc);
-        ec->last_error.error_bytes_len = ec->elems[result_position].tc->recognized_len;
-        ec->last_error.readagain_len = ec->elems[result_position].tc->readagain_len;
+        rb_transcoding *error_tc = ec->elems[result_position].tc;
+        ec->last_error.error_tc = error_tc;
+        ec->last_error.source_encoding = error_tc->transcoder->from_encoding;
+        ec->last_error.destination_encoding = error_tc->transcoder->to_encoding;
+        ec->last_error.error_bytes_start = TRANSCODING_READBUF(error_tc);
+        ec->last_error.error_bytes_len = error_tc->recognized_len;
+        ec->last_error.readagain_len = error_tc->readagain_len;
     }
 
     return res;

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

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