Skip to content

Commit

Permalink
* common.mk (COMMONOBJS): transcode_data_*.c moved under enc/trans.
Browse files Browse the repository at this point in the history
* 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
  • Loading branch information
nobu committed Dec 25, 2007
1 parent df914b2 commit b7db903
Show file tree
Hide file tree
Showing 6 changed files with 425 additions and 241 deletions.
17 changes: 17 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,20 @@
Tue Dec 25 14:57:00 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>

* 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.

Tue Dec 25 14:20:13 2007 Yukihiro Matsumoto <matz@ruby-lang.org>

* lib/mkmf.rb (map_dir): should generate path including $top_srcdir.
Expand Down
4 changes: 0 additions & 4 deletions common.mk
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,6 @@ COMMONOBJS = array.$(OBJEXT) \
struct.$(OBJEXT) \
time.$(OBJEXT) \
transcode.$(OBJEXT) \
transcode_data_one_byte.$(OBJEXT) \
transcode_data_japanese.$(OBJEXT) \
util.$(OBJEXT) \
variable.$(OBJEXT) \
version.$(OBJEXT) \
Expand Down Expand Up @@ -548,8 +546,6 @@ thread.$(OBJEXT): {$(VPATH)}thread.c {$(VPATH)}eval_intern.h \
{$(VPATH)}signal.h {$(VPATH)}st.h {$(VPATH)}dln.h
transcode.$(OBJEXT): {$(VPATH)}transcode.c {$(VPATH)}transcode_data.h {$(VPATH)}ruby.h {$(VPATH)}config.h \
{$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h {$(VPATH)}encoding.h
transcode_data_one_byte.$(OBJEXT): {$(VPATH)}transcode_data_one_byte.c {$(VPATH)}transcode_data.h
transcode_data_japanese.$(OBJEXT): {$(VPATH)}transcode_data_japanese.c {$(VPATH)}transcode_data.h
cont.$(OBJEXT): {$(VPATH)}cont.c {$(VPATH)}eval_intern.h \
{$(VPATH)}ruby.h {$(VPATH)}vm_core.h {$(VPATH)}id.h {$(VPATH)}config.h \
{$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h \
Expand Down
76 changes: 59 additions & 17 deletions transcode_data_japanese.c → enc/trans/japanese.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
#define TRANSCODE_DATA
#include "transcode_data.h"

static const unsigned char
Expand Down Expand Up @@ -4418,11 +4417,16 @@ from_SHIFT_JIS_infos[108] = {
&from_SHIFT_JIS_FA, &from_SHIFT_JIS_FB,
&from_SHIFT_JIS_FC, UNDEF,
};
const BYTE_LOOKUP
rb_from_SHIFT_JIS = {
static const BYTE_LOOKUP
from_SHIFT_JIS = {
from_SHIFT_JIS_offsets,
from_SHIFT_JIS_infos
};
static rb_transcoder
rb_from_SHIFT_JIS = {
"UTF-8", "SHIFT_JIS", &from_SHIFT_JIS, 3, 0,
NULL, NULL,
};

static const unsigned char
to_SHIFT_JIS_C2_offsets[64] = {
Expand Down Expand Up @@ -13343,11 +13347,16 @@ to_SHIFT_JIS_infos[17] = {
&to_SHIFT_JIS_E7, &to_SHIFT_JIS_E8, &to_SHIFT_JIS_E9, &to_SHIFT_JIS_EF,
UNDEF,
};
const BYTE_LOOKUP
rb_to_SHIFT_JIS = {
static const BYTE_LOOKUP
to_SHIFT_JIS = {
to_SHIFT_JIS_offsets,
to_SHIFT_JIS_infos
};
static rb_transcoder
rb_to_SHIFT_JIS = {
"SHIFT_JIS", "UTF-8", &to_SHIFT_JIS, 2, 1,
NULL, NULL,
};

static const unsigned char
from_EUC_JP_8E_offsets[256] = {
Expand Down Expand Up @@ -18112,11 +18121,16 @@ from_EUC_JP_infos[85] = {
&from_EUC_JP_F9, &from_EUC_JP_FA, &from_EUC_JP_FB, &from_EUC_JP_FC,
UNDEF,
};
const BYTE_LOOKUP
rb_from_EUC_JP = {
static const BYTE_LOOKUP
from_EUC_JP = {
from_EUC_JP_offsets,
from_EUC_JP_infos
};
static rb_transcoder
rb_from_EUC_JP = {
"UTF-8", "EUC-JP", &from_EUC_JP, 3, 0,
NULL, NULL,
};

static const struct byte_lookup* const
to_EUC_JP_C2_infos[14] = {
Expand Down Expand Up @@ -23612,11 +23626,16 @@ to_EUC_JP_infos[17] = {
&to_EUC_JP_E7, &to_EUC_JP_E8, &to_EUC_JP_E9, &to_EUC_JP_EF,
UNDEF,
};
const BYTE_LOOKUP
rb_to_EUC_JP = {
static const BYTE_LOOKUP
to_EUC_JP = {
to_SHIFT_JIS_offsets,
to_EUC_JP_infos
};
static rb_transcoder
rb_to_EUC_JP = {
"EUC_JP", "UTF-8", &to_EUC_JP, 2, 1,
NULL, NULL,
};

#define ISO_2022_ENCODING(escseq, byte) ((escseq<<8)|byte)
enum ISO_2022_ESCSEQ {
Expand Down Expand Up @@ -23699,11 +23718,11 @@ get_iso_2022_mode(char **in_pos)
return new_mode;
}

void
static void
from_iso_2022_jp_transcoder_preprocessor(char **in_pos, char **out_pos,
char *in_stop, char *out_stop,
transcoder *my_transcoder,
transcoding *my_transcoding)
char *in_stop, char *out_stop,
rb_transcoder *my_transcoder,
rb_transcoding *my_transcoding)
{
char *in_p = *in_pos, *out_p = *out_pos;
int cur_mode = ISO_2022_GZ_ASCII;
Expand Down Expand Up @@ -23779,11 +23798,11 @@ select_iso_2022_mode(char **out_pos, int new_mode)
return new_mode;
}

void
static void
to_iso_2022_jp_transcoder_postprocessor(char **in_pos, char **out_pos,
char *in_stop, char *out_stop,
transcoder *my_transcoder,
transcoding *my_transcoding)
char *in_stop, char *out_stop,
rb_transcoder *my_transcoder,
rb_transcoding *my_transcoding)
{
char *in_p = *in_pos, *out_p = *out_pos;
int cur_mode = ISO_2022_GZ_ASCII, new_mode = 0;
Expand Down Expand Up @@ -23824,3 +23843,26 @@ to_iso_2022_jp_transcoder_postprocessor(char **in_pos, char **out_pos,
*in_pos = in_p;
*out_pos = out_p;
}

static rb_transcoder
rb_from_ISO_2022_JP = {
"ISO-2022-JP", "UTF-8", &from_EUC_JP, 8, 0,
&from_iso_2022_jp_transcoder_preprocessor, NULL,
};

static rb_transcoder
rb_to_ISO_2022_JP = {
"UTF-8", "ISO-2022-JP", &to_EUC_JP, 8, 1,
NULL, &to_iso_2022_jp_transcoder_postprocessor,
};

void
Init_japanese(void)
{
rb_register_transcoder(&rb_from_SHIFT_JIS);
rb_register_transcoder(&rb_from_EUC_JP);
rb_register_transcoder(&rb_to_SHIFT_JIS);
rb_register_transcoder(&rb_to_EUC_JP);
rb_register_transcoder(&rb_from_ISO_2022_JP);
rb_register_transcoder(&rb_to_ISO_2022_JP);
}
Loading

0 comments on commit b7db903

Please sign in to comment.