From b7db9036beece0e278aae5fd48f689ebca86e9ca Mon Sep 17 00:00:00 2001 From: nobu Date: Tue, 25 Dec 2007 05:57:04 +0000 Subject: * common.mk (COMMONOBJS): transcode_data_*.c moved under enc/trans. * transcode_data.h (rb_transcoding, rb_transcoder): prefixed. * transcode.c (rb_register_transcoder, rb_declare_transcoder): split declaration and registration. [ruby-dev:32704] * transcode.c (transcode_dispatch): autoload pre-declared transcoder. * transcode.c (str_transcode): use rb_define_dummy_encoding(). * transcode.c (Init_transcode): initialize transcoder tables. * enc/trans/single_byte.c, enc/trans/japanese.c: moved from top. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14666 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- transcode_data.h | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'transcode_data.h') diff --git a/transcode_data.h b/transcode_data.h index 3131877a41..add954ef74 100644 --- a/transcode_data.h +++ b/transcode_data.h @@ -22,12 +22,9 @@ typedef struct byte_lookup { const struct byte_lookup *const *info; } BYTE_LOOKUP; -#ifdef TRANSCODE_DATA +#ifndef PType /* data file needs to treat this as a pointer, to remove warnings */ #define PType (const BYTE_LOOKUP *) -#else -/* in code, this is treated as just an integer */ -#define PType (int) #endif #define NOMAP (PType 0x01) /* single byte direct map */ @@ -56,23 +53,26 @@ typedef struct byte_lookup { /* dynamic structure, one per conversion (similar to iconv_t) */ /* may carry conversion state (e.g. for iso-2022-jp) */ -typedef struct transcoding { +typedef struct rb_transcoding { VALUE ruby_string_dest; /* the String used as the conversion destination, or NULL if something else is being converted */ - char *(*flush_func)(struct transcoding*, int, int); -} transcoding; + char *(*flush_func)(struct rb_transcoding*, int, int); +} rb_transcoding; /* static structure, one per supported encoding pair */ -typedef struct transcoder_st{ +typedef struct rb_transcoder { const char *from_encoding; const char *to_encoding; const BYTE_LOOKUP *conv_tree_start; int max_output; int from_utf8; void (*preprocessor)(char**, char**, char*, char*, - struct transcoder_st *transcoder, struct transcoding*); + struct rb_transcoder *, struct rb_transcoding *); void (*postprocessor)(char**, char**, char*, char*, - struct transcoder_st *transcoder, struct transcoding*); -} transcoder; + struct rb_transcoder *, struct rb_transcoding *); +} rb_transcoder; + +void rb_declare_transcoder(const char *enc1, const char *enc2, const char *lib); +void rb_register_transcoder(const rb_transcoder *); #endif /* RUBY_TRANSCODE_DATA_H */ -- cgit v1.2.3