transcode_data.h File Reference
`#include "ruby/ruby.h"`

Go to the source code of this file.

## Data Structures

struct | rb_transcoder

## Macros

#define | WORDINDEX_SHIFT_BITS 2
#define | WORDINDEX2INFO(widx) ((widx) << WORDINDEX_SHIFT_BITS)
#define | INFO2WORDINDEX(info) ((info) >> WORDINDEX_SHIFT_BITS)
#define | BYTE_LOOKUP_BASE(bl) ((bl)[0])
#define | BYTE_LOOKUP_INFO(bl) ((bl)[1])
#define | PType (unsigned int)
#define | NOMAP (PType 0x01) /* direct map */
#define | ONEbt (0x02) /* one byte payload */
#define | TWObt (0x03) /* two bytes payload */
#define | THREEbt (0x05) /* three bytes payload */
#define | FOURbt (0x06) /* four bytes payload, UTF-8 only, macros start at getBT0 */
#define | INVALID (PType 0x07) /* invalid byte sequence */
#define | UNDEF (PType 0x09) /* legal but undefined */
#define | ZERObt (PType 0x0A) /* zero bytes of payload, i.e. remove */
#define | FUNii (PType 0x0B) /* function from info to info */
#define | FUNsi (PType 0x0D) /* function from start to info */
#define | FUNio (PType 0x0E) /* function from info to output */
#define | FUNso (PType 0x0F) /* function from start to output */
#define | STR1 (PType 0x11) /* string 4 <= len <= 259 bytes: 1byte length + content */
#define | GB4bt (PType 0x12) /* GB18030 four bytes payload */
#define | FUNsio (PType 0x13) /* function from start and info to output */
#define | STR1_LENGTH(byte_addr) (unsigned int)(*(byte_addr) + 4)
#define | STR1_BYTEINDEX(w) ((w) >> 6)
#define | makeSTR1(bi) (((bi) << 6) | STR1)
#define | makeSTR1LEN(len) ((len)-4)
#define | o1(b1) (PType((((unsigned char)(b1))<<8)|ONEbt))
#define | o2(b1, b2) (PType((((unsigned char)(b1))<<8)|(((unsigned char)(b2))<<16)|TWObt))
#define | o3(b1, b2, b3) (PType(((((unsigned char)(b1))<<8)|(((unsigned char)(b2))<<16)|(((unsigned int)(unsigned char)(b3))<<24)|THREEbt)&0xffffffffU))
#define | o4(b0, b1, b2, b3) (PType(((((unsigned char)(b1))<<8)|(((unsigned char)(b2))<<16)|(((unsigned char)(b3))<<24)|((((unsigned char)(b0))&0x07)<<5)|FOURbt)&0xffffffffU))
#define | g4(b0, b1, b2, b3) (PType(((((unsigned char)(b0))<<8)|(((unsigned char)(b2))<<16)|((((unsigned char)(b1))&0x0f)<<24)|((((unsigned int)(unsigned char)(b3))&0x0f)<<28)|GB4bt)&0xffffffffU))
#define | funsio(diff) (PType((((unsigned int)(diff))<<8)|FUNsio))
#define | getBT1(a) ((unsigned char)((a)>> 8))
#define | getBT2(a) ((unsigned char)((a)>>16))
#define | getBT3(a) ((unsigned char)((a)>>24))
#define | getBT0(a) (((unsigned char)((a)>> 5)&0x07)|0xF0) /* for UTF-8 only!!! */
#define | getGB4bt0(a) ((unsigned char)((a)>> 8))
#define | getGB4bt1(a) (((unsigned char)((a)>>24)&0x0F)|0x30)
#define | getGB4bt2(a) ((unsigned char)((a)>>16))
#define | getGB4bt3(a) (((unsigned char)((a)>>28)&0x0F)|0x30)
#define | o2FUNii(b1, b2) (PType((((unsigned char)(b1))<<8)|(((unsigned char)(b2))<<16)|FUNii))
#define | ONETRAIL /* legal but undefined if one more trailing UTF-8 */
#define | TWOTRAIL /* legal but undefined if two more trailing UTF-8 */
#define | THREETRAIL /* legal but undefined if three more trailing UTF-8 */

## Typedefs

typedef struct rb_transcoder | rb_transcoder

## Enumerations

enum | rb_transcoder_asciicompat_type_t { asciicompat_converter, asciicompat_decoder, asciicompat_encoder }

## Functions

void | rb_declare_transcoder (const char *enc1, const char *enc2, const char *lib)
void | rb_register_transcoder (const rb_transcoder *)

## Macro Definition Documentation

#define BYTE_LOOKUP_BASE | ( |  | bl | ) | ((bl)[0])

Definition at line 24 of file transcode_data.h.

#define BYTE_LOOKUP_INFO | ( |  | bl | ) | ((bl)[1])

Definition at line 25 of file transcode_data.h.

#define FOURbt (0x06) /* four bytes payload, UTF-8 only, macros start at getBT0 */

Definition at line 33 of file transcode_data.h.

Referenced by transcode_restartable0().

#define FUNii (PType 0x0B) /* function from info to info */

Definition at line 37 of file transcode_data.h.

Referenced by transcode_restartable0().

#define FUNio (PType 0x0E) /* function from info to output */

Definition at line 39 of file transcode_data.h.

Referenced by transcode_restartable0().

#define FUNsi (PType 0x0D) /* function from start to info */

Definition at line 38 of file transcode_data.h.

Referenced by transcode_restartable0().

#define FUNsio (PType 0x13) /* function from start and info to output */

Definition at line 43 of file transcode_data.h.

Referenced by transcode_restartable0().

#define funsio | ( |  | diff | ) | (PType((((unsigned int)(diff))<<8)|FUNsio))

Definition at line 55 of file transcode_data.h.

#define FUNso (PType 0x0F) /* function from start to output */

Definition at line 40 of file transcode_data.h.

Referenced by fun_si_cp50221_decoder(), fun_si_from_utf_16(), fun_si_from_utf_32(), and transcode_restartable0().

#define g4 | ( |  | b0,
|  |  | b1,
|  |  | b2,
|  |  | b3
| ) |  | (PType(((((unsigned char)(b0))<<8)|(((unsigned char)(b2))<<16)|((((unsigned char)(b1))&0x0f)<<24)|((((unsigned int)(unsigned char)(b3))&0x0f)<<28)|GB4bt)&0xffffffffU))

Definition at line 54 of file transcode_data.h.

#define GB4bt (PType 0x12) /* GB18030 four bytes payload */

Definition at line 42 of file transcode_data.h.

Referenced by transcode_restartable0().

#define getBT0 | ( |  | a | ) | (((unsigned char)((a)>> 5)&0x07)|0xF0) /* for UTF-8 only!!! */

Definition at line 60 of file transcode_data.h.

Referenced by transcode_restartable0().

#define getBT1 | ( |  | a | ) | ((unsigned char)((a)>> 8))

Definition at line 57 of file transcode_data.h.

Referenced by buf_apply(), and transcode_restartable0().

#define getBT2 | ( |  | a | ) | ((unsigned char)((a)>>16))

Definition at line 58 of file transcode_data.h.

Referenced by buf_apply(), and transcode_restartable0().

#define getBT3 | ( |  | a | ) | ((unsigned char)((a)>>24))

Definition at line 59 of file transcode_data.h.

Referenced by buf_apply(), and transcode_restartable0().

#define getGB4bt0 | ( |  | a | ) | ((unsigned char)((a)>> 8))

Definition at line 62 of file transcode_data.h.

Referenced by transcode_restartable0().

#define getGB4bt1 | ( |  | a | ) | (((unsigned char)((a)>>24)&0x0F)|0x30)

Definition at line 63 of file transcode_data.h.

Referenced by transcode_restartable0().

#define getGB4bt2 | ( |  | a | ) | ((unsigned char)((a)>>16))

Definition at line 64 of file transcode_data.h.

Referenced by transcode_restartable0().

#define getGB4bt3 | ( |  | a | ) | (((unsigned char)((a)>>28)&0x0F)|0x30)

Definition at line 65 of file transcode_data.h.

Referenced by transcode_restartable0().

#define INFO2WORDINDEX | ( |  | info | ) | ((info) >> WORDINDEX_SHIFT_BITS)

Definition at line 23 of file transcode_data.h.

#define INVALID (PType 0x07) /* invalid byte sequence */

Definition at line 34 of file transcode_data.h.

Referenced by fun_si_cp50221_decoder(), fun_si_from_utf_16(), fun_si_from_utf_32(), fun_si_iso2022jp_decoder(), fun_si_iso2022jp_kddi_decoder(), get_info(), and transcode_restartable0().

#define makeSTR1 | ( |  | bi | ) | (((bi) << 6) | STR1)

Definition at line 47 of file transcode_data.h.

#define makeSTR1LEN | ( |  | len | ) | ((len)-4)

Definition at line 48 of file transcode_data.h.

#define NOMAP (PType 0x01) /* direct map */

Definition at line 29 of file transcode_data.h.

Referenced by fun_si_cp50221_decoder(), fun_si_iso2022jp_decoder(), fun_si_iso2022jp_kddi_decoder(), and transcode_restartable0().

#define o1 | ( |  | b1 | ) | (PType((((unsigned char)(b1))<<8)|ONEbt))

Definition at line 50 of file transcode_data.h.

#define o2 | ( |  | b1,
|  |  | b2
| ) |  | (PType((((unsigned char)(b1))<<8)|(((unsigned char)(b2))<<16)|TWObt))

Definition at line 51 of file transcode_data.h.

#define o2FUNii | ( |  | b1,
|  |  | b2
| ) |  | (PType((((unsigned char)(b1))<<8)|(((unsigned char)(b2))<<16)|FUNii))

Definition at line 67 of file transcode_data.h.

#define o3 | ( |  | b1,
|  |  | b2,
|  |  | b3
| ) |  | (PType(((((unsigned char)(b1))<<8)|(((unsigned char)(b2))<<16)|(((unsigned int)(unsigned char)(b3))<<24)|THREEbt)&0xffffffffU))

Definition at line 52 of file transcode_data.h.

#define o4 | ( |  | b0,
|  |  | b1,
|  |  | b2,
|  |  | b3
| ) |  | (PType(((((unsigned char)(b1))<<8)|(((unsigned char)(b2))<<16)|(((unsigned char)(b3))<<24)|((((unsigned char)(b0))&0x07)<<5)|FOURbt)&0xffffffffU))

Definition at line 53 of file transcode_data.h.

#define ONEbt (0x02) /* one byte payload */

Definition at line 30 of file transcode_data.h.

Referenced by transcode_restartable0().

#define ONETRAIL /* legal but undefined if one more trailing UTF-8 */

Definition at line 70 of file transcode_data.h.

#define PType (unsigned int)

Definition at line 27 of file transcode_data.h.

#define STR1 (PType 0x11) /* string 4 <= len <= 259 bytes: 1byte length + content */

Definition at line 41 of file transcode_data.h.

Referenced by transcode_restartable0().

#define STR1_BYTEINDEX | ( |  | w | ) | ((w) >> 6)

Definition at line 46 of file transcode_data.h.

Referenced by transcode_restartable0().

#define STR1_LENGTH | ( |  | byte_addr | ) | (unsigned int)(*(byte_addr) + 4)

Definition at line 45 of file transcode_data.h.

Referenced by transcode_restartable0().

#define THREEbt (0x05) /* three bytes payload */

Definition at line 32 of file transcode_data.h.

Referenced by buf_apply(), and transcode_restartable0().

#define THREETRAIL /* legal but undefined if three more trailing UTF-8 */

Definition at line 72 of file transcode_data.h.

#define TWObt (0x03) /* two bytes payload */

Definition at line 31 of file transcode_data.h.

Referenced by buf_apply(), and transcode_restartable0().

#define TWOTRAIL /* legal but undefined if two more trailing UTF-8 */

Definition at line 71 of file transcode_data.h.

#define UNDEF (PType 0x09) /* legal but undefined */

Definition at line 35 of file transcode_data.h.

Referenced by transcode_restartable0().

#define WORDINDEX2INFO | ( |  | widx | ) | ((widx) << WORDINDEX_SHIFT_BITS)

Definition at line 22 of file transcode_data.h.

#define WORDINDEX_SHIFT_BITS 2

Definition at line 21 of file transcode_data.h.

#define ZERObt (PType 0x0A) /* zero bytes of payload, i.e. remove */

Definition at line 36 of file transcode_data.h.

Referenced by fun_si_from_utf_16(), fun_si_from_utf_32(), and transcode_restartable0().

## Typedef Documentation

typedef struct rb_transcoder rb_transcoder

Definition at line 81 of file transcode_data.h.

## Enumeration Type Documentation

enum rb_transcoder_asciicompat_type_t

Enumerator
asciicompat_converter |
asciicompat_decoder |
asciicompat_encoder |

Definition at line 74 of file transcode_data.h.

## Function Documentation

void rb_declare_transcoder | ( | const char * | enc1,
|  | const char * | enc2,
|  | const char * | lib
| ) |  |

Definition at line 234 of file transcode.c.

References declare_transcoder(), MAX_TRANSCODER_LIBNAME_LEN, rb_eArgError, rb_raise(), and strlen().

void rb_register_transcoder | ( | const rb_transcoder * |  | ) |

Definition at line 205 of file transcode.c.

References rb_transcoder::dst_encoding, make_transcoder_entry(), rb_eArgError, rb_raise(), rb_transcoder::src_encoding, and transcoder_entry_t::transcoder.

Referenced by Init_big5(), Init_chinese(), Init_emoji(), Init_emoji_iso2022_kddi(), Init_emoji_sjis_docomo(), Init_emoji_sjis_kddi(), Init_emoji_sjis_softbank(), Init_escape(), Init_gb18030(), Init_gbk(), Init_iso2022(), Init_japanese(), Init_japanese_euc(), Init_japanese_sjis(), Init_korean(), Init_newline(), Init_single_byte(), Init_utf8_mac(), and Init_utf_16_32().