ruby-changes:7354
From: akr <ko1@a...>
Date: Wed, 27 Aug 2008 00:01:32 +0900 (JST)
Subject: [ruby-changes:7354] Ruby:r18872 (trunk): * include/ruby/encoding.h (rb_econv_elem_t): move to transcode.c
akr 2008-08-27 00:01:11 +0900 (Wed, 27 Aug 2008) New Revision: 18872 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=18872 Log: * include/ruby/encoding.h (rb_econv_elem_t): move to transcode.c (rb_econv_t): defined as an incomplete type. * transcode.c (rb_econv_elem_t): moved from encoding.h. (rb_econv_t): complete type defined. Modified files: trunk/ChangeLog trunk/include/ruby/encoding.h trunk/transcode.c Index: include/ruby/encoding.h =================================================================== --- include/ruby/encoding.h (revision 18871) +++ include/ruby/encoding.h (revision 18872) @@ -206,52 +206,12 @@ } rb_econv_result_t; typedef struct { - struct rb_transcoding *tc; - unsigned char *out_buf_start; - unsigned char *out_data_start; - unsigned char *out_data_end; - unsigned char *out_buf_end; - rb_econv_result_t last_result; -} rb_econv_elem_t; - -typedef struct { int flags; /* replacement character, etc. */ } rb_econv_option_t; -typedef struct { - rb_econv_option_t opts; - const char *source_encoding_name; - const char *destination_encoding_name; +typedef struct rb_econv_t rb_econv_t; - unsigned char *in_buf_start; - unsigned char *in_data_start; - unsigned char *in_data_end; - unsigned char *in_buf_end; - rb_econv_elem_t *elems; - int num_trans; - int num_finished; - int last_trans_index; /* last trans, not including universal newline */ - struct rb_transcoding *last_tc; - - /* 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; - size_t error_bytes_len; - size_t readagain_len; - int partial_input; - } last_error; - - /* The following fields are only for Encoding::Converter. - * rb_econv_open set them NULL. */ - rb_encoding *source_encoding; - rb_encoding *destination_encoding; -} rb_econv_t; - VALUE rb_str_transcode(VALUE str, VALUE to, rb_econv_option_t *ecopts); void rb_econv_opts(VALUE hash, rb_econv_option_t *opts); Index: ChangeLog =================================================================== --- ChangeLog (revision 18871) +++ ChangeLog (revision 18872) @@ -1,3 +1,11 @@ +Tue Aug 26 23:52:24 2008 Tanaka Akira <akr@f...> + + * include/ruby/encoding.h (rb_econv_elem_t): move to transcode.c + (rb_econv_t): defined as an incomplete type. + + * transcode.c (rb_econv_elem_t): moved from encoding.h. + (rb_econv_t): complete type defined. + Tue Aug 26 22:44:12 2008 NAKAMURA Usaku <usa@r...> * time.c (time_asctime): workaround for MSVCRT's bug. Index: transcode.c =================================================================== --- transcode.c (revision 18871) +++ transcode.c (revision 18872) @@ -23,6 +23,48 @@ static VALUE sym_invalid, sym_undef, sym_ignore, sym_replace; +typedef struct { + struct rb_transcoding *tc; + unsigned char *out_buf_start; + unsigned char *out_data_start; + unsigned char *out_data_end; + unsigned char *out_buf_end; + rb_econv_result_t last_result; +} rb_econv_elem_t; + +struct rb_econv_t { + rb_econv_option_t opts; + const char *source_encoding_name; + const char *destination_encoding_name; + + unsigned char *in_buf_start; + unsigned char *in_data_start; + unsigned char *in_data_end; + unsigned char *in_buf_end; + rb_econv_elem_t *elems; + int num_trans; + int num_finished; + int last_trans_index; /* last trans, not including universal newline */ + struct rb_transcoding *last_tc; + + /* 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; + size_t error_bytes_len; + size_t readagain_len; + int partial_input; + } last_error; + + /* The following fields are only for Encoding::Converter. + * rb_econv_open set them NULL. */ + rb_encoding *source_encoding; + rb_encoding *destination_encoding; +}; + /* * Dispatch data and logic */ -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/