* transcode.c (rb_transcoding): moved from transcode_data.h.
(TRANSCODING_READBUF): ditto. (TRANSCODING_WRITEBUF): ditto. (TRANSCODING_STATE_EMBED_MAX): ditto. (TRANSCODING_STATE): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19097 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
f6441bf61c
commit
1afc1b7bc8
@ -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>
|
Wed Sep 3 23:03:37 2008 Tanaka Akira <akr@fsij.org>
|
||||||
|
|
||||||
* transcode_data.h (rb_transcoding): remove stateful field.
|
* transcode_data.h (rb_transcoding): remove stateful field.
|
||||||
|
42
transcode.c
42
transcode.c
@ -31,6 +31,48 @@ static VALUE sym_finished;
|
|||||||
static VALUE sym_output_followed_by_input;
|
static VALUE sym_output_followed_by_input;
|
||||||
static VALUE sym_incomplete_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 {
|
typedef struct {
|
||||||
struct rb_transcoding *tc;
|
struct rb_transcoding *tc;
|
||||||
unsigned char *out_buf_start;
|
unsigned char *out_buf_start;
|
||||||
|
@ -64,48 +64,6 @@ typedef enum {
|
|||||||
|
|
||||||
typedef struct rb_transcoder rb_transcoder;
|
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 */
|
/* static structure, one per supported encoding pair */
|
||||||
struct rb_transcoder {
|
struct rb_transcoder {
|
||||||
const char *from_encoding;
|
const char *from_encoding;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user