diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | transcode.c | 42 | ||||
-rw-r--r-- | transcode_data.h | 42 |
3 files changed, 50 insertions, 42 deletions
@@ -1,3 +1,11 @@ +Wed Sep 3 23:33:09 2008 Tanaka Akira <akr@fsij.org> + + * transcode.c (rb_transcoding): moved from transcode_data.h. + (TRANSCODING_READBUF): ditto. + (TRANSCODING_WRITEBUF): ditto. + (TRANSCODING_STATE_EMBED_MAX): ditto. + (TRANSCODING_STATE): ditto. + Wed Sep 3 23:03:37 2008 Tanaka Akira <akr@fsij.org> * transcode_data.h (rb_transcoding): remove stateful field. diff --git a/transcode.c b/transcode.c index ca772ce844..aa605f8302 100644 --- a/transcode.c +++ b/transcode.c @@ -31,6 +31,48 @@ static VALUE sym_finished; static VALUE sym_output_followed_by_input; static VALUE sym_incomplete_input; +/* dynamic structure, one per conversion (similar to iconv_t) */ +/* may carry conversion state (e.g. for iso-2022-jp) */ +typedef struct rb_transcoding { + const rb_transcoder *transcoder; + + int flags; + + int resume_position; + unsigned int next_table; + VALUE next_info; + unsigned char next_byte; + + int recognized_len; /* already interpreted */ + int readagain_len; /* not yet interpreted */ + union { + unsigned char ary[8]; /* max_input <= sizeof(ary) */ + unsigned char *ptr; /* length: max_input */ + } readbuf; /* recognized_len + readagain_len used */ + + int writebuf_off; + int writebuf_len; + union { + unsigned char ary[8]; /* max_output <= sizeof(ary) */ + unsigned char *ptr; /* length: max_output */ + } writebuf; + + void *state; /* opaque data for stateful encoding */ +} rb_transcoding; +#define TRANSCODING_READBUF(tc) \ + ((tc)->transcoder->max_input <= sizeof((tc)->readbuf.ary) ? \ + (tc)->readbuf.ary : \ + (tc)->readbuf.ptr) +#define TRANSCODING_WRITEBUF(tc) \ + ((tc)->transcoder->max_output <= sizeof((tc)->writebuf.ary) ? \ + (tc)->writebuf.ary : \ + (tc)->writebuf.ptr) +#define TRANSCODING_STATE_EMBED_MAX sizeof(void *) +#define TRANSCODING_STATE(tc) \ + ((tc)->transcoder->state_size <= sizeof((tc)->state) ? \ + (void *)&(tc)->state : \ + (tc)->state) + typedef struct { struct rb_transcoding *tc; unsigned char *out_buf_start; diff --git a/transcode_data.h b/transcode_data.h index a7f1db0c97..8442355a56 100644 --- a/transcode_data.h +++ b/transcode_data.h @@ -64,48 +64,6 @@ typedef enum { typedef struct rb_transcoder rb_transcoder; -/* dynamic structure, one per conversion (similar to iconv_t) */ -/* may carry conversion state (e.g. for iso-2022-jp) */ -typedef struct rb_transcoding { - const rb_transcoder *transcoder; - - int flags; - - int resume_position; - unsigned int next_table; - VALUE next_info; - unsigned char next_byte; - - int recognized_len; /* already interpreted */ - int readagain_len; /* not yet interpreted */ - union { - unsigned char ary[8]; /* max_input <= sizeof(ary) */ - unsigned char *ptr; /* length: max_input */ - } readbuf; /* recognized_len + readagain_len used */ - - int writebuf_off; - int writebuf_len; - union { - unsigned char ary[8]; /* max_output <= sizeof(ary) */ - unsigned char *ptr; /* length: max_output */ - } writebuf; - - void *state; /* opaque data for stateful encoding */ -} rb_transcoding; -#define TRANSCODING_READBUF(tc) \ - ((tc)->transcoder->max_input <= sizeof((tc)->readbuf.ary) ? \ - (tc)->readbuf.ary : \ - (tc)->readbuf.ptr) -#define TRANSCODING_WRITEBUF(tc) \ - ((tc)->transcoder->max_output <= sizeof((tc)->writebuf.ary) ? \ - (tc)->writebuf.ary : \ - (tc)->writebuf.ptr) -#define TRANSCODING_STATE_EMBED_MAX sizeof(void *) -#define TRANSCODING_STATE(tc) \ - ((tc)->transcoder->state_size <= sizeof((tc)->state) ? \ - (void *)&(tc)->state : \ - (tc)->state) - /* static structure, one per supported encoding pair */ struct rb_transcoder { const char *from_encoding; |