Ruby  1.9.3p547(2014-05-14revision45962)
Macros | Functions | Variables
iso2022.c File Reference
#include "transcode_data.h"
Include dependency graph for iso2022.c:

Go to the source code of this file.

Macros

#define iso2022jp_decoder_1B_24_offsets   0
 
#define iso2022jp_decoder_1B_28_offsets   5
 
#define iso2022jp_decoder_1B_offsets   16
 
#define iso2022jp_decoder_offsets   23
 
#define iso2022jp_decoder_jisx0208_rest_offsets   153
 
#define iso2022jp_encoder_90_A1toFE_offsets   249
 
#define iso2022jp_encoder_offsets   345
 
#define eucjp_to_stateless_iso2022jp_offsets   494
 
#define cp50221_decoder_1B_28_offsets   751
 
#define cp50221_decoder_offsets   762
 
#define cp50221_encoder_offsets   988
 
#define iso2022jp_decoder_1B_24_infos   WORDINDEX2INFO(0)
 
#define iso2022jp_decoder_1B_24   WORDINDEX2INFO(2)
 
#define iso2022jp_decoder_1B_28   WORDINDEX2INFO(4)
 
#define iso2022jp_decoder_1B_infos   WORDINDEX2INFO(6)
 
#define iso2022jp_decoder_1B   WORDINDEX2INFO(9)
 
#define iso2022jp_decoder_infos   WORDINDEX2INFO(11)
 
#define iso2022jp_decoder   WORDINDEX2INFO(14)
 
#define iso2022jp_decoder_jisx0208_rest   WORDINDEX2INFO(16)
 
#define iso2022jp_encoder_90_A1toFE   WORDINDEX2INFO(18)
 
#define iso2022jp_encoder_90_infos   WORDINDEX2INFO(20)
 
#define iso2022jp_encoder_90   WORDINDEX2INFO(22)
 
#define iso2022jp_encoder_infos   WORDINDEX2INFO(24)
 
#define iso2022jp_encoder   WORDINDEX2INFO(27)
 
#define stateless_iso2022jp_to_eucjp_infos   WORDINDEX2INFO(29)
 
#define stateless_iso2022jp_to_eucjp   WORDINDEX2INFO(32)
 
#define eucjp_to_stateless_iso2022jp_8E_infos   WORDINDEX2INFO(34)
 
#define eucjp_to_stateless_iso2022jp_8E   WORDINDEX2INFO(36)
 
#define eucjp_to_stateless_iso2022jp_8F_infos   WORDINDEX2INFO(38)
 
#define eucjp_to_stateless_iso2022jp_8F   WORDINDEX2INFO(40)
 
#define eucjp_to_stateless_iso2022jp_infos   WORDINDEX2INFO(42)
 
#define eucjp_to_stateless_iso2022jp   WORDINDEX2INFO(48)
 
#define cp50221_decoder_1B_28   WORDINDEX2INFO(50)
 
#define cp50221_decoder_1B_infos   WORDINDEX2INFO(52)
 
#define cp50221_decoder_1B   WORDINDEX2INFO(55)
 
#define cp50221_decoder_infos   WORDINDEX2INFO(57)
 
#define cp50221_decoder   WORDINDEX2INFO(61)
 
#define cp50221_encoder_infos   WORDINDEX2INFO(63)
 
#define cp50221_encoder   WORDINDEX2INFO(67)
 
#define TRANSCODE_TABLE_INFO   iso2022_byte_array, 1245, iso2022_word_array, 69, ((int)sizeof(unsigned int))
 
#define G0_ASCII   0
 
#define G0_JISX0208_1978   1
 
#define G0_JISX0208_1983   2
 
#define G0_JISX0201_KATAKANA   3
 
#define EMACS_MULE_LEADING_CODE_JISX0208_1978   0220
 
#define EMACS_MULE_LEADING_CODE_JISX0208_1983   0222
 

Functions

static int iso2022jp_init (void *statep)
 
static VALUE fun_si_iso2022jp_decoder (void *statep, const unsigned char *s, size_t l)
 
static ssize_t fun_so_iso2022jp_decoder (void *statep, const unsigned char *s, size_t l, unsigned char *o, size_t osize)
 
static ssize_t fun_so_iso2022jp_encoder (void *statep, const unsigned char *s, size_t l, unsigned char *o, size_t osize)
 
static ssize_t iso2022jp_encoder_reset_sequence_size (void *statep)
 
static ssize_t finish_iso2022jp_encoder (void *statep, unsigned char *o, size_t osize)
 
static ssize_t fun_so_stateless_iso2022jp_to_eucjp (void *statep, const unsigned char *s, size_t l, unsigned char *o, size_t osize)
 
static ssize_t fun_so_eucjp_to_stateless_iso2022jp (void *statep, const unsigned char *s, size_t l, unsigned char *o, size_t osize)
 
static VALUE fun_si_cp50221_decoder (void *statep, const unsigned char *s, size_t l)
 
static ssize_t fun_so_cp50221_decoder (void *statep, const unsigned char *s, size_t l, unsigned char *o, size_t osize)
 
static ssize_t fun_so_cp5022x_encoder (void *statep, const unsigned char *s, size_t l, unsigned char *o, size_t osize)
 
static ssize_t fun_so_cp50220_encoder (void *statep, const unsigned char *s, size_t l, unsigned char *o, size_t osize)
 
static ssize_t finish_cp50220_encoder (void *statep, unsigned char *o, size_t osize)
 
void Init_iso2022 (void)
 

Variables

static const unsigned char iso2022_byte_array [1245]
 
static const unsigned int iso2022_word_array [69]
 
static const rb_transcoder rb_iso2022jp_decoder
 
static const rb_transcoder rb_iso2022jp_encoder
 
static const rb_transcoder rb_stateless_iso2022jp_to_eucjp
 
static const rb_transcoder rb_eucjp_to_stateless_iso2022jp
 
static const rb_transcoder rb_cp50220_decoder
 
static const rb_transcoder rb_cp50221_decoder
 
static const rb_transcoder rb_cp50221_encoder
 
static const char * tbl0208
 
static const rb_transcoder rb_cp50220_encoder
 

Macro Definition Documentation

#define cp50221_decoder   WORDINDEX2INFO(61)
#define cp50221_decoder_1B   WORDINDEX2INFO(55)
#define cp50221_decoder_1B_28   WORDINDEX2INFO(50)
#define cp50221_decoder_1B_28_offsets   751
#define cp50221_decoder_1B_infos   WORDINDEX2INFO(52)
#define cp50221_decoder_infos   WORDINDEX2INFO(57)
#define cp50221_decoder_offsets   762
#define cp50221_encoder   WORDINDEX2INFO(67)
#define cp50221_encoder_infos   WORDINDEX2INFO(63)
#define cp50221_encoder_offsets   988
#define EMACS_MULE_LEADING_CODE_JISX0208_1978   0220

Definition at line 246 of file iso2022.c.

Referenced by fun_so_iso2022jp_decoder(), and fun_so_iso2022jp_encoder().

#define EMACS_MULE_LEADING_CODE_JISX0208_1983   0222

Definition at line 247 of file iso2022.c.

Referenced by fun_so_eucjp_to_stateless_iso2022jp(), and fun_so_iso2022jp_decoder().

#define eucjp_to_stateless_iso2022jp   WORDINDEX2INFO(48)
#define eucjp_to_stateless_iso2022jp_8E   WORDINDEX2INFO(36)
#define eucjp_to_stateless_iso2022jp_8E_infos   WORDINDEX2INFO(34)
#define eucjp_to_stateless_iso2022jp_8F   WORDINDEX2INFO(40)
#define eucjp_to_stateless_iso2022jp_8F_infos   WORDINDEX2INFO(38)
#define eucjp_to_stateless_iso2022jp_infos   WORDINDEX2INFO(42)
#define eucjp_to_stateless_iso2022jp_offsets   494
#define G0_ASCII   0
#define G0_JISX0201_KATAKANA   3
#define G0_JISX0208_1978   1
#define G0_JISX0208_1983   2
#define iso2022jp_decoder   WORDINDEX2INFO(14)
#define iso2022jp_decoder_1B   WORDINDEX2INFO(9)
#define iso2022jp_decoder_1B_24   WORDINDEX2INFO(2)
#define iso2022jp_decoder_1B_24_infos   WORDINDEX2INFO(0)
#define iso2022jp_decoder_1B_24_offsets   0
#define iso2022jp_decoder_1B_28   WORDINDEX2INFO(4)
#define iso2022jp_decoder_1B_28_offsets   5
#define iso2022jp_decoder_1B_infos   WORDINDEX2INFO(6)
#define iso2022jp_decoder_1B_offsets   16
#define iso2022jp_decoder_infos   WORDINDEX2INFO(11)
#define iso2022jp_decoder_jisx0208_rest   WORDINDEX2INFO(16)
#define iso2022jp_decoder_jisx0208_rest_offsets   153
#define iso2022jp_decoder_offsets   23
#define iso2022jp_encoder   WORDINDEX2INFO(27)
#define iso2022jp_encoder_90   WORDINDEX2INFO(22)
#define iso2022jp_encoder_90_A1toFE   WORDINDEX2INFO(18)
#define iso2022jp_encoder_90_A1toFE_offsets   249
#define iso2022jp_encoder_90_infos   WORDINDEX2INFO(20)
#define iso2022jp_encoder_infos   WORDINDEX2INFO(24)
#define iso2022jp_encoder_offsets   345
#define stateless_iso2022jp_to_eucjp   WORDINDEX2INFO(32)
#define stateless_iso2022jp_to_eucjp_infos   WORDINDEX2INFO(29)
#define TRANSCODE_TABLE_INFO   iso2022_byte_array, 1245, iso2022_word_array, 69, ((int)sizeof(unsigned int))

Definition at line 237 of file iso2022.c.

Function Documentation

static ssize_t finish_cp50220_encoder ( void *  statep,
unsigned char *  o,
size_t  osize 
)
static

Definition at line 688 of file iso2022.c.

References G0_ASCII, G0_JISX0201_KATAKANA, G0_JISX0208_1983, p, and tbl0208.

static ssize_t finish_iso2022jp_encoder ( void *  statep,
unsigned char *  o,
size_t  osize 
)
static

Definition at line 372 of file iso2022.c.

References G0_ASCII.

static VALUE fun_si_cp50221_decoder ( void *  statep,
const unsigned char *  s,
size_t  l 
)
static
static VALUE fun_si_iso2022jp_decoder ( void *  statep,
const unsigned char *  s,
size_t  l 
)
static

Definition at line 258 of file iso2022.c.

References G0_ASCII, INVALID, iso2022jp_decoder_jisx0208_rest, and NOMAP.

static ssize_t fun_so_cp50220_encoder ( void *  statep,
const unsigned char *  s,
size_t  l,
unsigned char *  o,
size_t  osize 
)
static

Definition at line 632 of file iso2022.c.

References fun_so_cp5022x_encoder(), G0_JISX0201_KATAKANA, G0_JISX0208_1983, p, and tbl0208.

static ssize_t fun_so_cp50221_decoder ( void *  statep,
const unsigned char *  s,
size_t  l,
unsigned char *  o,
size_t  osize 
)
static

Definition at line 475 of file iso2022.c.

References G0_ASCII, G0_JISX0201_KATAKANA, G0_JISX0208_1978, and G0_JISX0208_1983.

static ssize_t fun_so_cp5022x_encoder ( void *  statep,
const unsigned char *  s,
size_t  l,
unsigned char *  o,
size_t  osize 
)
static

Definition at line 560 of file iso2022.c.

References G0_ASCII, G0_JISX0201_KATAKANA, and G0_JISX0208_1983.

Referenced by fun_so_cp50220_encoder().

static ssize_t fun_so_eucjp_to_stateless_iso2022jp ( void *  statep,
const unsigned char *  s,
size_t  l,
unsigned char *  o,
size_t  osize 
)
static

Definition at line 423 of file iso2022.c.

References EMACS_MULE_LEADING_CODE_JISX0208_1983.

static ssize_t fun_so_iso2022jp_decoder ( void *  statep,
const unsigned char *  s,
size_t  l,
unsigned char *  o,
size_t  osize 
)
static
static ssize_t fun_so_iso2022jp_encoder ( void *  statep,
const unsigned char *  s,
size_t  l,
unsigned char *  o,
size_t  osize 
)
static
static ssize_t fun_so_stateless_iso2022jp_to_eucjp ( void *  statep,
const unsigned char *  s,
size_t  l,
unsigned char *  o,
size_t  osize 
)
static

Definition at line 403 of file iso2022.c.

void Init_iso2022 ( void  )
static ssize_t iso2022jp_encoder_reset_sequence_size ( void *  statep)
static

Definition at line 363 of file iso2022.c.

References G0_ASCII.

static int iso2022jp_init ( void *  statep)
static

Definition at line 250 of file iso2022.c.

References G0_ASCII.

Variable Documentation

const unsigned char iso2022_byte_array[1245]
static

Definition at line 10 of file iso2022.c.

const unsigned int iso2022_word_array[69]
static

Definition at line 126 of file iso2022.c.

const rb_transcoder rb_cp50220_decoder
static
Initial value:
= {
"CP50220", "cp51932", cp50221_decoder,
1,
3,
3,
}
#define cp50221_decoder
static int iso2022jp_init(void *statep)
Definition: iso2022.c:250
#define TRANSCODE_TABLE_INFO
Definition: iso2022.c:237
static ssize_t fun_so_cp50221_decoder(void *statep, const unsigned char *s, size_t l, unsigned char *o, size_t osize)
Definition: iso2022.c:475
#define NULL
Definition: _sdbm.c:107
static VALUE fun_si_cp50221_decoder(void *statep, const unsigned char *s, size_t l)
Definition: iso2022.c:444

Definition at line 536 of file iso2022.c.

Referenced by Init_iso2022().

const rb_transcoder rb_cp50220_encoder
static
Initial value:
= {
"CP51932", "CP50220", cp50221_encoder,
1,
3,
5,
iso2022jp_encoder_reset_sequence_size, finish_cp50220_encoder
}
static ssize_t fun_so_cp50220_encoder(void *statep, const unsigned char *s, size_t l, unsigned char *o, size_t osize)
Definition: iso2022.c:632
static ssize_t iso2022jp_encoder_reset_sequence_size(void *statep)
Definition: iso2022.c:363
static int iso2022jp_init(void *statep)
Definition: iso2022.c:250
#define TRANSCODE_TABLE_INFO
Definition: iso2022.c:237
static ssize_t finish_cp50220_encoder(void *statep, unsigned char *o, size_t osize)
Definition: iso2022.c:688
#define NULL
Definition: _sdbm.c:107
#define cp50221_encoder

Definition at line 718 of file iso2022.c.

Referenced by Init_iso2022().

const rb_transcoder rb_cp50221_decoder
static
Initial value:
= {
"CP50221", "cp51932", cp50221_decoder,
1,
3,
3,
}
#define cp50221_decoder
static int iso2022jp_init(void *statep)
Definition: iso2022.c:250
#define TRANSCODE_TABLE_INFO
Definition: iso2022.c:237
static ssize_t fun_so_cp50221_decoder(void *statep, const unsigned char *s, size_t l, unsigned char *o, size_t osize)
Definition: iso2022.c:475
#define NULL
Definition: _sdbm.c:107
static VALUE fun_si_cp50221_decoder(void *statep, const unsigned char *s, size_t l)
Definition: iso2022.c:444

Definition at line 548 of file iso2022.c.

Referenced by Init_iso2022().

const rb_transcoder rb_cp50221_encoder
static
Initial value:
= {
"CP51932", "CP50221", cp50221_encoder,
1,
3,
5,
iso2022jp_encoder_reset_sequence_size, finish_iso2022jp_encoder
}
static ssize_t finish_iso2022jp_encoder(void *statep, unsigned char *o, size_t osize)
Definition: iso2022.c:372
static ssize_t iso2022jp_encoder_reset_sequence_size(void *statep)
Definition: iso2022.c:363
static ssize_t fun_so_cp5022x_encoder(void *statep, const unsigned char *s, size_t l, unsigned char *o, size_t osize)
Definition: iso2022.c:560
static int iso2022jp_init(void *statep)
Definition: iso2022.c:250
#define TRANSCODE_TABLE_INFO
Definition: iso2022.c:237
#define NULL
Definition: _sdbm.c:107
#define cp50221_encoder

Definition at line 608 of file iso2022.c.

Referenced by Init_iso2022().

const rb_transcoder rb_eucjp_to_stateless_iso2022jp
static
Initial value:
= {
"EUC-JP", "stateless-ISO-2022-JP", eucjp_to_stateless_iso2022jp,
1,
3,
3,
0, NULL, NULL,
}
#define eucjp_to_stateless_iso2022jp
static ssize_t fun_so_eucjp_to_stateless_iso2022jp(void *statep, const unsigned char *s, size_t l, unsigned char *o, size_t osize)
Definition: iso2022.c:423
#define TRANSCODE_TABLE_INFO
Definition: iso2022.c:237
#define NULL
Definition: _sdbm.c:107

Definition at line 432 of file iso2022.c.

Referenced by Init_iso2022().

const rb_transcoder rb_iso2022jp_decoder
static
Initial value:
= {
"ISO-2022-JP", "stateless-ISO-2022-JP", iso2022jp_decoder,
1,
3,
3,
}
static ssize_t fun_so_iso2022jp_decoder(void *statep, const unsigned char *s, size_t l, unsigned char *o, size_t osize)
Definition: iso2022.c:270
static VALUE fun_si_iso2022jp_decoder(void *statep, const unsigned char *s, size_t l)
Definition: iso2022.c:258
#define iso2022jp_decoder
static int iso2022jp_init(void *statep)
Definition: iso2022.c:250
#define TRANSCODE_TABLE_INFO
Definition: iso2022.c:237
#define NULL
Definition: _sdbm.c:107

Definition at line 307 of file iso2022.c.

Referenced by Init_iso2022().

const rb_transcoder rb_iso2022jp_encoder
static
Initial value:
= {
"stateless-ISO-2022-JP", "ISO-2022-JP", iso2022jp_encoder,
1,
3,
5,
iso2022jp_encoder_reset_sequence_size, finish_iso2022jp_encoder
}
static ssize_t finish_iso2022jp_encoder(void *statep, unsigned char *o, size_t osize)
Definition: iso2022.c:372
static ssize_t iso2022jp_encoder_reset_sequence_size(void *statep)
Definition: iso2022.c:363
static ssize_t fun_so_iso2022jp_encoder(void *statep, const unsigned char *s, size_t l, unsigned char *o, size_t osize)
Definition: iso2022.c:319
static int iso2022jp_init(void *statep)
Definition: iso2022.c:250
#define TRANSCODE_TABLE_INFO
Definition: iso2022.c:237
#define NULL
Definition: _sdbm.c:107
#define iso2022jp_encoder

Definition at line 389 of file iso2022.c.

Referenced by Init_iso2022().

const rb_transcoder rb_stateless_iso2022jp_to_eucjp
static
Initial value:
= {
"stateless-ISO-2022-JP", "EUC-JP", stateless_iso2022jp_to_eucjp,
1,
3,
2,
0, NULL, NULL,
}
static ssize_t fun_so_stateless_iso2022jp_to_eucjp(void *statep, const unsigned char *s, size_t l, unsigned char *o, size_t osize)
Definition: iso2022.c:403
#define stateless_iso2022jp_to_eucjp
#define TRANSCODE_TABLE_INFO
Definition: iso2022.c:237
#define NULL
Definition: _sdbm.c:107

Definition at line 411 of file iso2022.c.

Referenced by Init_iso2022().

const char* tbl0208
static
Initial value:
=
"\x21\x23\x21\x56\x21\x57\x21\x22\x21\x26\x25\x72\x25\x21\x25\x23"
"\x25\x25\x25\x27\x25\x29\x25\x63\x25\x65\x25\x67\x25\x43\x21\x3C"
"\x25\x22\x25\x24\x25\x26\x25\x28\x25\x2A\x25\x2B\x25\x2D\x25\x2F"
"\x25\x31\x25\x33\x25\x35\x25\x37\x25\x39\x25\x3B\x25\x3D\x25\x3F"
"\x25\x41\x25\x44\x25\x46\x25\x48\x25\x4A\x25\x4B\x25\x4C\x25\x4D"
"\x25\x4E\x25\x4F\x25\x52\x25\x55\x25\x58\x25\x5B\x25\x5E\x25\x5F"
"\x25\x60\x25\x61\x25\x62\x25\x64\x25\x66\x25\x68\x25\x69\x25\x6A"
"\x25\x6B\x25\x6C\x25\x6D\x25\x6F\x25\x73\x21\x2B\x21\x2C"

Definition at line 621 of file iso2022.c.

Referenced by finish_cp50220_encoder(), and fun_so_cp50220_encoder().